From: Peter Penz Date: Tue, 15 May 2007 20:24:56 +0000 (+0000) Subject: some finetuning for the icons view: X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/91f03ab07b894ef37864c9c5a1552b48b38f40ee some finetuning for the icons view: - rename gridWidth() and gridHeight() settings property to itemWidth() and itemHeight() to avoid confusion with the grid size property of QListView - assure that the grid spacing is respected - decrease default text width - allow having more than 1 text line doing a proper wrapping svn path=/trunk/KDE/kdebase/apps/; revision=665097 --- diff --git a/src/dolphin_iconsmodesettings.kcfg b/src/dolphin_iconsmodesettings.kcfg index 45d40d5e9..d01c11a14 100644 --- a/src/dolphin_iconsmodesettings.kcfg +++ b/src/dolphin_iconsmodesettings.kcfg @@ -26,13 +26,21 @@ false - - - K3Icon::SizeMedium + (KGlobalSettings::generalFont().pointSize() * 3) - - - - 128 + + + + K3Icon::SizeMedium + (QFontMetrics(KGlobalSettings::generalFont()).height() * 2) + 16 + + + + + 96 @@ -44,11 +52,7 @@ - 1 - - - - true + 2 diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp index 6d2ca66a0..c80a58b6b 100644 --- a/src/dolphiniconsview.cpp +++ b/src/dolphiniconsview.cpp @@ -162,8 +162,8 @@ void DolphinIconsView::zoomIn() // increase also the grid size const int diff = newIconSize - oldIconSize; - settings->setGridWidth(settings->gridWidth() + diff); - settings->setGridHeight(settings->gridHeight() + diff); + settings->setItemWidth(settings->itemWidth() + diff); + settings->setItemHeight(settings->itemHeight() + diff); updateGridSize(showPreview, m_controller->showAdditionalInfo()); } @@ -193,8 +193,8 @@ void DolphinIconsView::zoomOut() // decrease also the grid size const int diff = oldIconSize - newIconSize; - settings->setGridWidth(settings->gridWidth() - diff); - settings->setGridHeight(settings->gridHeight() - diff); + settings->setItemWidth(settings->itemWidth() - diff); + settings->setItemHeight(settings->itemHeight() - diff); updateGridSize(showPreview, m_controller->showAdditionalInfo()); } @@ -249,26 +249,31 @@ void DolphinIconsView::updateGridSize(bool showPreview, bool showAdditionalInfo) const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings(); Q_ASSERT(settings != 0); - int gridWidth = settings->gridWidth(); - int gridHeight = settings->gridHeight(); + int itemWidth = settings->itemWidth(); + int itemHeight = settings->itemHeight(); int size = settings->iconSize(); if (showPreview) { const int previewSize = settings->previewSize(); const int diff = previewSize - size; Q_ASSERT(diff >= 0); - gridWidth += diff; - gridHeight += diff; + itemWidth += diff; + itemHeight += diff; size = previewSize; } if (showAdditionalInfo) { - gridHeight += m_viewOptions.font.pointSize() * 2; + itemHeight += m_viewOptions.font.pointSize() * 2; } - m_viewOptions.decorationSize = QSize(size, size); - setGridSize(QSize(gridWidth, gridHeight)); + // The decoration width indirectly defines the maximum + // width for the text wrapping. To use the maximum item width + // for text wrapping, it is used as decoration width. + m_viewOptions.decorationSize = QSize(itemWidth, size); + + const int spacing = settings->gridSpacing(); + setGridSize(QSize(itemWidth + spacing, itemHeight + spacing)); m_controller->setZoomInPossible(isZoomInPossible()); m_controller->setZoomOutPossible(isZoomOutPossible()); diff --git a/src/iconsviewsettingspage.cpp b/src/iconsviewsettingspage.cpp index 2cd56043f..86823ede0 100644 --- a/src/iconsviewsettingspage.cpp +++ b/src/iconsviewsettingspage.cpp @@ -93,7 +93,7 @@ IconsViewSettingsPage::IconsViewSettingsPage(DolphinMainWindow* mainWindow, const bool leftToRightArrangement = (settings->arrangement() == QListView::LeftToRight); int textWidthIndex = 0; - const int remainingWidth = settings->gridWidth() - settings->iconSize(); + const int remainingWidth = settings->itemWidth() - settings->iconSize(); if (leftToRightArrangement) { textWidthIndex = (remainingWidth - LeftToRightBase) / LeftToRightInc; } else { @@ -154,7 +154,7 @@ void IconsViewSettingsPage::applySettings() settings->setPreviewSize(m_previewSize); const QFont font = m_fontRequester->font(); - const int fontSize = font.pointSize(); + const int fontHeight = QFontMetrics(font).height(); const int arrangement = (m_arrangementBox->currentIndex() == 0) ? QListView::LeftToRight : @@ -164,21 +164,21 @@ void IconsViewSettingsPage::applySettings() const int numberOfTextlines = m_textlinesCountBox->value(); const int defaultSize = settings->iconSize(); - int gridWidth = defaultSize; - int gridHeight = defaultSize; + int itemWidth = defaultSize; + int itemHeight = defaultSize; const int textSizeIndex = m_textWidthBox->currentIndex(); if (arrangement == QListView::TopToBottom) { - gridWidth += TopToBottomBase + textSizeIndex * TopToBottomInc; - gridHeight += fontSize * (2 + numberOfTextlines); + itemWidth += TopToBottomBase + textSizeIndex * TopToBottomInc; + itemHeight += fontHeight * numberOfTextlines + 16; } else { - gridWidth += LeftToRightBase + textSizeIndex * LeftToRightInc; + itemWidth += LeftToRightBase + textSizeIndex * LeftToRightInc; } - settings->setGridWidth(gridWidth); - settings->setGridHeight(gridHeight); + settings->setItemWidth(itemWidth); + settings->setItemHeight(itemHeight); settings->setFontFamily(font.family()); - settings->setFontSize(fontSize); + settings->setFontSize(font.pointSize()); settings->setItalicFont(font.italic()); settings->setBoldFont(font.bold()); diff --git a/src/iconsviewsettingspage.h b/src/iconsviewsettingspage.h index 61e1bb900..817620e28 100644 --- a/src/iconsviewsettingspage.h +++ b/src/iconsviewsettingspage.h @@ -71,7 +71,7 @@ private: GridSpacingInc = 24, LeftToRightBase = 128, LeftToRightInc = 64, - TopToBottomBase = 96, + TopToBottomBase = 64, TopToBottomInc = 32 };