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