┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2014-02-24 14:17:03 +0100
committerEmmanuel Pescosta <[email protected]>2014-02-24 14:17:03 +0100
commit0d37038b407944a9b7ec05127b5b6d41dc1a496f (patch)
tree17c38052274173f1b0d4c26fb5f7559bef37fd6e
parentc2887688f102d0412ba93c74facd5ed007185e3a (diff)
Handle font and palette changes in Dolphin list views.
Also update the font of the meta data widget in InformationPanelContent (smallest readable font). BUG: 329186 BUG: 315061 FIXED-IN: 4.13 REVIEW: 115958
-rw-r--r--src/kitemviews/kitemlistview.cpp41
-rw-r--r--src/kitemviews/kitemlistview.h3
-rw-r--r--src/panels/information/informationpanelcontent.cpp4
-rw-r--r--src/views/dolphinitemlistview.cpp37
-rw-r--r--src/views/dolphinitemlistview.h3
5 files changed, 66 insertions, 22 deletions
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index 82f8a2053..ab420cab1 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -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()) {
diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h
index f39e73a97..8a522a686 100644
--- a/src/kitemviews/kitemlistview.h
+++ b/src/kitemviews/kitemlistview.h
@@ -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);
diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp
index b2dd1582e..4fb0d9442 100644
--- a/src/panels/information/informationpanelcontent.cpp
+++ b/src/panels/information/informationpanelcontent.cpp
@@ -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;
}
diff --git a/src/views/dolphinitemlistview.cpp b/src/views/dolphinitemlistview.cpp
index 4799d7679..eb61ccb21 100644
--- a/src/views/dolphinitemlistview.cpp
+++ b/src/views/dolphinitemlistview.cpp
@@ -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;
diff --git a/src/views/dolphinitemlistview.h b/src/views/dolphinitemlistview.h
index 18bb284ac..67302e44d 100644
--- a/src/views/dolphinitemlistview.h
+++ b/src/views/dolphinitemlistview.h
@@ -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;