kwave  18.07.70
MenuNode.h
Go to the documentation of this file.
1 /***************************************************************************
2  MenuNode.h - generic menu node type
3  -------------------
4  begin : Mon Jan 10 2000
5  copyright : (C) 2000 by Thomas Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef MENU_NODE_H
19 #define MENU_NODE_H
20 
21 #include "config.h"
22 
23 #include <QHash>
24 #include <QIcon>
25 #include <QKeySequence>
26 #include <QObject>
27 #include <QPixmap>
28 #include <QString>
29 #include <QStringList>
30 
31 #include "libgui/MenuGroup.h"
32 
33 class QAction;
34 
35 namespace Kwave
36 {
37 
38  class MenuSub;
39 
43  class MenuNode: public QObject
44  {
45  Q_OBJECT
46 
47  public:
48 
58  MenuNode(Kwave::MenuNode *parent,
59  const QString &name,
60  const QString &command,
61  const QKeySequence &shortcut,
62  const QString &uid);
63 
68  virtual ~MenuNode();
69 
71  const QString path() const;
72 
74  inline const QString &name() const { return m_name; }
75 
77  inline const QString &command() const { return m_command; }
78 
80  virtual QAction *action() { return Q_NULLPTR; }
81 
85  inline const QString &uid() const { return m_uid; }
86 
90  void setUID(const QString &uid);
91 
95  inline const QKeySequence &shortcut() const { return m_shortcut; }
96 
100  virtual void setShortcut(const QKeySequence &shortcut) {
102  }
103 
107  virtual const QIcon icon();
108 
113  virtual void setIcon(const QIcon &icon);
114 
119  virtual bool isBranch() const { return false; }
120 
125  virtual void clear();
126 
128  virtual Kwave::MenuNode *parentNode() const;
129 
134  virtual void setVisible(bool visible);
135 
139  virtual bool isEnabled();
140 
145  virtual void setEnabled(bool enable);
146 
151  virtual void setChecked(bool check);
152 
158  virtual void setText(const QString &text);
159 
166  Kwave::MenuNode *findUID(const QString &uid);
167 
173  Kwave::MenuNode *findChild(const QString &name);
174 
180  virtual void removeChild(Kwave::MenuNode *child);
181 
197  virtual Kwave::MenuSub *insertBranch(const QString &name,
198  const QString &command,
199  const QKeySequence &shortcut,
200  const QString &uid);
201 
212  virtual Kwave::MenuNode *insertLeaf(const QString &name,
213  const QString &command,
214  const QKeySequence &shortcut,
215  const QString &uid);
216 
223  virtual void insertChild(Kwave::MenuNode *node,
224  Kwave::MenuNode *before);
225 
238  virtual void insertNode(const QString &name,
239  const QString &position,
240  const QString &command,
241  const QKeySequence &shortcut,
242  const QString &uid);
243 
252 
258  virtual bool specialCommand(const QString &command);
259 
263  virtual void actionSelected();
264 
272  virtual QHash<QString, Kwave::MenuGroup *> &groupList();
273 
280  void joinGroup(const QString &group, Kwave::MenuGroup::Mode mode);
281 
286  void leaveGroup(const QString &group);
287 
288  protected:
289 
294 
301  void emitCommand(const QString &command);
302 
303  signals:
312  void sigCommand(const QString &command);
313 
314  protected:
315 
317  QList<Kwave::MenuNode *> m_children;
318 
320  QStringList m_groups;
321 
322  private:
323 
325  QString m_uid;
326 
328  QKeySequence m_shortcut;
329 
331  QString m_name;
332 
334  QString m_command;
335 
338 
339  };
340 }
341 
342 #endif // _MENU_NODE_H_
343 
344 //***************************************************************************
345 //***************************************************************************
const QString path() const
Definition: MenuNode.cpp:63
QStringList m_groups
Definition: MenuNode.h:320
virtual Kwave::MenuNode * parentNode() const
Definition: MenuNode.cpp:103
QString m_name
Definition: MenuNode.h:331
Definition: App.h:33
void joinGroup(const QString &group, Kwave::MenuGroup::Mode mode)
Definition: MenuNode.cpp:378
void emitCommand(const QString &command)
Definition: MenuNode.cpp:70
virtual QHash< QString, Kwave::MenuGroup * > & groupList()
Definition: MenuNode.cpp:370
virtual bool isBranch() const
Definition: MenuNode.h:119
void setUID(const QString &uid)
Definition: MenuNode.cpp:192
Kwave::MenuNode * m_parentNode
Definition: MenuNode.h:337
virtual Kwave::MenuNode * leafToBranch(Kwave::MenuNode *node)
Definition: MenuNode.cpp:328
virtual void setIcon(const QIcon &icon)
Definition: MenuNode.cpp:123
virtual void actionSelected()
Definition: MenuNode.cpp:87
Kwave::MenuNode * findUID(const QString &uid)
Definition: MenuNode.cpp:198
const QKeySequence & shortcut() const
Definition: MenuNode.h:95
virtual const QIcon icon()
Definition: MenuNode.cpp:115
virtual void removeChild(Kwave::MenuNode *child)
Definition: MenuNode.cpp:223
virtual void insertChild(Kwave::MenuNode *node, Kwave::MenuNode *before)
Definition: MenuNode.cpp:181
virtual void clear()
Definition: MenuNode.cpp:93
virtual void setEnabled(bool enable)
Definition: MenuNode.cpp:163
virtual bool specialCommand(const QString &command)
Definition: MenuNode.cpp:421
const QString & name() const
Definition: MenuNode.h:74
const QString & command() const
Definition: MenuNode.h:77
void sigCommand(const QString &command)
virtual bool isEnabled()
Definition: MenuNode.cpp:130
QKeySequence m_shortcut
Definition: MenuNode.h:328
QList< Kwave::MenuNode * > m_children
Definition: MenuNode.h:317
QString m_command
Definition: MenuNode.h:334
virtual void setVisible(bool visible)
Definition: MenuNode.cpp:157
MenuNode(Kwave::MenuNode *parent, const QString &name, const QString &command, const QKeySequence &shortcut, const QString &uid)
Definition: MenuNode.cpp:35
virtual void setChecked(bool check)
Definition: MenuNode.cpp:169
Kwave::MenuNode * findChild(const QString &name)
Definition: MenuNode.cpp:211
QString m_uid
Definition: MenuNode.h:325
const QString & uid() const
Definition: MenuNode.h:85
virtual void setText(const QString &text)
Definition: MenuNode.cpp:175
virtual Kwave::MenuNode * insertLeaf(const QString &name, const QString &command, const QKeySequence &shortcut, const QString &uid)
Definition: MenuNode.cpp:243
Kwave::MenuNode * rootNode()
Definition: MenuNode.cpp:109
virtual ~MenuNode()
Definition: MenuNode.cpp:46
virtual Kwave::MenuSub * insertBranch(const QString &name, const QString &command, const QKeySequence &shortcut, const QString &uid)
Definition: MenuNode.cpp:230
void leaveGroup(const QString &group)
Definition: MenuNode.cpp:402
virtual void setShortcut(const QKeySequence &shortcut)
Definition: MenuNode.h:100
virtual void insertNode(const QString &name, const QString &position, const QString &command, const QKeySequence &shortcut, const QString &uid)
Definition: MenuNode.cpp:256
virtual QAction * action()
Definition: MenuNode.h:80