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 
46  void send_remote_logger(std::string const &msg, const char *file = nullptr, int line = 0);
47 
48  void start_trace_logger();
49  void put_trace_event(const TraceEventWriter::Event &event);
50 
52  MainWindow *mainwindow = nullptr;
53  bool start_with_shift_key = false;
54  QString language_id;
55  QString theme_id;
59 
60 #ifdef UNSAFE_ENABLED
61  bool unsafe_enabled = false;
62 #endif
63 
64  struct Graphics {
66  QIcon folder_icon;
71  QPixmap small_digits;
72  };
73  std::unique_ptr<Graphics> graphics;
74 
75  GitContext gcx();
76 
77  FileType filetype;
78 
80 
83 
84  std::vector<AccountProfile> account_profiles;
85 
86  void init(QApplication *a);
87 
88  void writeLog(const std::string_view &str);
89  void writeLog(const QString &str);
90 
92 
94 
95  std::string determineFileType(const QByteArray &in);
96  // std::string determineFileType(const std::string &path);
97  std::string determineFileType(QString const &path);
98 
99  static bool isMainThread();
100 
101  bool isUnsafeEnabled() const
102  {
103 #ifdef UNSAFE_ENABLED
104  return unsafe_enabled;
105 #else
106  return false;
107 #endif
108  }
109 };
110 
113 
114 
115 #define ASSERT_MAIN_THREAD() Q_ASSERT(ApplicationGlobal::isMainThread())
116 
117 extern ApplicationGlobal *global;
118 
119 #endif // APPLICATIONGLOBAL_H
ApplicationGlobal * global
Definition: main.cpp:28
void GlobalRestoreOverrideCursor()
Definition: ApplicationGlobal.cpp:120
void GlobalSetOverrideWaitCursor()
Definition: ApplicationGlobal.cpp:115
std::shared_ptr< AbstractTheme > ThemePtr
Definition: Theme.h:34
Definition: ApplicationSettings.h:12
Definition: ApplicationGlobal.h:38
QString language_id
Definition: ApplicationGlobal.h:54
FileType filetype
Definition: ApplicationGlobal.h:77
std::unique_ptr< Graphics > graphics
Definition: ApplicationGlobal.h:73
Private * m
Definition: ApplicationGlobal.h:40
void send_remote_logger(std::string const &msg, const char *file=nullptr, int line=0)
Definition: ApplicationGlobal.cpp:31
AbstractGitSession::Option gitopt
Definition: ApplicationGlobal.h:51
MainWindow * mainwindow
Definition: ApplicationGlobal.h:52
~ApplicationGlobal()
Definition: ApplicationGlobal.cpp:25
GitContext gcx()
Definition: ApplicationGlobal.cpp:46
void start_trace_logger()
Definition: ApplicationGlobal.cpp:36
AvatarLoader avatar_loader
Definition: ApplicationGlobal.h:82
GenerativeAI::Credential get_ai_credential(GenerativeAI::AI provider)
Definition: ApplicationGlobal.cpp:211
std::vector< AccountProfile > account_profiles
Definition: ApplicationGlobal.h:84
void put_trace_event(const TraceEventWriter::Event &event)
Definition: ApplicationGlobal.cpp:41
void writeLog(const std::string_view &str)
Definition: ApplicationGlobal.cpp:95
std::string determineFileType(const QByteArray &in)
Definition: ApplicationGlobal.cpp:218
QColor panel_bg_color
Definition: ApplicationGlobal.h:57
QString theme_id
Definition: ApplicationGlobal.h:55
IncrementalSearch * incremental_search()
Definition: ApplicationGlobal.cpp:105
bool start_with_shift_key
Definition: ApplicationGlobal.h:53
WebContext webcx
Definition: ApplicationGlobal.h:81
QString profiles_xml_path
Definition: ApplicationGlobal.h:56
bool isUnsafeEnabled() const
Definition: ApplicationGlobal.h:101
ApplicationSettings appsettings
Definition: ApplicationGlobal.h:79
ThemePtr theme
Definition: ApplicationGlobal.h:58
ApplicationGlobal()
Definition: ApplicationGlobal.cpp:19
static bool isMainThread()
Definition: ApplicationGlobal.cpp:110
void init(QApplication *a)
Definition: ApplicationGlobal.cpp:54
Definition: ApplicationSettings.h:23
Definition: AvatarLoader.h:19
Definition: Git.h:30
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:56
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:64
QIcon folder_icon
Definition: ApplicationGlobal.h:66
QIcon repository_icon
Definition: ApplicationGlobal.h:65
QIcon signature_dubious_icon
Definition: ApplicationGlobal.h:68
QIcon signature_bad_icon
Definition: ApplicationGlobal.h:69
QPixmap small_digits
Definition: ApplicationGlobal.h:71
QIcon signature_good_icon
Definition: ApplicationGlobal.h:67
QPixmap transparent_pixmap
Definition: ApplicationGlobal.h:70
Definition: ApplicationGlobal.cpp:13
Definition: GenerativeAI.h:59
Definition: TraceEventWriter.h:10