SARibbon 2.5.1
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonCustomizeData.h
1#ifndef SARIBBONCUSTOMIZEDATA_H
2#define SARIBBONCUSTOMIZEDATA_H
3#include "SARibbonGlobal.h"
4#include "SARibbonActionsManager.h"
5#include "SARibbonPanel.h"
6#include <QList>
7class SARibbonBar;
9
14class SA_RIBBON_EXPORT SARibbonCustomizeData
15{
16public:
34 SARibbonCustomizeData(ActionType type, SARibbonActionsManager* mgr = nullptr);
35 // 获取CustomizeData的action type
36 ActionType actionType() const;
37
38 // 设置CustomizeData的action type
39 void setActionType(ActionType a);
40
41 // 判断是否是一个正常的CustomizeData
42 bool isValid() const;
43
44 // 应用SARibbonCustomizeData
45 bool apply(SARibbonBar* bar) const;
46
47 // 获取actionmanager指针
48 SARibbonActionsManager* actionManager();
49
50 // 设置ActionsManager
51 void setActionsManager(SARibbonActionsManager* mgr);
52
53 // 对应AddCategoryActionType
54 static SARibbonCustomizeData makeAddCategoryCustomizeData(const QString& title, int index, const QString& objName);
55
56 // 对应AddPanelActionType
58 makeAddPanelCustomizeData(const QString& title, int index, const QString& categoryobjName, const QString& objName);
59
60 // 对应AddActionActionType
61 static SARibbonCustomizeData makeAddActionCustomizeData(const QString& key,
64 const QString& categoryObjName,
65 const QString& panelObjName);
66
67 // 对应RenameCategoryActionType
68 static SARibbonCustomizeData makeRenameCategoryCustomizeData(const QString& newname, const QString& categoryobjName);
69
70 // 对应RenamePanelActionType
72 makeRenamePanelCustomizeData(const QString& newname, const QString& categoryobjName, const QString& panelObjName);
73
74 // 对应RemoveCategoryActionType
75 static SARibbonCustomizeData makeRemoveCategoryCustomizeData(const QString& categoryobjName);
76
77 // 对应ChangeCategoryOrderActionType
78 static SARibbonCustomizeData makeChangeCategoryOrderCustomizeData(const QString& categoryobjName, int moveindex);
79
80 // 对应ChangePanelOrderActionType
82 makeChangePanelOrderCustomizeData(const QString& categoryobjName, const QString& panelObjName, int moveindex);
83
84 // 对应ChangeActionOrderActionType
85 static SARibbonCustomizeData makeChangeActionOrderCustomizeData(const QString& categoryobjName,
86 const QString& panelObjName,
87 const QString& key,
89 int moveindex);
90
91 // 对应RemovePanelActionType
92 static SARibbonCustomizeData makeRemovePanelCustomizeData(const QString& categoryobjName, const QString& panelObjName);
93
94 // 对应RemoveActionActionType
95 static SARibbonCustomizeData makeRemoveActionCustomizeData(const QString& categoryobjName,
96 const QString& panelObjName,
97 const QString& key,
99
100 // 对应VisibleCategoryActionType
101 static SARibbonCustomizeData makeVisibleCategoryCustomizeData(const QString& categoryobjName, bool isShow);
102
103 // 判断是否可以自定义,如果某个action不想被编辑,可以通过此函数设置
104 static bool isCanCustomize(QObject* obj);
105 static void setCanCustomize(QObject* obj, bool canbe = true);
106
107 // 对QList<SARibbonCustomizeData>进行简化
108 static QList< SARibbonCustomizeData > simplify(const QList< SARibbonCustomizeData >& csd);
109
110public:
119
127 QString keyValue;
128
133
138
140private:
141 ActionType mType;
142 SARibbonActionsManager* mActionsManagerPointer;
143};
144Q_DECLARE_METATYPE(SARibbonCustomizeData)
145
146typedef QList< SARibbonCustomizeData > SARibbonCustomizeDataList;
147
148#endif // SARIBBONCUSTOMIZEDATA_H
用于管理SARibbon的所有Action
Definition SARibbonActionsManager.h:37
SARibbonBar继承于QMenuBar,在SARibbonMainWindow中直接替换了原来的QMenuBar
Definition SARibbonBar.h:94
记录所有自定义操作的数据类
Definition SARibbonCustomizeData.h:15
ActionType
Definition SARibbonCustomizeData.h:18
@ RenamePanelActionType
对Panel更名操作(11)
Definition SARibbonCustomizeData.h:30
@ RemoveActionActionType
删除action操作(6)
Definition SARibbonCustomizeData.h:25
@ ChangeCategoryOrderActionType
改变category顺序的操作(7)
Definition SARibbonCustomizeData.h:26
@ AddPanelActionType
添加panel操作(2)
Definition SARibbonCustomizeData.h:21
@ AddCategoryActionType
添加category操作(1)
Definition SARibbonCustomizeData.h:20
@ RemovePanelActionType
删除panel操作(5)
Definition SARibbonCustomizeData.h:24
@ ChangeActionOrderActionType
改变action顺序的操作(9)
Definition SARibbonCustomizeData.h:28
@ AddActionActionType
添加action操作(3)
Definition SARibbonCustomizeData.h:22
@ RemoveCategoryActionType
删除category操作(4)
Definition SARibbonCustomizeData.h:23
@ RenameCategoryActionType
对category更名操作(10)
Definition SARibbonCustomizeData.h:29
@ ChangePanelOrderActionType
改变panel顺序的操作(8)
Definition SARibbonCustomizeData.h:27
SARibbonPanelItem::RowProportion actionRowProportionValue
行的占比,ribbon中有large,media和small三种占比,见RowProportion
Definition SARibbonCustomizeData.h:139
QString panelObjNameValue
记录panelObjName,saribbon的Customize索引大部分基于objname
Definition SARibbonCustomizeData.h:137
QString categoryObjNameValue
记录categoryObjName,用于定位Category
Definition SARibbonCustomizeData.h:132
int indexValue
记录顺序的参数
Definition SARibbonCustomizeData.h:118
QString keyValue
记录标题、索引等参数
Definition SARibbonCustomizeData.h:127
如果要使用SARibbonBar,必须使用此类代替QMainWindow
Definition SARibbonMainWindow.h:60
RowProportion
定义了行的占比,ribbon中有large,media和small三种占比
Definition SARibbonPanelItem.h:23