]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinitemlistview.cpp
Add missing KF6::ColorScheme link
[dolphin.git] / src / views / dolphinitemlistview.cpp
index 92358924660c21c485ad44c91755052c5d599e3d..d31dc11bae7510ef3c54b6aacef0ae834cabeb3c 100644 (file)
@@ -7,25 +7,22 @@
 #include "dolphinitemlistview.h"
 
 #include "dolphin_compactmodesettings.h"
+#include "dolphin_contentdisplaysettings.h"
 #include "dolphin_detailsmodesettings.h"
 #include "dolphin_generalsettings.h"
 #include "dolphin_iconsmodesettings.h"
 #include "dolphinfileitemlistwidget.h"
-#include "kitemviews/kfileitemmodel.h"
-#include "kitemviews/kitemlistcontroller.h"
 #include "settings/viewmodes/viewmodesettings.h"
-#include "views/viewmodecontroller.h"
 #include "zoomlevelinfo.h"
 
 #include <KIO/PreviewJob>
 #include <QtMath>
 
-
-DolphinItemListView::DolphinItemListView(QGraphicsWidget* parent) :
-    KFileItemListView(parent),
-    m_zoomLevel(0)
+DolphinItemListView::DolphinItemListView(QGraphicsWidget *parent)
+    : KFileItemListView(parent)
+    , m_zoomLevel(0)
 {
-    updateFont();
+    DolphinItemListView::updateFont();
     updateGridSize();
 }
 
@@ -65,21 +62,38 @@ int DolphinItemListView::zoomLevel() const
     return m_zoomLevel;
 }
 
+void DolphinItemListView::setEnabledSelectionToggles(DolphinItemListView::SelectionTogglesEnabled selectionTogglesEnabled)
+{
+    m_selectionTogglesEnabled = selectionTogglesEnabled;
+    switch (m_selectionTogglesEnabled) {
+    case True:
+        return setEnabledSelectionToggles(true);
+    case False:
+        return setEnabledSelectionToggles(false);
+    case FollowSetting:
+        return setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
+    }
+}
+
 void DolphinItemListView::readSettings()
 {
-    ViewModeSettings settings(itemLayout());
-    settings.readConfig();
+    // We load the settings for all view modes now because we don't load them when the view mode changes.
+    IconsModeSettings::self()->load();
+    CompactModeSettings::self()->load();
+    DetailsModeSettings::self()->load();
+
+    ContentDisplaySettings::self()->load();
 
     beginTransaction();
 
-    setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
-    setHighlightEntireRow(DetailsModeSettings::leadingPadding());
+    setEnabledSelectionToggles(m_selectionTogglesEnabled);
+    setHighlightEntireRow(itemLayoutHighlightEntireRow(itemLayout()));
     setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout()));
 
     updateFont();
     updateGridSize();
 
-    const KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings");
+    const KConfigGroup globalConfig(KSharedConfig::openConfig(), QStringLiteral("PreviewSettings"));
     setEnabledPlugins(globalConfig.readEntry("Plugins", KIO::PreviewJob::defaultPlugins()));
     setLocalFileSizePreviewLimit(globalConfig.readEntry("MaximumSize", 0));
     endTransaction();
@@ -92,11 +106,16 @@ void DolphinItemListView::writeSettings()
     DetailsModeSettings::self()->save();
 }
 
-KItemListWidgetCreatorBaseDolphinItemListView::defaultWidgetCreator() const
+KItemListWidgetCreatorBase *DolphinItemListView::defaultWidgetCreator() const
 {
     return new KItemListWidgetCreator<DolphinFileItemListWidget>();
 }
 
+bool DolphinItemListView::itemLayoutHighlightEntireRow(ItemLayout layout) const
+{
+    return layout == DetailsLayout && DetailsModeSettings::highlightEntireRow();
+}
+
 bool DolphinItemListView::itemLayoutSupportsItemExpanding(ItemLayout layout) const
 {
     return layout == DetailsLayout && DetailsModeSettings::expandableFolders();
@@ -118,8 +137,7 @@ void DolphinItemListView::onPreviewsShownChanged(bool shown)
     updateGridSize();
 }
 
-void DolphinItemListView::onVisibleRolesChanged(const QList<QByteArray>& current,
-                                                const QList<QByteArray>& previous)
+void DolphinItemListView::onVisibleRolesChanged(const QList<QByteArray> &current, const QList<QByteArray> &previous)
 {
     KFileItemListView::onVisibleRolesChanged(current, previous);
     updateGridSize();
@@ -132,10 +150,7 @@ void DolphinItemListView::updateFont()
     if (settings.useSystemFont()) {
         KItemListView::updateFont();
     } else {
-        QFont font(settings.fontFamily(), qRound(settings.fontSize()));
-        font.setItalic(settings.italicFont());
-        font.setWeight(settings.fontWeight());
-        font.setPointSizeF(settings.fontSize());
+        QFont font(settings.viewFont());
 
         KItemListStyleOption option = styleOption();
         option.font = font;
@@ -166,7 +181,6 @@ void DolphinItemListView::updateGridSize()
 
     switch (itemLayout()) {
     case KFileItemListView::IconsLayout: {
-
         // an exponential factor based on zoom, 0 -> 1, 4 -> 1.36 8 -> ~1.85, 16 -> 3.4
         auto zoomFactor = qExp(m_zoomLevel / 13.0);
         // 9 is the average char width for 10pt Noto Sans, making fontFactor =1
@@ -223,3 +237,5 @@ void DolphinItemListView::updateGridSize()
     setItemSize(QSizeF(itemWidth, itemHeight));
     endTransaction();
 }
+
+#include "moc_dolphinitemlistview.cpp"