X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/293e65797afd44a530df3435a8cc5b1b024aa3bb..862ceee323ad3b474ce9de11eefbddd99c528fac:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 65ec4c9d3..5d7ab076f 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -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()); }