Accessible.name: (model.path !== "" && model.displayPath !== "") ? qsTr("Open %1 locally").arg(model.displayPath) : model.message
Accessible.onPressAction: root.clicked()
- background: Rectangle {
- color: root.hovered ? Style.lightHover : "transparent"
- }
-
NCToolTip {
visible: root.hovered && !activityContent.childHovered && model.displayLocation !== ""
text: qsTr("In %1").arg(model.displayLocation)
import QtQuick.Controls 2.15
import com.nextcloud.desktopclient 1.0 as NC
+import Style 1.0
ScrollView {
id: controlRoot
contentWidth: availableWidth
padding: 1
+ focus: false
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ListView {
id: activityList
- keyNavigationEnabled: true
-
Accessible.role: Accessible.List
Accessible.name: qsTr("Activity list")
clip: true
-
spacing: 0
+ currentIndex: -1
+ interactive: true
+
+ highlight: Rectangle {
+ id: activityHover
+ width: activityList.currentItem.width
+ height: activityList.currentItem.height
+ color: Style.lightHover
+ visible: activityList.activeFocus
+ }
+ highlightFollowsCurrentItem: true
+ highlightMoveDuration: 0
+ highlightResizeDuration: 0
+ highlightRangeMode: ListView.ApplyRange
+ preferredHighlightBegin: 0
+ preferredHighlightEnd: controlRoot.height
delegate: ActivityItem {
isFileActivityList: controlRoot.isFileActivityList
width: activityList.contentWidth
flickable: activityList
+ onEntered: {
+ // When we set the currentIndex the list view will scroll...
+ // unless we tamper with the preferred highlight points to stop this.
+ const savedPreferredHighlightBegin = activityList.preferredHighlightBegin;
+ const savedPreferredHighlightEnd = activityList.preferredHighlightEnd;
+ // Set overkill values to make sure no scroll happens when we hover with mouse
+ activityList.preferredHighlightBegin = -controlRoot.height;
+ activityList.preferredHighlightEnd = controlRoot.height * 2;
+
+ activityList.currentIndex = index
+
+ // Reset original values so keyboard navigation makes list view scroll
+ activityList.preferredHighlightBegin = savedPreferredHighlightBegin;
+ activityList.preferredHighlightEnd = savedPreferredHighlightEnd;
+
+ forceActiveFocus();
+ }
onClicked: {
if (model.isCurrentUserFileActivity && model.openablePath) {
openFile("file://" + model.openablePath);