From 3a03f86b836e172001120ee73956a7bad9c7276b Mon Sep 17 00:00:00 2001 From: Jin Liu Date: Tue, 12 Mar 2024 09:43:44 +0000 Subject: [PATCH] Enable custom view properties for special folders even if "remember for each folder" is off Special folders include: search, trash, recents, timeline Not including Downloads, although we have a custom view when "remember for each folder" is on. Rational: These folders really need the custom view. So even if the user selects a global view for all "normal" folders, s/he probably still want a custom view for special folders. --- .../viewmodes/generalviewsettingspage.cpp | 16 +++++++++++++++- src/views/viewproperties.cpp | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/settings/viewmodes/generalviewsettingspage.cpp b/src/settings/viewmodes/generalviewsettingspage.cpp index 08048ea88..1c9fabece 100644 --- a/src/settings/viewmodes/generalviewsettingspage.cpp +++ b/src/settings/viewmodes/generalviewsettingspage.cpp @@ -13,7 +13,9 @@ #include #include +#include #include +#include #include #include @@ -25,14 +27,26 @@ GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *paren // Display style m_globalViewProps = new QRadioButton(i18nc("@option:radio", "Use common display style for all folders")); + // i18n: The information in this sentence contradicts the preceding sentence. That's what the word "still" is communicating. + // The previous sentence is "Use common display style for all folders". + QLabel *globalViewPropsLabel = new QLabel(i18nc("@info", "Some special views like search, recent files, or trash will still use a custom display style.")); + globalViewPropsLabel->setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont)); + globalViewPropsLabel->setWordWrap(true); + globalViewPropsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + m_localViewProps = new QRadioButton(i18nc("@option:radio", "Remember display style for each folder")); - m_localViewProps->setToolTip(i18nc("@info", "Dolphin will create a hidden .directory file in each folder you change view properties for.")); + QLabel *localViewPropsLabel = new QLabel(i18nc("@info", "Dolphin will create a hidden .directory file in each folder you change view properties for.")); + localViewPropsLabel->setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont)); + localViewPropsLabel->setWordWrap(true); + localViewPropsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); QButtonGroup *viewGroup = new QButtonGroup(this); viewGroup->addButton(m_globalViewProps); viewGroup->addButton(m_localViewProps); topLayout->addRow(i18nc("@title:group", "Display style: "), m_globalViewProps); + topLayout->addRow(QString(), globalViewPropsLabel); topLayout->addRow(QString(), m_localViewProps); + topLayout->addRow(QString(), localViewPropsLabel); topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp index f42adbce7..46ec2c28c 100644 --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -46,9 +46,7 @@ ViewProperties::ViewProperties(const QUrl &url) // We try and save it to the file .directory in the directory being viewed. // If the directory is not writable by the user or the directory is not local, // we store the properties information in a local file. - if (useGlobalViewProps) { - m_filePath = destinationDir(QStringLiteral("global")); - } else if (url.scheme().contains(QLatin1String("search"))) { + if (url.scheme().contains(QLatin1String("search"))) { m_filePath = destinationDir(QStringLiteral("search/")) + directoryHashForUrl(url); useSearchView = true; } else if (url.scheme() == QLatin1String("trash")) { @@ -63,6 +61,8 @@ ViewProperties::ViewProperties(const QUrl &url) } else if (url.scheme() == QLatin1String("timeline")) { m_filePath = destinationDir(QStringLiteral("timeline")); useRecentDocumentsView = true; + } else if (useGlobalViewProps) { + m_filePath = destinationDir(QStringLiteral("global")); } else if (url.isLocalFile()) { m_filePath = url.toLocalFile(); -- 2.47.3