diff --git a/resources/tomboynotes/configdialog.ui b/resources/tomboynotes/configdialog.ui
--- a/resources/tomboynotes/configdialog.ui
+++ b/resources/tomboynotes/configdialog.ui
@@ -8,7 +8,7 @@
0
0
400
- 290
+ 314
@@ -68,6 +68,29 @@
+ -
+
+
+
-
+
+
+ Update interval:
+
+
+
+ -
+
+
+ -
+
+
+ minutes
+
+
+
+
+
+
-
@@ -99,16 +122,6 @@
- -
-
-
-
-
-
- true
-
-
-
diff --git a/resources/tomboynotes/tomboycollectionsdownloadjob.h b/resources/tomboynotes/tomboycollectionsdownloadjob.h
--- a/resources/tomboynotes/tomboycollectionsdownloadjob.h
+++ b/resources/tomboynotes/tomboycollectionsdownloadjob.h
@@ -28,7 +28,7 @@
Q_OBJECT
public:
// ctor
- explicit TomboyCollectionsDownloadJob(const QString &collectionName, KIO::AccessManager *manager, QObject *parent = nullptr);
+ explicit TomboyCollectionsDownloadJob(const QString &collectionName, KIO::AccessManager *manager, int refreshInterval, QObject *parent = nullptr);
// returns the parsed results wrapped in Akonadi::Collection::List, see bellow
Akonadi::Collection::List collections() const;
@@ -42,6 +42,7 @@
private:
Akonadi::Collection::List mResultCollections;
QString mCollectionName;
+ int mRefreshInterval;
};
#endif // TOMBOYCOLLECTIONSDOWNLOADJOB_H
diff --git a/resources/tomboynotes/tomboycollectionsdownloadjob.cpp b/resources/tomboynotes/tomboycollectionsdownloadjob.cpp
--- a/resources/tomboynotes/tomboycollectionsdownloadjob.cpp
+++ b/resources/tomboynotes/tomboycollectionsdownloadjob.cpp
@@ -20,14 +20,16 @@
#include "tomboycollectionsdownloadjob.h"
#include "debug.h"
#include
+#include
#include
#include
#include
-TomboyCollectionsDownloadJob::TomboyCollectionsDownloadJob(const QString &collectionName, KIO::AccessManager *manager, QObject *parent)
+TomboyCollectionsDownloadJob::TomboyCollectionsDownloadJob(const QString &collectionName, KIO::AccessManager *manager, int refreshInterval, QObject *parent)
: TomboyJobBase(manager, parent),
mCollectionName(collectionName)
{
+ mRefreshInterval = refreshInterval;
}
Akonadi::Collection::List TomboyCollectionsDownloadJob::collections() const
@@ -70,6 +72,14 @@
c.setRemoteRevision(QString::number(collectionRevision.toInt()));
qCDebug(TOMBOYNOTESRESOURCE_LOG) << "TomboyCollectionsDownloadJob: Sync revision " << collectionRevision.toString();
+ Akonadi::CachePolicy cachePolicy;
+ cachePolicy.setInheritFromParent(false);
+ cachePolicy.setSyncOnDemand(false);
+ cachePolicy.setCacheTimeout(-1);
+ cachePolicy.setIntervalCheckTime(mRefreshInterval);
+ cachePolicy.setLocalParts(QStringList() << QStringLiteral("ALL"));
+ c.setCachePolicy(cachePolicy);
+
c.setContentMimeTypes({ Akonadi::NoteUtils::noteMimeType() });
mResultCollections << c;
diff --git a/resources/tomboynotes/tomboynotesresource.cpp b/resources/tomboynotes/tomboynotesresource.cpp
--- a/resources/tomboynotes/tomboynotesresource.cpp
+++ b/resources/tomboynotes/tomboynotesresource.cpp
@@ -77,7 +77,12 @@
return;
}
- auto job = new TomboyCollectionsDownloadJob(Settings::collectionName(), mManager, this);
+ int refreshInterval = Settings::self()->refreshInterval();
+ if (refreshInterval == 0) {
+ refreshInterval = -1;
+ }
+
+ auto job = new TomboyCollectionsDownloadJob(Settings::collectionName(), mManager, refreshInterval, this);
job->setAuthentication(Settings::requestToken(), Settings::requestTokenSecret());
job->setServerURL(Settings::serverURL(), Settings::userURL());
// connect to its result() signal