VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtMenuManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCoreQt/vrvCoreQt.h>
13 
15 
16 #include <vrvCore/DtMenuPath.h>
18 
19 #include <QtCore/QObject>
20 #include <QtCore/QPointer>
21 
22 #include <QtWidgets/QMenu>
23 
24 class QAction;
25 
26 namespace makVrv
27 {
28  class DtDe;
29 
30 
39  {
40  Q_OBJECT;
41  public:
42 
44  static DtMenuManager& instance(DtDe& de);
45 
46  public:
48  virtual ~DtMenuManager();
49 
51  virtual void registerMenu(const DtMenuPath& path, QMenu* menu);
52 
54  virtual void registerMenuItem(const DtMenuPath& path, QAction* action);
55 
57  virtual QMenu* findMenu(const DtMenuPath& path) const;
58 
60  virtual QAction* findMenuItem(const DtMenuPath& path) const;
61 
66  virtual void sortMenuConfiguration(const DtMenuConfiguration& configuration) const;
67 
69  virtual bool showMenu(const DtMenuPath& path);
70 
72  virtual bool hideMenu(const DtMenuPath& path);
73 
75  virtual bool showMenuItem(const DtMenuPath& path);
76 
78  virtual bool hideMenuItem(const DtMenuPath& path);
79 
82  const std::map<DtMenuPath,QMenu*>& menus() const;
83  const std::map<DtMenuPath,QAction*> menuItems() const;
84 
85  boost::signalslib::signal<void (const DtMenuPath&)> signal_menuDeleted;
86  boost::signalslib::signal<void (const DtMenuPath&)> signal_menuItemDeleted;
87 
88  protected slots:
89 
91  virtual void onMenuDestroyed(QObject* obj);
92 
94  virtual void onActionDestroyed(QObject* obj);
95 
96  protected:
97 
99  DtMenuManager();
100 
102  virtual void addSortedNamesToMenu(QStringList sortedByName,
103  std::map<QString, std::vector<QAction*> > sorted, QMenu* menu) const;
104 
108  virtual void sortMenu(QMenu*, const DtMenuConfiguration::MenuSortFlags& flags,
109  const DtMenuConfiguration& configuration) const;
110 
111  protected:
112 
113  std::map<QPointer<QMenu>, DtMenuPath> myMenuPaths;
114  std::map<DtMenuPath,QMenu*> myMenus;
115  std::map<DtMenuPath,QAction*> myMenuItems;
116  };
117 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< QPointer< QMenu >, DtMenuPath > myMenuPaths
Definition: DtMenuManager.h:113
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
Contains DLL export macros.
std::map< DtMenuPath, QAction * > myMenuItems
Definition: DtMenuManager.h:115
Contains makVrv::DtMenuPath class.
Contains makVrv::DtVirtualBaseClass class.
boost::signalslib::signal< void(const DtMenuPath &)> signal_menuItemDeleted
Definition: DtMenuManager.h:86
The menu manager can be used to lookup registered QMenu and QAction objects based on their menu paths...
Definition: DtMenuManager.h:38
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
std::map< DtMenuPath, QMenu * > myMenus
Definition: DtMenuManager.h:114
Contains makVrv::DtMenuConfiguration class.
boost::signalslib::signal< void(const DtMenuPath &)> signal_menuDeleted
Definition: DtMenuManager.h:85
A configuration of a menu layout. A menu configuration manages an ordered collection of menu paths th...
Definition: DtMenuConfiguration.h:43
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
MenuSortFlags
The SortAllAlphabetically, SortWithinSubmenus, SortBetweenSeparators, and SortBetweenSubMenus flags c...
Definition: DtMenuConfiguration.h:55

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)