From 50149d6abb8a0a978db3c6afb5238bc42a4a89c8 Mon Sep 17 00:00:00 2001 From: Gaston Haro Date: Sun, 1 Aug 2021 13:00:05 -0400 Subject: Configurable Show hidden files and folders last toggle CCBUG: 241227 Revision: https://phabricator.kde.org/D29115 --- src/settings/dolphin_directoryviewpropertysettings.kcfg | 5 +++++ src/settings/viewpropertiesdialog.cpp | 14 ++++++++++++++ src/settings/viewpropertiesdialog.h | 2 ++ 3 files changed, 21 insertions(+) (limited to 'src/settings') diff --git a/src/settings/dolphin_directoryviewpropertysettings.kcfg b/src/settings/dolphin_directoryviewpropertysettings.kcfg index 6bcf3cd02..9846326b9 100644 --- a/src/settings/dolphin_directoryviewpropertysettings.kcfg +++ b/src/settings/dolphin_directoryviewpropertysettings.kcfg @@ -57,6 +57,11 @@ true + + + true + + diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp index 82d182d1d..6659d79b6 100644 --- a/src/settings/viewpropertiesdialog.cpp +++ b/src/settings/viewpropertiesdialog.cpp @@ -44,6 +44,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_sortOrder(nullptr), m_sorting(nullptr), m_sortFoldersFirst(nullptr), + m_sortHiddenLast(nullptr), m_previewsShown(nullptr), m_showInGroups(nullptr), m_showHiddenFiles(nullptr), @@ -82,6 +83,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : } m_sortFoldersFirst = new QCheckBox(i18nc("@option:check", "Show folders first")); + m_sortHiddenLast = new QCheckBox(i18nc("@option:check", "Show hidden files last")); m_previewsShown = new QCheckBox(i18nc("@option:check", "Show preview")); m_showInGroups = new QCheckBox(i18nc("@option:check", "Show in groups")); m_showHiddenFiles = new QCheckBox(i18nc("@option:check", "Show hidden files")); @@ -146,6 +148,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : layout->addRow(QString(), m_previewsShown); layout->addRow(QString(), m_showInGroups); layout->addRow(QString(), m_showHiddenFiles); + layout->addRow(QString(), m_sortHiddenLast); connect(m_viewMode, QOverload::of(&QComboBox::currentIndexChanged), this, &ViewPropertiesDialog::slotViewModeChanged); @@ -155,6 +158,8 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : this, &ViewPropertiesDialog::slotSortOrderChanged); connect(m_sortFoldersFirst, &QCheckBox::clicked, this, &ViewPropertiesDialog::slotSortFoldersFirstChanged); + connect(m_sortHiddenLast, &QCheckBox::clicked, + this, &ViewPropertiesDialog::slotSortHiddenLastChanged); connect(m_previewsShown, &QCheckBox::clicked, this, &ViewPropertiesDialog::slotShowPreviewChanged); connect(m_showInGroups, &QCheckBox::clicked, @@ -282,6 +287,13 @@ void ViewPropertiesDialog::slotSortFoldersFirstChanged() markAsDirty(true); } +void ViewPropertiesDialog::slotSortHiddenLastChanged() +{ + const bool hiddenLast = m_sortHiddenLast->isChecked(); + m_viewProps->setSortHiddenLast(hiddenLast); + markAsDirty(true); +} + void ViewPropertiesDialog::slotShowPreviewChanged() { const bool show = m_previewsShown->isChecked(); @@ -383,6 +395,7 @@ void ViewPropertiesDialog::applyViewProperties() m_dolphinView->setSortRole(m_viewProps->sortRole()); m_dolphinView->setSortOrder(m_viewProps->sortOrder()); m_dolphinView->setSortFoldersFirst(m_viewProps->sortFoldersFirst()); + m_dolphinView->setSortHiddenLast(m_viewProps->sortHiddenLast()); m_dolphinView->setGroupedSorting(m_viewProps->groupedSorting()); m_dolphinView->setVisibleRoles(m_viewProps->visibleRoles()); m_dolphinView->setPreviewsShown(m_viewProps->previewsShown()); @@ -418,6 +431,7 @@ void ViewPropertiesDialog::loadSettings() m_sorting->setCurrentIndex(sortRoleIndex); m_sortFoldersFirst->setChecked(m_viewProps->sortFoldersFirst()); + m_sortHiddenLast->setChecked(m_viewProps->sortHiddenLast()); // Load show preview, show in groups and show hidden files settings m_previewsShown->setChecked(m_viewProps->previewsShown()); diff --git a/src/settings/viewpropertiesdialog.h b/src/settings/viewpropertiesdialog.h index f07bb8088..c58fda5c0 100644 --- a/src/settings/viewpropertiesdialog.h +++ b/src/settings/viewpropertiesdialog.h @@ -46,6 +46,7 @@ private Q_SLOTS: void slotSortOrderChanged(int index); void slotGroupedSortingChanged(); void slotSortFoldersFirstChanged(); + void slotSortHiddenLastChanged(); void slotShowPreviewChanged(); void slotShowHiddenFilesChanged(); void slotItemChanged(QListWidgetItem *item); @@ -67,6 +68,7 @@ private: QComboBox* m_sortOrder; QComboBox* m_sorting; QCheckBox* m_sortFoldersFirst; + QCheckBox* m_sortHiddenLast; QCheckBox* m_previewsShown; QCheckBox* m_showInGroups; QCheckBox* m_showHiddenFiles; -- cgit v1.3 From fd2203bb3925edb5d657d49a706e26ea736362d2 Mon Sep 17 00:00:00 2001 From: Chris Holland Date: Wed, 4 Aug 2021 02:26:10 -0400 Subject: Disable Hidden Files Last sort by default --- src/kitemviews/kfileitemmodel.cpp | 2 +- .../dolphin_directoryviewpropertysettings.kcfg | 2 +- src/tests/kfileitemmodeltest.cpp | 26 +++++++++++++++------- 3 files changed, 20 insertions(+), 10 deletions(-) (limited to 'src/settings') diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index ef80b4edb..af8cfc131 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -34,7 +34,7 @@ KFileItemModel::KFileItemModel(QObject* parent) : KItemModelBase("text", parent), m_dirLister(nullptr), m_sortDirsFirst(true), - m_sortHiddenLast(true), + m_sortHiddenLast(false), m_sortRole(NameRole), m_sortingProgressPercent(-1), m_roles(), diff --git a/src/settings/dolphin_directoryviewpropertysettings.kcfg b/src/settings/dolphin_directoryviewpropertysettings.kcfg index 9846326b9..f4d288369 100644 --- a/src/settings/dolphin_directoryviewpropertysettings.kcfg +++ b/src/settings/dolphin_directoryviewpropertysettings.kcfg @@ -59,7 +59,7 @@ - true + false diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index f527fbc61..4b84f1579 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -814,16 +814,16 @@ void KFileItemModelTest::testSorting() { // testDir structure is as follows // ./ + // ├─ .g/ // ├─ a // ├─ b // ├─ c/ // │ ├─ c-2/ // │ │ ├─ c-3 // │ ├─ c-1 + // ├─ .f // ├─ d // ├─ e - // ├─ .f - // ├─ .g/ QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted); QSignalSpy itemsMovedSpy(m_model, &KFileItemModel::itemsMoved); @@ -968,10 +968,20 @@ void KFileItemModelTest::testSorting() // 'Show Hidden Files' enabled m_model->setShowHiddenFiles(true); QVERIFY(m_model->showHiddenFiles()); - QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "d" << "e" << "b" << "a" << ".g" << ".f"); + QVERIFY(!m_model->sortHiddenLast()); + QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << ".g" << "d" << "e" << "b" << "a" << ".f"); QCOMPARE(itemsMovedSpy.count(), 0); QCOMPARE(itemsInsertedSpy.count(), 1); - QCOMPARE(itemsInsertedSpy.takeFirst().at(0).value(), KItemRangeList() << KItemRange(8, 2)); + QCOMPARE(itemsInsertedSpy.takeFirst().at(0).value(), KItemRangeList() << KItemRange(4, 1) << KItemRange(8, 1)); + + // 'Sort Hidden Files Last' enabled + m_model->setSortHiddenLast(true); + QVERIFY(m_model->sortHiddenLast()); + QCOMPARE(itemsInModel(), QStringList() << "c" << "c-2" << "c-3" << "c-1" << "d" << "e" << "b" << "a" << ".g" << ".f"); + QCOMPARE(itemsMovedSpy.count(), 1); + QCOMPARE(itemsInsertedSpy.count(), 0); + QCOMPARE(itemsMovedSpy.first().at(0).value(), KItemRange(4, 5)); + QCOMPARE(itemsMovedSpy.takeFirst().at(1).value >(), QList() << 8 << 4 << 5 << 6 << 7); // Sort by Name m_model->setSortRole("text"); @@ -1151,7 +1161,7 @@ void KFileItemModelTest::testRemoveHiddenItems() m_model->setShowHiddenFiles(true); m_model->loadDirectory(m_testDir->url()); QVERIFY(itemsInsertedSpy.wait()); - QCOMPARE(itemsInModel(), QStringList() << "c" << "d" << "h" << "i" << ".a" << ".b" <<".f" << ".g"); + QCOMPARE(itemsInModel(), QStringList() << ".a" << ".b" << "c" << "d" <<".f" << ".g" << "h" << "i"); QCOMPARE(itemsInsertedSpy.count(), 1); QCOMPARE(itemsRemovedSpy.count(), 0); KItemRangeList itemRangeList = itemsInsertedSpy.takeFirst().at(0).value(); @@ -1162,14 +1172,14 @@ void KFileItemModelTest::testRemoveHiddenItems() QCOMPARE(itemsInsertedSpy.count(), 0); QCOMPARE(itemsRemovedSpy.count(), 1); itemRangeList = itemsRemovedSpy.takeFirst().at(0).value(); - QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(4, 4)); + QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 2) << KItemRange(4, 2)); m_model->setShowHiddenFiles(true); - QCOMPARE(itemsInModel(), QStringList() << "c" << "d" << "h" << "i" << ".a" << ".b" <<".f" << ".g"); + QCOMPARE(itemsInModel(), QStringList() << ".a" << ".b" << "c" << "d" <<".f" << ".g" << "h" << "i"); QCOMPARE(itemsInsertedSpy.count(), 1); QCOMPARE(itemsRemovedSpy.count(), 0); itemRangeList = itemsInsertedSpy.takeFirst().at(0).value(); - QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(4, 4)); + QCOMPARE(itemRangeList, KItemRangeList() << KItemRange(0, 2) << KItemRange(2, 2)); m_model->clear(); QCOMPARE(itemsInModel(), QStringList()); -- cgit v1.3