┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dolphinview.cpp16
-rw-r--r--src/dolphinview.h11
-rw-r--r--src/dolphinviewcontainer.cpp13
-rw-r--r--src/dolphinviewcontainer.h2
4 files changed, 34 insertions, 8 deletions
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index cb846fe42..8278d136a 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -104,7 +104,7 @@ DolphinView::DolphinView(QWidget* parent,
m_previewGenerator(0),
m_toolTipManager(0),
m_rootUrl(),
- m_currentItemUrl(),
+ m_activeItemUrl(),
m_createdItemUrl(),
m_selectedItems(),
m_newFileNames(),
@@ -608,9 +608,6 @@ QString DolphinView::statusBarText() const
void DolphinView::setUrl(const KUrl& url)
{
m_newFileNames.clear();
-
- // remember current item candidate (see slotDirListerCompleted())
- m_currentItemUrl = url;
updateView(url, KUrl());
}
@@ -1100,6 +1097,11 @@ bool DolphinView::isTabsForFilesEnabled() const
return m_tabsForFiles;
}
+void DolphinView::activateItem(const KUrl& url)
+{
+ m_activeItemUrl = url;
+}
+
bool DolphinView::itemsExpandable() const
{
return (m_detailsView != 0) && m_detailsView->itemsExpandable();
@@ -1191,9 +1193,9 @@ void DolphinView::slotRequestUrlChange(const KUrl& url)
void DolphinView::slotDirListerCompleted()
{
- if (!m_currentItemUrl.isEmpty()) {
+ if (!m_activeItemUrl.isEmpty()) {
// assure that the current item remains visible
- const QModelIndex dirIndex = m_dolphinModel->indexForUrl(m_currentItemUrl);
+ const QModelIndex dirIndex = m_dolphinModel->indexForUrl(m_activeItemUrl);
if (dirIndex.isValid()) {
const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex);
QAbstractItemView* view = itemView();
@@ -1202,7 +1204,7 @@ void DolphinView::slotDirListerCompleted()
if (clearSelection) {
view->clearSelection();
}
- m_currentItemUrl.clear();
+ m_activeItemUrl.clear();
}
}
diff --git a/src/dolphinview.h b/src/dolphinview.h
index 24831e03b..24f56f403 100644
--- a/src/dolphinview.h
+++ b/src/dolphinview.h
@@ -346,6 +346,15 @@ public:
bool isTabsForFilesEnabled() const;
/**
+ * Marks the item \a url as active item as soon as it has
+ * been loaded by the directory lister. This is useful mark
+ * the previously visited directory as active when going
+ * back in history (the URL is known, but the item is not
+ * loaded yet).
+ */
+ void activateItem(const KUrl& url);
+
+ /**
* Returns true if the current view allows folders to be expanded,
* i.e. presents a hierarchical view to the user.
*/
@@ -786,7 +795,7 @@ private:
ToolTipManager* m_toolTipManager;
KUrl m_rootUrl;
- KUrl m_currentItemUrl;
+ KUrl m_activeItemUrl;
KUrl m_createdItemUrl; // URL for a new item that got created by the "Create New..." menu
KFileItemList m_selectedItems; // this is used for making the View to remember selections after F5
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 9f61360d7..cffffd70b 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -155,6 +155,8 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)),
this, SLOT(restoreView(const KUrl&)));
+ connect(m_urlNavigator, SIGNAL(historyChanged()),
+ this, SLOT(slotHistoryChanged()));
m_statusBar = new DolphinStatusBar(this, m_view);
@@ -452,6 +454,17 @@ void DolphinViewContainer::saveUrlCompletionMode(KGlobalSettings::Completion com
settings.save();
}
+void DolphinViewContainer::slotHistoryChanged()
+{
+ const int index = m_urlNavigator->historyIndex();
+ if (index > 0) {
+ // The "Go Forward" action is enabled. Try to mark
+ // the previous directory as active item:
+ const KUrl url = m_urlNavigator->historyUrl(index - 1);
+ m_view->activateItem(url);
+ }
+}
+
void DolphinViewContainer::slotItemTriggered(const KFileItem& item)
{
KUrl url = item.targetUrl();
diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h
index e6fd8fd0a..db6ee69d5 100644
--- a/src/dolphinviewcontainer.h
+++ b/src/dolphinviewcontainer.h
@@ -243,6 +243,8 @@ private slots:
*/
void saveUrlCompletionMode(KGlobalSettings::Completion completion);
+ void slotHistoryChanged();
+
private:
bool m_showProgress;
bool m_isFolderWritable;