mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-24 05:55:59 +03:00
remove journal when adding a new sync on an existing folder
This commit is contained in:
parent
d7d77a49fc
commit
12148b5c9b
3 changed files with 29 additions and 1 deletions
|
@ -698,6 +698,8 @@ void Application::slotAddFolder()
|
||||||
_folderMan->setSyncEnabled(true); // do start sync again.
|
_folderMan->setSyncEnabled(true); // do start sync again.
|
||||||
|
|
||||||
if( goodData ) {
|
if( goodData ) {
|
||||||
|
if (!FolderMan::ensureJournalGone( sourceFolder ))
|
||||||
|
return;
|
||||||
_folderMan->addFolderDefinition( backend, alias, sourceFolder, targetPath, onlyThisLAN );
|
_folderMan->addFolderDefinition( backend, alias, sourceFolder, targetPath, onlyThisLAN );
|
||||||
Folder *f = _folderMan->setupFolderFromConfigFile( alias );
|
Folder *f = _folderMan->setupFolderFromConfigFile( alias );
|
||||||
if( f ) {
|
if( f ) {
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QtCore>
|
#include <QtCore>
|
||||||
|
|
||||||
namespace Mirall {
|
namespace Mirall {
|
||||||
|
@ -125,6 +126,24 @@ void FolderMan::wipeAllJournals()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FolderMan::ensureJournalGone(const QString &localPath)
|
||||||
|
{
|
||||||
|
|
||||||
|
// remove old .csync_journal file
|
||||||
|
QString stateDbFile = localPath+QLatin1String(".csync_journal.db");
|
||||||
|
while (!QFile::remove(stateDbFile)) {
|
||||||
|
int ret = QMessageBox::warning(0, tr("Could not reset folder state"),
|
||||||
|
tr("An old sync journal '%1' was found, "
|
||||||
|
"but could not be removed. Please make sure "
|
||||||
|
"that no application is currently using it.")
|
||||||
|
.arg(QDir::fromNativeSeparators(stateDbFile)),
|
||||||
|
QMessageBox::Retry|QMessageBox::Abort);
|
||||||
|
if (ret == QMessageBox::Abort) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void FolderMan::terminateCurrentSync()
|
void FolderMan::terminateCurrentSync()
|
||||||
{
|
{
|
||||||
if( !_currentSyncFolder.isEmpty() ) {
|
if( !_currentSyncFolder.isEmpty() ) {
|
||||||
|
@ -243,7 +262,7 @@ Folder* FolderMan::setupFolderFromConfigFile(const QString &file) {
|
||||||
folder->setConfigFile(file);
|
folder->setConfigFile(file);
|
||||||
} else {
|
} else {
|
||||||
qWarning() << "unknown backend" << backend;
|
qWarning() << "unknown backend" << backend;
|
||||||
return NULL;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,13 @@ public:
|
||||||
*/
|
*/
|
||||||
void wipeAllJournals();
|
void wipeAllJournals();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensures that a given directory does not contain a .csync_journal.
|
||||||
|
*
|
||||||
|
* @returns false if the journal could not be removed, false otherwise.
|
||||||
|
*/
|
||||||
|
static bool ensureJournalGone(const QString &path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new and empty local directory.
|
* Creates a new and empty local directory.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue