From d64eebc153d7bbadd5a3446117d6f66b25116506 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Sat, 12 Jun 2021 11:12:10 +0100 Subject: [PATCH] open a file with double-click from library --- .../com/muwire/gui/MainFrameController.groovy | 9 +++++++++ gui/griffon-app/i18n/messages.properties | 1 + .../views/com/muwire/gui/MainFrameView.groovy | 11 +++++++++++ 3 files changed, 21 insertions(+) diff --git a/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy b/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy index 583efae1..5ac890ff 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy @@ -232,6 +232,15 @@ class MainFrameController { params['downloader'] = downloader mvcGroup.createMVCGroup("download-preview", params) } + + @ControllerAction + void open() { + List selected = view.selectedSharedFiles() + if (selected == null || selected.size() != 1) + return + SharedFile sf = selected[0] + Desktop.getDesktop().open(sf.file) + } @ControllerAction void clear() { diff --git a/gui/griffon-app/i18n/messages.properties b/gui/griffon-app/i18n/messages.properties index 8847fbce..8bf39861 100644 --- a/gui/griffon-app/i18n/messages.properties +++ b/gui/griffon-app/i18n/messages.properties @@ -221,6 +221,7 @@ COPY_SHORT=Copy Short COPY_FULL=Copy Full # Shared files popup menu +OPEN=Open COPY_HASH_TO_CLIPBOARD=Copy hash to clipboard UNSHARE_SELECTED_FILES=Unshare selected files COMMENT_SELECTED_FILES=Comment selected files diff --git a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy index 658e9bce..2ce90e5b 100644 --- a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy @@ -847,12 +847,16 @@ class MainFrameView { public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger()) showSharedFilesPopupMenu(e) + else if (e.getClickCount() == 2) + controller.open() } @Override public void mousePressed(MouseEvent e) { if (e.isPopupTrigger()) showSharedFilesPopupMenu(e) + else if (e.getClickCount() == 2) + controller.open() } } @@ -1527,6 +1531,13 @@ class MainFrameView { def selectedFiles = selectedSharedFiles() JPopupMenu sharedFilesMenu = new JPopupMenu() + + if (selectedFiles != null && selectedFiles.size() == 1) { + JMenuItem openFile = new JMenuItem(trans("OPEN")) + openFile.addActionListener({mvcGroup.controller.open()}) + sharedFilesMenu.add(openFile) + } + JMenuItem copyHashToClipboard = new JMenuItem(trans("COPY_HASH_TO_CLIPBOARD")) copyHashToClipboard.addActionListener({mvcGroup.view.copyHashToClipboard()}) sharedFilesMenu.add(copyHashToClipboard)