VR-Forces 4.1.1 Class Documentation
toolbarFactoryManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: toolbarFactoryManager.h,v $ $Revision: 1.6 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 /* This class will allow a developer to add toolbars that can be created
13 * based on features found in the supplied DtFeatureActionManager
14 */
15 
16 #ifndef DTTOOLBARFACTOYMANAGER_H_
17 #define DTTOOLBARFACTOYMANAGER_H_
18 
21 #include <QtCore/QString>
22 #include <QtCore/QHash>
23 #include <QtGui/QIcon>
24 #include <QtCore/QVector>
25 
26 class QAction;
27 class QToolBar;
28 class QWidget;
30 class QTextStream;
31 class QContextMenuEvent;
32 
33 static const char* DtKeepTooltip = "___DtKeepTooltip___";
34 static const char* DtToolbarSeparator = "ToolbarSeparator";
35 
37 {
38 public:
39  DtToolbarItem();
41 
42  DtToolbarItem& operator=(const DtToolbarItem&);
43  bool operator==(const DtToolbarItem&) const;
44  bool operator!=(const DtToolbarItem& rhs) const { return !(*this == rhs); };
45 
46  QString myFeatureName;
47  QString myToolTip;
48  QVector<QString> myChildren;
49 };
50 
52 {
53  Q_OBJECT
54 
55 public:
58 
59  DtFeatureToolbar& operator=(const DtFeatureToolbar&);
60 
61  bool operator==(const DtFeatureToolbar&) const;
62  bool operator!=(const DtFeatureToolbar& rhs) const { return !(*this == rhs); };
63 
64  static DtArchivableObject* create();
65 
67 
68 protected slots:
69  virtual void toolbarDestroyed();
70 
71 public:
72  QString myToolbarName;
73  QString myToolbarTitle;
74  QString myToolTip;
75  QVector<DtToolbarItem> myToolbarItems;
76  bool myIsEditable;
77  QToolBar* myCreatedToolbar;
78 };
79 
81 
83 {
84  Q_OBJECT
85 
86 public:
87  DtToolbarFactoryManager(const QString& name = "toolbarFactoryManager");
89 
90  virtual ~DtToolbarFactoryManager();
91 
92  virtual bool init(DtFeatureActionManager*);
93 
94  static DtToolbarFactoryManager* create();
95 
97  void setUserToolbarSystemEnabled(bool);
98  bool userToolbarSystemEnabled() const;
99 
101 
104  virtual void write(QTextStream&);
105  virtual void read(QTextStream&);
106 
107  virtual void clear();
108 
109 public:
111 
113  virtual void addToolbar(const QString& toolbar, const QString& windowTitle, const QString& toolTip = DtKeepTooltip,
114  bool editable = false);
115  virtual void addToolbar(const DtFeatureToolbar&);
116 
119  virtual void addToolbarButton(const QString& toolbar, const QString& feature);
120 
122  virtual void addToolbarButtons(const QString& toolbar, const QVector<QString>& features);
123 
125  virtual void addToolbarMenu(const QString& toolbar, const QString& feature, const QVector<QString>& features,
126  const QString& toolTip = DtKeepTooltip);
127  virtual void addToolbarMenuItem(const QString& toolbar, const QString& feature, const QString& itemToAdd,
128  const QString& before = QString::null);
129  virtual void removeToolbarMenuItem(const QString& toolbar, const QString& feature, const QString& item);
130 
132  virtual void setToolbarIsEditable(const QString& toolbar, bool);
133 
135  virtual void removeToolbar(const QString& toolbar);
136 
139  virtual void removeToolbarButton(const QString& toolbar, const QString& feature);
140  virtual void removeToolbarButton(const QString& toolbar, int iIndex);
141  virtual void removeToolbarButtons(const QString& toolbar, const QVector<QString>& features);
142 
144  virtual void removeAllToolbarButtons(const QString& toolbar);
145 
147  virtual void addFeatureToToolbar(const DtToolbarItem& feature, QToolBar* tool, QWidget* parent);
148 
150  virtual DtFeatureToolbar toolbarFor(const QString& toolbar) const;
151 
155  virtual QToolBar* createToolBar(const QString& toolbar, QWidget* parent = NULL);
156 
158  virtual QVector<QToolBar*> createUserCreatedToolbars(QWidget* parent);
159 
161  virtual QString keyForToolBar(QToolBar*) const;
162 
164  virtual void setChecked(const QString& feature, bool checked);
165 
167  virtual bool toolbarExists(const QString& toolbar) const;
168 
170  virtual bool hasToolbarNamed(const QString& name) const;
171 
173  virtual QString keyForToolBar(const QString& name) const;
174 
176  virtual QString uniqueToolbarId() const;
177 
181  virtual void merge(const DtToolbarFactoryManager&, bool removeMissingToolbars = true);
182 
183  const QHash<QString, DtFeatureToolbar>& featureToolbars() const;
184 
186  virtual void merge(const QString& toolbar, const DtFeatureToolbar&);
187 
189  virtual DtToolbarFactoryManager* clone();
190 
191 signals:
192  void contextMenuEvent(QWidget*, QContextMenuEvent*);
193 
194 protected:
196  virtual int indexOfFeature(const QString& toolbar, const QString& feature) const;
197 
199  virtual bool eventFilter(QObject*, QEvent*);
200 
201 protected:
202  QHash<QString, DtFeatureToolbar> myFeatureToolbars;
205  QVector<QString> myToolbarsRemoved;
206 };
207 
208 inline const QHash<QString, DtFeatureToolbar>& DtToolbarFactoryManager::featureToolbars() const
209 {
210  return myFeatureToolbars;
211 }
212 
214 {
215  myUserToolbarSystemEnabled = b;
216 }
217 
219 {
220  return myUserToolbarSystemEnabled;
221 }
222 
223 #endif
224 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)