]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Merge remote-tracking branch 'fork/work/zakharafoniam/useful-groups' master
authormilkyroute <milkyroute@milkyroute.net>
Sun, 10 Aug 2025 11:06:17 +0000 (13:06 +0200)
committermilkyroute <milkyroute@milkyroute.net>
Sun, 10 Aug 2025 11:06:17 +0000 (13:06 +0200)
19 files changed:
1  2 
src/dolphincontextmenu.cpp
src/dolphinmainwindow.cpp
src/dolphinpart.rc
src/dolphinui.rc
src/kitemviews/kfileitemmodel.cpp
src/kitemviews/kfileitemmodel.h
src/kitemviews/kfileitemmodelrolesupdater.cpp
src/kitemviews/kfileitemmodelrolesupdater.h
src/kitemviews/kitemlistview.cpp
src/kitemviews/kitemlistview.h
src/settings/dolphin_directoryviewpropertysettings.kcfg
src/settings/dolphinsettingsdialog.cpp
src/tests/kfileitemmodeltest.cpp
src/views/dolphinview.cpp
src/views/dolphinview.h
src/views/dolphinviewactionhandler.cpp
src/views/dolphinviewactionhandler.h
src/views/viewproperties.cpp
src/views/viewproperties.h

Simple merge
index 51772eac28b1abb7897abe3d58387f32f9298472,17396dabd90d966b701a7bb581c916360ec22b5c..d08d6f6b396fe75bc9dda6cb48d67eabe354e41d
@@@ -1562,18 -1511,16 +1562,19 @@@ void DolphinMainWindow::updateHamburger
      // The third group contains actions to change what one sees in the view
      // and to change the more general UI.
      if (!toolBar()->isVisible()
 -        || (!toolbarActions.contains(ac->action(QStringLiteral("icons"))) && !toolbarActions.contains(ac->action(QStringLiteral("compact")))
 -            && !toolbarActions.contains(ac->action(QStringLiteral("details"))) && !toolbarActions.contains(ac->action(QStringLiteral("view_mode"))))) {
 +        || ((!toolbarActions.contains(ac->action(QStringLiteral("icons"))) && !toolbarActions.contains(ac->action(QStringLiteral("compact")))
 +             && !toolbarActions.contains(ac->action(QStringLiteral("details"))) && !toolbarActions.contains(ac->action(QStringLiteral("view_mode"))))
 +            && !toolbarActions.contains(ac->action(QStringLiteral("view_settings"))))) {
          menu->addAction(ac->action(QStringLiteral("view_mode")));
      }
 -    menu->addAction(ac->action(QStringLiteral("show_hidden_files")));
 -    menu->addAction(ac->action(QStringLiteral("sort")));
 -    menu->addAction(ac->action(QStringLiteral("group")));
 -    menu->addAction(ac->action(QStringLiteral("additional_info")));
 -    if (!GeneralSettings::showStatusBar() || !GeneralSettings::showZoomSlider()) {
 -        menu->addAction(ac->action(QStringLiteral("zoom")));
 +    if (!toolBar()->isVisible() || !toolbarActions.contains(ac->action(QStringLiteral("view_settings")))) {
-         menu->addAction(ac->action(QStringLiteral("show_hidden_files")));
-         menu->addAction(ac->action(QStringLiteral("sort")));
-         menu->addAction(ac->action(QStringLiteral("additional_info")));
-         if (!GeneralSettings::showStatusBar() || !GeneralSettings::showZoomSlider()) {
-             menu->addAction(ac->action(QStringLiteral("zoom")));
-         }
++          menu->addAction(ac->action(QStringLiteral("show_hidden_files")));
++          menu->addAction(ac->action(QStringLiteral("sort")));
++          menu->addAction(ac->action(QStringLiteral("group")));
++          menu->addAction(ac->action(QStringLiteral("additional_info")));
++          if (!GeneralSettings::showStatusBar() || !GeneralSettings::showZoomSlider()) {
++                      menu->addAction(ac->action(QStringLiteral("zoom")));
++              }
      }
      menu->addAction(ac->action(QStringLiteral("panels")));
  
Simple merge
Simple merge
Simple merge
index 10be27128832d3bb8e02ff87bdf55a23ec2d0de4,980efe66b26c1108a06996c36683d4d75ed83a50..13554d8c7fa1999dc62e8fd355c71967096ca9e5
@@@ -364,13 -380,18 +380,18 @@@ private
          QHash<QByteArray, QVariant> values;
          ItemData *parent;
      };
--
-     enum RemoveItemsBehavior {
-         KeepItemData,
-         DeleteItemData,
-         DeleteItemDataIfUnfiltered
++    
+     struct ItemGroupInfo {
+         int comparable;
+         QString text;
+         bool operator==(const ItemGroupInfo &other) const;
+         bool operator!=(const ItemGroupInfo &other) const;
+         bool operator<(const ItemGroupInfo &other) const;
      };
  
+     enum RemoveItemsBehavior { KeepItemData, DeleteItemData, DeleteItemDataIfUnfiltered };
      void insertItems(QList<ItemData *> &items);
      void removeItems(const KItemRangeList &itemRanges, RemoveItemsBehavior behavior);
  
index 497c13b525c6da3708d597057ea792585fdcec37,318936e8a69ed6fe98cfb1c88f2b9b210dc2edff..44165dedcb0ed3a903cd09d688a10acab412b4d5
@@@ -369,9 -369,7 +369,8 @@@ void KFileItemModelRolesUpdater::slotIt
      timer.start();
  
      // Determine the sort role synchronously for as many items as possible.
-     if (m_resolvableRoles.contains(m_model->sortRole())) {
-         QList<QUrl> dirsWithAddedItems;
+     if (m_resolvableRoles.contains(m_model->sortRole()) || m_resolvableRoles.contains(m_model->groupRole())) {
++      QList<QUrl> dirsWithAddedItems;
          int insertedCount = 0;
          for (const KItemRange &range : itemRanges) {
              const int lastIndex = insertedCount + range.index + range.count - 1;
index 75d85be358953e7897936800d303142b183ef9f5,45f5851bf5d6c2e06bd592c09350058fea35a2a8..82325cb1978813f38747d2203f84189461932b66
@@@ -1521,8 -1481,30 +1521,28 @@@ void KItemListView::slotSortRoleChanged
      }
  }
  
+ void KItemListView::slotGroupOrderChanged(Qt::SortOrder current, Qt::SortOrder previous)
+ {
+     Q_UNUSED(current)
+     Q_UNUSED(previous)
+     if (m_grouped) {
+         updateVisibleGroupHeaders();
+         doLayout(NoAnimation);
+     }
+ }
+ void KItemListView::slotGroupRoleChanged(const QByteArray &current, const QByteArray &previous)
+ {
+     Q_UNUSED(current)
+     Q_UNUSED(previous)
+     if (m_grouped) {
+         updateVisibleGroupHeaders();
+         doLayout(NoAnimation);
+     }
+ }
  void KItemListView::slotCurrentChanged(int current, int previous)
  {
 -    Q_UNUSED(previous)
 -
      // In SingleSelection mode (e.g., in the Places Panel), the current item is
      // always the selected item. It is not necessary to highlight the current item then.
      if (m_controller->selectionBehavior() != KItemListController::SingleSelection) {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge