umbrello  2.38.5
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
listpopupmenu.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2003-2022 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef LISTPOPUPMENU_H
7 #define LISTPOPUPMENU_H
8 
9 #include "basictypes.h"
10 #include "umllistviewitem.h"
11 #include "umlobject.h"
12 #include "widgetbase.h"
13 #include <QMenu>
14 
15 #include <QHash>
16 
17 class UMLCategory;
19 
32 class ListPopupMenu : public QMenu
33 {
34  Q_OBJECT
35  Q_ENUMS(MenuType)
36  Q_ENUMS(DataType)
37 public:
38  enum MenuType
39  {
41  // diagrams
56  // widgets, uml objects
128  // new from dialogs
140  // selection
141  // visual properties
143  mt_Hide_Attributes_Selection, // Unset visual property on multiple widgets
145  mt_Hide_NonPublic_Selection, // Could be named "show public only"
147  mt_Hide_Operations_Selection, // Hide operations
153  mt_Show_Attributes_Selection, // Set visual property on multiple widgets
154  mt_Show_Attributes, // Toggle visual property on a widget
157  mt_Show_NonPublic_Selection, // Could be named "hide public only" (crazy!)
160  mt_Show_Operations_Selection, // Show operations
161  mt_Show_Operations, // Toggle 'show operations'
162  mt_Show_Packages, // etc...
169  // other
219 
220  mt_Expand_All, // Expand all items in the list
221  mt_Collapse_All, // Collapse all items in the list
222 
224  mt_ViewCode, // view code document contents
225  mt_Clone, // Create a deep copy of the object.
226  mt_Externalize_Folder, // Mark folder for saving as separate submodel
227  mt_Internalize_Folder, // Reintegrate separate submodel into main model
228 
229  mt_AddInteractionOperand, // add a dash line to an alternative or a parallel combined fragment
230  mt_Apply_Layout, // apply automatically created layout
231  mt_Apply_Layout1, // apply automatically created layout
232  mt_Apply_Layout2, // apply automatically created layout
233  mt_Apply_Layout3, // apply automatically created layout
234  mt_Apply_Layout4, // apply automatically created layout
235  mt_Apply_Layout5, // apply automatically created layout
236  mt_Apply_Layout6, // apply automatically created layout
237  mt_Apply_Layout7, // apply automatically created layout
238  mt_Apply_Layout8, // apply automatically created layout
239  mt_Apply_Layout9, // apply automatically created layout
240 
241  mt_LayoutDirect, // associations with direct lines
242  mt_LayoutSpline, // associations with slines
243  mt_LayoutOrthogonal, // associations with orthogonal lines
244  mt_LayoutPolyline, // associations with polylines
245 
256  // add new entries above
258  };
259 
260  static QString toString(MenuType menu);
261 
262  enum DataType
263  {
266  };
267 
268  static QString toString(DataType data);
269  static QVariant dataFromAction(DataType key, QAction* action);
270 
271  ListPopupMenu(QWidget* parent = 0);
272 
273  virtual ~ListPopupMenu();
274 
276 
277  static ListPopupMenu* menuFromAction(QAction *action);
278  static MenuType typeFromAction(QAction *action);
279 
280  QAction* getAction(MenuType idx);
281 
282  void setActionEnabled(MenuType idx, bool value);
283 
284  MenuType getMenuType(QAction* action);
285 
286  void dumpActions(const QString &title);
287 
288  QMenu *newMenu(const QString &title, QWidget *widget);
289  void addMenu(QMenu *menu);
290 protected:
291  void insert(MenuType m);
292  void insertFromActionKey(const MenuType m, QMenu *menu, const QString &action);
293  void insert(const MenuType m, QMenu* menu);
294  void insert(const MenuType m, QMenu* menu, const QIcon & icon, const QString & text);
295  void insert(const MenuType m, QMenu* menu, const QString & text, const bool checkable = false);
296  void insert(const MenuType m, const QIcon & icon, const QString & text);
297  void insert(const MenuType m, const QString & text, const bool checkable = false);
298 
299  void insertContainerItems(bool folders, bool diagrams, bool packages);
300  void insertContainerItems(QMenu* menu, bool folders, bool diagrams, bool packages);
301  void insertAssociationTextItem(const QString &label, MenuType mt);
302 
303  QMenu *makeNewMenu();
304  void insertSubMenuCategoryType(UMLCategory *category);
305 
306  void setActionChecked(MenuType idx, bool value);
307  void setupActionsData();
308 
309  QHash<MenuType, QAction*> m_actions;
311 };
312 
315 
316 #endif
Definition: listpopupmenu.h:68
Definition: listpopupmenu.h:175
Definition: listpopupmenu.h:94
Definition: listpopupmenu.h:195
Definition: listpopupmenu.h:101
Definition: listpopupmenu.h:189
Definition: listpopupmenu.h:249
Definition: listpopupmenu.h:206
Definition: listpopupmenu.h:246
Definition: listpopupmenu.h:145
Definition: listpopupmenu.h:104
Definition: listpopupmenu.h:153
Definition: listpopupmenu.h:215
ListPopupMenuPrivate * d
Definition: listpopupmenu.h:310
Definition: listpopupmenu.h:237
Definition: listpopupmenu.h:110
static QString toString(MenuType menu)
Definition: listpopupmenu.cpp:608
Definition: listpopupmenu.h:97
Definition: listpopupmenu.h:241
Definition: listpopupmenu.h:233
Definition: listpopupmenu.h:212
Definition: listpopupmenu.h:186
Definition: listpopupmenu.h:225
Definition: listpopupmenu.h:200
Definition: listpopupmenu.h:173
Definition: listpopupmenu.h:111
Definition: listpopupmenu.h:163
Definition: listpopupmenu.h:167
Definition: listpopupmenu.h:127
Definition: listpopupmenu.h:116
Definition: listpopupmenu.h:50
Definition: listpopupmenu.h:234
Definition: listpopupmenu.h:187
void setupActionsData()
Definition: listpopupmenu.cpp:595
Definition: listpopupmenu.h:107
MenuType
< This type hosts all possible menu entry types
Definition: listpopupmenu.h:38
Definition: listpopupmenu.h:91
Definition: listpopupmenu.h:49
Definition: listpopupmenu.h:166
Definition: listpopupmenu.h:57
Definition: listpopupmenu.h:178
Definition: listpopupmenu.h:134
void insertContainerItems(bool folders, bool diagrams, bool packages)
Definition: listpopupmenu.cpp:349
Definition: listpopupmenu.h:238
Definition: listpopupmenu.h:131
QHash< MenuType, QAction * > m_actions
Definition: listpopupmenu.h:309
Definition: listpopupmenu.h:184
void dumpActions(const QString &title)
Definition: listpopupmenu.cpp:630
Definition: listpopupmenu.h:192
Definition: listpopupmenu.h:204
Definition: listpopupmenu.h:191
Definition: listpopupmenu.h:64
Definition: listpopupmenu.h:124
Definition: listpopupmenu.h:42
Definition: listpopupmenu.h:231
Definition: listpopupmenu.h:155
static QVariant dataFromAction(DataType key, QAction *action)
Definition: listpopupmenu.cpp:474
Definition: listpopupmenu.h:176
Definition: listpopupmenu.h:223
Definition: listpopupmenu.h:88
Definition: listpopupmenu.h:170
Definition: listpopupmenu.h:83
Definition: listpopupmenu.h:213
Definition: listpopupmenu.h:72
Definition: listpopupmenu.h:265
Definition: listpopupmenu.h:66
static ListPopupMenu * menuFromAction(QAction *action)
Definition: listpopupmenu.cpp:485
Definition: listpopupmenu.h:160
Definition: listpopupmenu.h:151
Definition: listpopupmenu.h:188
Definition: listpopupmenu.h:108
Definition: listpopupmenu.h:148
Definition: listpopupmenu.h:193
void insert(MenuType m)
Definition: listpopupmenu.cpp:112
Definition: listpopupmenu.h:86
Definition: listpopupmenu.h:113
Definition: listpopupmenu.h:144
Definition: listpopupmenu.h:102
Definition: listpopupmenu.h:118
Definition: listpopupmenu.h:242
Definition: listpopupmenu.h:80
Definition: listpopupmenu.h:43
Definition: listpopupmenu.h:180
Definition: listpopupmenu.h:99
Definition: listpopupmenu.h:216
Definition: listpopupmenu.h:46
void insertFromActionKey(const MenuType m, QMenu *menu, const QString &action)
Definition: listpopupmenu.cpp:124
Definition: listpopupmenu.h:61
Definition: listpopupmenu.h:220
Definition: listpopupmenu.h:252
Definition: listpopupmenu.h:205
void setActionChecked(MenuType idx, bool value)
Definition: listpopupmenu.cpp:559
Definition: listpopupmenu.h:74
Definition: listpopupmenu.h:87
Definition: listpopupmenu.h:235
Definition: listpopupmenu.h:251
Definition: listpopupmenu.h:117
Definition: listpopupmenu.h:253
Definition: listpopupmenu.h:194
Definition: listpopupmenu.h:78
Definition: listpopupmenu.h:79
Definition: listpopupmenu.h:227
Definition: listpopupmenu.h:214
Definition: listpopupmenu.h:136
Definition: listpopupmenu.h:181
Definition: listpopupmenu.h:264
Definition: listpopupmenu.h:76
Definition: listpopupmenu.h:52
ListPopupMenu(QWidget *parent=0)
Definition: listpopupmenu.cpp:76
Definition: listpopupmenu.h:171
Definition: listpopupmenu.h:218
Definition: listpopupmenu.h:135
Definition: listpopupmenu.h:58
Definition: listpopupmenu.h:90
Definition: listpopupmenu.h:82
Definition: listpopupmenu.h:48
Definition: listpopupmenu.h:98
Definition: listpopupmenu.h:224
Definition: listpopupmenu.h:196
Definition: listpopupmenu.h:126
Definition: listpopupmenu.h:112
Definition: listpopupmenu.h:132
Definition: listpopupmenu.h:114
Definition: listpopupmenu.h:185
Definition: listpopupmenu.cpp:58
Definition: listpopupmenu.h:65
Definition: listpopupmenu.h:162
Definition: listpopupmenu.h:190
Definition: listpopupmenu.h:53
Definition: listpopupmenu.h:62
Definition: listpopupmenu.h:172
Definition: listpopupmenu.h:168
static UMLObject::ObjectType convert_MT_OT(MenuType mt)
Definition: listpopupmenu.cpp:421
Definition: listpopupmenu.h:70
Definition: listpopupmenu.h:247
Definition: listpopupmenu.h:129
Definition: listpopupmenu.h:174
Definition: listpopupmenu.h:243
Definition: listpopupmenu.h:202
Definition: listpopupmenu.h:103
Definition: listpopupmenu.h:130
Definition: listpopupmenu.h:51
Q_DECLARE_METATYPE(UMLStereotype *)
Definition: listpopupmenu.h:84
Definition: listpopupmenu.h:75
Definition: listpopupmenu.h:248
Definition: listpopupmenu.h:95
Definition: listpopupmenu.h:133
Definition: listpopupmenu.h:54
Definition: listpopupmenu.h:81
Definition: listpopupmenu.h:183
Definition: listpopupmenu.h:236
Definition: listpopupmenu.h:208
Definition: listpopupmenu.h:59
Definition: listpopupmenu.h:44
Definition: listpopupmenu.h:210
Definition: listpopupmenu.h:143
Definition: listpopupmenu.h:77
Definition: listpopupmenu.h:229
Definition: listpopupmenu.h:109
Definition: listpopupmenu.h:45
Definition: listpopupmenu.h:209
Definition: listpopupmenu.h:125
Definition: listpopupmenu.h:96
Definition: listpopupmenu.h:254
Definition: listpopupmenu.h:161
void addMenu(QMenu *menu)
Definition: listpopupmenu.cpp:101
ObjectType
Definition: umlobject.h:75
Definition: listpopupmenu.h:197
Definition: listpopupmenu.h:119
Definition: listpopupmenu.h:230
void setActionEnabled(MenuType idx, bool value)
Definition: listpopupmenu.cpp:576
Definition: listpopupmenu.h:47
Definition: listpopupmenu.h:138
void insertSubMenuCategoryType(UMLCategory *category)
Definition: listpopupmenu.cpp:511
Definition: listpopupmenu.h:211
Definition: listpopupmenu.h:232
virtual ~ListPopupMenu()
Definition: listpopupmenu.cpp:85
Definition: listpopupmenu.h:149
Definition: listpopupmenu.h:177
Definition: listpopupmenu.h:201
Definition: listpopupmenu.h:255
Definition: listpopupmenu.h:123
Definition: listpopupmenu.h:199
Definition: listpopupmenu.h:63
Information for a non-graphical UML Category.
Definition: category.h:22
Definition: listpopupmenu.h:60
Definition: listpopupmenu.h:217
DataType
< Key value of the data map used in actions.
Definition: listpopupmenu.h:262
Definition: listpopupmenu.h:158
Definition: listpopupmenu.h:92
Definition: listpopupmenu.h:239
MenuType getMenuType(QAction *action)
Definition: listpopupmenu.cpp:542
Definition: listpopupmenu.h:203
Displays a popup menu.
Definition: listpopupmenu.h:32
Definition: listpopupmenu.h:40
Definition: listpopupmenu.h:55
QAction * getAction(MenuType idx)
Definition: listpopupmenu.cpp:526
Definition: listpopupmenu.h:165
Definition: listpopupmenu.h:147
Definition: listpopupmenu.h:105
Definition: listpopupmenu.h:221
Definition: listpopupmenu.h:182
Definition: listpopupmenu.h:139
Definition: listpopupmenu.h:157
Definition: listpopupmenu.h:71
Definition: listpopupmenu.h:69
Definition: listpopupmenu.h:120
Definition: listpopupmenu.h:226
Definition: listpopupmenu.h:121
Definition: listpopupmenu.h:156
static MenuType typeFromAction(QAction *action)
Definition: listpopupmenu.cpp:406
Definition: listpopupmenu.h:100
Definition: listpopupmenu.h:115
QMenu * newMenu(const QString &title, QWidget *widget)
Definition: listpopupmenu.cpp:94
Definition: listpopupmenu.h:85
Definition: listpopupmenu.h:67
Definition: listpopupmenu.h:150
Definition: listpopupmenu.h:207
Definition: listpopupmenu.h:122
Definition: listpopupmenu.h:73
Definition: listpopupmenu.h:250
Definition: listpopupmenu.h:93
Definition: listpopupmenu.h:244
Definition: listpopupmenu.h:137
Definition: listpopupmenu.h:164
Definition: listpopupmenu.h:154
void insertAssociationTextItem(const QString &label, MenuType mt)
Definition: listpopupmenu.cpp:393
Definition: listpopupmenu.h:106
Definition: listpopupmenu.h:257
Definition: listpopupmenu.h:179
Definition: listpopupmenu.h:89
QMenu * makeNewMenu()
Definition: listpopupmenu.cpp:500