]> cloud.milkyroute.net Git - dolphin.git/commitdiff
assure that the width of the name-column cannot get too small when decreasing the...
authorPeter Penz <peter.penz19@gmail.com>
Wed, 26 Sep 2007 13:15:16 +0000 (13:15 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Wed, 26 Sep 2007 13:15:16 +0000 (13:15 +0000)
CCMAIL: ereslibre@gmail.com

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

src/dolphindetailsview.cpp
src/dolphindetailsview.h

index 2eca0860cc90c3601661c677eab2d1cf0969c9dc..3170f6c909661456557040a9de6803affd4c0abe 100644 (file)
@@ -297,6 +297,39 @@ void DolphinDetailsView::keyPressEvent(QKeyEvent* event)
     }
 }
 
+void DolphinDetailsView::resizeEvent(QResizeEvent* event)
+{
+    QTreeView::resizeEvent(event);
+
+    // assure that the width of the name-column does not get too small
+    const int minWidth = 120;
+    QHeaderView* headerView = header();
+    bool useFixedWidth = (headerView->sectionSize(KDirModel::Name) <= minWidth)
+                         && (headerView->resizeMode(0) != QHeaderView::Fixed);
+    if (useFixedWidth) {
+        // the current width of the name-column is too small, hence
+        // use a fixed size
+        headerView->setResizeMode(QHeaderView::Interactive);
+        headerView->setResizeMode(0, QHeaderView::Fixed);
+        headerView->resizeSection(KDirModel::Name, minWidth);
+    } else if (headerView->resizeMode(0) != QHeaderView::Stretch) {
+        // check whether there is enough available viewport width
+        // to automatically resize the columns
+        const int availableWidth = viewport()->width();
+
+        int headerWidth = 0;
+        const int count = headerView->count();
+        for (int i = 0; i < count; ++i) {
+            headerWidth += headerView->sectionSize(i);
+        }
+
+        if (headerWidth < availableWidth) {
+            headerView->setResizeMode(QHeaderView::ResizeToContents);
+            headerView->setResizeMode(0, QHeaderView::Stretch);
+        }
+    }
+}
+
 void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting)
 {
     QHeaderView* headerView = header();
@@ -368,6 +401,16 @@ void DolphinDetailsView::zoomOut()
     }
 }
 
+void DolphinDetailsView::slotItemActivated(const QModelIndex& index)
+{
+    if (index.isValid() && (index.column() == KDirModel::Name)) {
+        m_controller->triggerItem(index);
+    } else {
+        clearSelection();
+        m_controller->emitItemEntered(index);
+    }
+}
+
 bool DolphinDetailsView::isZoomInPossible() const
 {
     DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
@@ -422,14 +465,4 @@ static bool isValidNameIndex(const QModelIndex& index)
     return index.isValid() && (index.column() == KDirModel::Name);
 }
 
-void DolphinDetailsView::slotItemActivated(const QModelIndex& index)
-{
-    if (!isValidNameIndex(index)) {
-        clearSelection();
-        m_controller->emitItemEntered(index);
-    } else {
-        m_controller->triggerItem(index);
-    }
-}
-
 #include "dolphindetailsview.moc"
index dc79c31cc1029ecd558759a3d9fbaf29d85e15f0..862a4961344e15cc9f9c14b09b8ff45f6534985f 100644 (file)
@@ -57,6 +57,7 @@ protected:
     virtual void dropEvent(QDropEvent* event);
     virtual void paintEvent(QPaintEvent* event);
     virtual void keyPressEvent(QKeyEvent* event);
+    virtual void resizeEvent(QResizeEvent* event);
 
 private slots:
     /**