VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfMenuKeyMapManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
16 
17 #include <vrvCore/DtMenuPath.h>
21 #include <vrvCore/DtKeyState.h>
24 #endif
25 
26 #include <QObject>
27 
28 class QEvent;
29 class QAction;
30 class QCheckBox;
31 class QTranslator;
32 
33 namespace makVrv
34 {
35  class DtKeyMap;
36  class DtDe;
37 }
38 
39 namespace makVrf
40 {
41  class DtAssembledMenu;
42 
48  {
49  Q_OBJECT
50 
51  public:
53  virtual ~DtVrfMenuKeyMapManager();
54 
56  static DtVrfMenuKeyMapManager& instance(makVrv::DtDe& de);
57  static void registerInstance(makVrv::DtDe&, DtVrfMenuKeyMapManager*);
58 
61  virtual void setup();
62 
65  virtual void addNonFocusKeyMapFunction(const std::string&);
66  virtual void removeNonFocusKeyMapFunction(const std::string&);
67 
69  virtual void addKeyboardMenuMapping(const makVrv::DtMenuPath& path);
70 
72  virtual void removeKeyboardMenuMapping(const makVrv::DtMenuPath& path);
73 
75  virtual void setApplyChangesToAllKeymaps(bool);
76  virtual bool applyChangesToAllKeymaps() const;
77 
79  virtual bool isMenuFunction(const std::string& func) const;
80 
82  virtual QString reverseTranslate(const QString&) const;
83 
85  virtual void copyKeyFunction(const makVrv::DtMenuPath& from, const makVrv::DtMenuPath& to);
86 
88  virtual bool setSaveManagersOnChange(bool);
89  virtual bool saveManagersOnChange() const;
90 
91  virtual bool hasActionToProcessNonFocusKey(const QKeySequence&);
92 
93  virtual QString keyStateToKeySequence(const makVrv::DtKeyState&) const;
94 
95  protected slots:
96  virtual void actionDestroyed();
97 
98  protected:
100  virtual bool eventFilter(QObject*, QEvent*);
101 
104  virtual std::string menuPathToFunctionName(const makVrv::DtMenuPath&) const;
105 
107  virtual void slot_triggerShortcut(makVrv::DtMenuPath);
108 
111  virtual void setKeyMap(makVrv::DtKeyMapManager*, std::string currentMap);
112 
116  virtual void manageChangeableMenu(const std::string& menuId);
117 
120  virtual void setupChangeableMenus();
121 
123  virtual void preAssembleConfigurableMenu(DtAssembledMenu*);
124 
126  virtual void postAssembleConfigurableMenu(DtAssembledMenu*);
127 
130  virtual int mapPathToKeymapFunctionCategory(const std::string& path);
131 
134  virtual void keyMappingRemoved(makVrv::DtKeyMap*, std::string, makVrv::DtKeyState::KeyType,
136 
139  virtual void keyMappingModified(makVrv::DtKeyMap*, std::string, makVrv::DtKeyState::KeyType,
141 
143  virtual void setupKeyMappingFor(const std::string& path, QAction* action, makVrv::DtKeyMap* map);
144 
147  virtual void resetShortcut(makVrv::DtKeyMap*, std::string);
148 
149  void parseTSFile(const QString& file);
150 
151  virtual void zoomToExtents();
152 
153  protected:
156 
157  std::map<QKeySequence, QAction*> myShortcuts;
158  std::map<QKeySequence, std::string> myNonFocusShortcutsByKeySequence;
159  std::set<std::string> myNonFocusShortcuts;
160 
161  typedef std::map<std::string, std::string> FunctionToPathMap;
163 
164  typedef std::map<std::string, std::string> PathToFunctionMap;
166 
167  typedef std::map<std::string, int> FunctionCategoryMap;
169 
171  std::map<QString, QString> myReverseMap;
172 
174  std::string myCurrentKeyMap;
176  };
177 
180  {
181  public:
183  DtVrfKeyMappingEditorPage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f);
184 
186  virtual ~DtVrfKeyMappingEditorPage();
187  };
188 
191 
194  {
195  Q_OBJECT
196 
197  public:
199  DtVrfKeyMappingEditorWidget( makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags flags = 0);
200 
202  virtual ~DtVrfKeyMappingEditorWidget();
203 
204  protected:
206  virtual void closeEvent(QCloseEvent*);
207 
209  virtual void hideEvent(QHideEvent*);
210 
211  virtual void addKeyFunction(const std::string& name, const std::string& keyString);
212 
213  protected slots:
214  virtual void on_applyChangesToAllKeymapsChanged();
215 
220  virtual void requestInput( const std::string& functionName,
221  const makVrv::DtKeyMapping& keyMapping, bool isBinary );
222  virtual void requestInput( const std::string& functionName, bool isBinary );
223 
224  protected:
227  };
228 
230  {
231  public:
232 
234  DtVrfRequestKeyMapKeyDialog( QWidget* parent = 0, Qt::WindowFlags flags = Qt::Tool );
235 
237  virtual ~DtVrfRequestKeyMapKeyDialog();
238 
240  void show( std::string functionName, bool isBinary );
241 
243  void show( std::string functionName, const makVrv::DtKeyMapping& keyMapping,
244  bool isBinary );
245  };
246 }
bool myApplyChangesToAllKeymaps
Definition: vrfMenuKeyMapManager.h:170
makVrv::DtDe & myDe
Definition: vrfMenuKeyMapManager.h:154
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::string myCurrentKeyMap
Definition: vrfMenuKeyMapManager.h:174
Contains makVrv::DtKeyMapManagerSignaler class.
std::map< std::string, std::string > PathToFunctionMap
Definition: vrfMenuKeyMapManager.h:164
makVrv::DtRequestKeyMapKeyDialog * myMenuItemKeyMapDialog
Definition: vrfMenuKeyMapManager.h:226
std::set< std::string > myNonFocusShortcuts
Definition: vrfMenuKeyMapManager.h:159
The reverse key map is a list of these for each function name.
Definition: DtKeyMap.h:246
Contains makVrv::DtKeyMappingEditorPage class.
makVrv::DtPageCreatorTemplate< DtVrfKeyMappingEditorPage > DtVrfKeyMappingEditorPageCreator
Definition: vrfMenuKeyMapManager.h:190
This file contains the declaration for the class DtKeyState.
Definition: DtPage.h:150
std::map< QKeySequence, std::string > myNonFocusShortcutsByKeySequence
Definition: vrfMenuKeyMapManager.h:158
a Key Map contains a map of keys to FunctionMapEntrys, as well as a list of functions to execute when...
Definition: DtKeyMap.h:312
KeyModifier
Describe which modifier(s) are pressed.
Definition: DtKeyState.h:136
Contains makVrv::DtMenuPath class.
The manager for owning key maps.
Definition: DtKeyMapManager.h:32
Override these classes to be able to add check box to apply menu item changes to all key maps...
Definition: vrfMenuKeyMapManager.h:179
Contains makVrv::DtVirtualBaseClass class.
This class will traverse the created actions in the menu system and add a potential key mapping for t...
Definition: vrfMenuKeyMapManager.h:46
std::map< QKeySequence, QAction * > myShortcuts
Definition: vrfMenuKeyMapManager.h:157
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfMenuKeyMapManager.h:155
QCheckBox * myApplyChangesToAllKeymaps
Definition: vrfMenuKeyMapManager.h:225
This class encapsulates the state associated with a key event.
Definition: DtKeyState.h:21
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtKeyMapManager class.
std::map< std::string, std::string > FunctionToPathMap
Definition: vrfMenuKeyMapManager.h:161
FunctionToPathMap myFunctionToPathMap
Definition: vrfMenuKeyMapManager.h:162
Base class for menus that are assembled on an as needed basis.
Definition: selectionEnabledMenu.h:29
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
A dialog page controlling file caching.
Definition: DtKeyMappingEditorPage.h:24
A widget class for editing key functions.
Definition: DtKeyMappingEditorWidget.h:44
bool mySetupChanged
Definition: vrfMenuKeyMapManager.h:175
Widget to add check box for applying menu changes only to all menu items.
Definition: vrfMenuKeyMapManager.h:193
Base class to provide boost signal/slot management.
std::map< std::string, int > FunctionCategoryMap
Definition: vrfMenuKeyMapManager.h:167
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:72
Contains the DtKeyMappingEditorWidget class declaration.
PathToFunctionMap myPathToFunctionMap
Definition: vrfMenuKeyMapManager.h:165
bool mySaveManagersOnChange
Definition: vrfMenuKeyMapManager.h:173
Definition: vrfMenuKeyMapManager.h:229
KeyType
Enumerate the key types. These are based on Virtual Key Codes.
Definition: DtKeyState.h:25
This is the dialog the user types key sequences to be mapped. It shares a logic object with DtKeyMapE...
Definition: DtKeyMappingEditorWidget.h:223
KeyEventType
Enumerate the types of key events supported.
Definition: DtKeyEvent.h:20
std::map< QString, QString > myReverseMap
Definition: vrfMenuKeyMapManager.h:171
FunctionCategoryMap myFunctionCategories
Definition: vrfMenuKeyMapManager.h:168

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)