]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Some code cleanup as per suggestions
authorZakhar Afonin <zakharafoniam@gmail.com>
Sat, 22 Jun 2024 09:31:29 +0000 (12:31 +0300)
committerZakhar Afonin <zakharafoniam@gmail.com>
Sat, 22 Jun 2024 09:31:29 +0000 (12:31 +0300)
src/kitemviews/kfileitemlistview.cpp
src/kitemviews/kfileitemmodel.cpp
src/kitemviews/kfileitemmodel.h
src/kitemviews/kitemmodelbase.cpp
src/kitemviews/kitemmodelbase.h

index d763fe287924325b3a92e62c1e74c109cdd06cd7..d58a1a8baf3ac982d82135f1ed1ba55a2ae41404 100644 (file)
@@ -452,8 +452,9 @@ void KFileItemListView::applyRolesToModel()
         roles.insert("expandedParentsCount");
     }
 
-    // Assure that the role that is used for sorting will be determined
+    // Assure that the roles used for sorting and grouping will be determined
     roles.insert(fileItemModel->sortRole());
+    roles.insert(fileItemModel->groupRole());
 
     fileItemModel->setRoles(roles);
     m_modelRolesUpdater->setRoles(roles);
index b77592b0ec9ca839f2b18c10f944f05ddc3b946d..9464c7e09b09bf0fd5fcd38e3f285a6a76d15626 100644 (file)
@@ -975,14 +975,10 @@ void KFileItemModel::onSortRoleChanged(const QByteArray &current, const QByteArr
     }
 }
 
-void KFileItemModel::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems)
+void KFileItemModel::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
 {
     Q_UNUSED(current)
     Q_UNUSED(previous)
-
-    if (resortItems) {
-        resortAllItems();
-    }
 }
 
 void KFileItemModel::onGroupRoleChanged(const QByteArray &current, const QByteArray &previous, bool resortItems)
@@ -1008,14 +1004,10 @@ void KFileItemModel::onGroupRoleChanged(const QByteArray &current, const QByteAr
     }
 }
 
-void KFileItemModel::onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems)
+void KFileItemModel::onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
 {
     Q_UNUSED(current)
     Q_UNUSED(previous)
-
-    if (resortItems) {
-        resortAllItems();
-    }
 }
 
 void KFileItemModel::loadSortingSettings()
@@ -1716,9 +1708,9 @@ QList<KFileItemModel::ItemData *> KFileItemModel::createItemDataList(const QUrl
     return itemDataList;
 }
 
-void KFileItemModel::prepareItemsForSorting(QList<ItemData *> &itemDataList)
+void KFileItemModel::prepareItemsWithRole(QList<ItemData *> &itemDataList, RoleType roleType)
 {
-    switch (m_sortRole) {
+    switch (roleType) {
     case ExtensionRole:
     case PermissionsRole:
     case OwnerRole:
@@ -1755,35 +1747,12 @@ void KFileItemModel::prepareItemsForSorting(QList<ItemData *> &itemDataList)
         // DateRole).
         break;
     }
-    switch (m_groupRole) {
-    case ExtensionRole:
-    case PermissionsRole:
-    case OwnerRole:
-    case GroupRole:
-    case DestinationRole:
-    case PathRole:
-    case DeletionTimeRole:
-        for (ItemData *itemData : std::as_const(itemDataList)) {
-            if (itemData->values.isEmpty()) {
-                itemData->values = retrieveData(itemData->item, itemData->parent);
-            }
-        }
-        break;
-
-    case TypeRole:
-        for (ItemData *itemData : std::as_const(itemDataList)) {
-            if (itemData->values.isEmpty()) {
-                const KFileItem item = itemData->item;
-                if (item.isDir() || item.isMimeTypeKnown()) {
-                    itemData->values = retrieveData(itemData->item, itemData->parent);
-                }
-            }
-        }
-        break;
+}
 
-    default:
-        break;
-    }
+void KFileItemModel::prepareItemsForSorting(QList<ItemData *> &itemDataList)
+{
+    prepareItemsWithRole(itemDataList, m_sortRole);
+    prepareItemsWithRole(itemDataList, m_groupRole);
 }
 
 int KFileItemModel::expandedParentsCount(const ItemData *data)
index fc2f1b6c8c41b03963a50b3185d51b98562eb1fe..edc77457babc9dddefcfb33731fb6523322b4f35 100644 (file)
@@ -293,9 +293,9 @@ Q_SIGNALS:
 protected:
     void onGroupedSortingChanged(bool current) override;
     void onSortRoleChanged(const QByteArray &current, const QByteArray &previous, bool resortItems = true) override;
-    void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems = true) override;
+    void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override;
     void onGroupRoleChanged(const QByteArray &current, const QByteArray &previous, bool resortItems = true) override;
