]> cloud.milkyroute.net Git - dolphin.git/commitdiff
clear columns if the new URL is no parent of the currently shown columns
authorPeter Penz <peter.penz19@gmail.com>
Tue, 25 Sep 2007 11:06:54 +0000 (11:06 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 25 Sep 2007 11:06:54 +0000 (11:06 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=716840

src/dolphincolumnview.cpp
src/dolphincolumnview.h

index f8bcf548e4e2e92a637d1d7b97dca63cd1ddda5f..119888f2d0b9430b8d119d4d939185b5bd13fa47 100644 (file)
@@ -506,7 +506,18 @@ void DolphinColumnView::showColumn(const KUrl& url)
 {
     const KUrl& rootUrl = m_columns[0]->url();
     if (!rootUrl.isParentOf(url)) {
-        // the URL is no child URL of the column view, hence do nothing
+        // the URL is no child URL of the column view, hence clear all columns
+        // and reset the root column
+        QList<ColumnWidget*>::iterator start = m_columns.begin() + 1;
+        QList<ColumnWidget*>::iterator end = m_columns.end();
+        for (QList<ColumnWidget*>::iterator it = start; it != end; ++it) {
+            (*it)->deleteLater();
+        }
+        m_columns.erase(start, end);
+        m_index = 0;
+        m_columns[0]->setActive(true);
+        m_columns[0]->setUrl(url);
+        assureVisibleActiveColumn();
         return;
     }
 
@@ -870,14 +881,4 @@ void DolphinColumnView::requestActivation(ColumnWidget* column)
     }
 }
 
-void DolphinColumnView::deleteInactiveChildColumns()
-{
-    QList<ColumnWidget*>::iterator start = m_columns.begin() + m_index + 1;
-    QList<ColumnWidget*>::iterator end = m_columns.end();
-    for (QList<ColumnWidget*>::iterator it = start; it != end; ++it) {
-        (*it)->deleteLater();
-    }
-    m_columns.erase(start, end);
-}
-
 #include "dolphincolumnview.moc"
index 71ac894687a0a594b45f5999f06dcf4f3c1394fa..75d07ce07d1d0b69e616a80ee7ee723892b1b724 100644 (file)
@@ -142,12 +142,6 @@ private:
      */
     void requestActivation(ColumnWidget* column);
 
-    /**
-     * Deletes all inactive child columns, that are a child of
-     * the currently active column.
-     */
-    void deleteInactiveChildColumns();
-
 private:
     DolphinController* m_controller;
     bool m_restoreActiveColumnFocus;