mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-04 17:30:55 +00:00
Add setting also hide application/x-trash files when hiding hidden files
BUG: 475805
This commit is contained in:
parent
c8dffc433c
commit
9691afbc50
|
@ -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();
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -47,6 +47,7 @@ private:
|
|||
QCheckBox *m_renameInline = nullptr;
|
||||
QCheckBox *m_openArchivesAsFolder = nullptr;
|
||||
QCheckBox *m_autoExpandFolders = nullptr;
|
||||
QCheckBox *m_hideXtrashFiles = nullptr;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user