]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix issue that the columns "Link Destination" and "Path" are shown outside the visibl...
authorPeter Penz <peter.penz19@gmail.com>
Thu, 20 May 2010 19:00:33 +0000 (19:00 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Thu, 20 May 2010 19:00:33 +0000 (19:00 +0000)
CCMAIL: frank78ac@googlemail.com

svn path=/trunk/KDE/kdebase/apps/; revision=1128951

src/dolphindetailsview.cpp

index ee4d3e42e86a869818b3a40254783926856cc342..961bd7872784d9d560a9535989078dd8ddb7326b 100644 (file)
@@ -1006,16 +1006,30 @@ void DolphinDetailsView::resizeColumns()
     QHeaderView* headerView = header();
     QFontMetrics fontMetrics(viewport()->font());
 
     QHeaderView* headerView = header();
     QFontMetrics fontMetrics(viewport()->font());
 
+    // Calculate the required with for each column and store it in columnWidth[]
     int columnWidth[DolphinModel::ExtraColumnCount];
     const int defaultWidth = fontMetrics.width("xxxxxxxxxx");
     int columnWidth[DolphinModel::ExtraColumnCount];
     const int defaultWidth = fontMetrics.width("xxxxxxxxxx");
+
     for (int i = 0; i < DolphinModel::ExtraColumnCount; ++i) {
     for (int i = 0; i < DolphinModel::ExtraColumnCount; ++i) {
-        columnWidth[i] = defaultWidth;
+        const int logicalIndex = headerView->logicalIndex(i);
+        const QString headline = model()->headerData(logicalIndex, Qt::Horizontal).toString();
+        const int headlineWidth = fontMetrics.width(headline);
+
+        columnWidth[i] = qMax(defaultWidth, headlineWidth);
+    }
+
+    const int defaultSizeWidth = fontMetrics.width("00000 Items");
+    if (defaultSizeWidth > columnWidth[DolphinModel::Size]) {
+        columnWidth[DolphinModel::Size] = defaultSizeWidth;
+    }
+
+    const int defaultTimeWidth = fontMetrics.width("0000-00-00 00:00");
+    if (defaultTimeWidth > columnWidth[DolphinModel::ModifiedTime]) {
+        columnWidth[DolphinModel::ModifiedTime] = defaultTimeWidth;
     }
     }
-    columnWidth[DolphinModel::Size] = fontMetrics.width("00000 Items");
-    columnWidth[DolphinModel::ModifiedTime] = fontMetrics.width("0000-00-00 00:00");
 
     int requiredWidth = 0;
 
     int requiredWidth = 0;
-    for (int i = KDirModel::Size; i <= KDirModel::Type; ++i) {
+    for (int i = KDirModel::Size; i < DolphinModel::ExtraColumnCount; ++i) {
         if (!isColumnHidden(i)) {
             columnWidth[i] += 20; // provide a default gap
             requiredWidth += columnWidth[i];
         if (!isColumnHidden(i)) {
             columnWidth[i] += 20; // provide a default gap
             requiredWidth += columnWidth[i];
@@ -1023,7 +1037,7 @@ void DolphinDetailsView::resizeColumns()
         }
     }
 
         }
     }
 
-    // resize the name column in a way that the whole available width is used
+    // Resize the name column in a way that the whole available width is used
     columnWidth[KDirModel::Name] = viewport()->width() - requiredWidth;
 
     const int minNameWidth = 300;
     columnWidth[KDirModel::Name] = viewport()->width() - requiredWidth;
 
     const int minNameWidth = 300;