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 
15 class MainWindow;
16 class IncrementalSearch;
17 
19  QString email;
20  QString name;
21  AccountProfile() = default;
22  AccountProfile(QString const &email, QString const &name)
23  : email(email)
24  , name(name)
25  {
26  }
27  QString text() const
28  {
29  return QString("%1 <%2>").arg(name).arg(email);
30  }
31  operator bool () const
32  {
34  }
35 };
36 
38 private:
39  struct Private;
41 public:
44 
46  MainWindow *mainwindow = nullptr;
47  bool start_with_shift_key = false;
48  QString language_id;
49  QString theme_id;
53 
54  struct Graphics {
56  QIcon folder_icon;
61  QPixmap small_digits;
62  };
63  std::unique_ptr<Graphics> graphics;
64 
65  Git::Context gcx();
66 
67  FileType filetype;
68 
70 
73 
74  std::vector<AccountProfile> account_profiles;
75 
76  void init(QApplication *a);
77 
78  void writeLog(const std::string_view &str);
79  void writeLog(const QString &str);
80 
82 
84 
85  std::string determineFileType(const QByteArray &in);
86  std::string determineFileType(const std::string &path);
87 
88  static bool isMainThread();
89 };
90 
93 
94 
95 #define ASSERT_MAIN_THREAD() Q_ASSERT(ApplicationGlobal::isMainThread())
96 
98 
99 #endif // APPLICATIONGLOBAL_H
ApplicationGlobal * global
Definition: main.cpp:27
void GlobalRestoreOverrideCursor()
Definition: ApplicationGlobal.cpp:82
void GlobalSetOverrideWaitCursor()
Definition: ApplicationGlobal.cpp:77
std::shared_ptr< AbstractTheme > ThemePtr
Definition: Theme.h:34
Definition: ApplicationSettings.h:12
Definition: ApplicationGlobal.h:37
QString language_id
Definition: ApplicationGlobal.h:48
Git::Context gcx()
Definition: ApplicationGlobal.cpp:24
FileType filetype
Definition: ApplicationGlobal.h:67
std::unique_ptr< Graphics > graphics
Definition: ApplicationGlobal.h:63
Private * m
Definition: ApplicationGlobal.h:39
MainWindow * mainwindow
Definition: ApplicationGlobal.h:46
~ApplicationGlobal()
Definition: ApplicationGlobal.cpp:19
AvatarLoader avatar_loader
Definition: ApplicationGlobal.h:72
Git::Option gitopt
Definition: ApplicationGlobal.h:45
std::vector< AccountProfile > account_profiles
Definition: ApplicationGlobal.h:74
void writeLog(const std::string_view &str)
Definition: ApplicationGlobal.cpp:57
std::string determineFileType(const QByteArray &in)
Definition: ApplicationGlobal.cpp:164
QColor panel_bg_color
Definition: ApplicationGlobal.h:51
QString theme_id
Definition: ApplicationGlobal.h:49
IncrementalSearch * incremental_search()
Definition: ApplicationGlobal.cpp:67
bool start_with_shift_key
Definition: ApplicationGlobal.h:47
GenerativeAI::Credential get_ai_credential(GenerativeAI::Provider const &provider)
Definition: ApplicationGlobal.cpp:159
WebContext webcx
Definition: ApplicationGlobal.h:71
QString profiles_xml_path
Definition: ApplicationGlobal.h:50
ApplicationSettings appsettings
Definition: ApplicationGlobal.h:69
ThemePtr theme
Definition: ApplicationGlobal.h:52
ApplicationGlobal()
Definition: ApplicationGlobal.cpp:14
static bool isMainThread()
Definition: ApplicationGlobal.cpp:72
void init(QApplication *a)
Definition: ApplicationGlobal.cpp:32
Definition: ApplicationSettings.h:22
Definition: AvatarLoader.h:19
Definition: Git.h:73
Definition: IncrementalSearch.h:13
Definition: MainWindow.h:85
@ HTTP_1_0
Definition: webclient.h:74
Definition: webclient.h:222
static bool isValidMailAddress(const QString &email)
文字列が有効なメールアドレスか判定する
Definition: misc.cpp:748
std::variant< Unknown, OpenAI, Anthropic, Google, DeepSeek, OpenRouter, Ollama > Provider
Definition: GenerativeAI.h:60
Definition: ApplicationGlobal.h:18
AccountProfile(QString const &email, QString const &name)
Definition: ApplicationGlobal.h:22
QString email
Definition: ApplicationGlobal.h:19
QString name
Definition: ApplicationGlobal.h:20
QString text() const
Definition: ApplicationGlobal.h:27
AccountProfile()=default
Definition: ApplicationGlobal.h:54
QIcon folder_icon
Definition: ApplicationGlobal.h:56
QIcon repository_icon
Definition: ApplicationGlobal.h:55
QIcon signature_dubious_icon
Definition: ApplicationGlobal.h:58
QIcon signature_bad_icon
Definition: ApplicationGlobal.h:59
QPixmap small_digits
Definition: ApplicationGlobal.h:61
QIcon signature_good_icon
Definition: ApplicationGlobal.h:57
QPixmap transparent_pixmap
Definition: ApplicationGlobal.h:60
Definition: ApplicationGlobal.cpp:10
Definition: GenerativeAI.h:75
Definition: Git.h:473