mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Delete existing folders properly before adding new ones.
This commit is contained in:
parent
28fcd75494
commit
f62626e3eb
@ -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();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user