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 <QColor>
12 #include <QString>
13 #include "GenerativeAI.h"
14 #include "TraceEventWriter.h"
15 #include "curlclient.h"
16 
17 class MainWindow;
18 class IncrementalSearch;
19 
21  QString email;
22  QString name;
23  AccountProfile() = default;
24  AccountProfile(QString const &email, QString const &name)
25  : email(email)
26  , name(name)
27  {
28  }
29  QString text() const
30  {
31  return QString("%1 <%2>").arg(name).arg(email);
32  }
33  operator bool () const
34  {
36  }
37 };
38 
40 private:
41  struct Private;
43 public:
46 
48  MainWindow *mainwindow = nullptr;
49  bool start_with_shift_key = false;
50  QString language_id;
51  QString theme_id;
55 
56 #ifdef UNSAFE_ENABLED
57  bool unsafe_enabled = false;
58 #endif
59 
60  struct Graphics {
62  QIcon folder_icon;
67  QPixmap small_digits;
68  };
69  std::unique_ptr<Graphics> graphics;
70 
71  GitContext gcx();
72 
73  FileType filetype;
74 
76 
80 
81  std::vector<AccountProfile> account_profiles;
82 
83  void init(QApplication *a);
84 
85  // bool remote_log_enabled = false;
86  void open_remote_logger();
87  void close_remote_logger();
88  void send_remote_logger(std::string const &msg, const char *file = nullptr, int line = 0);
89 
90  // bool trace_log_enabled = false;
91  void open_trace_logger();
92  void close_trace_logger();
93  void restart_trace_logger();
94  void put_trace_event(const TraceEventWriter::Event &event);
95 
96  void writeLog(const std::string_view &str);
97  void writeLog(const QString &str);
98 
100 
102 
103  std::string determineFileType(const QByteArray &in);
104  // std::string determineFileType(const std::string &path);
105  std::string determineFileType(QString const &path);
106 
107  static bool isMainThread();
108 
109  bool isUnsafeEnabled() const
110  {
111 #ifdef UNSAFE_ENABLED
112  return unsafe_enabled;
113 #else
114  return false;
115 #endif
116  }
117 
118  bool isAiEnabled() const
119  {
121  }
122 };
123 
126 
127 
128 #define ASSERT_MAIN_THREAD() Q_ASSERT(ApplicationGlobal::isMainThread())
129 
130 extern ApplicationGlobal *global;
131 
132 #endif // APPLICATIONGLOBAL_H
ApplicationGlobal * global
Definition: main.cpp:28
void GlobalRestoreOverrideCursor()
Definition: ApplicationGlobal.cpp:153
void GlobalSetOverrideWaitCursor()
Definition: ApplicationGlobal.cpp:148
std::shared_ptr< AbstractTheme > ThemePtr
Definition: Theme.h:34
Definition: ApplicationSettings.h:12
Definition: ApplicationGlobal.h:39
QString language_id
Definition: ApplicationGlobal.h:50
FileType filetype
Definition: ApplicationGlobal.h:73
std::unique_ptr< Graphics > graphics
Definition: ApplicationGlobal.h:69
Private * m
Definition: ApplicationGlobal.h:41
void send_remote_logger(std::string const &msg, const char *file=nullptr, int line=0)
Definition: ApplicationGlobal.cpp:45
AbstractGitSession::Option gitopt
Definition: ApplicationGlobal.h:47
MainWindow * mainwindow
Definition: ApplicationGlobal.h:48
~ApplicationGlobal()
Definition: ApplicationGlobal.cpp:24
void open_remote_logger()
Definition: ApplicationGlobal.cpp:31
GitContext gcx()
Definition: ApplicationGlobal.cpp:79
AvatarLoader avatar_loader
Definition: ApplicationGlobal.h:79
void close_remote_logger()
Definition: ApplicationGlobal.cpp:40
void restart_trace_logger()
Definition: ApplicationGlobal.cpp:68
GenerativeAI::Credential get_ai_credential(GenerativeAI::AI provider)
Definition: ApplicationGlobal.cpp:244
std::vector< AccountProfile > account_profiles
Definition: ApplicationGlobal.h:81
void put_trace_event(const TraceEventWriter::Event &event)
Definition: ApplicationGlobal.cpp:74
void writeLog(const std::string_view &str)
Definition: ApplicationGlobal.cpp:128
std::string determineFileType(const QByteArray &in)
Definition: ApplicationGlobal.cpp:251
QColor panel_bg_color
Definition: ApplicationGlobal.h:53
QString theme_id
Definition: ApplicationGlobal.h:51
void open_trace_logger()
Definition: ApplicationGlobal.cpp:50
IncrementalSearch * incremental_search()
Definition: ApplicationGlobal.cpp:138
bool start_with_shift_key
Definition: ApplicationGlobal.h:49
WebContext webcx
Definition: ApplicationGlobal.h:77
QString profiles_xml_path
Definition: ApplicationGlobal.h:52
bool isUnsafeEnabled() const
Definition: ApplicationGlobal.h:109
ApplicationSettings appsettings
Definition: ApplicationGlobal.h:75
ThemePtr theme
Definition: ApplicationGlobal.h:54
CurlContext curlcx
Definition: ApplicationGlobal.h:78
void close_trace_logger()
Definition: ApplicationGlobal.cpp:63
ApplicationGlobal()
Definition: ApplicationGlobal.cpp:19
static bool isMainThread()
Definition: ApplicationGlobal.cpp:143
void init(QApplication *a)
Definition: ApplicationGlobal.cpp:87
bool isAiEnabled() const
Definition: ApplicationGlobal.h:118
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:13
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:20
AccountProfile(QString const &email, QString const &name)
Definition: ApplicationGlobal.h:24
QString email
Definition: ApplicationGlobal.h:21
QString name
Definition: ApplicationGlobal.h:22
QString text() const
Definition: ApplicationGlobal.h:29
AccountProfile()=default
Definition: ApplicationGlobal.h:60
QIcon folder_icon
Definition: ApplicationGlobal.h:62
QIcon repository_icon
Definition: ApplicationGlobal.h:61
QIcon signature_dubious_icon
Definition: ApplicationGlobal.h:64
QIcon signature_bad_icon
Definition: ApplicationGlobal.h:65
QPixmap small_digits
Definition: ApplicationGlobal.h:67
QIcon signature_good_icon
Definition: ApplicationGlobal.h:63
QPixmap transparent_pixmap
Definition: ApplicationGlobal.h:66
Definition: ApplicationGlobal.cpp:13
Definition: GenerativeAI.h:59
Definition: TraceEventWriter.h:10