From: Kevin Ottens Date: Tue, 30 Jun 2020 15:47:10 +0000 (+0200) Subject: Properly display encryption status for non root folder connection X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~125^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=cb9ba9702b2fa3ebaabbfc2845554ec0308e25c8;p=nextcloud-desktop.git Properly display encryption status for non root folder connection Since the e2e oracle works only in term of absolute remote paths and that our model x._path was relative, we need to properly convert. Signed-off-by: Kevin Ottens --- diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index 88cf04db9..e92c63cd4 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -153,13 +153,17 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const return QString(QLatin1String("") + Utility::escape(x._size < 0 ? x._name : tr("%1 (%2)").arg(x._name, Utility::octetsToString(x._size))) + QLatin1String("")); case Qt::CheckStateRole: return x._checked; - case Qt::DecorationRole: - if (_accountState->account()->e2e()->isFolderEncrypted(x._path)) { + case Qt::DecorationRole: { + Q_ASSERT(x._folder->remotePath().startsWith('/')); + const auto rootPath = x._folder->remotePath().mid(1); + const auto absoluteRemotePath = rootPath.isEmpty() ? x._path : rootPath + '/' + x._path; + if (_accountState->account()->e2e()->isFolderEncrypted(absoluteRemotePath)) { return QIcon(QLatin1String(":/client/theme/lock-https.svg")); - } else if (x._size > 0 && _accountState->account()->e2e()->isAnyParentFolderEncrypted(x._path)) { + } else if (x._size > 0 && _accountState->account()->e2e()->isAnyParentFolderEncrypted(absoluteRemotePath)) { return QIcon(QLatin1String(":/client/theme/lock-broken.svg")); } return QFileIconProvider().icon(x._isExternal ? QFileIconProvider::Network : QFileIconProvider::Folder); + } case Qt::ForegroundRole: if (x._isUndecided) { return QColor(Qt::red);