┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinitemlistcontainer.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-12-08 23:08:01 +0100
committerPeter Penz <[email protected]>2011-12-08 23:10:42 +0100
commita237e085fc976147858161e6c25b33a825f73eeb (patch)
tree043be102e49405bfbe4221ea4d08610c6d86ccf5 /src/views/dolphinitemlistcontainer.cpp
parent2827b96d9817252c22ae6f788f4d073303178cea (diff)
Fix font settings issue
The font settings have been ignored currently because of the transition to the new view-engine. The patch is based on the work of Janardhan Reddy and has been extended by the helper class ViewModeSettings. BUG: 288395 FIXED-IN: 4.8.0
Diffstat (limited to 'src/views/dolphinitemlistcontainer.cpp')
-rw-r--r--src/views/dolphinitemlistcontainer.cpp78
1 files changed, 48 insertions, 30 deletions
diff --git a/src/views/dolphinitemlistcontainer.cpp b/src/views/dolphinitemlistcontainer.cpp
index 0f2af9855..870043bc4 100644
--- a/src/views/dolphinitemlistcontainer.cpp
+++ b/src/views/dolphinitemlistcontainer.cpp
@@ -52,6 +52,7 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister,
m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
controller()->setView(m_fileItemListView);
+ updateFont();
updateGridSize();
}
@@ -104,23 +105,13 @@ void DolphinItemListContainer::setZoomLevel(int level)
m_zoomLevel = level;
+ ViewModeSettings settings(viewMode());
if (previewsShown()) {
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(level);
-
- switch (itemLayout()) {
- case KFileItemListView::IconsLayout: IconsModeSettings::setPreviewSize(previewSize); break;
- case KFileItemListView::CompactLayout: CompactModeSettings::setPreviewSize(previewSize); break;
- case KFileItemListView::DetailsLayout: DetailsModeSettings::setPreviewSize(previewSize); break;
- default: Q_ASSERT(false); break;
- }
+ settings.setPreviewSize(previewSize);
} else {
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(level);
- switch (itemLayout()) {
- case KFileItemListView::IconsLayout: IconsModeSettings::setIconSize(iconSize); break;
- case KFileItemListView::CompactLayout: CompactModeSettings::setIconSize(iconSize); break;
- case KFileItemListView::DetailsLayout: DetailsModeSettings::setIconSize(iconSize); break;
- default: Q_ASSERT(false); break;
- }
+ settings.setIconSize(iconSize);
}
updateGridSize();
@@ -158,6 +149,7 @@ void DolphinItemListContainer::setItemLayout(KFileItemListView::Layout layout)
break;
}
+ updateFont();
updateGridSize();
endTransaction();
}
@@ -177,26 +169,21 @@ void DolphinItemListContainer::endTransaction()
m_fileItemListView->endTransaction();
}
+void DolphinItemListContainer::refresh()
+{
+ ViewModeSettings settings(viewMode());
+ settings.readConfig();
+
+ updateFont();
+ updateGridSize();
+}
+
void DolphinItemListContainer::updateGridSize()
{
- // Calculate the size of the icon
- int iconSize;
- if (previewsShown()) {
- switch (itemLayout()) {
- case KFileItemListView::IconsLayout: iconSize = IconsModeSettings::previewSize(); break;
- case KFileItemListView::CompactLayout: iconSize = CompactModeSettings::previewSize(); break;
- case KFileItemListView::DetailsLayout: iconSize = DetailsModeSettings::previewSize(); break;
- default: Q_ASSERT(false); break;
- }
- } else {
- switch (itemLayout()) {
- case KFileItemListView::IconsLayout: iconSize = IconsModeSettings::iconSize(); break;
- case KFileItemListView::CompactLayout: iconSize = CompactModeSettings::iconSize(); break;
- case KFileItemListView::DetailsLayout: iconSize = DetailsModeSettings::iconSize(); break;
- default: Q_ASSERT(false); break;
- }
- }
+ const ViewModeSettings settings(viewMode());
+ // Calculate the size of the icon
+ const int iconSize = previewsShown() ? settings.previewSize() : settings.iconSize();
m_zoomLevel = ZoomLevelInfo::zoomLevelForIconSize(QSize(iconSize, iconSize));
KItemListStyleOption styleOption = m_fileItemListView->styleOption();
@@ -236,4 +223,35 @@ void DolphinItemListContainer::updateGridSize()
m_fileItemListView->setItemSize(QSizeF(itemWidth, itemHeight));
}
+void DolphinItemListContainer::updateFont()
+{
+ KItemListStyleOption styleOption = m_fileItemListView->styleOption();
+
+ const ViewModeSettings settings(viewMode());
+
+ QFont font(settings.fontFamily(), qRound(settings.fontSize()));
+ font.setItalic(settings.italicFont());
+ font.setWeight(settings.fontWeight());
+ font.setPointSizeF(settings.fontSize());
+
+ styleOption.font = font;
+ styleOption.fontMetrics = QFontMetrics(font);
+
+ m_fileItemListView->setStyleOption(styleOption);
+}
+
+ViewModeSettings::ViewMode DolphinItemListContainer::viewMode() const
+{
+ ViewModeSettings::ViewMode mode;
+
+ switch (itemLayout()) {
+ case KFileItemListView::IconsLayout: mode = ViewModeSettings::IconsMode; break;
+ case KFileItemListView::CompactLayout: mode = ViewModeSettings::CompactMode; break;
+ case KFileItemListView::DetailsLayout: mode = ViewModeSettings::DetailsMode; break;
+ default: Q_ASSERT(false); break;
+ }
+
+ return mode;
+}
+
#include "dolphinitemlistcontainer.moc"