Really unload folders before reconfiguring.

This commit is contained in:
Klaas Freitag 2013-06-03 17:26:48 +02:00
parent 7c1f91abdd
commit 49b4c341ae
3 changed files with 22 additions and 11 deletions

View file

@ -79,20 +79,28 @@ void FolderMan::slotReparseConfiguration()
setupKnownFolders();
}
int FolderMan::unloadAllFolders()
{
// first terminate sync jobs.
terminateCurrentSync();
int cnt = 0;
// clear the list of existing folders.
Folder::MapIterator i(_folderMap);
while (i.hasNext()) {
i.next();
delete _folderMap.take( i.key() );
cnt++;
}
return cnt;
}
int FolderMan::setupKnownFolders()
{
qDebug() << "* Setup folders from " << _folderConfigPath;
// first terminate sync jobs.
terminateCurrentSync();
// clear the list of existing folders.
Folder::MapIterator i(_folderMap);
while (i.hasNext()) {
i.next();
delete _folderMap.take( i.key() );
}
unloadAllFolders();
QDir dir( _folderConfigPath );
dir.setFilter(QDir::Files);

View file

@ -104,6 +104,9 @@ public slots:
void terminateSyncProcess( const QString& alias = QString::null );
/* delete all folder objects */
int unloadAllFolders();
// if enabled is set to false, no new folders will start to sync.
// the current one will finish.
void setSyncEnabled( bool );

View file

@ -128,9 +128,9 @@ void OwncloudSetupWizard::slotAssistantFinished( int result )
bool acceptCfg = true;
if( urlHasChanged ) {
_folderMan->terminateSyncProcess( QString::null ); // terminate the current sync.
_folderMan->unloadAllFolders();
bool startFromScratch = _ocWizard->field( "OCSyncFromScratch" ).toBool();
bool startFromScratch = _ocWizard->field( "OCSyncFromScratch" ).toBool();
if( startFromScratch ) {
// first try to rename (backup) the current local dir.
bool renameOk = false;