diff options
-rw-r--r-- | konq-plugins/rsync/rsyncplugin.cpp | 79 | ||||
-rw-r--r-- | konq-plugins/rsync/rsyncplugin.h | 5 |
2 files changed, 81 insertions, 3 deletions
diff --git a/konq-plugins/rsync/rsyncplugin.cpp b/konq-plugins/rsync/rsyncplugin.cpp index 109c503..3c4ae1a 100644 --- a/konq-plugins/rsync/rsyncplugin.cpp +++ b/konq-plugins/rsync/rsyncplugin.cpp @@ -73,6 +73,7 @@ #include <kinstance.h> #include <kwin.h> +#include <kurl.h> #include <kaction.h> #include <kpopupmenu.h> #include <kmessagebox.h> @@ -828,6 +829,9 @@ QString RsyncPlugin::findLocalFolderByName(QString folderurl) return (*i); i++; i++; + i++; + i++; + i++; } } return NULL; @@ -844,6 +848,66 @@ QString RsyncPlugin::findSyncMethodByName(QString folderurl) i++; return (*i); i++; + i++; + i++; + i++; + } + } + return NULL; +} + +QString RsyncPlugin::findLoginSyncEnabledByName(QString folderurl) +{ + QString folderurl_stripped; + folderurl_stripped = folderurl; + folderurl_stripped.replace(QString("file://"), QString("")); + for (QStringList::Iterator i(cfgfolderlist.begin()); i != cfgfolderlist.end(); ++i) { + if (QString::compare((*i), folderurl_stripped) == 0) { + i++; + i++; + i++; + i++; + return (*i); + i++; + i++; + } + } + return NULL; +} + +QString RsyncPlugin::findLogoutSyncEnabledByName(QString folderurl) +{ + QString folderurl_stripped; + folderurl_stripped = folderurl; + folderurl_stripped.replace(QString("file://"), QString("")); + for (QStringList::Iterator i(cfgfolderlist.begin()); i != cfgfolderlist.end(); ++i) { + if (QString::compare((*i), folderurl_stripped) == 0) { + i++; + i++; + i++; + i++; + i++; + return (*i); + i++; + } + } + return NULL; +} + +QString RsyncPlugin::findTimedSyncEnabledByName(QString folderurl) +{ + QString folderurl_stripped; + folderurl_stripped = folderurl; + folderurl_stripped.replace(QString("file://"), QString("")); + for (QStringList::Iterator i(cfgfolderlist.begin()); i != cfgfolderlist.end(); ++i) { + if (QString::compare((*i), folderurl_stripped) == 0) { + i++; + i++; + i++; + i++; + i++; + i++; + return (*i); } } return NULL; @@ -859,6 +923,9 @@ int RsyncPlugin::deleteLocalFolderByName(QString folderurl) i=cfgfolderlist.remove(i); i=cfgfolderlist.remove(i); i=cfgfolderlist.remove(i); + i=cfgfolderlist.remove(i); + i=cfgfolderlist.remove(i); + i=cfgfolderlist.remove(i); cfgfolderlist.remove(i); return 0; } @@ -866,7 +933,7 @@ int RsyncPlugin::deleteLocalFolderByName(QString folderurl) return 1; } -int RsyncPlugin::addLocalFolderByName(QString folderurl, QString remoteurl, QString syncmethod, QString excludelist) +int RsyncPlugin::addLocalFolderByName(QString folderurl, QString remoteurl, QString syncmethod, QString excludelist, QString sync_on_login, QString sync_on_logout, QString sync_timed_interval) { QString folderurl_stripped; folderurl_stripped = folderurl; @@ -875,6 +942,9 @@ int RsyncPlugin::addLocalFolderByName(QString folderurl, QString remoteurl, QStr cfgfolderlist.append(remoteurl); cfgfolderlist.append(syncmethod); cfgfolderlist.append(excludelist); + cfgfolderlist.append(sync_on_login); + cfgfolderlist.append(sync_on_logout); + cfgfolderlist.append(sync_timed_interval); return 1; } @@ -885,6 +955,7 @@ void RsyncPlugin::slotOpenURL () if (m_pURL != url) { // See if this URL is "/", "/dev", or "/proc", and disable sync if so + // Also disable sync for non-"file://" URLs if ((url.directory(true, true) + QString("/") + url.fileName(true)) == "//") { m_pSyncSetup->setEnabled(false); m_pSyncNow->setEnabled(false); @@ -897,6 +968,10 @@ void RsyncPlugin::slotOpenURL () m_pSyncSetup->setEnabled(false); m_pSyncNow->setEnabled(false); } + else if (url.protocol() != QString("file")) { + m_pSyncSetup->setEnabled(false); + m_pSyncNow->setEnabled(false); + } else { m_pSyncSetup->setEnabled(true); @@ -971,7 +1046,7 @@ void RsyncPlugin::slotSetupOK() deleteLocalFolderByName(localfolder); } if (remotefolder_new.isEmpty() == false) { - addLocalFolderByName(localfolder, remotefolder_new, syncmethod_new, ""); + addLocalFolderByName(localfolder, remotefolder_new, syncmethod_new, "", "0", "0", "-1"); } saveSettings(); diff --git a/konq-plugins/rsync/rsyncplugin.h b/konq-plugins/rsync/rsyncplugin.h index 96a3caa..67af3d5 100644 --- a/konq-plugins/rsync/rsyncplugin.h +++ b/konq-plugins/rsync/rsyncplugin.h @@ -58,8 +58,11 @@ protected: void loadSettings(); void saveSettings(); QString findLocalFolderByName(QString folderurl); + QString findLoginSyncEnabledByName(QString folderurl); + QString findLogoutSyncEnabledByName(QString folderurl); + QString findTimedSyncEnabledByName(QString folderurl); int deleteLocalFolderByName(QString folderurl); - int addLocalFolderByName(QString folderurl, QString remoteurl, QString syncmethod, QString excludelist); + int addLocalFolderByName(QString folderurl, QString remoteurl, QString syncmethod, QString excludelist, QString sync_on_login, QString sync_on_logout, QString sync_timed_interval); QString findSyncMethodByName(QString folderurl); /** manages initial communication setup including password queries */ int establishConnectionRsync(char *buffer, KIO::fileoffset_t len); |