]> cloud.milkyroute.net Git - dolphin.git/commitdiff
some finetuning for the icons view:
authorPeter Penz <peter.penz19@gmail.com>
Tue, 15 May 2007 20:24:56 +0000 (20:24 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 15 May 2007 20:24:56 +0000 (20:24 +0000)
- 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

src/dolphin_iconsmodesettings.kcfg
src/dolphiniconsview.cpp
src/iconsviewsettingspage.cpp
src/iconsviewsettingspage.h

index 45d40d5e95161c69b6443481125c72ff6cf7f9ed..d01c11a14366e3a03c40c3ee15f9c0e3734421c6 100644 (file)
             <label>Bold</label>
             <default>false</default>
         </entry>
-       <entry name="GridHeight" type="Int">
-            <label>Grid height</label>
-            <default code="true">K3Icon::SizeMedium + (KGlobalSettings::generalFont().pointSize() * 3)</default>
-        </entry>
-        <entry name="GridWidth" type="Int">
-            <label>Grid width</label>
-            <default>128</default>
+       <entry name="ItemHeight" type="Int">
+            <label>Item height</label>
+            <!--
+                 check 'void IconsViewSettingsPage::applySettings()' as reference (iconsviewsettingspage.cpp):
+                 itemHeight += fontHeight * numberOfTextlines + 16;
+            /-->
+            <default code="true">K3Icon::SizeMedium + (QFontMetrics(KGlobalSettings::generalFont()).height() * 2) + 16</default>
+        </entry>
+        <entry name="ItemWidth" type="Int">
+            <label>Item width</label>
+            <!--
+                 check 'void IconsViewSettingsPage::applySettings()' as reference (iconsviewsettingspage.cpp):
+                 itemWidth = TopToBottomBase + textSizeIndex * TopToBottomInc;
+            /-->
+            <default>96</default>
         </entry>
         <entry name="GridSpacing" type="Int">
             <label>Grid spacing</label>
         </entry>
         <entry name="NumberOfTextlines" type="Int">
             <label>Number of textlines</label>
-            <default>1</default>
-        </entry>
-        <entry name="Preview" type="Bool">
-            <label>Show preview</label>
-            <default>true</default>
+            <default>2</default>
         </entry>
         <entry name="PreviewSize" type="Int">
             <label>Preview size</label>
index 6d2ca66a0c682638043e0650bd09aac82bde9524..c80a58b6b3dd4629c7fe9f71c03db46aad929914 100644 (file)
@@ -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());
index 2cd56043f624183051d25e6bf18d7e74c36130e6..86823ede05c66de72f5cc0f3cd4f4a2bc805f99a 100644 (file)
@@ -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());
 
index 61e1bb9006bcbde97ff730a9c6dc9cfe01ea484a..817620e289607d2d4983df4ca37c310d6b8de583 100644 (file)
@@ -71,7 +71,7 @@ private:
         GridSpacingInc  =  24,
         LeftToRightBase = 128,
         LeftToRightInc  =  64,
-        TopToBottomBase =  96,
+        TopToBottomBase =  64,
         TopToBottomInc  =  32
     };