aboutsummaryrefslogtreecommitdiff
path: root/include/Config.hpp
blob: 665024a635b61df29cf49d3428e7b12fc40d5ada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#pragma once

#include <string>

namespace QuickMedia {
    struct SearchConfig {
        int font_size = 16;
    };

    struct TabConfig {
        int font_size = 16;
    };

    struct BodyConfig {
        int title_font_size = 16;
        int author_font_size = 14;
        int description_font_size = 14;
        int timestamp_font_size = 10;
        int reaction_font_size = 14;
        int progress_font_size = 14;
        int replies_font_size = 14;
        int embedded_load_font_size = 14;
    };

    struct InputConfig {
        int font_size = 16;
    };

    struct VideoConfig {
        int max_height = 0;
    };

    struct LocalMangaConfig {
        std::string directory;
        bool sort_by_name = false;
        bool sort_chapters_by_name = false;
    };

    struct LocalAnimeConfig {
        std::string directory;
        bool sort_by_name = false;
        bool auto_group_episodes = true;
    };

    struct YoutubeConfig {
        bool load_progress = true;
    };

    struct Config {
        Config() = default;
        Config(const Config&) = delete;
        Config&operator=(const Config&) = delete;

        SearchConfig search;
        TabConfig tab;
        BodyConfig body;
        InputConfig input;
        VideoConfig video;
        LocalMangaConfig local_manga;
        LocalAnimeConfig local_anime;
        YoutubeConfig youtube;
        bool use_system_fonts = false;
        bool use_system_mpv_config = false;
        std::string theme = "default";
        float scale = 1.0f;
        float font_scale = 1.0f;
        float spacing_scale = 1.0f;
    };

    const Config& get_config();
}