diff --git a/qt/aqt/sidebar.py b/qt/aqt/sidebar.py index 331019f8d..2cc02f16a 100644 --- a/qt/aqt/sidebar.py +++ b/qt/aqt/sidebar.py @@ -291,7 +291,8 @@ class SidebarTreeView(QTreeView): self.col = self.mw.col self.current_search: Optional[str] = None - self.setContextMenuPolicy(Qt.PreventContextMenu) + self.setContextMenuPolicy(Qt.CustomContextMenu) + self.customContextMenuRequested.connect(self.onContextMenu) # type: ignore self.context_menus: Dict[SidebarItemType, Sequence[Tuple[str, Callable]]] = { SidebarItemType.DECK: ( (tr(TR.ACTIONS_RENAME), self.rename_deck), @@ -316,8 +317,8 @@ class SidebarTreeView(QTreeView): self.setIndentation(15) self.setAutoExpandDelay(600) # pylint: disable=no-member - mode = QAbstractItemView.SelectionMode.ExtendedSelection # type: ignore - self.setSelectionMode(mode) + # mode = QAbstractItemView.SelectionMode.ExtendedSelection # type: ignore + # self.setSelectionMode(mode) self.setDragDropMode(QAbstractItemView.InternalMove) self.setDragDropOverwriteMode(False) @@ -433,13 +434,7 @@ class SidebarTreeView(QTreeView): def mouseReleaseEvent(self, event: QMouseEvent) -> None: super().mouseReleaseEvent(event) if event.button() == Qt.LeftButton: - if not self._keyboard_modified_pressed(): - self._on_click_current() - elif event.button() == Qt.RightButton: - if self._keyboard_modified_pressed(): - self._on_click_current() - else: - self.onContextMenu(event.pos()) + self._on_click_current() def keyPressEvent(self, event: QKeyEvent) -> None: if event.key() in (Qt.Key_Return, Qt.Key_Enter): @@ -447,10 +442,6 @@ class SidebarTreeView(QTreeView): else: super().keyPressEvent(event) - def _keyboard_modified_pressed(self) -> bool: - mods = self.mw.app.keyboardModifiers() - return bool(mods & (Qt.ShiftModifier | Qt.AltModifier | Qt.ControlModifier)) - ########### def handle_drag_drop(self, sources: List[SidebarItem], target: SidebarItem) -> bool: