1 #ifndef QCHDMANSETTINGS_H 2 #define QCHDMANSETTINGS_H 3 4 #include <QApplication> 5 #include <QSettings> 6 #include <QMdiArea> 7 #include <QStyle> 8 #include <QSize> 9 #include <QFont> 10 #include <QLocale> 11 12 #include "macros.h" 13 #include "../../settings.h" 14 15 class QtChdmanGuiSettings : public Settings 16 { 17 Q_OBJECT 18 19 public: 20 QMap<QString, QLocale::Language> languageMap; 21 QtChdmanGuiSettings()22 QtChdmanGuiSettings() : Settings(QSettings::IniFormat, QSettings::UserScope, QCHDMAN_APP_NAME) 23 { 24 languageMap["de"] = QLocale::German; 25 languageMap["es"] = QLocale::Spanish; 26 languageMap["fr"] = QLocale::French; 27 languageMap["el"] = QLocale::Greek; 28 languageMap["it"] = QLocale::Italian; 29 languageMap["pl"] = QLocale::Polish; 30 languageMap["pt"] = QLocale::Portuguese; 31 languageMap["ro"] = QLocale::Romanian; 32 languageMap["sv"] = QLocale::Swedish; 33 languageMap["us"] = QLocale::English; 34 } 35 ~QtChdmanGuiSettings()36 ~QtChdmanGuiSettings() 37 { 38 sync(); 39 } 40 languageToString(QLocale::Language lang)41 QString languageToString(QLocale::Language lang) 42 { 43 QString langStr = languageMap.key(lang); 44 if ( !langStr.isEmpty() ) 45 return langStr; 46 else 47 return "us"; 48 } 49 languageFromString(QString lang)50 QLocale::Language languageFromString(QString lang) 51 { 52 if ( languageMap.contains(lang) ) 53 return languageMap[lang]; 54 else 55 return QLocale::English; 56 } 57 58 public slots: 59 // General setApplicationVersion(QString version)60 void setApplicationVersion(QString version) { setValue("Version", version); } applicationVersion()61 QString applicationVersion() { return value("Version", QCHDMAN_APP_VERSION).toString(); } 62 63 // Preferences setPreferencesGuiStyle(QString style)64 void setPreferencesGuiStyle(QString style) { setValue("Preferences/GuiStyle", style); } preferencesGuiStyle()65 QString preferencesGuiStyle() { return value("Preferences/GuiStyle", qApp->style()->objectName()).toString(); } setPreferencesAppFont(QString font)66 void setPreferencesAppFont(QString font) { setValue("Preferences/AppFont", font); } preferencesAppFont()67 QString preferencesAppFont() { return value("Preferences/AppFont", qApp->font().toString()).toString(); } setPreferencesAppFontSize(int size)68 void setPreferencesAppFontSize(int size) { setValue("Preferences/AppFontSize", size); } preferencesAppFontSize()69 int preferencesAppFontSize() { return value("Preferences/AppFontSize", qApp->font().pointSize()).toInt(); } setPreferencesLogFont(QString font)70 void setPreferencesLogFont(QString font) { setValue("Preferences/LogFont", font); } preferencesLogFont()71 QString preferencesLogFont() { return value("Preferences/LogFont", qApp->font().toString()).toString(); } setPreferencesLogFontSize(int size)72 void setPreferencesLogFontSize(int size) { setValue("Preferences/LogFontSize", size); } preferencesLogFontSize()73 int preferencesLogFontSize() { return value("Preferences/LogFontSize", qApp->font().pointSize()).toInt(); } setPreferencesEditorFont(QString font)74 void setPreferencesEditorFont(QString font) { setValue("Preferences/EditorFont", font); } preferencesEditorFont()75 QString preferencesEditorFont() { return value("Preferences/EditorFont", qApp->font().toString()).toString(); } setPreferencesEditorFontSize(int size)76 void setPreferencesEditorFontSize(int size) { setValue("Preferences/EditorFontSize", size); } preferencesEditorFontSize()77 int preferencesEditorFontSize() { return value("Preferences/EditorFontSize", qApp->font().pointSize()).toInt(); } setPreferencesChdmanBinary(QString path)78 void setPreferencesChdmanBinary(QString path) { setValue("Preferences/ChdmanBinary", path); } preferencesChdmanBinary()79 QString preferencesChdmanBinary() { return value("Preferences/ChdmanBinary", QString()).toString(); } setPreferencesPreferredCHDInputPath(QString path)80 void setPreferencesPreferredCHDInputPath(QString path) { setValue("Preferences/PreferredCHDInputPath", path); } preferencesPreferredCHDInputPath()81 QString preferencesPreferredCHDInputPath() { return value("Preferences/PreferredCHDInputPath", QString()).toString(); } setPreferencesPreferredCHDOutputPath(QString path)82 void setPreferencesPreferredCHDOutputPath(QString path) { setValue("Preferences/PreferredCHDOutputPath", path); } preferencesPreferredCHDOutputPath()83 QString preferencesPreferredCHDOutputPath() { return value("Preferences/PreferredCHDOutputPath", QString()).toString(); } setPreferencesPreferredInputPath(QString path)84 void setPreferencesPreferredInputPath(QString path) { setValue("Preferences/PreferredInputPath", path); } preferencesPreferredInputPath()85 QString preferencesPreferredInputPath() { return value("Preferences/PreferredInputPath", QString()).toString(); } setPreferencesPreferredOutputPath(QString path)86 void setPreferencesPreferredOutputPath(QString path) { setValue("Preferences/PreferredOutputPath", path); } preferencesPreferredOutputPath()87 QString preferencesPreferredOutputPath() { return value("Preferences/PreferredOutputPath", QString()).toString(); } setPreferencesShowHelpTexts(bool enable)88 void setPreferencesShowHelpTexts(bool enable) { setValue("Preferences/ShowHelpTexts", enable); } preferencesShowHelpTexts()89 bool preferencesShowHelpTexts() { return value("Preferences/ShowHelpTexts", false).toBool(); } setPreferencesMaximizeWindows(bool enable)90 void setPreferencesMaximizeWindows(bool enable) { setValue("Preferences/MaximizeWindows", enable); } preferencesMaximizeWindows()91 bool preferencesMaximizeWindows() { return value("Preferences/MaximizeWindows", false).toBool(); } setPreferencesLanguage(QString lang)92 void setPreferencesLanguage(QString lang) { setValue("Preferences/Language", lang); } preferencesLanguage()93 QString preferencesLanguage() { return value("Preferences/Language", languageToString(QLocale::system().language())).toString(); } setPreferencesNativeFileDialogs(bool enable)94 void setPreferencesNativeFileDialogs(bool enable) { setValue("Preferences/NativeFileDialogs", enable); } 95 #if defined(QCHDMAN_OS_MAC) preferencesNativeFileDialogs()96 bool preferencesNativeFileDialogs() { return value("Preferences/NativeFileDialogs", true).toBool(); } 97 #else preferencesNativeFileDialogs()98 bool preferencesNativeFileDialogs() { return value("Preferences/NativeFileDialogs", false).toBool(); } 99 #endif setPreferencesLogChannelNames(bool enable)100 void setPreferencesLogChannelNames(bool enable) { setValue("Preferences/LogChannelNames", enable); } preferencesLogChannelNames()101 bool preferencesLogChannelNames() { return value("Preferences/LogChannelNames", true).toBool(); } 102 103 // MainWindow setMainWindowState(QByteArray state)104 void setMainWindowState(QByteArray state) { setValue("MainWindow/State", state); } mainWindowState()105 QByteArray mainWindowState() { return value("MainWindow/State", QByteArray()).toByteArray(); } setMainWindowGeometry(QByteArray geom)106 void setMainWindowGeometry(QByteArray geom) { setValue("MainWindow/Geometry", geom); } mainWindowGeometry()107 QByteArray mainWindowGeometry() { return value("MainWindow/Geometry", QByteArray()).toByteArray(); } setMainWindowViewMode(int mode)108 void setMainWindowViewMode(int mode) { setValue("MainWindow/ViewMode", mode); } mainWindowViewMode()109 int mainWindowViewMode() { return value("MainWindow/ViewMode", QCHDMAN_VIEWMODE_WINDOWED).toInt(); } setMainWindowRecentFiles(QStringList recentFiles)110 void setMainWindowRecentFiles(QStringList recentFiles) { setValue("MainWindow/RecentFiles", recentFiles); } mainWindowRecentFiles()111 QStringList mainWindowRecentFiles() { return value("MainWindow/RecentFiles", QStringList()).toStringList(); } setMainWindowRecentScripts(QStringList recentScripts)112 void setMainWindowRecentScripts(QStringList recentScripts) { setValue("MainWindow/RecentScripts", recentScripts); } mainWindowRecentScripts()113 QStringList mainWindowRecentScripts() { return value("MainWindow/RecentScripts", QStringList()).toStringList(); } 114 115 // ScriptWidget setScriptWidgetProjectMonitorHeaderState(QByteArray state)116 void setScriptWidgetProjectMonitorHeaderState(QByteArray state) { setValue("ScriptWidget/ProjectMonitorHeaderState", state); } scriptWidgetProjectMonitorHeaderState()117 QByteArray scriptWidgetProjectMonitorHeaderState() { return value("ScriptWidget/ProjectMonitorHeaderState", QByteArray()).toByteArray(); } setScriptWidgetSplitterState(QByteArray state)118 void setScriptWidgetSplitterState(QByteArray state) { setValue("ScriptWidget/SplitterState", state); } scriptWidgetSplitterState()119 QByteArray scriptWidgetSplitterState() { return value("ScriptWidget/SplitterState", QByteArray()).toByteArray(); } setScriptWidgetTabIndex(int index)120 void setScriptWidgetTabIndex(int index) { setValue("ScriptWidget/TabIndex", index); } scriptWidgetTabIndex()121 int scriptWidgetTabIndex() { return value("ScriptWidget/TabIndex", 0).toInt(); } setScriptWidgetLogLimit(int limit)122 void setScriptWidgetLogLimit(int limit) { setValue("ScriptWidget/LogLimit", limit); } scriptWidgetLogLimit()123 int scriptWidgetLogLimit() { return value("ScriptWidget/LogLimit", 1000).toInt(); } 124 }; 125 126 #endif // SETTINGS_H 127