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 
16 class MainWindow;
17 class IncrementalSearch;
18 
20  QString email;
21  QString name;
22  AccountProfile() = default;
23  AccountProfile(QString const &email, QString const &name)
24  : email(email)
25  , name(name)
26  {
27  }
28  QString text() const
29  {
30  return QString("%1 <%2>").arg(name).arg(email);
31  }
32  operator bool () const
33  {
35  }
36 };
37 
39 private:
40  struct Private;
42 public:
45 
47  MainWindow *mainwindow = nullptr;
48  bool start_with_shift_key = false;
49  QString language_id;
50  QString theme_id;
54 
55 #ifdef UNSAFE_ENABLED
56  bool unsafe_enabled = false;
57 #endif
58 
59  struct Graphics {
61  QIcon folder_icon;
66  QPixmap small_digits;
67  };
68  std::unique_ptr<Graphics> graphics;
69 
70  GitContext gcx();
71 
72  FileType filetype;
73 
75 
78 
79  std::vector<AccountProfile> account_profiles;
80 
81  void init(QApplication *a);
82 
83  // bool remote_log_enabled = false;
84  void open_remote_logger();
85  void close_remote_logger();
86  void send_remote_logger(std::string const &msg, const char *file = nullptr, int line = 0);
87 
88  // bool trace_log_enabled = false;
89  void open_trace_logger();
90  void close_trace_logger();
91  void restart_trace_logger();
92  void put_trace_event(const TraceEventWriter::Event &event);
93 
94  void writeLog(const std::string_view &str);
95  void writeLog(const QString &str);
96 
98 
100 
101  std::string determineFileType(const QByteArray &in);
102  // std::string determineFileType(const std::string &path);
103  std::string determineFileType(QString const &path);
104 
105  static bool isMainThread();
106 
107  bool isUnsafeEnabled() const
108  {
109 #ifdef UNSAFE_ENABLED
110  return unsafe_enabled;
111 #else
112  return false;
113 #endif
114  }
115 };
116 
119 
120 
121 #define ASSERT_MAIN_THREAD() Q_ASSERT(ApplicationGlobal::isMainThread())
122 
123 extern ApplicationGlobal *global;
124 
125 #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:38
QString language_id
Definition: ApplicationGlobal.h:49
FileType filetype
Definition: ApplicationGlobal.h:72
std::unique_ptr< Graphics > graphics
Definition: ApplicationGlobal.h:68
Private * m
Definition: ApplicationGlobal.h:40
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:46
MainWindow * mainwindow
Definition: ApplicationGlobal.h:47
~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:77
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:79
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:52
QString theme_id
Definition: ApplicationGlobal.h:50
void open_trace_logger()
Definition: ApplicationGlobal.cpp:50
IncrementalSearch * incremental_search()
Definition: ApplicationGlobal.cpp:138
bool start_with_shift_key
Definition: ApplicationGlobal.h:48
WebContext webcx
Definition: ApplicationGlobal.h:76
QString profiles_xml_path
Definition: ApplicationGlobal.h:51
bool isUnsafeEnabled() const
Definition: ApplicationGlobal.h:107
ApplicationSettings appsettings
Definition: ApplicationGlobal.h:74
ThemePtr theme
Definition: ApplicationGlobal.h:53
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
Definition: ApplicationSettings.h:23
Definition: AvatarLoader.h:19
Definition: Git.h:11
Definition: IncrementalSearch.h:13
Definition: MainWindow.h:90
@ HTTP_1_0
Definition: webclient.h:74
Definition: webclient.h:222
static bool isValidMailAddress(const QString &email)
文字列が有効なメールアドレスか判定する
Definition: misc.cpp:748
AI
Definition: GenerativeAI.h:9
Definition: AbstractGitSession.h:17
Definition: ApplicationGlobal.h:19
AccountProfile(QString const &email, QString const &name)
Definition: ApplicationGlobal.h:23
QString email
Definition: ApplicationGlobal.h:20
QString name
Definition: ApplicationGlobal.h:21
QString text() const
Definition: ApplicationGlobal.h:28
AccountProfile()=default
Definition: ApplicationGlobal.h:59
QIcon folder_icon
Definition: ApplicationGlobal.h:61
QIcon repository_icon
Definition: ApplicationGlobal.h:60
QIcon signature_dubious_icon
Definition: ApplicationGlobal.h:63
QIcon signature_bad_icon
Definition: ApplicationGlobal.h:64
QPixmap small_digits
Definition: ApplicationGlobal.h:66
QIcon signature_good_icon
Definition: ApplicationGlobal.h:62
QPixmap transparent_pixmap
Definition: ApplicationGlobal.h:65
Definition: ApplicationGlobal.cpp:13
Definition: GenerativeAI.h:59
Definition: TraceEventWriter.h:10