2424 QStyledItemDelegate , QStyleOptionViewItem , QStyle , QSizePolicy , QToolTip ,
2525 QDialogButtonBox , QPushButton , QCheckBox , QComboBox , QStackedLayout ,
2626 QDialog , QRadioButton , QGridLayout , QLabel , QSpinBox , QDoubleSpinBox ,
27- QShortcut , QAbstractItemView
27+ QAbstractItemView , QMenu
2828)
2929from AnyQt .QtGui import QStandardItemModel , QStandardItem , QKeySequence , QIcon
3030from AnyQt .QtCore import (
3131 Qt , QEvent , QSize , QModelIndex , QAbstractItemModel , QPersistentModelIndex ,
32- QRect
32+ QRect , QPoint
3333)
3434from AnyQt .QtCore import pyqtSignal as Signal , pyqtSlot as Slot
3535
@@ -1171,7 +1171,8 @@ def __init__(self, *args, **kwargs):
11711171 self , objectName = "action-group-categories" , enabled = False
11721172 )
11731173 self .move_value_up = QAction (
1174- "\N{UPWARDS ARROW} " , group ,
1174+ "Move up" , group ,
1175+ iconText = "\N{UPWARDS ARROW} " ,
11751176 toolTip = "Move the selected item up." ,
11761177 shortcut = QKeySequence (Qt .ControlModifier | Qt .AltModifier |
11771178 Qt .Key_BracketLeft ),
@@ -1180,7 +1181,8 @@ def __init__(self, *args, **kwargs):
11801181 self .move_value_up .triggered .connect (self .move_up )
11811182
11821183 self .move_value_down = QAction (
1183- "\N{DOWNWARDS ARROW} " , group ,
1184+ "Move down" , group ,
1185+ iconText = "\N{DOWNWARDS ARROW} " ,
11841186 toolTip = "Move the selected item down." ,
11851187 shortcut = QKeySequence (Qt .ControlModifier | Qt .AltModifier |
11861188 Qt .Key_BracketRight ),
@@ -1189,28 +1191,32 @@ def __init__(self, *args, **kwargs):
11891191 self .move_value_down .triggered .connect (self .move_down )
11901192
11911193 self .add_new_item = QAction (
1192- "+" , group ,
1194+ "Add" , group ,
1195+ iconText = "+" ,
11931196 objectName = "action-add-item" ,
11941197 toolTip = "Append a new item." ,
11951198 shortcut = QKeySequence (QKeySequence .New ),
11961199 shortcutContext = Qt .WidgetShortcut ,
11971200 )
11981201 self .remove_item = QAction (
1199- "\N{MINUS SIGN} " , group ,
1202+ "Remove item" , group ,
1203+ iconText = "\N{MINUS SIGN} " ,
12001204 objectName = "action-remove-item" ,
12011205 toolTip = "Delete the selected item." ,
12021206 shortcut = QKeySequence (QKeySequence .Delete ),
12031207 shortcutContext = Qt .WidgetShortcut ,
12041208 )
1205- self .merge_selected_items = QAction (
1206- "=" , group ,
1207- objectName = "action-merge-selected-items" ,
1208- toolTip = "Merge selected items." ,
1209+ self .rename_selected_items = QAction (
1210+ "Rename selected items" , group ,
1211+ iconText = "=" ,
1212+ objectName = "action-rename-selected-items" ,
1213+ toolTip = "Rename selected items." ,
12091214 shortcut = QKeySequence (Qt .ControlModifier | Qt .Key_Equal ),
12101215 shortcutContext = Qt .WidgetShortcut ,
12111216 )
12121217 self .merge_items = QAction (
1213- "ƒM" , group ,
1218+ "Merge" , group ,
1219+ iconText = "M" ,
12141220 objectName = "action-activate-merge-dialog" ,
12151221 toolTip = "Merge infrequent items." ,
12161222 shortcut = QKeySequence (Qt .ControlModifier | Qt .MetaModifier | Qt .Key_Equal ),
@@ -1219,7 +1225,7 @@ def __init__(self, *args, **kwargs):
12191225
12201226 self .add_new_item .triggered .connect (self ._add_category )
12211227 self .remove_item .triggered .connect (self ._remove_category )
1222- self .merge_selected_items .triggered .connect (self ._merge_selected_categories )
1228+ self .rename_selected_items .triggered .connect (self ._rename_selected_categories )
12231229 self .merge_items .triggered .connect (self ._merge_categories )
12241230
12251231 button1 = FixedSizeButton (
@@ -1239,7 +1245,7 @@ def __init__(self, *args, **kwargs):
12391245 accessibleName = "Remove"
12401246 )
12411247 button5 = FixedSizeButton (
1242- self , defaultAction = self .merge_selected_items ,
1248+ self , defaultAction = self .rename_selected_items ,
12431249 accessibleName = "Merge selected items"
12441250 )
12451251 button6 = FixedSizeButton (
@@ -1249,8 +1255,18 @@ def __init__(self, *args, **kwargs):
12491255
12501256 self .values_edit .addActions ([
12511257 self .move_value_up , self .move_value_down ,
1252- self .add_new_item , self .remove_item , self .merge_selected_items
1258+ self .add_new_item , self .remove_item , self .rename_selected_items
12531259 ])
1260+ self .values_edit .setContextMenuPolicy (Qt .CustomContextMenu )
1261+
1262+ def context_menu (pos : QPoint ):
1263+ viewport = self .values_edit .viewport ()
1264+ menu = QMenu (self .values_edit )
1265+ menu .setAttribute (Qt .WA_DeleteOnClose )
1266+ menu .addActions ([self .rename_selected_items , self .remove_item ])
1267+ menu .popup (viewport .mapToGlobal (pos ))
1268+ self .values_edit .customContextMenuRequested .connect (context_menu )
1269+
12541270 hlayout .addWidget (button1 )
12551271 hlayout .addWidget (button2 )
12561272 hlayout .addSpacing (3 )
@@ -1536,9 +1552,9 @@ def complete_merge(text, merge_attributes):
15361552 dlg .get_merged_value_name (), dlg .get_merge_attributes ()
15371553 )
15381554
1539- def _merge_selected_categories (self ):
1555+ def _rename_selected_categories (self ):
15401556 """
1541- Merge selected categories into one .
1557+ Rename selected categories and merging them .
15421558
15431559 Popup an editable combo box for selection/edit of a new value.
15441560 """
0 commit comments