]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/treeviewsidebarpage.cpp
Fix the problem of the tree view. When we are expanding too many nodes (or very large...
[dolphin.git] / src / treeviewsidebarpage.cpp
index accfc598860b0e8618e65ee30caa13a77cbd7da6..bb996047c6f10183eaaf6c1aab29bf5eec1ace62 100644 (file)
@@ -20,7 +20,6 @@
 #include "treeviewsidebarpage.h"
 
 #include "dolphinmodel.h"
-#include "dolphinmainwindow.h"
 #include "dolphinsortfilterproxymodel.h"
 #include "dolphinview.h"
 #include "dolphinsettings.h"
@@ -48,6 +47,8 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) :
 
 TreeViewSidebarPage::~TreeViewSidebarPage()
 {
+    delete m_proxyModel;
+    m_proxyModel = 0;
     delete m_dolphinModel;
     m_dolphinModel = 0;
     m_dirLister = 0; // deleted by m_dolphinModel
@@ -191,6 +192,8 @@ void TreeViewSidebarPage::expandToLeafDir()
 
     QItemSelectionModel* selModel = m_treeView->selectionModel();
     selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select);
+
+    m_treeView->resizeColumnToContents(DolphinModel::Name);
 }
 
 
@@ -200,6 +203,8 @@ void TreeViewSidebarPage::loadSubTree()
     selModel->clearSelection();
 
     if (m_leafDir.isParentOf(m_dirLister->url())) {
+        m_treeView->resizeColumnToContents(DolphinModel::Name);
+
         // The leaf directory is not a child of the base URL, hence
         // no sub directory must be loaded or selected.
         return;
@@ -217,6 +222,8 @@ void TreeViewSidebarPage::loadSubTree()
         // get invoked if the expanding has been finished.
         m_dolphinModel->expandToUrl(m_leafDir);
     }
+
+    m_treeView->resizeColumnToContents(DolphinModel::Name);
 }
 
 void TreeViewSidebarPage::loadTree(const KUrl& url)