Mudlet  0
Mudclient
ActionUnit.h
Go to the documentation of this file.
1 #ifndef MUDLET_ACTIONUNIT_H
2 #define MUDLET_ACTIONUNIT_H
3 
4 /***************************************************************************
5  * Copyright (C) 2008-2011 by Heiko Koehn - KoehnHeiko@googlemail.com *
6  * Copyright (C) 2014 by Ahmed Charles - acharles@outlook.com *
7  * Copyright (C) 2017 by Stephen Lyons - slysven@virginmedia.com *
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  * This program is distributed in the hope that it will be useful, *
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
17  * GNU General Public License for more details. *
18  * *
19  * You should have received a copy of the GNU General Public License *
20  * along with this program; if not, write to the *
21  * Free Software Foundation, Inc., *
22  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
23  ***************************************************************************/
24 
25 
26 #include "pre_guard.h"
27 #include <QMap>
28 #include <QMutex>
29 #include <QPointer>
30 #include <QString>
31 #include "post_guard.h"
32 
33 #include <list>
34 
35 class Host;
36 class mudlet;
37 class TAction;
38 class TEasyButtonBar;
39 class TToolBar;
40 
41 
43 {
44  friend class XMLexport;
45  friend class XMLimport;
46 
47 public:
49 
50  std::list<TAction*> getActionRootNodeList()
51  {
52  QMutexLocker locker(&mActionUnitLock);
53  return mActionRootNodeList;
54  }
55 
56  TAction* getAction(int id);
57  TAction* findAction(const QString&);
58  std::vector<TAction*> findActionsByName(const QString&);
59  void compileAll();
60  bool registerAction(TAction* pT);
61  void unregisterAction(TAction* pT);
62  void reParentAction(int childID, int oldParentID, int newParentID, int parentPostion = -1, int childPosition = -1);
63  int getNewID();
64  void uninstall(const QString&);
65  void _uninstall(TAction* pChild, const QString& packageName);
66  void updateToolbar();
67  std::list<QPointer<TToolBar>> getToolBarList();
68  std::list<QPointer<TEasyButtonBar>> getEasyButtonBarList();
71  void constructToolbar(TAction*, TToolBar* pTB);
73  void showToolBar(const QString&);
74  void hideToolBar(const QString&);
75 
77  QList<TAction*> uninstallList;
78 
79 private:
80  ActionUnit() = default;
81 
82  TAction* getActionPrivate(int id);
83  void addActionRootNode(TAction* pT, int parentPosition = -1, int childPosition = -1);
84  void addAction(TAction* pT);
85  void removeActionRootNode(TAction* pT);
86  void removeAction(TAction*);
87  QPointer<Host> mpHost;
88  QMap<int, TAction*> mActionMap;
89  std::list<TAction*> mActionRootNodeList;
90  int mMaxID;
91  QPointer<TToolBar> mpToolBar;
92  QPointer<TEasyButtonBar> mpEasyButtonBar;
94  std::list<QPointer<TToolBar>> mToolBarList;
95  std::list<QPointer<TEasyButtonBar>> mEasyButtonBarList;
96 };
97 
98 #endif // MUDLET_ACTIONUNIT_H
ActionUnit(Host *pHost)
Definition: ActionUnit.h:48
bool registerAction(TAction *pT)
Definition: ActionUnit.cpp:210
void _uninstall(TAction *pChild, const QString &packageName)
Definition: ActionUnit.cpp:37
void hideToolBar(const QString &)
Definition: ActionUnit.cpp:431
Definition: mudlet.h:85
Definition: Host.h:62
std::vector< TAction * > findActionsByName(const QString &)
Definition: ActionUnit.cpp:86
void updateToolbar()
Definition: ActionUnit.cpp:542
QMutex mActionUnitLock
Definition: ActionUnit.h:76
QPointer< TEasyButtonBar > mpEasyButtonBar
Definition: ActionUnit.h:92
void addActionRootNode(TAction *pT, int parentPosition=-1, int childPosition=-1)
Definition: ActionUnit.cpp:97
QPointer< Host > mpHost
Definition: ActionUnit.h:87
std::list< TAction * > mActionRootNodeList
Definition: ActionUnit.h:89
TAction * getActionPrivate(int id)
Definition: ActionUnit.cpp:201
std::list< QPointer< TEasyButtonBar > > getEasyButtonBarList()
Definition: ActionUnit.cpp:347
int getNewID()
Definition: ActionUnit.cpp:286
bool mModuleMember
Definition: ActionUnit.h:93
std::list< QPointer< TToolBar > > mToolBarList
Definition: ActionUnit.h:94
QList< TAction * > uninstallList
Definition: ActionUnit.h:77
TAction * findAction(const QString &)
Definition: ActionUnit.cpp:70
std::list< QPointer< TEasyButtonBar > > mEasyButtonBarList
Definition: ActionUnit.h:95
TAction * getAction(int id)
Definition: ActionUnit.cpp:192
TAction * getHeadAction(TToolBar *)
Definition: ActionUnit.cpp:407
void removeAction(TAction *)
Definition: ActionUnit.cpp:276
void reParentAction(int childID, int oldParentID, int newParentID, int parentPostion=-1, int childPosition=-1)
Definition: ActionUnit.cpp:122
int mMaxID
Definition: ActionUnit.h:90
void unregisterAction(TAction *pT)
Definition: ActionUnit.cpp:225
void compileAll()
Definition: ActionUnit.cpp:61
void uninstall(const QString &)
Definition: ActionUnit.cpp:47
ActionUnit()=default
void constructToolbar(TAction *, TToolBar *pTB)
Definition: ActionUnit.cpp:442
QMap< int, TAction * > mActionMap
Definition: ActionUnit.h:88
std::list< TAction * > getActionRootNodeList()
Definition: ActionUnit.h:50
std::list< QPointer< TToolBar > > getToolBarList()
Definition: ActionUnit.cpp:291
void showToolBar(const QString &)
Definition: ActionUnit.cpp:419
void addAction(TAction *pT)
Definition: ActionUnit.cpp:263
QPointer< TToolBar > mpToolBar
Definition: ActionUnit.h:91
void removeActionRootNode(TAction *pT)
Definition: ActionUnit.cpp:184