m_previewGenerator(0),
m_toolTipManager(0),
m_rootUrl(),
- m_currentItemUrl(),
+ m_activeItemUrl(),
m_createdItemUrl(),
m_selectedItems(),
m_newFileNames(),
void DolphinView::setUrl(const KUrl& url)
{
m_newFileNames.clear();
-
- // remember current item candidate (see slotDirListerCompleted())
- m_currentItemUrl = url;
updateView(url, KUrl());
}
return m_tabsForFiles;
}
+void DolphinView::activateItem(const KUrl& url)
+{
+ m_activeItemUrl = url;
+}
+
bool DolphinView::itemsExpandable() const
{
return (m_detailsView != 0) && m_detailsView->itemsExpandable();
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();
if (clearSelection) {
view->clearSelection();
}
- m_currentItemUrl.clear();
+ m_activeItemUrl.clear();
}
}
void setTabsForFilesEnabled(bool tabsForFiles);
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.
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
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);
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();
*/
void saveUrlCompletionMode(KGlobalSettings::Completion completion);
+ void slotHistoryChanged();
+
private:
bool m_showProgress;
bool m_isFolderWritable;