Guitar
ApplicationGlobal.h
Go to the documentation of this file.
1 #ifndef APPLICATIONGLOBAL_H
2 #define APPLICATIONGLOBAL_H
3 
4 #include "ApplicationSettings.h"
5 #include "AvatarLoader.h"
6 #include "Theme.h"
7 #include "common/misc.h"
8 #include "filetype/src/FileType.h"
9 #include "Git.h"
10 #include "webclient.h"
11 #include "MeCaSearch.h"
12 #include <QColor>
13 #include <QString>
14 #include "GenerativeAI.h"
15 #include "TraceEventWriter.h"
16 #include "curlclient.h"
17 
18 class MainWindow;
19 class IncrementalSearch;
20 
22  QString email;
23  QString name;
24  AccountProfile() = default;
25  AccountProfile(QString const &email, QString const &name)
26  : email(email)
27  , name(name)
28  {
29  }
30  QString text() const
31  {
32  return QString("%1 <%2>").arg(name).arg(email);
33  }
34  operator bool () const
35  {
37  }
38 };
39 
41 private:
42  struct Private;
44 public:
47 
49  MainWindow *mainwindow = nullptr;
50  bool start_with_shift_key = false;
51  QString language_id;
52  QString theme_id;
56 
57 #ifdef UNSAFE_ENABLED
58  bool unsafe_enabled = false;
59 #endif
60 
61  struct Graphics {
63  QIcon folder_icon;
68  QPixmap small_digits;
69  };
70  std::unique_ptr<Graphics> graphics;
71 
72  GitContext gcx();
73 
74  FileType filetype;
75 
77 
78 #ifdef USE_LIBCURL
79  CurlContext curlcx;
80 #else
82 #endif
84 
85  std::vector<AccountProfile> account_profiles;
86 
87  void init(QApplication *a);
88 
89  // bool remote_log_enabled = false;
90  void open_remote_logger();
91  void close_remote_logger();
92  void send_remote_logger(std::string const &msg, const char *file = nullptr, int line = 0);
93 
94  // bool trace_log_enabled = false;
95  void open_trace_logger();
96  void close_trace_logger();
97  void restart_trace_logger();
98  void put_trace_event(const TraceEventWriter::Event &event);
99 
100  void writeLog(const std::string_view &str);
101  void writeLog(const QString &str);
102 
103  std::shared_ptr<AbstractInetClient> inet_client();
104 
106  MeCaSearch meca;
108 
110 
111  std::string determineFileType(const QByteArray &in);
112  // std::string determineFileType(const std::string &path);
113  std::string determineFileType(QString const &path);
114 
115  static bool isMainThread();
116 
117  bool isUnsafeEnabled() const
118  {
119 #ifdef UNSAFE_ENABLED
120  return unsafe_enabled;
121 #else
122  return false;
123 #endif
124  }
125 
126  bool isAiEnabled() const
127  {
129  }
130 };
131 
134 
135 
136 #define ASSERT_MAIN_THREAD() Q_ASSERT(ApplicationGlobal::isMainThread())
137 
138 extern ApplicationGlobal *global;
139 
140 #endif // APPLICATIONGLOBAL_H
ApplicationGlobal * global
Definition: main.cpp:28
void GlobalRestoreOverrideCursor()
Definition: ApplicationGlobal.cpp:194
void GlobalSetOverrideWaitCursor()
Definition: ApplicationGlobal.cpp:189
std::shared_ptr< AbstractTheme > ThemePtr
Definition: Theme.h:34
Definition: ApplicationSettings.h:12
Definition: ApplicationGlobal.h:40
QString language_id
Definition: ApplicationGlobal.h:51
FileType filetype
Definition: ApplicationGlobal.h:74
std::unique_ptr< Graphics > graphics
Definition: ApplicationGlobal.h:70
Private * m
Definition: ApplicationGlobal.h:42
void send_remote_logger(std::string const &msg, const char *file=nullptr, int line=0)
Definition: ApplicationGlobal.cpp:47
AbstractGitSession::Option gitopt
Definition: ApplicationGlobal.h:48
MainWindow * mainwindow
Definition: ApplicationGlobal.h:49
~ApplicationGlobal()
Definition: ApplicationGlobal.cpp:26
void open_remote_logger()
Definition: ApplicationGlobal.cpp:33
GitContext gcx()
Definition: ApplicationGlobal.cpp:81
AvatarLoader avatar_loader
Definition: ApplicationGlobal.h:83
void close_remote_logger()
Definition: ApplicationGlobal.cpp:42
void restart_trace_logger()
Definition: ApplicationGlobal.cpp:70
GenerativeAI::Credential get_ai_credential(GenerativeAI::AI provider)
Definition: ApplicationGlobal.cpp:285
std::vector< AccountProfile > account_profiles
Definition: ApplicationGlobal.h:85
void put_trace_event(const TraceEventWriter::Event &event)
Definition: ApplicationGlobal.cpp:76
void writeLog(const std::string_view &str)
Definition: ApplicationGlobal.cpp:158
std::string determineFileType(const QByteArray &in)
Definition: ApplicationGlobal.cpp:292
QColor panel_bg_color
Definition: ApplicationGlobal.h:54
QString theme_id
Definition: ApplicationGlobal.h:52
void open_trace_logger()
Definition: ApplicationGlobal.cpp:52
IncrementalSearch * incremental_search()
Definition: ApplicationGlobal.cpp:179
bool start_with_shift_key
Definition: ApplicationGlobal.h:50
std::shared_ptr< AbstractInetClient > inet_client()
Definition: ApplicationGlobal.cpp:168
WebContext webcx
Definition: ApplicationGlobal.h:81
MeCaSearch meca
Definition: ApplicationGlobal.h:106
QString profiles_xml_path
Definition: ApplicationGlobal.h:53
bool isUnsafeEnabled() const
Definition: ApplicationGlobal.h:117
ApplicationSettings appsettings
Definition: ApplicationGlobal.h:76
ThemePtr theme
Definition: ApplicationGlobal.h:55
void close_trace_logger()
Definition: ApplicationGlobal.cpp:65
ApplicationGlobal()
Definition: ApplicationGlobal.cpp:21
QString incremental_search_text
Definition: ApplicationGlobal.h:107
static bool isMainThread()
Definition: ApplicationGlobal.cpp:184
void init(QApplication *a)
Definition: ApplicationGlobal.cpp:89
bool isAiEnabled() const
Definition: ApplicationGlobal.h:126
Definition: ApplicationSettings.h:23
bool generate_commit_message_by_ai
Definition: ApplicationSettings.h:42
Definition: AvatarLoader.h:20
Definition: curlclient.h:8
Definition: Git.h:9
Definition: IncrementalSearch.h:16
Definition: MainWindow.h:90
@ HTTP_1_0
Definition: webclient.h:51
Definition: webclient.h:140
static bool isValidMailAddress(const QString &email)
文字列が有効なメールアドレスか判定する
Definition: misc.cpp:748
AI
Definition: GenerativeAI.h:9
Definition: AbstractGitSession.h:17
Definition: ApplicationGlobal.h:21
AccountProfile(QString const &email, QString const &name)
Definition: ApplicationGlobal.h:25
QString email
Definition: ApplicationGlobal.h:22
QString name
Definition: ApplicationGlobal.h:23
QString text() const
Definition: ApplicationGlobal.h:30
AccountProfile()=default
Definition: ApplicationGlobal.h:61
QIcon folder_icon
Definition: ApplicationGlobal.h:63
QIcon repository_icon
Definition: ApplicationGlobal.h:62
QIcon signature_dubious_icon
Definition: ApplicationGlobal.h:65
QIcon signature_bad_icon
Definition: ApplicationGlobal.h:66
QPixmap small_digits
Definition: ApplicationGlobal.h:68
QIcon signature_good_icon
Definition: ApplicationGlobal.h:64
QPixmap transparent_pixmap
Definition: ApplicationGlobal.h:67
Definition: ApplicationGlobal.cpp:15
Definition: GenerativeAI.h:59
Definition: TraceEventWriter.h:10