diff options
author | Klaas Freitag <freitag@owncloud.com> | 2016-04-06 16:01:28 +0300 |
---|---|---|
committer | Klaas Freitag <freitag@owncloud.com> | 2016-04-06 16:01:28 +0300 |
commit | 7b1f02fcda7bdcb22853ed0d5974c2f2c5f21125 (patch) | |
tree | f6057f2df02565ed1d771ff4e7f955d7dc57dcc9 /src/gui/selectivesyncdialog.cpp | |
parent | 15bdb7be640d54373a8c7660a0ee2fcfaacff999 (diff) |
SelectiveSync: Verify if the list could be read from journal.
If there is a read error from the database while trying to get
the list from database, make sure to not behave badly because
the list is empty.
Diffstat (limited to 'src/gui/selectivesyncdialog.cpp')
-rw-r--r-- | src/gui/selectivesyncdialog.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/gui/selectivesyncdialog.cpp b/src/gui/selectivesyncdialog.cpp index 62461740c..abc981817 100644 --- a/src/gui/selectivesyncdialog.cpp +++ b/src/gui/selectivesyncdialog.cpp @@ -391,12 +391,17 @@ qint64 SelectiveSyncTreeView::estimatedSize(QTreeWidgetItem* root) SelectiveSyncDialog::SelectiveSyncDialog(AccountPtr account, Folder* folder, QWidget* parent, Qt::WindowFlags f) - : QDialog(parent, f), _folder(folder) + : QDialog(parent, f), _folder(folder), + _okButton(0) // defined in init() { + bool ok; init(account, tr("Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore")); - _treeView->setFolderInfo(_folder->remotePath(), _folder->alias(), - _folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList)); - + QStringList selectiveSyncList = _folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, &ok); + if( ok ) { + _treeView->setFolderInfo(_folder->remotePath(), _folder->alias(),selectiveSyncList); + } else { + _okButton->setEnabled(false); + } // Make sure we don't get crashes if the folder is destroyed while we are still open connect(_folder, SIGNAL(destroyed(QObject*)), this, SLOT(deleteLater())); } @@ -422,9 +427,9 @@ void SelectiveSyncDialog::init(const AccountPtr &account, const QString &labelTe layout->addWidget(label); layout->addWidget(_treeView); QDialogButtonBox *buttonBox = new QDialogButtonBox(Qt::Horizontal); + _okButton = buttonBox->addButton(QDialogButtonBox::Ok); + connect(_okButton, SIGNAL(clicked()), this, SLOT(accept())); QPushButton *button; - button = buttonBox->addButton(QDialogButtonBox::Ok); - connect(button, SIGNAL(clicked()), this, SLOT(accept())); button = buttonBox->addButton(QDialogButtonBox::Cancel); connect(button, SIGNAL(clicked()), this, SLOT(reject())); layout->addWidget(buttonBox); @@ -433,7 +438,11 @@ void SelectiveSyncDialog::init(const AccountPtr &account, const QString &labelTe void SelectiveSyncDialog::accept() { if (_folder) { - auto oldBlackListSet = _folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList).toSet(); + bool ok; + auto oldBlackListSet = _folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, &ok).toSet(); + if( ! ok ) { + return; + } QStringList blackList = _treeView->createBlackList(); _folder->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, blackList); |