Update the FolderStatusModel when a folder encryption ends

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
This commit is contained in:
Kevin Ottens 2020-12-08 18:05:29 +01:00
parent 596bfab6e1
commit 9f0e0b0f6a
No known key found for this signature in database
GPG key ID: 074BBBCB8DECC9E2
3 changed files with 16 additions and 2 deletions

View file

@ -59,6 +59,10 @@
#include "account.h"
namespace {
constexpr auto propertyFolderInfo = "folderInfo";
}
namespace OCC {
Q_LOGGING_CATEGORY(lcAccountSettings, "nextcloud.gui.account.settings", QtInfoMsg)
@ -239,6 +243,13 @@ void AccountSettings::slotEncryptFolderFinished(int status)
if (!job->errorString().isEmpty()) {
QMessageBox::warning(nullptr, tr("Warning"), job->errorString());
}
const auto folderInfo = job->property(propertyFolderInfo).value<FolderStatusModel::SubFolderInfo*>();
Q_ASSERT(folderInfo);
const auto index = _model->indexForPath(folderInfo->_folder, folderInfo->_path);
Q_ASSERT(index.isValid());
_model->resetAndFetch(index.parent());
job->deleteLater();
}
@ -297,7 +308,7 @@ bool AccountSettings::canEncryptOrDecrypt (const FolderStatusModel::SubFolderInf
return true;
}
void AccountSettings::slotMarkSubfolderEncrypted(const FolderStatusModel::SubFolderInfo* folderInfo)
void AccountSettings::slotMarkSubfolderEncrypted(FolderStatusModel::SubFolderInfo* folderInfo)
{
if (!canEncryptOrDecrypt(folderInfo)) {
return;
@ -309,6 +320,7 @@ void AccountSettings::slotMarkSubfolderEncrypted(const FolderStatusModel::SubFol
const auto path = folderInfo->_path.chopped(1);
auto job = new OCC::EncryptFolderJob(accountsState()->account(), folderInfo->_folder->journalDb(), path, folderInfo->_fileId, this);
job->setProperty(propertyFolderInfo, QVariant::fromValue(folderInfo));
connect(job, &OCC::EncryptFolderJob::finished, this, &AccountSettings::slotEncryptFolderFinished);
job->start();
}

View file

@ -94,7 +94,7 @@ protected slots:
void slotDeleteAccount();
void slotToggleSignInState();
void refreshSelectiveSyncStatus();
void slotMarkSubfolderEncrypted(const FolderStatusModel::SubFolderInfo* folderInfo);
void slotMarkSubfolderEncrypted(FolderStatusModel::SubFolderInfo *folderInfo);
void slotSubfolderContextMenuRequested(const QModelIndex& idx, const QPoint& point);
void slotCustomContextMenuRequested(const QPoint &);
void slotFolderListClicked(const QModelIndex &indx);

View file

@ -163,4 +163,6 @@ signals:
} // namespace OCC
Q_DECLARE_METATYPE(OCC::FolderStatusModel::SubFolderInfo*)
#endif // FOLDERSTATUSMODEL_H