changeset 135:45e17cdde93a

Move application global settings to a struct.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 23 Aug 2017 21:30:34 +0300
parents 478ce4c94f6b
children 32c8408eb0cb
files src/main.cpp
diffstat 1 files changed, 35 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/src/main.cpp	Wed Aug 23 17:18:24 2017 +0300
+++ b/src/main.cpp	Wed Aug 23 21:30:34 2017 +0300
@@ -19,8 +19,15 @@
 #include "ui_aboutwindow.h"
 
 
-double setScale;      // Global UI scale factor
-QString appDataPath;  // Application data path/directory
+//
+// Application settings struct
+//
+struct
+{
+    double uiScale;              // Global UI scale factor
+    QString dataPath;            // Application data path/directory
+} settings;
+
 
 
 //
@@ -78,7 +85,7 @@
 //
 void slLog(const QString &mtype, const QString &msg)
 {
-    QString filename = appDataPath + QDir::separator() + APP_LOG_FILE;
+    QString filename = settings.dataPath + QDir::separator() + APP_LOG_FILE;
     QFile fh(filename);
     if (fh.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text))
     {
@@ -192,11 +199,11 @@
 void slSetCommonStyleSheet(QWidget *widget)
 {
     // Clamp scale value
-    if (setScale < 0.5f)
-        setScale = 0.5f;
+    if (settings.uiScale < 0.5f)
+        settings.uiScale = 0.5f;
 
-    if (setScale > 3.0f)
-        setScale = 3.0f;
+    if (settings.uiScale > 3.0f)
+        settings.uiScale = 3.0f;
 
     // Set the stylesheet
     widget->setStyleSheet(
@@ -216,11 +223,11 @@
         "#label_EUR { font-size: %4pt; font-weight: bold; }"
         "#edit_Amount { font-size: %4pt; margin: 0.5em; padding: 0.5em; }"
         ).
-        arg(12 * setScale).
-        arg(14 * setScale).
-        arg(16 * setScale).
-        arg(18 * setScale).
-        arg(20 * setScale)
+        arg(12 * settings.uiScale).
+        arg(14 * settings.uiScale).
+        arg(16 * settings.uiScale).
+        arg(18 * settings.uiScale).
+        arg(20 * settings.uiScale)
         );
 }
 
@@ -232,16 +239,16 @@
     //
     // Create logfile and data directory
     //
-    appDataPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
-    QDir path(appDataPath);
-    if (!path.exists(appDataPath))
-        path.mkpath(appDataPath);
+    settings.dataPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
+    QDir path(settings.dataPath);
+    if (!path.exists(settings.dataPath))
+        path.mkpath(settings.dataPath);
 
     //
     // Initialize / open SQL database connection
     //
     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
-    db.setDatabaseName(appDataPath + QDir::separator() + APP_SQLITE_FILE);
+    db.setDatabaseName(settings.dataPath + QDir::separator() + APP_SQLITE_FILE);
 
     if (!db.open())
     {
@@ -418,25 +425,25 @@
 //
 void SyntilistaMainWindow::readSettings()
 {
-    QSettings settings(APP_VENDOR, APP_ID);
+    QSettings tmpst(APP_VENDOR, APP_ID);
 
     // Restore window size and position
-    move(settings.value("pos", QPoint(100, 100)).toPoint());
-    resize(settings.value("size", QSize(1000, 600)).toSize());
+    move(tmpst.value("pos", QPoint(100, 100)).toPoint());
+    resize(tmpst.value("size", QSize(1000, 600)).toSize());
 
     // Other settings
-    setScale = settings.value("scale", 1.0f).toDouble();
+    settings.uiScale = tmpst.value("scale", 1.0f).toDouble();
 }
 
 
 void SyntilistaMainWindow::saveSettings()
 {
-    QSettings settings(APP_VENDOR, APP_ID);
+    QSettings tmpst(APP_VENDOR, APP_ID);
 
     // Save window size and position
-    settings.setValue("pos", pos());
-    settings.setValue("size", size());
-    settings.setValue("scale", setScale);
+    tmpst.setValue("pos", pos());
+    tmpst.setValue("size", size());
+    tmpst.setValue("scale", settings.uiScale);
 }
 
 
@@ -445,21 +452,21 @@
 //
 void SyntilistaMainWindow::changeUIZoomIn()
 {
-    setScale += 0.1f;
+    settings.uiScale += 0.1f;
     slSetCommonStyleSheet(this);
 }
 
 
 void SyntilistaMainWindow::changeUIZoomOut()
 {
-    setScale -= 0.1f;
+    settings.uiScale -= 0.1f;
     slSetCommonStyleSheet(this);
 }
 
 
 void SyntilistaMainWindow::changeUIZoomReset()
 {
-    setScale = 1.0f;
+    settings.uiScale = 1.0f;
     slSetCommonStyleSheet(this);
 }