diff options
| author | Méven Car <[email protected]> | 2024-01-06 11:40:57 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2024-01-13 09:07:33 +0000 |
| commit | 9691afbc507ee480d4d129a6fff90b6b926aed62 (patch) | |
| tree | 3296e655acf67f6816aeef0b312c93f2199c1fc2 | |
| parent | c8dffc433caacc9955b3054f6255ae50176e5533 (diff) | |
Add setting also hide application/x-trash files when hiding hidden files
BUG: 475805
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 23 | ||||
| -rw-r--r-- | src/settings/dolphin_generalsettings.kcfg | 4 | ||||
| -rw-r--r-- | src/settings/viewmodes/generalviewsettingspage.cpp | 12 | ||||
| -rw-r--r-- | src/settings/viewmodes/generalviewsettingspage.h | 1 |
4 files changed, 25 insertions, 15 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 4463b37ae..5f4f0bb9a 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -105,7 +105,7 @@ KFileItemModel::KFileItemModel(QObject *parent) connect(GeneralSettings::self(), &GeneralSettings::sortingChoiceChanged, this, &KFileItemModel::slotSortingChoiceChanged); - setShowTrashMime(m_dirLister->showHiddenFiles()); + setShowTrashMime(m_dirLister->showHiddenFiles() || !GeneralSettings::hideXTrashFile()); } KFileItemModel::~KFileItemModel() @@ -239,25 +239,18 @@ bool KFileItemModel::sortHiddenLast() const return m_sortHiddenLast; } -void KFileItemModel::setShowTrashMime(bool show) +void KFileItemModel::setShowTrashMime(bool showTrashMime) { const auto trashMime = QStringLiteral("application/x-trash"); QStringList excludeFilter = m_filter.excludeMimeTypes(); - bool wasShown = !excludeFilter.contains(trashMime); - if (show) { - if (!wasShown) { - excludeFilter.removeAll(trashMime); - } - } else { - if (wasShown) { - excludeFilter.append(trashMime); - } + if (showTrashMime) { + excludeFilter.removeAll(trashMime); + } else if (!excludeFilter.contains(trashMime)) { + excludeFilter.append(trashMime); } - if (wasShown != show) { - setExcludeMimeTypeFilter(excludeFilter); - } + setExcludeMimeTypeFilter(excludeFilter); } void KFileItemModel::scheduleResortAllItems() @@ -270,7 +263,7 @@ void KFileItemModel::scheduleResortAllItems() void KFileItemModel::setShowHiddenFiles(bool show) { m_dirLister->setShowHiddenFiles(show); - setShowTrashMime(show); + setShowTrashMime(show || !GeneralSettings::hideXTrashFile()); m_dirLister->emitChanges(); if (show) { dispatchPendingItemsToInsert(); diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg index 2abd7da49..c84cc5617 100644 --- a/src/settings/dolphin_generalsettings.kcfg +++ b/src/settings/dolphin_generalsettings.kcfg @@ -141,6 +141,10 @@ <default>0</default> <emit signal="sortingChoiceChanged" /> </entry> + <entry name="HideXTrashFile" type="Bool"> + <label>Also hide files with application/x-trash mimetype</label> + <default>false</default> + </entry> </group> <group name="Notification Messages"> <entry name="ConfirmOpenManyFolders" type="Bool"> diff --git a/src/settings/viewmodes/generalviewsettingspage.cpp b/src/settings/viewmodes/generalviewsettingspage.cpp index a81d46dd2..08048ea88 100644 --- a/src/settings/viewmodes/generalviewsettingspage.cpp +++ b/src/settings/viewmodes/generalviewsettingspage.cpp @@ -14,6 +14,7 @@ #include <QButtonGroup> #include <QCheckBox> #include <QFormLayout> +#include <QMimeDatabase> #include <QVBoxLayout> GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *parent) @@ -61,6 +62,14 @@ GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *paren m_renameInline = new QCheckBox(i18nc("option:check", "Rename inline")); topLayout->addRow(QString(), m_renameInline); + m_hideXtrashFiles = new QCheckBox(i18nc("option:check", "Also hide backup files while hiding hidden files")); + QMimeDatabase db; + QMimeType mime = db.mimeTypeForName(QStringLiteral("application/x-trash")); + m_hideXtrashFiles->setToolTip(i18nc("@info:tooltip %1 are the file patterns for mimetype application/x-trash", + "Backup files are the files whose mime-type is application/x-trash, patterns: %1", + (mime.globPatterns().join(", ")))); + topLayout->addRow(QString(), m_hideXtrashFiles); + loadSettings(); connect(m_localViewProps, &QRadioButton::toggled, this, &GeneralViewSettingsPage::changed); @@ -73,6 +82,7 @@ GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *paren #endif connect(m_showSelectionToggle, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed); connect(m_renameInline, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed); + connect(m_hideXtrashFiles, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed); } GeneralViewSettingsPage::~GeneralViewSettingsPage() @@ -90,6 +100,7 @@ void GeneralViewSettingsPage::applySettings() #endif settings->setShowSelectionToggle(m_showSelectionToggle->isChecked()); settings->setRenameInline(m_renameInline->isChecked()); + settings->setHideXTrashFile(m_hideXtrashFiles->isChecked()); settings->setAutoExpandFolders(m_autoExpandFolders->isChecked()); settings->save(); if (useGlobalViewProps) { @@ -120,6 +131,7 @@ void GeneralViewSettingsPage::loadSettings() #endif m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle()); m_renameInline->setChecked(GeneralSettings::renameInline()); + m_hideXtrashFiles->setChecked(GeneralSettings::hideXTrashFile()); m_localViewProps->setChecked(!useGlobalViewProps); m_globalViewProps->setChecked(useGlobalViewProps); diff --git a/src/settings/viewmodes/generalviewsettingspage.h b/src/settings/viewmodes/generalviewsettingspage.h index c0e40db59..234fb03cb 100644 --- a/src/settings/viewmodes/generalviewsettingspage.h +++ b/src/settings/viewmodes/generalviewsettingspage.h @@ -47,6 +47,7 @@ private: QCheckBox *m_renameInline = nullptr; QCheckBox *m_openArchivesAsFolder = nullptr; QCheckBox *m_autoExpandFolders = nullptr; + QCheckBox *m_hideXtrashFiles = nullptr; }; #endif |
