┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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.
*/