diff options
Diffstat (limited to 'src/sync')
-rw-r--r-- | src/sync/settings_sync.ui | 12 | ||||
-rw-r--r-- | src/sync/syncmanager.cpp | 48 | ||||
-rw-r--r-- | src/sync/syncmanager.h | 6 | ||||
-rw-r--r-- | src/sync/syncwidget.cpp | 16 | ||||
-rw-r--r-- | src/sync/syncwidget.h | 2 |
5 files changed, 74 insertions, 10 deletions
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 @@ <rect> <x>0</x> <y>0</y> - <width>633</width> - <height>551</height> + <width>378</width> + <height>369</height> </rect> </property> + <property name="minimumSize"> + <size> + <width>300</width> + <height>0</height> + </size> + </property> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QCheckBox" name="kcfg_syncEnabled"> @@ -113,7 +119,7 @@ <property name="sizeHint" stdset="0"> <size> <width>20</width> - <height>289</height> + <height>50</height> </size> </property> </spacer> 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 <KStandardDirs> #include <KMessageBox> @@ -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<KDialog> 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(); |