From eed5fe97ff8ca842091b6f79f29207a4b4bb2d1c Mon Sep 17 00:00:00 2001 From: Ali Mirjamali Date: Sat, 20 Jul 2024 20:00:03 +0330 Subject: [PATCH] Enabling drag and drop between application lists --- qubesmanager/appmenu_select.py | 2 ++ qubesmanager/settings.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/qubesmanager/appmenu_select.py b/qubesmanager/appmenu_select.py index 74bf648c..965e65b3 100755 --- a/qubesmanager/appmenu_select.py +++ b/qubesmanager/appmenu_select.py @@ -36,6 +36,8 @@ def __init__(self, name, ident, tooltip=None, parent=None): tooltip += "\n" + additional_description self.setToolTip(tooltip) self.ident = ident + # Using identity as tooltip which also enables drag-and-drop + self.setWhatsThis(ident) @classmethod def from_line(cls, line): diff --git a/qubesmanager/settings.py b/qubesmanager/settings.py index 560f9359..358d25ec 100644 --- a/qubesmanager/settings.py +++ b/qubesmanager/settings.py @@ -231,6 +231,22 @@ def __init__(self, vm, init_page="basic", qapp=None, qubesapp=None, self.refresh_apps_button.clicked.connect( self.refresh_apps_button_pressed) + # Enable Drag & Drop between between two panels + # ToDo: Disable D&D between multiple instances of qubes-vm-settings + # - by overriding QListWidget.dragMoveEvent event + self.app_list.available_list.setDragEnabled(True) + self.app_list.available_list.setAcceptDrops(True) + self.app_list.available_list.setDragDropMode( + QtWidgets.QListWidget.DragDrop) + self.app_list.available_list.setDefaultDropAction( + QtCore.Qt.MoveAction) + self.app_list.selected_list.setDragEnabled(True) + self.app_list.selected_list.setAcceptDrops(True) + self.app_list.selected_list.setDragDropMode( + QtWidgets.QListWidget.DragDrop) + self.app_list.selected_list.setDefaultDropAction( + QtCore.Qt.MoveAction) + # template change if self.template_name.isEnabled(): self.template_name.currentIndexChanged.connect(