]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinitemlistview.cpp
SVN_SILENT made messages (.desktop file) - always resolve ours
[dolphin.git] / src / views / dolphinitemlistview.cpp
index 0210dd59487d7c1fbc11d7a85ca2795b2381b9a3..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();
 }
 
@@ -80,19 +77,23 @@ void DolphinItemListView::setEnabledSelectionToggles(DolphinItemListView::Select
 
 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(m_selectionTogglesEnabled);
-    setHighlightEntireRow(DetailsModeSettings::sidePadding());
+    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();
@@ -105,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();
@@ -131,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();
@@ -176,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
@@ -233,3 +237,5 @@ void DolphinItemListView::updateGridSize()
     setItemSize(QSizeF(itemWidth, itemHeight));
     endTransaction();
 }
+
+#include "moc_dolphinitemlistview.cpp"