Places panel: highlight place only when it is displayed

BUG: 156678
FIXED-IN: 20.12
This commit is contained in:
Méven Car 2020-11-17 21:11:03 +01:00 committed by Elvis Angelaccio
parent d5a4835f01
commit 2cd1c07cad
2 changed files with 12 additions and 8 deletions

View file

@ -77,7 +77,7 @@ bool PlacesPanel::urlChanged()
}
if (m_controller) {
selectClosestItem();
selectItem();
}
return true;
@ -139,7 +139,7 @@ void PlacesPanel::showEvent(QShowEvent* event)
layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(container);
selectClosestItem();
selectItem();
}
Panel::showEvent(event);
@ -293,7 +293,7 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
}
}
selectClosestItem();
selectItem();
}
void PlacesPanel::slotViewContextMenuRequested(const QPointF& pos)
@ -361,7 +361,7 @@ void PlacesPanel::slotViewContextMenuRequested(const QPointF& pos)
}
}
selectClosestItem();
selectItem();
}
QAction *PlacesPanel::buildGroupContextMenu(QMenu *menu, int index)
@ -529,13 +529,17 @@ void PlacesPanel::editEntry(int index)
delete dialog;
}
void PlacesPanel::selectClosestItem()
void PlacesPanel::selectItem()
{
const int index = m_model->closestItem(url());
KItemListSelectionManager* selectionManager = m_controller->selectionManager();
selectionManager->setCurrentItem(index);
selectionManager->clearSelection();
selectionManager->setSelected(index);
const QUrl closestUrl = m_model->url(index);
if (!closestUrl.path().isEmpty() && url() == closestUrl) {
selectionManager->setSelected(index);
}
}
void PlacesPanel::triggerItem(int index, Qt::MouseButton button)

View file

@ -68,10 +68,10 @@ private:
void editEntry(int index);
/**
* Selects the item that has the closest URL for the URL set
* Selects the item that matches the URL set
* for the panel (see Panel::setUrl()).
*/
void selectClosestItem();
void selectItem();
void triggerItem(int index, Qt::MouseButton button);