Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Cambra <claudio.cambra@gmail.com>2022-07-26 20:21:17 +0300
committerClaudio Cambra <claudio.cambra@gmail.com>2022-09-07 19:27:14 +0300
commitb820df90b9a400f7791e1c62cad1d657293e3de5 (patch)
tree1baba58f0cf97f2d70734dabe5091a9bfa439677 /src/gui/tray
parent7ac1bdff1487a1284c119e651850c25be57b082d (diff)
Improve activity list highlighting/keyboard item selection
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
Diffstat (limited to 'src/gui/tray')
-rw-r--r--src/gui/tray/ActivityItem.qml4
-rw-r--r--src/gui/tray/ActivityList.qml38
2 files changed, 35 insertions, 7 deletions
diff --git a/src/gui/tray/ActivityItem.qml b/src/gui/tray/ActivityItem.qml
index 9dbc41cd3..74e15b563 100644
--- a/src/gui/tray/ActivityItem.qml
+++ b/src/gui/tray/ActivityItem.qml
@@ -27,10 +27,6 @@ ItemDelegate {
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)
diff --git a/src/gui/tray/ActivityList.qml b/src/gui/tray/ActivityList.qml
index f3a6416c2..8106c939f 100644
--- a/src/gui/tray/ActivityList.qml
+++ b/src/gui/tray/ActivityList.qml
@@ -2,6 +2,7 @@ import QtQuick 2.15
import QtQuick.Controls 2.15
import com.nextcloud.desktopclient 1.0 as NC
+import Style 1.0
ScrollView {
id: controlRoot
@@ -14,6 +15,7 @@ ScrollView {
contentWidth: availableWidth
padding: 1
+ focus: false
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
@@ -24,19 +26,49 @@ ScrollView {
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);