mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-21 20:45:51 +03:00
Ensure on removal of share that display string is updated for last (now non-)duplicate share
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
10ff7dddbd
commit
d07cb2c69f
1 changed files with 18 additions and 2 deletions
|
@ -647,10 +647,26 @@ void ShareModel::slotRemoveShareWithId(const QString &shareId)
|
|||
const auto sharee = share->getShareWith();
|
||||
slotRemoveSharee(sharee);
|
||||
|
||||
beginRemoveRows({}, shareIndex.row(), shareIndex.row());
|
||||
_shares.removeAt(shareIndex.row());
|
||||
const auto shareRow = shareIndex.row();
|
||||
beginRemoveRows({}, shareRow, shareRow);
|
||||
_shares.removeAt(shareRow);
|
||||
endRemoveRows();
|
||||
|
||||
// Handle display name duplicates now. First remove the index from the bucket it was in; then,
|
||||
// check if this removal means the remaining index in the bucket is no longer a duplicate.
|
||||
// If this is the case then handle the update for this item too.
|
||||
const auto duplicateShares = _duplicateDisplayNameShareIndices.value(shareRow);
|
||||
if (duplicateShares) {
|
||||
duplicateShares->remove(shareRow);
|
||||
if (duplicateShares->count() == 1) {
|
||||
const auto noLongerDuplicateIndex = *(duplicateShares->begin());
|
||||
_duplicateDisplayNameShareIndices.remove(noLongerDuplicateIndex);
|
||||
const auto noLongerDuplicateModelIndex = index(noLongerDuplicateIndex);
|
||||
Q_EMIT dataChanged(noLongerDuplicateModelIndex, noLongerDuplicateModelIndex, {Qt::DisplayRole});
|
||||
}
|
||||
_duplicateDisplayNameShareIndices.remove(shareRow);
|
||||
}
|
||||
|
||||
handleLinkShare();
|
||||
|
||||
Q_EMIT sharesChanged();
|
||||
|
|
Loading…
Reference in a new issue