]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinitemlistview.cpp
Handle font and palette changes in Dolphin list views.
[dolphin.git] / src / views / dolphinitemlistview.cpp
index a031b1699f9e4bee94eea38b308cc113dca16c54..eb61ccb21fa4986eff79fe6645379b0d1f473ff5 100644 (file)
@@ -89,10 +89,7 @@ void DolphinItemListView::readSettings()
     beginTransaction();
 
     setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
-
-    const bool expandableFolders = (itemLayout() && KFileItemListView::DetailsLayout) &&
-                                   DetailsModeSettings::expandableFolders();
-    setSupportsItemExpanding(expandableFolders);
+    setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout()));
 
     updateFont();
     updateGridSize();
@@ -119,19 +116,19 @@ KItemListWidgetCreatorBase* DolphinItemListView::defaultWidgetCreator() const
     return new KItemListWidgetCreator<DolphinFileItemListWidget>();
 }
 
-void DolphinItemListView::onItemLayoutChanged(ItemLayout current, ItemLayout previous)
+bool DolphinItemListView::itemLayoutSupportsItemExpanding(ItemLayout layout) const
 {
-    Q_UNUSED(previous);
+    return layout == DetailsLayout && DetailsModeSettings::expandableFolders();
+}
 
-    if (current == DetailsLayout) {
-        setSupportsItemExpanding(DetailsModeSettings::expandableFolders());
-        setHeaderVisible(true);
-    } else {
-        setHeaderVisible(false);
-    }
+void DolphinItemListView::onItemLayoutChanged(ItemLayout current, ItemLayout previous)
+{
+    setHeaderVisible(current == DetailsLayout);
 
     updateFont();
     updateGridSize();
+
+    KFileItemListView::onItemLayoutChanged(current, previous);
 }
 
 void DolphinItemListView::onPreviewsShownChanged(bool shown)
@@ -147,6 +144,26 @@ void DolphinItemListView::onVisibleRolesChanged(const QList<QByteArray>& current
     updateGridSize();
 }
 
+void DolphinItemListView::updateFont()
+{
+    const ViewModeSettings settings(viewMode());
+
+    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());
+
+        KItemListStyleOption option = styleOption();
+        option.font = font;
+        option.fontMetrics = QFontMetrics(font);
+
+        setStyleOption(option);
+    }
+}
+
 void DolphinItemListView::updateGridSize()
 {
     const ViewModeSettings settings(viewMode());
@@ -234,23 +251,6 @@ void DolphinItemListView::updateGridSize()
     endTransaction();
 }
 
-void DolphinItemListView::updateFont()
-{
-    KItemListStyleOption option = styleOption();
-
-    const ViewModeSettings settings(viewMode());
-
-    QFont font(settings.fontFamily(), qRound(settings.fontSize()));
-    font.setItalic(settings.italicFont());
-    font.setWeight(settings.fontWeight());
-    font.setPointSizeF(settings.fontSize());
-
-    option.font = font;
-    option.fontMetrics = QFontMetrics(font);
-
-    setStyleOption(option);
-}
-
 ViewModeSettings::ViewMode DolphinItemListView::viewMode() const
 {
     ViewModeSettings::ViewMode mode;