-    void onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems = true) override;
+    void onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override;
 
 private Q_SLOTS:
     /**
@@ -396,6 +396,12 @@ private:
      */
     QList<ItemData *> createItemDataList(const QUrl &parentUrl, const KFileItemList &items) const;
 
+    /**
+     * Helper method for prepareItemsForSorting(). 
+     * For a set role, fills 'values' of ItemData non-lazily.
+     */
+    void prepareItemsWithRole(QList<ItemData *> &itemDataList, RoleType roleType);
+
     /**
      * Prepares the items for sorting. Normally, the hash 'values' in ItemData is filled
      * lazily to save time and memory, but for some sort roles, it is expected that the
index b846318ee799e8327c62b271d3b87ab2cc816ffc..2f8e1e4a308be55ecef3f8cc4d70194f64218478 100644 (file)
@@ -68,12 +68,12 @@ QByteArray KItemModelBase::sortRole() const
     return m_sortRole;
 }
 
-void KItemModelBase::setSortOrder(Qt::SortOrder order, bool resortItems)
+void KItemModelBase::setSortOrder(Qt::SortOrder order)
 {
     if (order != m_sortOrder) {
         const Qt::SortOrder previous = m_sortOrder;
         m_sortOrder = order;
-        onSortOrderChanged(order, previous, resortItems);
+        onSortOrderChanged(order, previous);
         Q_EMIT sortOrderChanged(order, previous);
     }
 }
@@ -93,12 +93,12 @@ QByteArray KItemModelBase::groupRole() const
     return m_groupRole;
 }
 
-void KItemModelBase::setGroupOrder(Qt::SortOrder order, bool resortItems)
+void KItemModelBase::setGroupOrder(Qt::SortOrder order)
 {
     if (order != m_groupOrder) {
         const Qt::SortOrder previous = m_groupOrder;
         m_groupOrder = order;
-        onGroupOrderChanged(order, previous, resortItems);
+        onGroupOrderChanged(order, previous);
         Q_EMIT groupOrderChanged(order, previous);
     }
 }
@@ -180,11 +180,10 @@ void KItemModelBase::onSortRoleChanged(const QByteArray &current, const QByteArr
     Q_UNUSED(resortItems)
 }
 
-void KItemModelBase::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems)
+void KItemModelBase::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
 {
     Q_UNUSED(current)
     Q_UNUSED(previous)
-    Q_UNUSED(resortItems)
 }
 
 void KItemModelBase::onGroupRoleChanged(const QByteArray &current, const QByteArray &previous, bool resortItems)
@@ -194,11 +193,10 @@ void KItemModelBase::onGroupRoleChanged(const QByteArray &current, const QByteAr
     Q_UNUSED(resortItems)
 }
 
-void KItemModelBase::onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems)
+void KItemModelBase::onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
 {
     Q_UNUSED(current)
     Q_UNUSED(previous)
-    Q_UNUSED(resortItems)
 }
 
 QUrl KItemModelBase::url(int index) const
index c336a0726585249281cbde2a4b227041ba949814..bc8ab64427d40577b300bcf82935b1f632fc33b6 100644 (file)
@@ -81,7 +81,7 @@ public:
      * called so that model-implementations can react on the sort order change. Afterwards the
      * signal sortOrderChanged() will be emitted.
      */
-    void setSortOrder(Qt::SortOrder order, bool resortItems = true);
+    void setSortOrder(Qt::SortOrder order);
     Qt::SortOrder sortOrder() const;
 
     /**
@@ -98,7 +98,7 @@ public:
      * called so that model-implementations can react on the group order change. Afterwards the
      * signal groupOrderChanged() will be emitted.
      */
-    void setGroupOrder(Qt::SortOrder order, bool resortItems = true);
+    void setGroupOrder(Qt::SortOrder order);
     Qt::SortOrder groupOrder() const;
 
     /**
@@ -293,7 +293,7 @@ protected:
      * itemsRemoved() signal for all items, reorder the items internally and to emit a
      * itemsInserted() signal afterwards.
      */
-    virtual void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems = true);
+    virtual void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous);
 
     /**
      * Is invoked if the sort role has been changed by KItemModelBase::setSortRole(). Allows
@@ -304,7 +304,7 @@ protected:
      * itemsInserted() signal afterwards.
      * The implementation should resort only if \a regroupItems is true.
      */
-    virtual void onGroupRoleChanged(const QByteArray &current, const QByteArray &previous, bool resortItems = true);
+    virtual void onGroupRoleChanged(const QByteArray &current, const QByteArray &previous, bool regroupItems = true);
 
     /**
      * Is invoked if the sort order has been changed by KItemModelBase::setSortOrder(). Allows
@@ -314,7 +314,7 @@ protected:
      * itemsRemoved() signal for all items, reorder the items internally and to emit a
      * itemsInserted() signal afterwards.
      */
-    virtual void onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous, bool resortItems = true);
+    virtual void onGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous);
 
 private:
     bool m_groupedSorting;