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