Page MenuHomePhorge

D359.1787699617.diff
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

D359.1787699617.diff

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -108,11 +108,13 @@
FILE kazv-settings.kcfg
CLASS_NAME KazvSettings
MUTATORS
+ GENERATE_MOC
)
kconfig_target_kcfg_file(kazvqmlmodule
FILE kazv-sessions-settings.kcfg
CLASS_NAME KazvSessionsSettings
MUTATORS
+ GENERATE_MOC
)
target_link_libraries(kazvqmlmodule PUBLIC
diff --git a/src/contents/ui/Main.qml b/src/contents/ui/Main.qml
--- a/src/contents/ui/Main.qml
+++ b/src/contents/ui/Main.qml
@@ -107,6 +107,8 @@
}
property var kazvConfig: MK.KazvConfig {
+ onCacheDirectoryChanged: console.log('cache directory changed:', cacheDirectory);
+ Component.onCompleted: console.log('cache directory:', cacheDirectory);
}
function initializeL10n () {
diff --git a/src/kazv-config.hpp b/src/kazv-config.hpp
--- a/src/kazv-config.hpp
+++ b/src/kazv-config.hpp
@@ -22,7 +22,7 @@
QScopedPointer<KazvConfigPrivate> m_d;
Q_PROPERTY(QString lastSession READ lastSession WRITE setLastSession)
- Q_PROPERTY(QString cacheDirectory READ cacheDirectory WRITE setCacheDirectory)
+ Q_PROPERTY(QString cacheDirectory READ cacheDirectory WRITE setCacheDirectory NOTIFY cacheDirectoryChanged)
public:
explicit KazvConfig(QObject *parent = 0);
@@ -48,6 +48,9 @@
**/
void setCacheDirectory(QString cacheDirectory);
+Q_SIGNALS:
+ void cacheDirectoryChanged();
+
private:
void migrateOldConfig();
};
diff --git a/src/kazv-config.cpp b/src/kazv-config.cpp
--- a/src/kazv-config.cpp
+++ b/src/kazv-config.cpp
@@ -48,6 +48,9 @@
: QObject(parent)
, m_d(new KazvConfigPrivate)
{
+ connect(
+ m_d->settings.get(), &KazvSettings::cacheDirectoryChanged,
+ this, &KazvConfig::cacheDirectoryChanged);
migrateOldConfig();
m_d->sessionsSettings->load();
m_d->settings->load();
diff --git a/src/kazv-io-manager.cpp b/src/kazv-io-manager.cpp
--- a/src/kazv-io-manager.cpp
+++ b/src/kazv-io-manager.cpp
@@ -26,6 +26,7 @@
#include <QTemporaryDir>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
+#include <QStandardPaths>
#include <string>
#include <algorithm>
@@ -36,18 +37,12 @@
struct KazvIOManagerPrivate
{
- /**
- * Used to store various temporary files.
- * If the user does not specify a cache directory,
- * this directory is also used as a cache directory.
- */
- QTemporaryDir tmpDir = QTemporaryDir{};
/**
* Stores files that need to be previewed (e.g. in a timeline)
* and are not downloaded by the user, such as images, audio, video covers, and videos.
*/
std::unique_ptr<QNetworkAccessManager> manager = std::make_unique<QNetworkAccessManager>();
- QDir cacheDir{tmpDir.path()};
+ QDir cacheDir;
Kazv::RandomInterface randomGenerator = QtRandAdapter{};
QMap<QString, QPointer<KazvIODownloadJob>> cacheJobs;
QMap<QString, QSharedPointer<KazvIODownloadJob>> downloadJobs;
@@ -227,7 +222,11 @@
void KazvIOManager::setCacheDirectory(QString cacheDirectory)
{
if (cacheDirectory.isEmpty()) {
- m_d->cacheDir = QDir{m_d->tmpDir.path()};
+ const auto imgCacheBasename = u"imgcache"_s;
+ auto cacheDir = QDir{QStandardPaths::writableLocation(QStandardPaths::CacheLocation)};
+ cacheDir.mkpath(imgCacheBasename);
+ cacheDir.cd(imgCacheBasename);
+ m_d->cacheDir = cacheDir;
} else {
auto cacheDir = QDir{QUrl{cacheDirectory}.toLocalFile()};
if (!cacheDir.mkpath(u"."_s)) {
diff --git a/src/kazv-settings.kcfg b/src/kazv-settings.kcfg
--- a/src/kazv-settings.kcfg
+++ b/src/kazv-settings.kcfg
@@ -4,11 +4,12 @@
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
<kcfgfile arg="true" />
- <include>QStandardPaths</include>
+ <signal name="cacheDirectoryChanged" />
+
<group name="General">
<entry name="cacheDirectory" type="String">
<label>Directory for storing the cached files.</label>
- <default code="true">QStandardPaths::writableLocation(QStandardPaths::CacheLocation)</default>
+ <emit signal="cacheDirectoryChanged" />
</entry>
</group>
</kcfg>
diff --git a/src/tests/kazv-config-test.cpp b/src/tests/kazv-config-test.cpp
--- a/src/tests/kazv-config-test.cpp
+++ b/src/tests/kazv-config-test.cpp
@@ -187,7 +187,7 @@
void KazvConfigTest::testNoOldConfig()
{
KazvConfig config;
- QCOMPARE(config.cacheDirectory(), QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
+ QCOMPARE(config.cacheDirectory(), QString());
QCOMPARE(config.shortcutForAction(u"switch-account"_s), QStringList());
QCOMPARE(config.lastSession(), QString());
}

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 25, 4:13 PM (22 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1735535
Default Alt Text
D359.1787699617.diff (4 KB)

Event Timeline