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
diff options
context:
space:
mode:
authorKlaas Freitag <freitag@owncloud.com>2016-04-06 16:01:28 +0300
committerKlaas Freitag <freitag@owncloud.com>2016-04-06 16:01:28 +0300
commit7b1f02fcda7bdcb22853ed0d5974c2f2c5f21125 (patch)
treef6057f2df02565ed1d771ff4e7f955d7dc57dcc9 /src/gui/selectivesyncdialog.cpp
parent15bdb7be640d54373a8c7660a0ee2fcfaacff999 (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.cpp23
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);