diff --git a/libtaskmanager/launchertasksmodel.cpp b/libtaskmanager/launchertasksmodel.cpp index 5be31b751..63a493d1c 100644 --- a/libtaskmanager/launchertasksmodel.cpp +++ b/libtaskmanager/launchertasksmodel.cpp @@ -475,31 +475,14 @@ void LauncherTasksModel::setLauncherList(const QStringList &serializedLaunchers) if (newLaunchersOrder != d->launchersOrder || newActivitiesForLauncher != d->activitiesForLauncher) { - // Common case optimization: If the list changed but its size - // did not (e.g. due to reordering by a user of this model), - // just clear the caches and announce new data instead of - // resetting. - if (newLaunchersOrder.count() == d->launchersOrder.count()) { - d->appDataCache.clear(); + beginResetModel(); - std::swap(newLaunchersOrder, d->launchersOrder); - std::swap(newActivitiesForLauncher, d->activitiesForLauncher); + std::swap(newLaunchersOrder, d->launchersOrder); + std::swap(newActivitiesForLauncher, d->activitiesForLauncher); - emit dataChanged( - index(0, 0), - index(d->launchersOrder.count() - 1, 0)); + d->appDataCache.clear(); - } else { - beginResetModel(); - - std::swap(newLaunchersOrder, d->launchersOrder); - std::swap(newActivitiesForLauncher, d->activitiesForLauncher); - - d->appDataCache.clear(); - - endResetModel(); - - } + endResetModel(); emit launcherListChanged(); }