┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-05-17 13:29:13 +0000
committerPeter Penz <[email protected]>2007-05-17 13:29:13 +0000
commitc35843f38c596eda4a9b04ba4c6a3247f3bdebc9 (patch)
tree171e3551dd40fa80c41af4c4cd57e8c1810385c4
parent8e4e7ce5b248026d941fc4097cbd92032ef53b19 (diff)
when the column view is used, then 'Split view' should take the root URL of the column view as new base for the secondary view
svn path=/trunk/KDE/kdebase/apps/; revision=665630
-rw-r--r--src/dolphinmainwindow.cpp16
-rw-r--r--src/dolphinview.cpp5
-rw-r--r--src/dolphinview.h22
3 files changed, 35 insertions, 8 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index ffe1c4e8e..5b7fde6ce 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -207,11 +207,18 @@ void DolphinMainWindow::rename(const KUrl& oldUrl, const KUrl& newUrl)
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)
@@ -729,11 +736,11 @@ void DolphinMainWindow::toggleSplitView()
// 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();
@@ -743,7 +750,6 @@ void DolphinMainWindow::toggleSplitView()
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.
@@ -753,9 +759,9 @@ void DolphinMainWindow::toggleSplitView()
delete m_view[PrimaryIdx];
m_view[PrimaryIdx] = m_view[SecondaryIdx];
m_view[SecondaryIdx] = 0;
- setActiveView(m_view[PrimaryIdx]);
}
}
+ setActiveView(m_view[PrimaryIdx]);
emit activeViewChanged();
}
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index 652274d63..d33ed3eba 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -197,6 +197,11 @@ const KUrl& DolphinView::url() const
return m_urlNavigator->url();
}
+KUrl DolphinView::rootUrl() const
+{
+ return isColumnViewActive() ? m_dirLister->url() : url();
+}
+
bool DolphinView::isActive() const
{
return m_mainWindow->activeView() == this;
diff --git a/src/dolphinview.h b/src/dolphinview.h
index 96b487961..0ac116fab 100644
--- a/src/dolphinview.h
+++ b/src/dolphinview.h
@@ -120,16 +120,32 @@ public:
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.
*/