Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKlaas Freitag <freitag@owncloud.com>2013-02-10 14:00:22 +0400
committerKlaas Freitag <freitag@owncloud.com>2013-02-10 14:02:38 +0400
commitf62626e3eb2751cdff07ae04ee1e98fe87dfb669 (patch)
treedb9b868829046f43e03b48dae109fffa5f07714e /src
parent28fcd75494038379e5a137065a892ba64cde498c (diff)
Delete existing folders properly before adding new ones.
Diffstat (limited to 'src')
-rw-r--r--src/mirall/folderman.cpp45
1 files changed, 24 insertions, 21 deletions
diff --git a/src/mirall/folderman.cpp b/src/mirall/folderman.cpp
index 7c33fbfa4..384a39af0 100644
--- a/src/mirall/folderman.cpp
+++ b/src/mirall/folderman.cpp
@@ -35,7 +35,8 @@ namespace Mirall {
FolderMan::FolderMan(QObject *parent) :
QObject(parent),
- _customPollInterval(0)
+ _customPollInterval(0),
+ _syncEnabled( true )
{
// if QDir::mkpath would not be so stupid, I would not need to have this
// duplication of folderConfigPath() here
@@ -85,7 +86,17 @@ int FolderMan::setupKnownFolders()
{
qDebug() << "* Setup folders from " << _folderConfigPath;
- _folderMap.clear(); // FIXME: check if delete of folder structure happens
+ // first terminate sync jobs.
+ if( ! _currentSyncFolder.isEmpty() )
+ terminateSyncProcess(_currentSyncFolder);
+
+ // clear the list of existing folders.
+ Folder::MapIterator i(_folderMap);
+ while (i.hasNext()) {
+ i.next();
+ delete _folderMap.take( i.key() );
+ }
+
QDir dir( _folderConfigPath );
dir.setFilter(QDir::Files);
@@ -281,25 +292,6 @@ Folder* FolderMan::setupFolderFromConfigFile(const QString &file) {
return folder;
}
-void FolderMan::disableFoldersWithRestore()
-{
- _folderEnabledMap.clear();
- foreach( Folder *f, _folderMap ) {
- // store the enabled state, then make sure it is disabled
- _folderEnabledMap.insert(f->alias(), f->syncEnabled());
- f->setSyncEnabled(false);
- }
-}
-
-void FolderMan::restoreEnabledFolders()
-{
- foreach( Folder *f, _folderMap ) {
- if (_folderEnabledMap.contains( f->alias() )) {
- f->setSyncEnabled( _folderEnabledMap.value( f->alias() ) );
- }
- }
-}
-
void FolderMan::slotEnableFolder( const QString& alias, bool enable )
{
if( ! _folderMap.contains( alias ) ) {
@@ -379,6 +371,12 @@ void FolderMan::slotScheduleSync( const QString& alias )
}
}
+void FolderMan::setSyncEnabled( bool enabled )
+{
+ _syncEnabled = enabled;
+ slotScheduleFolderSync();
+}
+
/*
* slot to start folder syncs.
* It is either called from the slot where folders enqueue themselves for
@@ -391,6 +389,11 @@ void FolderMan::slotScheduleFolderSync()
return;
}
+ if( ! _syncEnabled ) {
+ qDebug() << "FolderMan: Syncing is disabled, no scheduling.";
+ return;
+ }
+
qDebug() << "XX slotScheduleFolderSync: folderQueue size: " << _scheduleQueue.count();
if( ! _scheduleQueue.isEmpty() ) {
const QString alias = _scheduleQueue.takeFirst();