Add icons and images dependent on device resolution
[harbour-pedalo.git] / src / settings.cpp
index 0998d37..b1755a7 100644 (file)
@@ -1,6 +1,8 @@
 #include <QDesktopServices>
 #include <QDateTime>
 #include <QDebug>
+#include <sailfishapp.h>
+#include <mlite5/MGConfItem>
 
 #include "settings.h"
 
@@ -10,6 +12,27 @@ Settings::Settings(QObject *parent) : QObject(parent),
     settings(this),
     mainStatus(nullptr)
 {
+    QScopedPointer<MGConfItem> ratioItem(new MGConfItem("/desktop/sailfish/silica/theme_pixel_ratio"));
+    pixelRatio = ratioItem->value(1.0).toDouble();
+    QString dir;
+    if (pixelRatio > 1.75) {
+        dir = "2.0";
+    }
+    else if (pixelRatio > 1.5) {
+        dir = "1.75";
+    }
+    else if (pixelRatio > 1.25) {
+        dir = "1.5";
+    }
+    else if (pixelRatio > 1.0) {
+        dir = "1.25";
+    }
+    else {
+        dir = "1.0";
+    }
+
+    imageDir = SailfishApp::pathTo("qml/images/z" + dir).toString(QUrl::RemoveScheme) + "/";
+    qDebug() << "Image folder: " << imageDir;
 }
 
 Settings::~Settings() {
@@ -36,6 +59,13 @@ QString Settings::getConfigDir() {
     return QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
 }
 
+QString Settings::getImageDir() const {
+    return imageDir;
+}
+QString Settings::getImageUrl(const QString &id) const {
+    return imageDir + id + ".png";
+}
+
 void Settings::setMainStatus(Status &value) {
     mainStatus = &value;
 }