Guitar
ApplicationSettings.h
Go to the documentation of this file.
1 #ifndef APPLICATIONSETTINGS_H
2 #define APPLICATIONSETTINGS_H
3 
4 #include <ai/GenerativeAI.h>
5 #include <QColor>
6 #include <QString>
7 #include <map>
8 
9 #define ORGANIZATION_NAME "soramimi.jp"
10 #define APPLICATION_NAME "Guitar"
11 
12 class MySettings;
13 
15 public:
20  QString app_config_dir;
21  QString log_dir;
23 };
24 
25 class AiApiKeys {
26 public:
27  enum class KeyFrom {
28  Environment, // 環境変数から取得
29  LocalSecret, // ユーザーが設定画面で入力
31  };
32  static QString symbolKeyFrom(KeyFrom keyfrom);
33  static KeyFrom parseKeyFrom(QString const &symbol);
34 
35  struct Item {
37  std::string api_key;
38  };
39 
40  std::map<std::string, AiApiKeys::Item> map; // key is env_name
41 
42  bool load(MySettings *s);
43  bool save(MySettings *s) const;
44 };
45 
47 public:
48  bool enable_trace_log = false;
49  bool use_custom_log_dir = false;
50  QString custom_log_dir;
51 
52  QString git_command;
53  QString gpg_command;
54  QString ssh_command;
58  QStringList favorite_working_dirs;
59  QString proxy_type;
60  QString proxy_server;
61 
65  std::tuple<std::vector<GenerativeAI::Model>, int> ai_models() const;
66 
68  struct {
69  bool gravatar = true; // www.gravatar.com
70  bool libravatar = true; // www.libravatar.org
72 
76  bool show_labels = true;
77  bool show_graph = true;
78  bool show_avatars = true;
79 
81 
82  struct {
83  QColor head;
84  QColor local;
85  QColor remote;
86  QColor tag;
88 
89  struct {
90  QColor filtered_bg;
91  QColor highlight_bg;
93 
95  void saveSettings() const;
96 
98 
99 #if 0
100  static QString loadOpenAiApiKey();
101  static void saveOpenAiApiKey(const QString &key);
102 #endif
103 };
104 
105 #endif // APPLICATIONSETTINGS_H
#define ORGANIZATION_NAME
Definition: ApplicationSettings.h:9
#define APPLICATION_NAME
Definition: ApplicationSettings.h:10
Definition: ApplicationSettings.h:25
std::map< std::string, AiApiKeys::Item > map
Definition: ApplicationSettings.h:40
bool save(MySettings *s) const
Definition: ApplicationSettings.cpp:286
KeyFrom
Definition: ApplicationSettings.h:27
bool load(MySettings *s)
Definition: ApplicationSettings.cpp:249
static KeyFrom parseKeyFrom(QString const &symbol)
Definition: ApplicationSettings.cpp:239
static QString symbolKeyFrom(KeyFrom keyfrom)
Definition: ApplicationSettings.cpp:230
Definition: ApplicationSettings.h:14
QString generic_config_dir
Definition: ApplicationSettings.h:19
QString application_name
Definition: ApplicationSettings.h:17
QString log_dir
Definition: ApplicationSettings.h:21
QString organization_name
Definition: ApplicationSettings.h:16
QString config_file_path
Definition: ApplicationSettings.h:22
QString application_file_path
Definition: ApplicationSettings.h:18
QString app_config_dir
Definition: ApplicationSettings.h:20
Definition: ApplicationSettings.h:46
bool use_custom_log_dir
Definition: ApplicationSettings.h:49
bool enable_trace_log
Definition: ApplicationSettings.h:48
void saveSettings() const
Definition: ApplicationSettings.cpp:179
QColor highlight_bg
Definition: ApplicationSettings.h:91
QString ssh_command
Definition: ApplicationSettings.h:54
bool generate_commit_message_with_ai
Definition: ApplicationSettings.h:62
QColor remote
Definition: ApplicationSettings.h:85
std::tuple< std::vector< GenerativeAI::Model >, int > ai_models() const
Definition: ApplicationSettings.cpp:79
bool show_labels
Definition: ApplicationSettings.h:76
GenerativeAI::Model ai_model
Definition: ApplicationSettings.h:64
QString git_command
Definition: ApplicationSettings.h:52
struct ApplicationSettings::@6 branch_label_color
QString terminal_command
Definition: ApplicationSettings.h:55
QColor head
Definition: ApplicationSettings.h:83
bool gravatar
Definition: ApplicationSettings.h:69
bool show_graph
Definition: ApplicationSettings.h:77
QString default_working_dir
Definition: ApplicationSettings.h:57
AiApiKeys ai_api_keys
Definition: ApplicationSettings.h:63
bool automatically_fetch_when_opening_the_repository
Definition: ApplicationSettings.h:74
static ApplicationSettings defaultSettings()
Definition: main.cpp:26
int maximum_number_of_commit_item_acquisitions
Definition: ApplicationSettings.h:75
QString proxy_type
Definition: ApplicationSettings.h:59
struct ApplicationSettings::@7 incremental_search_color
static ApplicationSettings loadSettings()
Definition: ApplicationSettings.cpp:99
bool get_avatar_icon_from_network_enabled
Definition: ApplicationSettings.h:67
QColor local
Definition: ApplicationSettings.h:84
QString custom_log_dir
Definition: ApplicationSettings.h:50
QStringList favorite_working_dirs
Definition: ApplicationSettings.h:58
bool incremental_search_with_miegemo
Definition: ApplicationSettings.h:80
bool show_avatars
Definition: ApplicationSettings.h:78
QColor filtered_bg
Definition: ApplicationSettings.h:90
QString proxy_server
Definition: ApplicationSettings.h:60
bool libravatar
Definition: ApplicationSettings.h:70
QColor tag
Definition: ApplicationSettings.h:86
struct ApplicationSettings::@5 avatar_provider
bool remember_and_restore_window_position
Definition: ApplicationSettings.h:73
QString explorer_command
Definition: ApplicationSettings.h:56
QString gpg_command
Definition: ApplicationSettings.h:53
Definition: MySettings.h:8
Definition: ApplicationSettings.h:35
std::string api_key
Definition: ApplicationSettings.h:37
KeyFrom from
Definition: ApplicationSettings.h:36
Definition: GenerativeAI.h:95