From 7932ee0fd2e683af8cc1207986504747ccfbc68e Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 14 Nov 2011 17:16:08 +0100 Subject: Let the "big sync" work (the one done every minute...) --- src/sync/settings_sync.ui | 12 +++++++++--- src/sync/syncmanager.cpp | 48 +++++++++++++++++++++++++++++++++++++++++------ src/sync/syncmanager.h | 6 ++++++ src/sync/syncwidget.cpp | 16 ++++++++++++++++ src/sync/syncwidget.h | 2 +- 5 files changed, 74 insertions(+), 10 deletions(-) (limited to 'src/sync') diff --git a/src/sync/settings_sync.ui b/src/sync/settings_sync.ui index 35415f53..f45c8b6c 100644 --- a/src/sync/settings_sync.ui +++ b/src/sync/settings_sync.ui @@ -6,10 +6,16 @@ 0 0 - 633 - 551 + 378 + 369 + + + 300 + 0 + + @@ -113,7 +119,7 @@ 20 - 289 + 50 diff --git a/src/sync/syncmanager.cpp b/src/sync/syncmanager.cpp index cf3f2df7..53149ee1 100644 --- a/src/sync/syncmanager.cpp +++ b/src/sync/syncmanager.cpp @@ -31,6 +31,9 @@ // Auto Includes #include "rekonq.h" +// Local Includes +#include "syncwidget.h" + // KDE Includes #include #include @@ -43,20 +46,53 @@ SyncManager::SyncManager(QObject *parent) : QObject(parent) , _firstTimeSynced(false) + , _syncTimer(0) +{ + loadSettings(); +} + + +SyncManager::~SyncManager() +{ + sync(); +} + + +void SyncManager::loadSettings() { if (ReKonfig::syncEnabled()) { - // sync every minute - QTimer *timer = new QTimer(this); - connect(timer, SIGNAL(timeout()), this, SLOT(sync())); - timer->start(60 * 1000); + if (_syncTimer) + return; + + _syncTimer = new QTimer(this); + connect(_syncTimer, SIGNAL(timeout()), this, SLOT(sync())); + _syncTimer->start(60 * 1000); // sync every minute + } + else + { + if (_syncTimer) + { + _syncTimer->stop(); + delete _syncTimer; + } } } -SyncManager::~SyncManager() +void SyncManager::showSettings() { - sync(); + QPointer dialog = new KDialog(); + dialog->setCaption(i18nc("@title:window", "Sync Settings")); + dialog->setButtons(KDialog::Ok | KDialog::Cancel); + + SyncWidget widget; + dialog->setMainWidget(&widget); + connect(dialog, SIGNAL(okClicked()), &widget, SLOT(save())); + connect(dialog, SIGNAL(okClicked()), this, SLOT(loadSettings())); + dialog->exec(); + + dialog->deleteLater(); } diff --git a/src/sync/syncmanager.h b/src/sync/syncmanager.h index 3a78191f..c6f8a76a 100644 --- a/src/sync/syncmanager.h +++ b/src/sync/syncmanager.h @@ -39,6 +39,7 @@ // Forward Declarations class KJob; +class QTimer; class REKONQ_TESTS_EXPORT SyncManager : public QObject @@ -55,6 +56,9 @@ public Q_SLOTS: void sync(); private Q_SLOTS: + void loadSettings(); + void showSettings(); + void onBookmarksSyncFinished(KJob *); void onBookmarksStatFinished(KJob *); @@ -80,6 +84,8 @@ private: QUrl _remotePasswordsUrl; KUrl _localPasswordsUrl; + + QTimer *_syncTimer; }; #endif // SYNC_MANAGER_H diff --git a/src/sync/syncwidget.cpp b/src/sync/syncwidget.cpp index c5295c93..b8e95753 100644 --- a/src/sync/syncwidget.cpp +++ b/src/sync/syncwidget.cpp @@ -42,6 +42,14 @@ SyncWidget::SyncWidget(QWidget *parent) { setupUi(this); + kcfg_syncEnabled->setChecked(ReKonfig::syncEnabled()); + kcfg_syncBookmarks->setChecked(ReKonfig::syncBookmarks()); + kcfg_syncHistory->setChecked(ReKonfig::syncHistory()); + kcfg_syncPasswords->setChecked(ReKonfig::syncPasswords()); + kcfg_syncHost->setText(ReKonfig::syncHost()); + kcfg_syncUser->setText(ReKonfig::syncUser()); + kcfg_syncPass->setText(ReKonfig::syncPass()); + bool isSyncEnabled = ReKonfig::syncEnabled(); enablewidgets(isSyncEnabled); @@ -56,6 +64,14 @@ SyncWidget::SyncWidget(QWidget *parent) void SyncWidget::save() { + ReKonfig::setSyncEnabled(kcfg_syncEnabled->isChecked()); + ReKonfig::setSyncBookmarks(kcfg_syncBookmarks->isChecked()); + ReKonfig::setSyncHistory(kcfg_syncHistory->isChecked()); + ReKonfig::setSyncPasswords(kcfg_syncPasswords->isChecked()); + ReKonfig::setSyncHost(kcfg_syncHost->text()); + ReKonfig::setSyncUser(kcfg_syncUser->text()); + ReKonfig::setSyncPass(kcfg_syncPass->text()); + rApp->syncManager()->firstTimeSync(); } diff --git a/src/sync/syncwidget.h b/src/sync/syncwidget.h index 0e1d57ff..8621eae1 100644 --- a/src/sync/syncwidget.h +++ b/src/sync/syncwidget.h @@ -45,13 +45,13 @@ class SyncWidget : public QWidget, private Ui::Sync public: SyncWidget(QWidget *parent = 0); - void save(); bool changed(); Q_SIGNALS: void changed(bool); private Q_SLOTS: + void save(); void hasChanged(); void syncNow(); -- cgit v1.2.1