]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Handle font and palette changes in Dolphin list views.
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Mon, 24 Feb 2014 13:17:03 +0000 (14:17 +0100)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Mon, 24 Feb 2014 13:17:03 +0000 (14:17 +0100)
Also update the font of the meta data widget in InformationPanelContent (smallest readable font).

BUG: 329186
BUG: 315061
FIXED-IN: 4.13
REVIEW: 115958

src/kitemviews/kitemlistview.cpp
src/kitemviews/kitemlistview.h
src/panels/information/informationpanelcontent.cpp
src/views/dolphinitemlistview.cpp
src/views/dolphinitemlistview.h

index 82f8a2053f2a025de19eff5cdbf6c4fc9789e64a..ab420cab15c05b6b1418e6663b14810924fc6095 100644 (file)
@@ -893,11 +893,23 @@ void KItemListView::onTransactionEnd()
 
 bool KItemListView::event(QEvent* event)
 {
-    // Forward all events to the controller and handle them there
-    if (!m_editingRole && m_controller && m_controller->processEvent(event, transform())) {
-        event->accept();
-        return true;
+    switch (event->type()) {
+    case QEvent::PaletteChange:
+        updatePalette();
+        break;
+
+    case QEvent::FontChange:
+        updateFont();
+        break;
+
+    default:
+        // Forward all other events to the controller and handle them there
+        if (!m_editingRole && m_controller && m_controller->processEvent(event, transform())) {
+            event->accept();
+            return true;
+        }
     }
+
     return QGraphicsWidget::event(event);
 }
 
@@ -950,6 +962,27 @@ QList<KItemListWidget*> KItemListView::visibleItemListWidgets() const
     return m_visibleItems.values();
 }
 
+void KItemListView::updateFont()
+{
+    if (scene() && !scene()->views().isEmpty()) {
+        KItemListStyleOption option = styleOption();
+        option.font = scene()->views().first()->font();
+        option.fontMetrics = QFontMetrics(option.font);
+
+        setStyleOption(option);
+    }
+}
+
+void KItemListView::updatePalette()
+{
+    if (scene() && !scene()->views().isEmpty()) {
+        KItemListStyleOption option = styleOption();
+        option.palette = scene()->views().first()->palette();
+
+        setStyleOption(option);
+    }
+}
+
 void KItemListView::slotItemsInserted(const KItemRangeList& itemRanges)
 {
     if (m_itemSize.isEmpty()) {
index f39e73a979c7242590108f45618dec1992754a42..8a522a6861c49010a002ec2a71c246f611782084 100644 (file)
@@ -388,6 +388,9 @@ protected:
 
     QList<KItemListWidget*> visibleItemListWidgets() const;
 
+    virtual void updateFont();
+    virtual void updatePalette();
+
 protected slots:
     virtual void slotItemsInserted(const KItemRangeList& itemRanges);
     virtual void slotItemsRemoved(const KItemRangeList& itemRanges);
index b2dd1582ef834f8e57649355924f5273ceba90f5..4fb0d9442b9e556b761647ff3feaa21d6fa33c65 100644 (file)
@@ -271,6 +271,10 @@ bool InformationPanelContent::eventFilter(QObject* obj, QEvent* event)
         adjustWidgetSizes(parentWidget()->width());
         break;
 
+    case QEvent::FontChange:
+        m_metaDataWidget->setFont(KGlobalSettings::smallestReadableFont());
+        break;
+
     default:
         break;
     }
index 4799d76794106e9fb7e6d89aa11e22fae27cdd3d..eb61ccb21fa4986eff79fe6645379b0d1f473ff5 100644 (file)
@@ -144,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());
@@ -231,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;
index 18bb284ace61ccf2efdecacd590fff0bfce567df..67302e44dba687889424ea105790578d5951e6c5 100644 (file)
@@ -56,9 +56,10 @@ protected:
     virtual void onVisibleRolesChanged(const QList<QByteArray>& current,
                                        const QList<QByteArray>& previous);
 
+    virtual void updateFont();
+
 private:
     void updateGridSize();
-    void updateFont();
 
     ViewModeSettings::ViewMode viewMode() const;