SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonActionsManager.h
1#ifndef SARIBBONACTIONSMANAGER_H
2#define SARIBBONACTIONSMANAGER_H
3#include "SARibbonGlobal.h"
4#include <QObject>
5#include <QAbstractListModel>
6#include <QAction>
7#include <QMap>
8#include <QString>
9#include <QSet>
10class SARibbonBar;
12
28class SA_RIBBON_EXPORT SARibbonActionsManager : public QObject
29{
30 Q_OBJECT
31 SA_RIBBON_DECLARE_PRIVATE(SARibbonActionsManager)
32 friend class SARibbonActionsManagerModel;
33
34public:
37 {
38 UnknowActionTag = 0,
39 CommonlyUsedActionTag = 0x01,
40 NotInFunctionalAreaActionTag = 0x02,
41 AutoCategoryDistinguishBeginTag = 0x1000,
42 AutoCategoryDistinguishEndTag = 0x2000,
43 NotInRibbonCategoryTag = 0x2001,
44 UserDefineActionTag = 0x8000
45 };
51 void setTagName(int tag, const QString& name);
52
54 QString tagName(int tag) const;
55
57 void removeTag(int tag);
58
60 bool registeAction(QAction* act, int tag, const QString& key = QString(), bool enableEmit = true);
61
63 void unregisteAction(QAction* act, bool enableEmit = true);
64
66 QList< QAction* >& filter(int tag);
67
69 QList< QAction* >& actions(int tag);
71 const QList< QAction* > actions(int tag) const;
72
74 QList< int > actionTags() const;
75
77 QAction* action(const QString& key) const;
78
80 QString key(QAction* act) const;
81
83 int count() const;
84
86 QList< QAction* > allActions() const;
87
89 QMap< int, SARibbonCategory* > autoRegisteActions(SARibbonBar* bar);
90
92 QSet< QAction* > autoRegisteWidgetActions(QWidget* w, int tag, bool enableEmit = false);
93
95 QList< QAction* > search(const QString& text);
96
98 void clear();
99
100Q_SIGNALS:
101
115 void actionTagChanged(int tag, bool isdelete);
116
117private Q_SLOTS:
118 void onActionDestroyed(QObject* o);
119 void onCategoryTitleChanged(const QString& title);
120
121private:
122 void removeAction(QAction* act, bool enableEmit = true);
123};
124
134class SA_RIBBON_EXPORT SARibbonActionsManagerModel : public QAbstractListModel
135{
136 Q_OBJECT
137 SA_RIBBON_DECLARE_PRIVATE(SARibbonActionsManagerModel)
138public:
140 explicit SARibbonActionsManagerModel(QObject* p = nullptr);
142 explicit SARibbonActionsManagerModel(SARibbonActionsManager* m, QObject* p = nullptr);
146 virtual int rowCount(const QModelIndex& parent) const override;
148 virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
150 virtual Qt::ItemFlags flags(const QModelIndex& index) const override;
152 virtual QVariant data(const QModelIndex& index, int role) const override;
154 void setFilter(int tag);
156 void update();
158 void setupActionsManager(SARibbonActionsManager* m);
160 void uninstallActionsManager();
162 QAction* indexToAction(QModelIndex index) const;
164 void search(const QString& text);
165
166private Q_SLOTS:
167 void onActionTagChanged(int tag, bool isdelete);
168};
169
170#endif // SARIBBONACTIONSMANAGER_H
Definition SARibbonActionsManager.h:135
Definition SARibbonActionsManager.h:29
void actionTagChanged(int tag, bool isdelete)
ActionTag
Action tag definition
Definition SARibbonActionsManager.h:37
Definition SARibbonBar.h:171
Definition SARibbonCategory.h:32