From: Olivier Goffart Date: Mon, 29 May 2017 11:00:43 +0000 (+0200) Subject: FolderStatusModel: fix assert in Qt when the list of subfolder is empty X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~710^2~26 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c17a6783856720db84516a2e5deb39d4772372ce;p=nextcloud-desktop.git FolderStatusModel: fix assert in Qt when the list of subfolder is empty Fix an assert that happens in beginInsertRows when opening a folder and that folder is empty. This can only be reproduced with a debug build of Qt. --- diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index 037285b53..b0f83e9c8 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -614,6 +614,8 @@ void FolderStatusModel::slotUpdateDirectories(const QStringList &list) if (!parentInfo) { return; } + ASSERT(parentInfo->_fetching); // we should only get a result if we were doing a fetch + ASSERT(parentInfo->_subs.isEmpty()); if (parentInfo->hasLabel()) { beginRemoveRows(idx, 0, 0); @@ -712,9 +714,11 @@ void FolderStatusModel::slotUpdateDirectories(const QStringList &list) newSubs.append(newInfo); } - beginInsertRows(idx, 0, newSubs.size() - 1); - parentInfo->_subs = std::move(newSubs); - endInsertRows(); + if (!newSubs.isEmpty()) { + beginInsertRows(idx, 0, newSubs.size() - 1); + parentInfo->_subs = std::move(newSubs); + endInsertRows(); + } for (auto it = undecidedIndexes.begin(); it != undecidedIndexes.end(); ++it) { suggestExpand(idx.child(*it, 0));