RabbitCommon v2.3.3
Loading...
Searching...
No Matches
RabbitCommonTools.h
1
11#ifndef RABBITCOMMON_TOOLS_H
12#define RABBITCOMMON_TOOLS_H
13
14#pragma once
15
16#include <QTranslator>
17#include <QCoreApplication>
18#include "rabbitcommon_export.h"
19#include <QLocale>
20#include <QSharedPointer>
21#include <QObject>
22#ifdef HAVE_RABBITCOMMON_GUI
23 #include <QMenu>
24#endif
25
36namespace RabbitCommon {
37
42class RABBITCOMMON_EXPORT CTools : QObject
43{
44 Q_OBJECT
45
46public:
47 static CTools* Instance();
48
128 void Init(QString szApplicationName = QCoreApplication::applicationName(),
129 QString szApplicationDirPath = QCoreApplication::applicationDirPath(),
130 QString szApplicationInstallRoot = QString(),
131 const QString szLanguage = QLocale::system().name());
138 void Init(int argc, char* argv[], QString szApplicationName = QString());
139
146 void Clean();
147
148 int SetLanguage(const QString szLanguage);
149 QString GetLanguage();
150
151 enum class TranslationType {
152 Application,
153 Library,
154 Plugin
155 };
165 QSharedPointer<QTranslator> InstallTranslator(
166 const QString szName = QString(),
167 TranslationType type = TranslationType::Application,
168 const QString szPluginDir = "plugins",
169 const QString szLanguage = QLocale::system().name());
170 int RemoveTranslator(QSharedPointer<QTranslator> translator);
171
173 static QString Version();
175 static QString Information();
176
182 Q_DECL_DEPRECATED_X("Setting in log configure file. Will be move to private in v3")
183 static bool EnableCoreDump(bool bPrompt = true);
184
189 static bool HasAdministratorPrivilege();
195 Q_DECL_DEPRECATED_X("Will be move to private in v3, with executeWithAdministratorPrivilege")
196 static bool executeByRoot(const QString &program,
197 const QStringList &arguments = QStringList());
198 static bool ExecuteWithAdministratorPrivilege(
199 const QString &program,
200 const QStringList &arguments = QStringList());
201 static bool StartWithAdministratorPrivilege(bool bQuitOld = false);
202
213 static int InstallStartRun(const QString &szName = QString(),
214 const QString &szPath = QString(),
215 bool bAllUser = false);
216 static int RemoveStartRun(const QString &szName = QString(),
217 bool bAllUser = false);
218 static bool IsStartRun(const QString &szName = QString(),
219 bool bAllUser = false);
220
221 static QString GetCurrentUser();
222 static QString GetHostName();
223
230 static int GenerateDesktopFile(const QString &szPath = QString(),
231 const QString &szName = QString());
232
233#ifdef HAVE_RABBITCOMMON_GUI
252 static QAction* AddStyleMenu(QMenu* pMenu, QWidget *parent = nullptr);
271 static void InsertStyleMenu(QMenu* pMenu, QAction* before, QWidget *parent = nullptr);
277 static QMenu* GetLogMenu(QWidget *parentMainWindow = nullptr);
278
279 static int RestoreWidget(QWidget* pWidget);
280 static int SaveWidget(QWidget* pWidget);
281
287 int ShowWidget(QWidget *pWin);
288
289 void ShowCoreDialog(QString szTitle, QString szContent,
290 QString szDetail, QString szCoreDumpFile);
291#endif //#ifdef HAVE_RABBITCOMMON_GUI
292
293public:
294 static int AndroidRequestPermission(const QStringList& permissions);
295 static int AndroidRequestPermission(const QString& permission);
296
297private:
298 CTools();
299 virtual ~CTools();
300
301 void InitResource();
302 void CleanResource();
303
304 QSharedPointer<QTranslator> InstallTranslatorFile(const QString szFile);
305 QVector<QSharedPointer<QTranslator> > m_Translator;
306
307 QString m_szLanguage;
308 bool m_Initialized;
309
310 bool m_bShowMaxWindow;
311};
312
314#define RC_SHOW_WINDOW(win) RabbitCommon::CTools::Instance()->ShowWidget(win)
315
316} //namespace RabbitCommon
317
318#endif // RABBITCOMMON_TOOLS_H