]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Enable custom view properties for special folders even if "remember for each folder...
authorJin Liu <m.liu.jin@gmail.com>
Tue, 12 Mar 2024 09:43:44 +0000 (09:43 +0000)
committerMéven Car <meven.car@kdemail.net>
Tue, 12 Mar 2024 09:43:44 +0000 (09:43 +0000)
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.

src/settings/viewmodes/generalviewsettingspage.cpp
src/views/viewproperties.cpp

index 08048ea889fad637132a114b04bae8462427e56d..1c9fabece2570ce1f12e5570aa25e18fd180acfd 100644 (file)
@@ -13,7 +13,9 @@
 
 #include <QButtonGroup>
 #include <QCheckBox>
+#include <QFontDatabase>
 #include <QFormLayout>
+#include <QLabel>
 #include <QMimeDatabase>
 #include <QVBoxLayout>
 
@@ -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));
 
index f42adbce7aa7a2004f185b3fe31642d2993a6fdd..46ec2c28c8cbc886c611a7c8ec62a76739367b2f 100644 (file)
@@ -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();