@@ -26,6 +26,7 @@ ScrollView {
2626 }
2727
2828 signal openFile (string filePath)
29+ signal showInFileManager (int index)
2930 signal activityItemClicked (int index)
3031
3132 contentWidth: availableWidth
@@ -51,6 +52,14 @@ ScrollView {
5152 ListView {
5253 id: activityList
5354
55+ function openFileOrLink (index ) {
56+ if (model .isCurrentUserFileActivity && model .openablePath ) {
57+ openFile (" file://" + model .openablePath );
58+ } else {
59+ activityItemClicked (index);
60+ }
61+ }
62+
5463 Accessible .role : Accessible .List
5564 Accessible .name : qsTr (" Activity list" )
5665
@@ -117,11 +126,25 @@ ScrollView {
117126
118127 forceActiveFocus ();
119128 }
120- onClicked: {
121- if (model .isCurrentUserFileActivity && model .openablePath ) {
122- openFile (" file://" + model .openablePath );
123- } else {
124- activityItemClicked (model .activityIndex )
129+
130+ MouseArea {
131+ anchors .fill : parent
132+ acceptedButtons: Qt .LeftButton | Qt .RightButton
133+ onClicked : (mouse )=> {
134+ switch (mouse .button ) {
135+ case Qt .LeftButton :
136+ activityList .openFileOrLink (activityList .currentIndex )
137+ break ;
138+ case Qt .RightButton :
139+ // We only want to allow the context menu for actual files
140+ if (model .showFileDetails ) {
141+ contextMenu .x = mouse .x ;
142+ contextMenu .y = mouse .y ;
143+ contextMenu .selectedItem = activityList .currentIndex
144+ contextMenu .open ();
145+ }
146+ break ;
147+ }
125148 }
126149 }
127150 }
@@ -148,6 +171,26 @@ ScrollView {
148171 visible: ! controlRoot .atYBeginning && controlRoot .contentHeight > controlRoot .height
149172 }
150173
174+ Menu {
175+ id: contextMenu
176+ property int selectedItem
177+
178+ MenuItem {
179+ text: qsTr (" Open local file" )
180+ onTriggered: {
181+ activityList .currentIndex = contextMenu .selectedItem
182+ activityList .openFileOrLink (contextMenu .selectedItem );
183+ }
184+ }
185+ MenuItem {
186+ text: qsTr (" Show in file manager" )
187+ onTriggered: {
188+ activityList .currentIndex = contextMenu .selectedItem
189+ showInFileManager (contextMenu .selectedItem );
190+ }
191+ }
192+ }
193+
151194 Column {
152195 id: placeholderColumn
153196 width: parent .width * 0.8
0 commit comments