RabbitCommon v2.3.4
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 #include <QMainWindow>
25#endif
26
37namespace RabbitCommon {
38
43class RABBITCOMMON_EXPORT CTools : QObject
44{
45 Q_OBJECT
46
47public:
48 static CTools* Instance();
49
129 void Init(QString szApplicationName = QCoreApplication::applicationName(),
130 QString szApplicationDirPath = QCoreApplication::applicationDirPath(),
131 QString szApplicationInstallRoot = QString(),
132 const QString szLanguage = GetLanguage());
139 void Init(int argc, char* argv[], QString szApplicationName = QString());
140
147 void Clean();
148
149 static int SetLanguage(const QString szLanguage);
163 static QString GetLanguage();
164
165 enum class TranslationType {
166 Application,
167 Library,
168 Plugin
169 };
179 QSharedPointer<QTranslator> InstallTranslator(
180 const QString szName = QString(),
181 TranslationType type = TranslationType::Application,
182 const QString szPluginDir = "plugins",
183 const QString szLanguage = GetLanguage());
184 int RemoveTranslator(QSharedPointer<QTranslator> translator);
185
187 static QString Version();
189 static QString Information();
190
196 Q_DECL_DEPRECATED_X("Setting in log configure file. Will be move to private in v3")
197 static bool EnableCoreDump(bool bPrompt = true);
198
203 static bool HasAdministratorPrivilege();
209 Q_DECL_DEPRECATED_X("Will be move to private in v3, with executeWithAdministratorPrivilege")
210 static bool executeByRoot(const QString &program,
211 const QStringList &arguments = QStringList());
212 static bool ExecuteWithAdministratorPrivilege(
213 const QString &program,
214 const QStringList &arguments = QStringList(),
215 bool bDetached = true);
221 static bool StartWithAdministratorPrivilege(bool bQuitOld = false);
222
233 static int InstallStartRun(const QString &szName = QString(),
234 const QString &szPath = QString(),
235 bool bAllUser = false);
236 static int RemoveStartRun(const QString &szName = QString(),
237 bool bAllUser = false);
238 static bool IsStartRun(const QString &szName = QString(),
239 bool bAllUser = false);
240
241 static QString GetCurrentUser();
242 static QString GetHostName();
243
244 static QString MarkDownToHtml(const QString &szText);
245
252 static int GenerateDesktopFile(const QString &szPath = QString(),
253 const QString &szName = QString());
254
255#ifdef HAVE_RABBITCOMMON_GUI
274 static QAction* AddStyleMenu(QMenu* pMenu, QWidget *parent = nullptr);
293 static void InsertStyleMenu(QMenu* pMenu, QAction* before, QWidget *parent = nullptr);
299 static QMenu* GetLogMenu(QWidget *parentMainWindow = nullptr);
300
301 static int RestoreWidget(QWidget* pWidget);
302 static int SaveWidget(QWidget* pWidget);
303
309 int ShowWidget(QWidget *pWin);
310
311 void ShowCoreDialog(QString szTitle, QString szContent,
312 QString szDetail, QString szCoreDumpFile);
320 static bool LocateFileWithExplorer(const QString szFile);
321 static QMainWindow* GetMainWindow();
322#endif //#ifdef HAVE_RABBITCOMMON_GUI
323
324public:
325 static int AndroidRequestPermission(const QStringList& permissions);
326 static int AndroidRequestPermission(const QString& permission);
327
328private:
329 CTools();
330 virtual ~CTools();
331
332 void InitResource();
333 void CleanResource();
334
335 QSharedPointer<QTranslator> InstallTranslatorFile(const QString szFile);
336 QVector<QSharedPointer<QTranslator> > m_Translator;
337
338 bool m_Initialized;
339
340 bool m_bShowMaxWindow;
341};
342
344#define RC_SHOW_WINDOW(win) RabbitCommon::CTools::Instance()->ShowWidget(win)
345
346} //namespace RabbitCommon
347
348#endif // RABBITCOMMON_TOOLS_H