void DolphinMainWindow::refreshViews()
{
Q_ASSERT(m_view[PrimaryIdx] != 0);
- m_view[PrimaryIdx]->refresh();
+ // remember the current active view, as because of
+ // the refreshing the active view might change to
+ // the secondary view
+ DolphinView* activeView = m_activeView;
+
+ m_view[PrimaryIdx]->refresh();
if (m_view[SecondaryIdx] != 0) {
m_view[SecondaryIdx]->refresh();
}
+
+ setActiveView(activeView);
}
void DolphinMainWindow::changeUrl(const KUrl& url)
// create a secondary view
m_view[SecondaryIdx] = new DolphinView(this,
0,
- m_view[PrimaryIdx]->url(),
+ m_view[PrimaryIdx]->rootUrl(),
m_view[PrimaryIdx]->mode(),
m_view[PrimaryIdx]->showHiddenFiles());
connectViewSignals(SecondaryIdx);
- m_splitter->insertWidget(0, m_view[SecondaryIdx]);
+ m_splitter->addWidget(m_view[SecondaryIdx]);
m_splitter->setSizes(QList<int>() << newWidth << newWidth);
m_view[SecondaryIdx]->reload();
m_view[SecondaryIdx]->show();
m_view[SecondaryIdx]->close();
m_view[SecondaryIdx]->deleteLater();
m_view[SecondaryIdx] = 0;
- setActiveView(m_view[PrimaryIdx]);
} else {
// The secondary view is active, hence from the users point of view
// the content of the secondary view should be moved to the primary view.
delete m_view[PrimaryIdx];
m_view[PrimaryIdx] = m_view[SecondaryIdx];
m_view[SecondaryIdx] = 0;
- setActiveView(m_view[PrimaryIdx]);
}
}
+ setActiveView(m_view[PrimaryIdx]);
emit activeViewChanged();
}
virtual ~DolphinView();
/**
- * Sets the current active URL.
- * The signals KUrlNavigator::urlChanged() and KUrlNavigator::historyChanged()
+ * Sets the current active URL, where all actions are applied. The
+ * URL navigator is synchronized with this URL. The signals
+ * KUrlNavigator::urlChanged() and KUrlNavigator::historyChanged()
* are emitted.
+ * @see DolphinView::urlNavigator()
*/
void setUrl(const KUrl& url);
- /** Returns the current active URL. */
+ /**
+ * Returns the current active URL, where all actions are applied.
+ * The URL navigator is synchronized with this URL.
+ */
const KUrl& url() const;
+ /**
+ * Returns the root URL of the view, which is defined as the first
+ * visible path of DolphinView::url(). Usually the root URL is
+ * equal to DolphinView::url(), but in the case of the column view
+ * when 2 columns are shown, the root URL might be:
+ * /home/peter/Documents
+ * and DolphinView::url() might return
+ * /home/peter/Documents/Music/
+ */
+ KUrl rootUrl() const;
+
/**
* Returns true if the view is active and hence all actions are
* applied to this view.