]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinview.cpp
fixed some activation issues in combination with split views
[dolphin.git] / src / dolphinview.cpp
index 65ec4c9d305f7da815d676c798b5c5c5c56dca65..5d7ab076fad0222b7c8fad48e34a4cd8c031f9b7 100644 (file)
@@ -61,7 +61,7 @@ DolphinView::DolphinView(QWidget* parent,
                          Mode mode) :
     QWidget(parent),
     m_active(true),
-    m_blockContentsMovedSignal(false),
+    m_loadingDirectory(false),
     m_initializeColumnView(false),
     m_mode(mode),
     m_topLayout(0),
@@ -171,9 +171,8 @@ void DolphinView::setMode(Mode mode)
         // to go back to the root URL of the column view automatically.
         // Otherwise there it would not be possible to turn off the column view
         // without focusing the first column.
-        // TODO: reactivate again after DolphinView/DolphinViewController split works
-        //setUrl(m_dirLister->url());
-        //m_controller->setUrl(m_dirLister->url());
+        setUrl(m_dirLister->url());
+        m_controller->setUrl(m_dirLister->url());
     }
 
     ViewProperties props(url());
@@ -337,7 +336,7 @@ void DolphinView::setContentsPosition(int x, int y)
     view->horizontalScrollBar()->setValue(x);
     view->verticalScrollBar()->setValue(y);
 
-    m_blockContentsMovedSignal = false;
+    m_loadingDirectory = false;
 }
 
 QPoint DolphinView::contentsPosition() const
@@ -541,7 +540,7 @@ void DolphinView::startDirLister(const KUrl& url, bool reload)
     }
 
     m_cutItemsCache.clear();
-    m_blockContentsMovedSignal = true;
+    m_loadingDirectory = true;
 
     m_dirLister->stop();
 
@@ -754,7 +753,12 @@ void DolphinView::updateSortOrder(Qt::SortOrder order)
 
 void DolphinView::emitContentsMoved()
 {
-    if (!m_blockContentsMovedSignal) {
+    // only emit the contents moved signal if:
+    // - no directory loading is ongoing (this would reset the contents position
+    //   always to (0, 0))
+    // - if the Column View is active: the column view does an automatic
+    //   positioning during the loading operation, which must be remembered
+    if (!m_loadingDirectory || isColumnViewActive()) {
         const QPoint pos(contentsPosition());
         emit contentsMoved(pos.x(), pos.y());
     }