diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 8 | ||||
| -rw-r--r-- | src/rekonqui.rc | 1 | ||||
| -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 | 
7 files changed, 82 insertions, 11 deletions
| diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 92c786df..c46fbc68 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -49,6 +49,7 @@  #include "sessionmanager.h"  #include "settingsdialog.h"  #include "stackedurlbar.h" +#include "syncmanager.h"  #include "tabbar.h"  #include "urlbar.h"  #include "webinspectorpanel.h" @@ -447,8 +448,8 @@ void MainWindow::setupActions()      closedTabsMenu->setDelayed(false);      actionCollection()->addAction(QL1S("closed_tab_menu"), closedTabsMenu); -    QSignalMapper *tabSignalMapper = new QSignalMapper(this);      // shortcuts for quickly switching to a tab +    QSignalMapper *tabSignalMapper = new QSignalMapper(this);      for (int i = 1; i <= 9; i++)      {          a = new KAction(i18n("Switch to Tab %1", i), this); @@ -529,6 +530,11 @@ void MainWindow::setupActions()      a = new KAction(KIcon("applications-internet"), i18n("Create application shortcut"), this);      actionCollection()->addAction(QL1S("webapp_shortcut"), a);      connect(a, SIGNAL(triggered(bool)), rApp, SLOT(createWebAppShortcut())); + +    // Sync action +    a = new KAction(KIcon("tools-wizard"), i18n("Sync"), this); // FIXME sync icon!! +    actionCollection()->addAction(QL1S("sync"), a); +    connect(a, SIGNAL(triggered(bool)), rApp->syncManager(), SLOT(showSettings()));  } diff --git a/src/rekonqui.rc b/src/rekonqui.rc index 42b18bb3..7aeeb566 100644 --- a/src/rekonqui.rc +++ b/src/rekonqui.rc @@ -26,6 +26,7 @@          <Action name="set_editable" />          <Separator/>          <Action name="useragent" /> +        <Action name="sync" />          <Action name="adblock" />      </Menu> 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(); | 
