on xenial help sign in
fix windowstatestorage in snappy
07882c0Lukáš Tinkl
plugins/Utils/windowstatestorage.cpp+7−13
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2015 Canonical Ltd.
2+ * Copyright 2015-2016 Canonical Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -36,7 +36,7 @@ inline QString sanitiseString(QString string) {
36WindowStateStorage::WindowStateStorage(QObject *parent):
36WindowStateStorage::WindowStateStorage(QObject *parent):
37 QObject(parent)
37 QObject(parent)
38{
38{
39− QString dbPath = QDir::homePath() + "/.cache/unity8/";
39+ const QString dbPath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
40 m_db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"));
40 m_db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"));
41 QDir dir;
41 QDir dir;
42 dir.mkpath(dbPath);
42 dir.mkpath(dbPath);
@@ -57,15 +57,14 @@ WindowStateStorage::~WindowStateStorage()
57void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::WindowState state)
57void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::WindowState state)
58{
58{
59 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO state (windowId, state) values ('%1', '%2');")
59 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO state (windowId, state) values ('%1', '%2');")
60− .arg(sanitiseString(windowId))
60+ .arg(sanitiseString(windowId), (int)state);
61− .arg((int)state);
62
61
63 saveValue(queryString);
62 saveValue(queryString);
64}
63}
65
64
66WindowStateStorage::WindowState WindowStateStorage::getState(const QString &windowId, WindowStateStorage::WindowState defaultValue) const
65WindowStateStorage::WindowState WindowStateStorage::getState(const QString &windowId, WindowStateStorage::WindowState defaultValue) const
67{
66{
68− const QString queryString = QStringLiteral("SELECT * FROM state WHERE windowId = '%1';")
67+ const QString queryString = QStringLiteral("SELECT state FROM state WHERE windowId = '%1';")
69 .arg(sanitiseString(windowId));
68 .arg(sanitiseString(windowId));
70
69
71 QSqlQuery query = getValue(queryString);
70 QSqlQuery query = getValue(queryString);
@@ -79,11 +78,7 @@ WindowStateStorage::WindowState WindowStateStorage::getState(const QString &wind
79void WindowStateStorage::saveGeometry(const QString &windowId, const QRect &rect)
78void WindowStateStorage::saveGeometry(const QString &windowId, const QRect &rect)
80{
79{
81 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO geometry (windowId, x, y, width, height) values ('%1', '%2', '%3', '%4', '%5');")
80 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO geometry (windowId, x, y, width, height) values ('%1', '%2', '%3', '%4', '%5');")
82− .arg(sanitiseString(windowId))
81+ .arg(sanitiseString(windowId), rect.x(), rect.y(), rect.width(), rect.height());
83− .arg(rect.x())
84− .arg(rect.y())
85− .arg(rect.width())
86− .arg(rect.height());
87
82
88 saveValue(queryString);
83 saveValue(queryString);
89}
84}
@@ -91,15 +86,14 @@ void WindowStateStorage::saveGeometry(const QString &windowId, const QRect &rect
91void WindowStateStorage::saveStage(const QString &appId, int stage)
86void WindowStateStorage::saveStage(const QString &appId, int stage)
92{
87{
93 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO stage (appId, stage) values ('%1', '%2');")
88 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO stage (appId, stage) values ('%1', '%2');")
94− .arg(sanitiseString(appId))
89+ .arg(sanitiseString(appId), stage);
95− .arg(stage);
96
90
97 saveValue(queryString);
91 saveValue(queryString);
98}
92}
99
93
100int WindowStateStorage::getStage(const QString &appId, int defaultValue) const
94int WindowStateStorage::getStage(const QString &appId, int defaultValue) const
101{
95{
102− const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
96+ const QString queryString = QStringLiteral("SELECT stage FROM stage WHERE appId = '%1';")
103 .arg(sanitiseString(appId));
97 .arg(sanitiseString(appId));
104
98
105 QSqlQuery query = getValue(queryString);
99 QSqlQuery query = getValue(queryString);
plugins/Utils/windowstatestorage.h+2−2
@@ -44,7 +44,7 @@ public:
44 Q_FLAG(WindowStates)
44 Q_FLAG(WindowStates)
45#endif
45#endif
46
46
47− WindowStateStorage(QObject *parent = 0);
47+ WindowStateStorage(QObject *parent = nullptr);
48 virtual ~WindowStateStorage();
48 virtual ~WindowStateStorage();
49
49
50 Q_INVOKABLE void saveState(const QString &windowId, WindowState state);
50 Q_INVOKABLE void saveState(const QString &windowId, WindowState state);
@@ -68,5 +68,5 @@ private:
68 // NB: This is accessed from threads. Make sure to mutex it.
68 // NB: This is accessed from threads. Make sure to mutex it.
69 QSqlDatabase m_db;
69 QSqlDatabase m_db;
70
70
71− QList< QFuture<void> > m_asyncQueries;
71+ QList<QFuture<void>> m_asyncQueries;
72};
72};
src/ShellApplication.cpp−1
@@ -34,7 +34,6 @@
34ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
34ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
35 : QGuiApplication(argc, argv)
35 : QGuiApplication(argc, argv)
36{
36{
37−
38 setApplicationName(QStringLiteral("unity8"));
37 setApplicationName(QStringLiteral("unity8"));
39
38
40 connect(this, &QGuiApplication::screenAdded, this, &ShellApplication::onScreenAdded);
39 connect(this, &QGuiApplication::screenAdded, this, &ShellApplication::onScreenAdded);