From 1bfea60d7a3d2dbf672305fdca6e92da61e5b6c1 Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Thu, 13 Aug 2026 22:47:17 -0700 Subject: [PATCH] fix(ui): remove blank action on suggest boxes --- src/tagstudio/qt/controllers/autofill_line_edit.py | 12 +++++++++++- src/tagstudio/qt/views/suggest_box_view.py | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/tagstudio/qt/controllers/autofill_line_edit.py b/src/tagstudio/qt/controllers/autofill_line_edit.py index e0c32228..daaa9f48 100644 --- a/src/tagstudio/qt/controllers/autofill_line_edit.py +++ b/src/tagstudio/qt/controllers/autofill_line_edit.py @@ -5,9 +5,10 @@ from typing import override import structlog from PySide6 import QtCore, QtGui -from PySide6.QtCore import Signal +from PySide6.QtCore import QPoint, Signal from PySide6.QtWidgets import ( QLineEdit, + QMenu, QWidget, ) @@ -72,3 +73,12 @@ class AutofillLineEdit(QLineEdit): if arg__1.key() == QtCore.Qt.Key.Key_Shift: self.holding_shift.emit(False) # noqa: FBT003 return super().keyReleaseEvent(arg__1) + + def show_action_menu(self, pos: QPoint) -> None: + """Show a context menu of actions.""" + menu = QMenu(self) + for action in self.actions(): + # Filter out icon action(s) + if action.text(): + menu.addAction(action) + menu.exec(self.mapToGlobal(pos)) # pyright: ignore[reportArgumentType] diff --git a/src/tagstudio/qt/views/suggest_box_view.py b/src/tagstudio/qt/views/suggest_box_view.py index 7279d6a1..6b790551 100644 --- a/src/tagstudio/qt/views/suggest_box_view.py +++ b/src/tagstudio/qt/views/suggest_box_view.py @@ -72,7 +72,8 @@ class SuggestBoxView(QVBoxLayout): QPixmap(), AutofillLineEdit.ActionPosition.TrailingPosition ) self.scroll_area.setFocusProxy(self.search_field) - self.search_field.setContextMenuPolicy(Qt.ContextMenuPolicy.ActionsContextMenu) + self.search_field.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) + self.search_field.customContextMenuRequested.connect(self.search_field.show_action_menu) # Finalize Layout self.addWidget(scroll_area_container)