[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -6,7 +6,7 @@
<service name="tar_git">
<param name="url">https://github.com/kimmoli/onyx-triambience-settings-plugin.git</param>
<param name="branch">master</param>
- <param name="revision">HEAD</param>
+ <param name="revision">25657ea87eb7a003fd6486e1e5d9ea3d3137a8d2</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Deleted |
_service:tar_git:onyx-triambience-settings-plugin-0.0.7.tar.bz2/src/ImageProvider.h
^
|
@@ -1,59 +0,0 @@
-#ifndef IMAGEPROVIDER_H
-#define IMAGEPROVIDER_H
-
-#include <QQuickImageProvider>
-#include <QImageReader>
-
-class ImageProvider : public QQuickImageProvider
-{
-public:
- ImageProvider() : QQuickImageProvider(QQuickImageProvider::Image)
- {
- }
-
- QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize)
- {
- Q_UNUSED(requestedSize)
-
- QStringList parts = id.split("?");
-
- if (parts.count() != 3)
- {
- qWarning() << "Invalid image requested";
- return QImage();
- }
-
- if (previewCache.contains(parts.at(0)))
- return previewCache.value(parts.at(0));
-
- int reqWidth = parts.at(1).toInt();
- int reqHeight = parts.at(2).toInt();
-
- QString filename = "/" + QUrl(parts.at(0)).toString(QUrl::RemoveScheme);
- QImage originalImg;
- QImageReader ir(filename);
-
- if (!ir.canRead())
- return QImage();
-
- if (size)
- *size = ir.size();
-
- originalImg = ir.read();
-
- QImage scaled = originalImg.scaledToWidth(reqWidth);
-
- QRect rect(0, (scaled.height()-reqHeight)/2, reqWidth, reqHeight);
-
- QImage cropped = scaled.copy(rect);
-
- previewCache.insert(parts.at(0), cropped);
-
- return cropped;
- }
-
-private:
- QMap<QString, QImage> previewCache;
-};
-
-#endif // IMAGEPROVIDER_H
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/settings/AmbienceImage.qml
^
|
@@ -1,6 +1,6 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
-
+import org.nemomobile.thumbnailer 1.0
BackgroundItem
{
@@ -13,12 +13,22 @@
property alias ambienceColor: namelabel.color
property bool isSelected: false
- Image
+ Thumbnail
{
id: img
anchors.fill: parent
- fillMode: Image.PreserveAspectCrop
- asynchronous: true
+ sourceSize.width: width
+ sourceSize.height: height
+ }
+
+ Rectangle
+ {
+ anchors.fill: parent
+ gradient: Gradient
+ {
+ GradientStop { position: 0.0; color: "transparent" }
+ GradientStop { position: 1.0; color: Qt.rgba(0.0 ,0.0, 0.0, 0.5) }
+ }
}
BusyIndicator
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/settings/Selector.qml
^
|
@@ -34,7 +34,7 @@
model: ambiences
delegate: AmbienceImage
{
- source: "image://wallpapers" + wallpaper + "?" + width + "?" + height
+ source: wallpaper
ambienceName: displayName
ambienceColor: highlightColor
isSelected: name === page.name
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/settings/settings.qml
^
|
@@ -68,13 +68,13 @@
AmbienceImage
{
- source: "image://wallpapers" + ambiences.getByName(ambience_top.value).wallpaper + "?" + width + "?" + height
+ source: ambiences.getByName(ambience_top.value).wallpaper
ambienceName: ambiences.getByName(ambience_top.value).displayName
ambienceColor: ambiences.getByName(ambience_top.value).highlightColor
onClicked:
{
var sel = pageStack.push(Qt.resolvedUrl("Selector.qml"), { ambiences: ambiences,
- name: ambience_top.value,
+ name: ambience_top.value.split(";")[0],
pageTitle: qsTrId("onyx-top-position")})
sel.selected.connect(function()
{
@@ -91,13 +91,13 @@
AmbienceImage
{
- source: "image://wallpapers" + ambiences.getByName(ambience_middle.value).wallpaper + "?" + width + "?" + height
+ source: ambiences.getByName(ambience_middle.value).wallpaper
ambienceName: ambiences.getByName(ambience_middle.value).displayName
ambienceColor: ambiences.getByName(ambience_middle.value).highlightColor
onClicked:
{
var sel = pageStack.push(Qt.resolvedUrl("Selector.qml"), { ambiences: ambiences,
- name: ambience_middle.value,
+ name: ambience_middle.value.split(";")[0],
pageTitle: qsTrId("onyx-middle-position")})
sel.selected.connect(function()
{
@@ -114,13 +114,13 @@
AmbienceImage
{
- source: "image://wallpapers" + ambiences.getByName(ambience_bottom.value).wallpaper + "?" + width + "?" + height
+ source: ambiences.getByName(ambience_bottom.value).wallpaper
ambienceName: ambiences.getByName(ambience_bottom.value).displayName
ambienceColor: ambiences.getByName(ambience_bottom.value).highlightColor
onClicked:
{
var sel = pageStack.push(Qt.resolvedUrl("Selector.qml"), { ambiences: ambiences,
- name: ambience_bottom.value,
+ name: ambience_bottom.value.split(";")[0],
pageTitle: qsTrId("onyx-bottom-position")})
sel.selected.connect(function()
{
@@ -129,26 +129,26 @@
}
}
}
- }
+ }
ConfigurationValue
{
id: ambience_top
key: "/apps/onyxtristate/top"
- defaultValue: "silent"
+ defaultValue: "silent.ambience"
}
ConfigurationValue
{
id: ambience_middle
key: "/apps/onyxtristate/middle"
- defaultValue: "sailing"
+ defaultValue: "sailing.ambience"
}
ConfigurationValue
{
id: ambience_bottom
key: "/apps/onyxtristate/bottom"
- defaultValue: "origami"
+ defaultValue: "origami.ambience"
}
-
+
}
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/src/plugin/plugin.cpp
^
|
@@ -4,7 +4,6 @@
#include <QQmlExtensionPlugin>
#include <QTranslator>
#include "settingsui.h"
-#include "ImageProvider.h"
class Translator : public QTranslator
{
@@ -47,8 +46,6 @@
{
Q_ASSERT(uri == QLatin1String("com.kimmoli.onyxtriambiencesettings"));
- engine->addImageProvider("wallpapers", new ImageProvider);
-
Translator *engineeringEnglish = new Translator(engine);
if (!engineeringEnglish->load("onyx-triambience-settings_eng_en", "/usr/share/translations"))
qWarning() << "failed loading translator" << "onyx-triambience-settings_eng_en";
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/src/settingsui.cpp
^
|
@@ -1,15 +1,12 @@
#include "settingsui.h"
-#include <QDir>
#include <QVariantMap>
#include <QVariantList>
-#include <QThread>
-#include <QSettings>
#include <QDebug>
-#include <QtDBus/QtDBus>
-#include <QtAlgorithms>
-#include <QFileInfo>
-#include <linux/input.h>
-
+#include <QSqlDatabase>
+#include <QSqlError>
+#include <QSqlQuery>
+#include <QSqlRecord>
+#include <QStandardPaths>
SettingsUi::SettingsUi(QObject *parent) :
QObject(parent)
@@ -20,69 +17,90 @@
{
QVariantList tmp;
QVariantMap map;
+ QSqlDatabase* db;
+ QSqlQuery query;
- ambienceFiles.clear();
-
- QDir selectedDir("/usr/share/ambience/");
- selectedDir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDot | QDir::NoDotDot);
- QStringList filter;
- filter.append("*.ambience");
- selectedDir.setNameFilters(filter);
- findFilesRecursively(selectedDir);
+ db = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE"));
+ db->setDatabaseName(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/system/privileged/Ambienced/ambienced.sqlite");
- foreach (QString ambienceFilename, ambienceFiles)
+ if (!db->open())
{
- QFile amb;
- amb.setFileName(ambienceFilename);
+ qDebug() << "Error opening ambienced db:" << db->lastError().text();
+ return tmp;
+ }
- if (!amb.exists() || !amb.open(QFile::ReadOnly | QFile::Text))
- {
- continue;
- }
+ /* Collect installed ambiences
+ *
+ * From this table we get:
+ * - fileId
+ * - wallpaper - abs path to the wallpaper image
+ * - highlightcolor
+ */
- QTextStream in(&amb);
- QString ambString = in.readAll();
+ query = QSqlQuery("SELECT * FROM ambience", *db);
- if (ambString.isEmpty())
+ if (query.exec())
+ {
+ while (query.next())
{
- amb.close();
- continue;
+ map.clear();
+ map.insert("fileId", query.record().value("fileId").toInt());
+ map.insert("wallpaper", query.record().value("homeWallpaper").toString());
+ map.insert("highlightColor", query.record().value("highlightColor").toString());
+ tmp.append(map);
}
+ }
- QJsonDocument ambJson = QJsonDocument::fromJson(ambString.toUtf8());
- QJsonObject ambObject = ambJson.object();
+ /* Add file info
+ *
+ * directoryId
+ * displayName
+ * filename
+ */
- QFileInfo fi(amb);
+ int i;
- QString displayName = ambObject["displayName"].toString();
+ for (i=0 ; i < tmp.size() ; i++)
+ {
+ QVariantMap eMap = tmp.at(i).value<QVariantMap>();
+ tmp.removeAt(i);
- QTranslator translator;
- if (translator.load( QLocale(), ambObject["translationCatalog"].toString(), "-", "/usr/share/translations" ) )
+ query = QSqlQuery(QString("SELECT * FROM file WHERE id=%1").arg(eMap.value("fileId").toInt()), *db);
+ if (query.exec())
{
- displayName = translator.translate("", ambObject["displayName"].toString().toLocal8Bit().constData());
+ while (query.next())
+ {
+ eMap.insert("dirId", query.record().value("directoryId").toInt());
+ eMap.insert("displayName", query.record().value("displayName").toString());
+ eMap.insert("name", query.record().value("fileName").toString());
+ }
}
-
- map.clear();
- map.insert("name", fi.baseName());
- map.insert("filepath", fi.absoluteFilePath());
- map.insert("displayName", displayName);
- map.insert("wallpaper", fi.absolutePath() + "/images/" + ambObject["wallpaper"].toString());
- map.insert("highlightColor", ambObject["highlightColor"].toString());
- tmp.append(map);
-
- amb.close();
+ tmp.insert(i, eMap);
}
- return tmp;
-}
+ /* Get file path from directory table */
-void SettingsUi::findFilesRecursively(QDir rootDir)
-{
- QDirIterator it(rootDir, QDirIterator::Subdirectories);
- while(it.hasNext())
+ for (i=0 ; i<tmp.size(); i++)
{
- ambienceFiles.append(it.next());
+ QVariantMap eMap = tmp.at(i).value<QVariantMap>();
+ tmp.removeAt(i);
+
+ query = QSqlQuery(QString("SELECT * FROM directory WHERE id=%1").arg(eMap.value("dirId").toInt()), *db);
+ if (query.exec())
+ {
+ while (query.next())
+ {
+ eMap.insert("filepath", query.record().value("path").toString() + "/" + eMap.value("name").toString());
+ }
+ }
+ tmp.insert(i, eMap);
}
+
+ db->close();
+
+ qDebug() << "Found" << tmp.size() << "ambiences.";
+
+ return tmp;
}
SettingsUi::~SettingsUi()
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/src/settingsui.h
^
|
@@ -4,7 +4,6 @@
#include <QVariantList>
#include <QTimer>
#include <QMap>
-#include <QDir>
class Q_DECL_EXPORT SettingsUi : public QObject
{
@@ -15,10 +14,6 @@
virtual ~SettingsUi();
Q_INVOKABLE QVariantList getAmbiences();
-
-private:
- void findFilesRecursively(QDir rootDir);
- QStringList ambienceFiles;
};
|
[-]
[+]
|
Changed |
_service:tar_git:onyx-triambience-settings-plugin-0.1.0.tar.bz2/src/src.pro
^
|
@@ -1,15 +1,14 @@
TEMPLATE = lib
TARGET = onyxtriambiencesettings-qt5
CONFIG += qt hide_symbols
-QT += dbus qml quick
+QT += dbus qml quick sql
QT -= gui
SOURCES += \
settingsui.cpp
HEADERS += \
- settingsui.h \
- ImageProvider.h
+ settingsui.h
target.path = $$[QT_INSTALL_LIBS]
|