diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/sync/ftpsynchandler.cpp | 267 | ||||
| -rw-r--r-- | src/sync/ftpsynchandler.h | 84 | ||||
| -rw-r--r-- | src/sync/synchandler.h | 52 | ||||
| -rw-r--r-- | src/sync/syncmanager.cpp | 224 | ||||
| -rw-r--r-- | src/sync/syncmanager.h | 42 | ||||
| -rw-r--r-- | src/sync/syncwidget.cpp | 4 | 
7 files changed, 436 insertions, 238 deletions
| diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 11f079a6..2e43bedf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -95,6 +95,7 @@ SET( rekonq_KDEINIT_SRCS      #----------------------------------------      sync/syncmanager.cpp      sync/syncwidget.cpp +    sync/ftpsynchandler.cpp  ) diff --git a/src/sync/ftpsynchandler.cpp b/src/sync/ftpsynchandler.cpp new file mode 100644 index 00000000..e5170964 --- /dev/null +++ b/src/sync/ftpsynchandler.cpp @@ -0,0 +1,267 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2011 by Andrea Diamantini <adjam7 at gmail dot com> +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program.  If not, see <http://www.gnu.org/licenses/>. +* +* ============================================================ */ + + +// Self Includes +#include "ftpsynchandler.h" +#include "ftpsynchandler.moc" + +// Auto Includes +#include "rekonq.h" + +// KDE Includes +#include <KStandardDirs> +#include <klocalizedstring.h> + +#include <KIO/Job> +#include <KIO/JobUiDelegate> + + +FTPSyncHandler::FTPSyncHandler(QObject *parent) +    : SyncHandler(parent) +    , _firstTimeSynced(false) +{ +} + + +void FTPSyncHandler::firstTimeSync() +{ +    // Bookmarks +    if (ReKonfig::syncBookmarks()) +    { +        _remoteBookmarksUrl = QUrl(); +        _remoteBookmarksUrl.setHost(ReKonfig::syncHost()); +        _remoteBookmarksUrl.setScheme("ftp"); +        _remoteBookmarksUrl.setUserName(ReKonfig::syncUser()); +        _remoteBookmarksUrl.setPassword(ReKonfig::syncPass()); +        _remoteBookmarksUrl.setPort(ReKonfig::syncPort()); +        _remoteBookmarksUrl.setPath(ReKonfig::syncPath() + QL1S("/bookmarks.xml")); +        kDebug() << "REMOTE BK URL: " << _remoteBookmarksUrl; + +        const QString bookmarksFilePath = KStandardDirs::locateLocal("data", QL1S("konqueror/bookmarks.xml")); +        _localBookmarksUrl = KUrl(bookmarksFilePath); +        kDebug() << "LOCAL BK URL: " << _localBookmarksUrl; + +        KIO::StatJob *job = KIO::stat(_remoteBookmarksUrl, KIO::StatJob::DestinationSide, 0, KIO::HideProgressInfo); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksStatFinished(KJob *))); + +        _firstTimeSynced = true; +    } + +    // History +    if (ReKonfig::syncHistory()) +    { +        _remoteHistoryUrl = QUrl(); +        _remoteHistoryUrl.setHost(ReKonfig::syncHost()); +        _remoteHistoryUrl.setScheme("ftp"); +        _remoteHistoryUrl.setUserName(ReKonfig::syncUser()); +        _remoteHistoryUrl.setPassword(ReKonfig::syncPass()); +        _remoteHistoryUrl.setPort(ReKonfig::syncPort()); +        _remoteHistoryUrl.setPath(ReKonfig::syncPath() + QL1S("/history")); +        kDebug() << "REMOTE HISTORY URL: " << _remoteHistoryUrl; + +        const QString historyFilePath = KStandardDirs::locateLocal("appdata", "history"); +        _localHistoryUrl = KUrl(historyFilePath); +        kDebug() << "LOCAL HISTORY URL: " << _localHistoryUrl; + +        KIO::StatJob *job = KIO::stat(_remoteHistoryUrl, KIO::StatJob::DestinationSide, 0, KIO::HideProgressInfo); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistoryStatFinished(KJob *))); + +        _firstTimeSynced = true; +    } + +    // Passwords +    if (ReKonfig::syncPasswords()) +    { +        _remotePasswordsUrl = QUrl(); +        _remotePasswordsUrl.setHost(ReKonfig::syncHost()); +        _remotePasswordsUrl.setScheme("ftp"); +        _remotePasswordsUrl.setUserName(ReKonfig::syncUser()); +        _remotePasswordsUrl.setPassword(ReKonfig::syncPass()); +        _remotePasswordsUrl.setPort(ReKonfig::syncPort()); +        _remotePasswordsUrl.setPath(ReKonfig::syncPath() + QL1S("/kdewallet.kwl")); +        kDebug() << "REMOTE PSWD URL: " << _remotePasswordsUrl; + +        const QString passwordsFilePath = KStandardDirs::locateLocal("data", QL1S("kwallet/kdewallet.kwl")); +        _localPasswordsUrl = KUrl(passwordsFilePath); +        kDebug() << "LOCAL PSWD URL: " << _localPasswordsUrl; + +        KIO::StatJob *job = KIO::stat(_remotePasswordsUrl, KIO::StatJob::DestinationSide, 0, KIO::HideProgressInfo); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsStatFinished(KJob *))); + +        _firstTimeSynced = true; +    } +} + + +bool FTPSyncHandler::syncRelativeEnabled(bool check) +{ +    if (!ReKonfig::syncEnabled()) +        return false; + +    if (!_firstTimeSynced) +    { +        kDebug() << "need to sync for the first time..."; +        firstTimeSync(); +        return false; +    } + +    return check; +} + + +// --------------------------------------------------------------------------------------- + + +void FTPSyncHandler::syncBookmarks() +{ +    kDebug() << "syncing now..."; + +    if (!syncRelativeEnabled(ReKonfig::syncBookmarks())) +        return; + +    KIO::Job *job = KIO::file_copy(_localBookmarksUrl, _remoteBookmarksUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +    connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksSyncFinished(KJob *))); +} + + +void FTPSyncHandler::onBookmarksStatFinished(KJob *job) +{ +    if (job->error()) +    { +        KIO::Job *job = KIO::file_copy(_localBookmarksUrl, _remoteBookmarksUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksSyncFinished(KJob *))); +    } +    else +    { +        KIO::Job *job = KIO::file_copy(_remoteBookmarksUrl, _localBookmarksUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksSyncFinished(KJob *))); +    } +} + + +void FTPSyncHandler::onBookmarksSyncFinished(KJob *job) +{ +    if (job->error()) +    { +        job->uiDelegate()->showErrorMessage(); +        emit syncBookmarksFinished(false); +        return; +    } + +    QDateTime now = QDateTime::currentDateTime(); +    ReKonfig::setLastSyncDateTime(now); +    emit syncBookmarksFinished(true); +} + + +// --------------------------------------------------------------------------------------- + + +void FTPSyncHandler::syncHistory() +{ +    kDebug() << "syncing now..."; + +    if (!syncRelativeEnabled(ReKonfig::syncHistory())) +        return; + +    KIO::Job *job = KIO::file_copy(_localHistoryUrl, _remoteHistoryUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +    connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistorySyncFinished(KJob *))); +} + + +void FTPSyncHandler::onHistoryStatFinished(KJob *job) +{ +    if (job->error()) +    { +        KIO::Job *job = KIO::file_copy(_localHistoryUrl, _remoteHistoryUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistorySyncFinished(KJob *))); +    } +    else +    { +        KIO::Job *job = KIO::file_copy(_remoteHistoryUrl, _localHistoryUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistorySyncFinished(KJob *))); +    } +} + + +void FTPSyncHandler::onHistorySyncFinished(KJob *job) +{ +    if (job->error()) +    { +        job->uiDelegate()->showErrorMessage(); +        emit syncHistoryFinished(false); +        return; +    } + +    QDateTime now = QDateTime::currentDateTime(); +    ReKonfig::setLastSyncDateTime(now); +    emit syncHistoryFinished(true); +} + + +// --------------------------------------------------------------------------------------- + + +void FTPSyncHandler::syncPasswords() +{ +    kDebug() << "syncing now..."; + +    if (!syncRelativeEnabled(ReKonfig::syncPasswords())) +        return; + +    KIO::Job *job = KIO::file_copy(_localPasswordsUrl, _remotePasswordsUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +    connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsSyncFinished(KJob *))); +} + + +void FTPSyncHandler::onPasswordsStatFinished(KJob *job) +{ +    if (job->error()) +    { +        KIO::Job *job = KIO::file_copy(_localPasswordsUrl, _remotePasswordsUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsSyncFinished(KJob *))); +    } +    else +    { +        KIO::Job *job = KIO::file_copy(_remotePasswordsUrl, _localPasswordsUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); +        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsSyncFinished(KJob *))); +    } +} + + +void FTPSyncHandler::onPasswordsSyncFinished(KJob *job) +{ +    if (job->error()) +    { +        job->uiDelegate()->showErrorMessage(); +        emit syncPasswordsFinished(false); +        return; +    } + +    QDateTime now = QDateTime::currentDateTime(); +    ReKonfig::setLastSyncDateTime(now); +    emit syncPasswordsFinished(true); +} diff --git a/src/sync/ftpsynchandler.h b/src/sync/ftpsynchandler.h new file mode 100644 index 00000000..2620e89d --- /dev/null +++ b/src/sync/ftpsynchandler.h @@ -0,0 +1,84 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2011 by Andrea Diamantini <adjam7 at gmail dot com> +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program.  If not, see <http://www.gnu.org/licenses/>. +* +* ============================================================ */ + + +#ifndef FTP_SYNC_HANDLER_H +#define FTP_SYNC_HANDLER_H + + +// Local Includes +#include "synchandler.h" + +// KDE Includes +#include <KUrl> + +// Forward Declarations +class KJob; + + +class FTPSyncHandler : public SyncHandler +{ +    Q_OBJECT +     +public: +    FTPSyncHandler(QObject *parent = 0); + +    void syncHistory(); +    void syncBookmarks(); +    void syncPasswords(); + +    void firstTimeSync(); +     +private Q_SLOTS: +    void onBookmarksSyncFinished(KJob *); +    void onBookmarksStatFinished(KJob *); + +    void onHistorySyncFinished(KJob *); +    void onHistoryStatFinished(KJob *); + +    void onPasswordsSyncFinished(KJob *); +    void onPasswordsStatFinished(KJob *); + +Q_SIGNALS: +    void syncBookmarksFinished(bool); +    void syncHistoryFinished(bool); +    void syncPasswordsFinished(bool); + +private: +    bool syncRelativeEnabled(bool); + +    QUrl _remoteBookmarksUrl; +    KUrl _localBookmarksUrl; + +    QUrl _remoteHistoryUrl; +    KUrl _localHistoryUrl; + +    QUrl _remotePasswordsUrl; +    KUrl _localPasswordsUrl; + +    bool _firstTimeSynced; +}; + +#endif // FTP_SYNC_HANDLER_H diff --git a/src/sync/synchandler.h b/src/sync/synchandler.h new file mode 100644 index 00000000..30873fa5 --- /dev/null +++ b/src/sync/synchandler.h @@ -0,0 +1,52 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2011 by Andrea Diamantini <adjam7 at gmail dot com> +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program.  If not, see <http://www.gnu.org/licenses/>. +* +* ============================================================ */ + + +#ifndef SYNC_HANDLER_H +#define SYNC_HANDLER_H + + +// Rekonq Includes +#include "rekonq_defines.h" + +// Qt Includes +#include <QObject> + + +class SyncHandler : public QObject +{ +     +public: +    SyncHandler(QObject *parent = 0) : QObject(parent) {} +    virtual ~SyncHandler() {} +     +    virtual void syncHistory() = 0; +    virtual void syncBookmarks() = 0; +    virtual void syncPasswords() = 0; + +    virtual void firstTimeSync() = 0; +}; + +#endif // SYNC_HANDLER_H diff --git a/src/sync/syncmanager.cpp b/src/sync/syncmanager.cpp index b1da8c00..41a60179 100644 --- a/src/sync/syncmanager.cpp +++ b/src/sync/syncmanager.cpp @@ -36,28 +36,34 @@  #include "bookmarkmanager.h"  #include "historymanager.h"  #include "syncwidget.h" +#include "ftpsynchandler.h"  // KDE Includes -#include <KStandardDirs>  #include <klocalizedstring.h> -#include <KIO/Job> -#include <KIO/JobUiDelegate> -  SyncManager::SyncManager(QObject *parent)      : QObject(parent) -    , _firstTimeSynced(false)  {      loadSettings();  } +SyncManager::~SyncManager() +{ +    if (!_syncImplementation.isNull()) +    { +        delete _syncImplementation.data(); +        _syncImplementation.clear(); +    } +} + +  void SyncManager::loadSettings()  {      if (ReKonfig::syncEnabled())      { -        firstTimeSync(); +        resetSyncer();          // bookmarks          ReKonfig::syncBookmarks() @@ -70,6 +76,8 @@ void SyncManager::loadSettings()          ? connect(rApp->historyManager(), SIGNAL(historySaved()), this, SLOT(syncHistory()))          : disconnect(rApp->historyManager(), SIGNAL(historySaved()), this, SLOT(syncHistory()))          ; + +        // NOTE: password sync will be called just on save      }      else      { @@ -98,89 +106,15 @@ void SyncManager::showSettings()  } -void SyncManager::firstTimeSync() +void SyncManager::resetSyncer()  { -    // Bookmarks -    if (ReKonfig::syncBookmarks()) +    if (_syncImplementation.isNull())      { -        _remoteBookmarksUrl = QUrl(); -        _remoteBookmarksUrl.setHost(ReKonfig::syncHost()); -        _remoteBookmarksUrl.setScheme("ftp"); -        _remoteBookmarksUrl.setUserName(ReKonfig::syncUser()); -        _remoteBookmarksUrl.setPassword(ReKonfig::syncPass()); -        _remoteBookmarksUrl.setPort(ReKonfig::syncPort()); -        _remoteBookmarksUrl.setPath(ReKonfig::syncPath() + QL1S("/bookmarks.xml")); -        kDebug() << "REMOTE BK URL: " << _remoteBookmarksUrl; - -        const QString bookmarksFilePath = KStandardDirs::locateLocal("data", QL1S("konqueror/bookmarks.xml")); -        _localBookmarksUrl = KUrl(bookmarksFilePath); -        kDebug() << "LOCAL BK URL: " << _localBookmarksUrl; - -        KIO::StatJob *job = KIO::stat(_remoteBookmarksUrl, KIO::StatJob::DestinationSide, 0, KIO::HideProgressInfo); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksStatFinished(KJob *))); - -        _firstTimeSynced = true; +        // actually we have just FTP handler... +        _syncImplementation = new FTPSyncHandler(this);      } -    // History -    if (ReKonfig::syncHistory()) -    { -        _remoteHistoryUrl = QUrl(); -        _remoteHistoryUrl.setHost(ReKonfig::syncHost()); -        _remoteHistoryUrl.setScheme("ftp"); -        _remoteHistoryUrl.setUserName(ReKonfig::syncUser()); -        _remoteHistoryUrl.setPassword(ReKonfig::syncPass()); -        _remoteHistoryUrl.setPort(ReKonfig::syncPort()); -        _remoteHistoryUrl.setPath(ReKonfig::syncPath() + QL1S("/history")); -        kDebug() << "REMOTE HISTORY URL: " << _remoteHistoryUrl; - -        const QString historyFilePath = KStandardDirs::locateLocal("appdata", "history"); -        _localHistoryUrl = KUrl(historyFilePath); -        kDebug() << "LOCAL HISTORY URL: " << _localHistoryUrl; - -        KIO::StatJob *job = KIO::stat(_remoteHistoryUrl, KIO::StatJob::DestinationSide, 0, KIO::HideProgressInfo); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistoryStatFinished(KJob *))); - -        _firstTimeSynced = true; -    } - -    // Passwords -    if (ReKonfig::syncPasswords()) -    { -        _remotePasswordsUrl = QUrl(); -        _remotePasswordsUrl.setHost(ReKonfig::syncHost()); -        _remotePasswordsUrl.setScheme("ftp"); -        _remotePasswordsUrl.setUserName(ReKonfig::syncUser()); -        _remotePasswordsUrl.setPassword(ReKonfig::syncPass()); -        _remotePasswordsUrl.setPort(ReKonfig::syncPort()); -        _remotePasswordsUrl.setPath(ReKonfig::syncPath() + QL1S("/kdewallet.kwl")); -        kDebug() << "REMOTE PSWD URL: " << _remotePasswordsUrl; - -        const QString passwordsFilePath = KStandardDirs::locateLocal("data", QL1S("kwallet/kdewallet.kwl")); -        _localPasswordsUrl = KUrl(passwordsFilePath); -        kDebug() << "LOCAL PSWD URL: " << _localPasswordsUrl; - -        KIO::StatJob *job = KIO::stat(_remotePasswordsUrl, KIO::StatJob::DestinationSide, 0, KIO::HideProgressInfo); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsStatFinished(KJob *))); - -        _firstTimeSynced = true; -    } -} - - -bool SyncManager::syncRelativeEnabled(bool check) -{ -    if (!ReKonfig::syncEnabled()) -        return false; - -    if (!_firstTimeSynced) -    { -        kDebug() << "need to sync for the first time..."; -        firstTimeSync(); -        return false; -    } - -    return check; +    _syncImplementation.data()->firstTimeSync();  } @@ -189,131 +123,17 @@ bool SyncManager::syncRelativeEnabled(bool check)  void SyncManager::syncBookmarks()  { -    kDebug() << "syncing now..."; - -    if (!syncRelativeEnabled(ReKonfig::syncBookmarks())) -        return; - -    KIO::Job *job = KIO::file_copy(_localBookmarksUrl, _remoteBookmarksUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -    connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksSyncFinished(KJob *))); -} - - -void SyncManager::onBookmarksStatFinished(KJob *job) -{ -    if (job->error()) -    { -        KIO::Job *job = KIO::file_copy(_localBookmarksUrl, _remoteBookmarksUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksSyncFinished(KJob *))); -    } -    else -    { -        KIO::Job *job = KIO::file_copy(_remoteBookmarksUrl, _localBookmarksUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onBookmarksSyncFinished(KJob *))); -    } -} - - -void SyncManager::onBookmarksSyncFinished(KJob *job) -{ -    if (job->error()) -    { -        job->uiDelegate()->showErrorMessage(); -        emit syncBookmarksFinished(false); -        return; -    } - -    QDateTime now = QDateTime::currentDateTime(); -    ReKonfig::setLastSyncDateTime(now); -    emit syncBookmarksFinished(true); +    _syncImplementation.data()->syncBookmarks();  } -// --------------------------------------------------------------------------------------- - -  void SyncManager::syncHistory()  { -    kDebug() << "syncing now..."; - -    if (!syncRelativeEnabled(ReKonfig::syncHistory())) -        return; - -    KIO::Job *job = KIO::file_copy(_localHistoryUrl, _remoteHistoryUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -    connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistorySyncFinished(KJob *))); +    _syncImplementation.data()->syncHistory();  } -void SyncManager::onHistoryStatFinished(KJob *job) -{ -    if (job->error()) -    { -        KIO::Job *job = KIO::file_copy(_localHistoryUrl, _remoteHistoryUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistorySyncFinished(KJob *))); -    } -    else -    { -        KIO::Job *job = KIO::file_copy(_remoteHistoryUrl, _localHistoryUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onHistorySyncFinished(KJob *))); -    } -} - - -void SyncManager::onHistorySyncFinished(KJob *job) -{ -    if (job->error()) -    { -        job->uiDelegate()->showErrorMessage(); -        emit syncHistoryFinished(false); -        return; -    } - -    QDateTime now = QDateTime::currentDateTime(); -    ReKonfig::setLastSyncDateTime(now); -    emit syncHistoryFinished(true); -} - - -// --------------------------------------------------------------------------------------- - -  void SyncManager::syncPasswords()  { -    kDebug() << "syncing now..."; - -    if (!syncRelativeEnabled(ReKonfig::syncPasswords())) -        return; - -    KIO::Job *job = KIO::file_copy(_localPasswordsUrl, _remotePasswordsUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -    connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsSyncFinished(KJob *))); -} - - -void SyncManager::onPasswordsStatFinished(KJob *job) -{ -    if (job->error()) -    { -        KIO::Job *job = KIO::file_copy(_localPasswordsUrl, _remotePasswordsUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsSyncFinished(KJob *))); -    } -    else -    { -        KIO::Job *job = KIO::file_copy(_remotePasswordsUrl, _localPasswordsUrl, -1, KIO::HideProgressInfo | KIO::Overwrite); -        connect(job, SIGNAL(finished(KJob *)), this, SLOT(onPasswordsSyncFinished(KJob *))); -    } -} - - -void SyncManager::onPasswordsSyncFinished(KJob *job) -{ -    if (job->error()) -    { -        job->uiDelegate()->showErrorMessage(); -        emit syncPasswordsFinished(false); -        return; -    } - -    QDateTime now = QDateTime::currentDateTime(); -    ReKonfig::setLastSyncDateTime(now); -    emit syncPasswordsFinished(true); +    _syncImplementation.data()->syncPasswords();  } diff --git a/src/sync/syncmanager.h b/src/sync/syncmanager.h index 82fd3551..98536603 100644 --- a/src/sync/syncmanager.h +++ b/src/sync/syncmanager.h @@ -31,14 +31,12 @@  // Rekonq Includes  #include "rekonq_defines.h" +// Local Includes +#include "synchandler.h" +  // Qt Includes  #include <QObject> - -// KDE Includes -#include <KUrl> - -// Forward Declarations -class KJob; +#include <QWeakPointer>  class REKONQ_TESTS_EXPORT SyncManager : public QObject @@ -47,8 +45,9 @@ class REKONQ_TESTS_EXPORT SyncManager : public QObject  public:      SyncManager(QObject *parent = 0); - -    void firstTimeSync(); +    ~SyncManager(); +     +    void resetSyncer();  public Q_SLOTS:      void syncBookmarks(); @@ -59,33 +58,8 @@ private Q_SLOTS:      void loadSettings();      void showSettings(); -    void onBookmarksSyncFinished(KJob *); -    void onBookmarksStatFinished(KJob *); - -    void onHistorySyncFinished(KJob *); -    void onHistoryStatFinished(KJob *); - -    void onPasswordsSyncFinished(KJob *); -    void onPasswordsStatFinished(KJob *); - -Q_SIGNALS: -    void syncBookmarksFinished(bool); -    void syncHistoryFinished(bool); -    void syncPasswordsFinished(bool); -  private: -    bool syncRelativeEnabled(bool); - -    bool _firstTimeSynced; - -    QUrl _remoteBookmarksUrl; -    KUrl _localBookmarksUrl; - -    QUrl _remoteHistoryUrl; -    KUrl _localHistoryUrl; - -    QUrl _remotePasswordsUrl; -    KUrl _localPasswordsUrl; +    QWeakPointer<SyncHandler> _syncImplementation;  };  #endif // SYNC_MANAGER_H diff --git a/src/sync/syncwidget.cpp b/src/sync/syncwidget.cpp index a7adfd3d..f1e79da6 100644 --- a/src/sync/syncwidget.cpp +++ b/src/sync/syncwidget.cpp @@ -80,7 +80,7 @@ void SyncWidget::save()      ReKonfig::setSyncPath(kcfg_syncPath->text());      ReKonfig::setSyncPort(kcfg_syncPort->value()); -    rApp->syncManager()->firstTimeSync(); +    rApp->syncManager()->resetSyncer();  } @@ -118,7 +118,7 @@ void SyncWidget::setSyncLabel(const QDateTime &dt)  void SyncWidget::syncNow()  { -    rApp->syncManager()->firstTimeSync(); +    rApp->syncManager()->resetSyncer();      // TODO do something in the sync UI...  } | 
