mirror of
https://invent.kde.org/system/dolphin
synced 2024-11-05 18:47:12 +00:00
when going back in history apply the keyboard focus to the the previously shown directory
BUG: 156550 BUG: 158590 svn path=/trunk/KDE/kdebase/apps/; revision=810493
This commit is contained in:
parent
0ce69374d9
commit
ed5b2e5473
4 changed files with 34 additions and 5 deletions
|
@ -347,6 +347,20 @@ QPoint DolphinView::contentsPosition() const
|
|||
return QPoint(x, y);
|
||||
}
|
||||
|
||||
void DolphinView::setCurrentItem(const KUrl& url)
|
||||
{
|
||||
const QModelIndex dirIndex = m_dolphinModel->indexForUrl(url);
|
||||
if (dirIndex.isValid()) {
|
||||
const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex);
|
||||
QAbstractItemView* view = itemView();
|
||||
const bool clearSelection = !hasSelection();
|
||||
view->setCurrentIndex(proxyIndex);
|
||||
if (clearSelection) {
|
||||
view->clearSelection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DolphinView::zoomIn()
|
||||
{
|
||||
m_controller->triggerZoomIn();
|
||||
|
|
|
@ -233,6 +233,12 @@ public:
|
|||
/** Returns the upper left position of the view content. */
|
||||
QPoint contentsPosition() const;
|
||||
|
||||
/**
|
||||
* Sets the current item (= item that has the keyboard focus) to
|
||||
* the item with the URL \a url.
|
||||
*/
|
||||
void setCurrentItem(const KUrl& url);
|
||||
|
||||
/** Increases the size of the current set view mode. */
|
||||
void zoomIn();
|
||||
|
||||
|
|
|
@ -68,7 +68,9 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
|
|||
m_filterBar(0),
|
||||
m_statusBar(0),
|
||||
m_dirLister(0),
|
||||
m_proxyModel(0)
|
||||
m_proxyModel(0),
|
||||
m_previousUrl(),
|
||||
m_currentUrl()
|
||||
{
|
||||
hide();
|
||||
|
||||
|
@ -167,14 +169,18 @@ DolphinViewContainer::~DolphinViewContainer()
|
|||
m_dirLister = 0; // deleted by m_dolphinModel
|
||||
}
|
||||
|
||||
void DolphinViewContainer::setUrl(const KUrl& url)
|
||||
void DolphinViewContainer::setUrl(const KUrl& newUrl)
|
||||
{
|
||||
m_urlNavigator->setUrl(url);
|
||||
if (newUrl != m_currentUrl) {
|
||||
m_previousUrl = m_currentUrl;
|
||||
m_currentUrl = newUrl;
|
||||
m_urlNavigator->setUrl(newUrl);
|
||||
}
|
||||
}
|
||||
|
||||
const KUrl& DolphinViewContainer::url() const
|
||||
{
|
||||
return m_urlNavigator->url();
|
||||
return m_currentUrl;
|
||||
}
|
||||
|
||||
void DolphinViewContainer::setActive(bool active)
|
||||
|
@ -228,7 +234,7 @@ void DolphinViewContainer::slotDirListerCompleted()
|
|||
}
|
||||
|
||||
updateStatusBar();
|
||||
|
||||
m_view->setCurrentItem(m_previousUrl);
|
||||
QTimer::singleShot(100, this, SLOT(restoreContentsPos()));
|
||||
}
|
||||
|
||||
|
|
|
@ -230,6 +230,9 @@ private:
|
|||
DolphinModel* m_dolphinModel;
|
||||
DolphinDirLister* m_dirLister;
|
||||
DolphinSortFilterProxyModel* m_proxyModel;
|
||||
|
||||
KUrl m_previousUrl;
|
||||
KUrl m_currentUrl;
|
||||
};
|
||||
|
||||
inline const DolphinStatusBar* DolphinViewContainer::statusBar() const
|
||||
|
|
Loading…
Reference in a new issue