DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAppRibbonArea.h
1#ifndef DAAPPRIBBONAREA_H
2#define DAAPPRIBBONAREA_H
3#include <QObject>
4#include <QAction>
5#include <QUndoStack>
6#include <QSpinBox>
7#include <QWidgetAction>
8#include "DARibbonAreaInterface.h"
9#include "DADataManageWidget.h"
10#include "DAWorkFlowGraphicsScene.h"
11#if DA_ENABLE_PYTHON
12// Py
13#include "numpy/DAPyDType.h"
14#endif
15
16#define DAAPPRIBBONAREA_COMMON_SETTING_H(MiddleName) \
17public: \
18 QPen get##MiddleName##Pen() const; \
19 QBrush get##MiddleName##Brush() const; \
20 QFont get##MiddleName##Font() const; \
21 QColor get##MiddleName##FontColor() const; \
22public slots: \
23 void set##MiddleName##Pen(const QPen& v); \
24 void set##MiddleName##Brush(const QBrush& v); \
25 void set##MiddleName##Font(const QFont& v); \
26 void set##MiddleName##FontColor(const QColor& v);
27
28// Qt
29class QComboBox;
30class QToolBar;
31class QMenuBar;
32class QFontComboBox;
33class QUndoStack;
34// Qt-Advanced-Docking-System 前置申明
35namespace ads
36{
37class CDockWidget;
38}
39// SA Ribbon
40class SARibbonBar;
41class SARibbonCategory;
42class SARibbonPanel;
43class SARibbonContextCategory;
44class SARibbonLineWidgetContainer;
45class SARibbonButtonGroupWidget;
46class SARibbonCtrlContainer;
47class SARibbonGallery;
48namespace DA
49{
50class AppMainWindow;
51class DAAppDockingArea;
52class DAAppActions;
53class DAAppCommand;
54class DAPyDTypeComboBox;
55class DACommandInterface;
56class DAAppDataManager;
57class DADataOperateOfDataFrameWidget;
58class DAAppProject;
59class DAAppRibbonApplicationMenu;
60//
61class DADataOperatePageWidget;
62// 窗口
63class DAFontEditPannelWidget;
64class DAShapeEditPannelWidget;
65class DAColorPickerButton;
66class DAFigureWidget;
67class DAChartOperateWidget;
68class DAChartWidget;
69class DADataOperateWidget;
70class DAWorkFlowEditWidget;
71class DAWorkFlowOperateWidget;
118{
119 Q_OBJECT
120 friend class AppMainWindow;
121 friend class DAAppUI;
122 friend class DAAppController;
123
124public:
135 Q_ENUM(ContextCategoryType)
136public:
137 explicit DAAppRibbonArea(DAUIInterface* u);
139
140 // 发生语言变更时会触发此函数
141 virtual void retranslateUi() override;
142 // 获取app
143 AppMainWindow* app() const;
144 // 获取ribbon
145 SARibbonBar* ribbonBar() const;
146 // 获取主标签
147 SARibbonCategory* getRibbonCategoryMain() const;
148 // 通过DACommandInterface构建redo/undo的action
149 void buildRedoUndo();
150 // 更新ActionLockBackgroundPixmap的check statue
151 void updateActionLockBackgroundPixmapCheckStatue(bool c);
152 // 显示上下文(会把其他上下文隐藏)
154 // 隐藏上下文
156
157public:
158 //===================================================
159 // 更新操作
160 //===================================================
161 // 更新绘图相关的ribbon
168 //
170 // 重置文字
171 void resetText();
172
173public:
174 // Python相关
175#if DA_ENABLE_PYTHON
176 // 设置DataFrame的类型,【Context】 - 【dataframe】 DataFrame -> Type -> Type,此函数的调用忽略combox的currentindexchanged信号
177 void setDataframeOperateCurrentDType(const DAPyDType& d);
178#endif
179private:
180 // 构建所有的action
181 void buildMenu();
182 // 构建界面
183 void buildRibbon();
184 // 构建主页
185 void buildRibbonMainCategory();
186 // 构建数据标签
187 void buildRibbonDataCategory();
188 // 构建主页
189 void buildRibbonViewCategory();
190 // 构建编辑标签,编辑标签是通用的编辑功能,例如添加文字,添加形状等
191 void buildRibbonEditCategory();
192 // 构建绘图标签
193 void buildRibbonFigureCategory();
194 // 构建快速响应栏
195 void buildRibbonQuickAccessBar();
196 // 构建DataFrame上下文标签
197 void buildContextCategoryDataFrame();
198 // 构建Workflow的上下文标签,注意buildContextCategoryWorkflowEdit和buildContextCategoryWorkflowRun必须在此函数之后调用
199 void buildContextCategoryWorkflow();
200 // 构建Workflow-编辑的上下文标签
201 void buildContextCategoryWorkflowEdit_();
202 // 构建Workflow-视图的上下文标签
203 void buildContextCategoryWorkflowView_();
204 // 构建workflow-运行的上下文标签
205 void buildContextCategoryWorkflowRun_();
206 // 构建chart上下文
207 void buildContextCategoryChartEdit();
208 // 构建ApplicationMenu
209 void buildApplicationMenu();
210 // 构建右工具栏
211 void buildRightButtonBar();
212
213 DAAPPRIBBONAREA_COMMON_SETTING_H(Edit)
214 DAAPPRIBBONAREA_COMMON_SETTING_H(WorkFlowEdit)
215
216Q_SIGNALS:
224 void selectedPen(const QPen& p);
225
233 void selectedBrush(const QBrush& b);
234
242 void selectedFont(const QFont& f);
243
251 void selectedFontColor(const QColor& c);
252
259 void selectedWorkflowItemPen(const QPen& p);
260
267 void selectedWorkflowItemBrush(const QBrush& b);
268
275 void selectedWorkflowItemFont(const QFont& f);
276
283 void selectedWorkflowItemFontColor(const QColor& c);
284
285protected:
291
292private:
296 // pass
297
298 DAAppActions* m_actions;
299 DAAppDockingArea* m_dockArea;
300 AppMainWindow* m_app;
301 DAAppCommand* m_appCmd;
302 //----------------------------------------------------
303 // main
304 //----------------------------------------------------
305 SARibbonCategory* m_categoryMain;
306 SARibbonPanel* m_pannelMainFileOpt;
307 SARibbonPanel* m_pannelMainDataOpt;
308 SARibbonPanel* m_pannelMainChartOpt;
309 SARibbonPanel* m_pannelMainWorkflowOpt;
310 SARibbonPanel* m_pannelSetting;
311 //----------------------------------------------------
312 // data
313 //----------------------------------------------------
314 SARibbonCategory* m_categoryData;
315 SARibbonPanel* m_pannelDataOperate;
316 //----------------------------------------------------
317 // view
318 //----------------------------------------------------
319 SARibbonCategory* m_categoryView;
320 SARibbonPanel* m_pannelViewMainView;
321 //----------------------------------------------------
322 // edit
323 //----------------------------------------------------
324 //--widget
325 DAFontEditPannelWidget* m_editFontEditPannel;
326 DAShapeEditPannelWidget* m_editShapeEditPannelWidget;
327 SARibbonCategory* m_categoryEdit;
328 SARibbonPanel* m_pannelEditWorkflow;
329
330 //----------------------------------------------------
331 // figure
332 //----------------------------------------------------
333 SARibbonCategory* m_categoryFigure;
334 SARibbonPanel* m_pannelFigureSetting;
335 SARibbonPanel* m_pannelChartAdd;
336
337 //----------------------------------------------------
338 // Context - dataframe
339 //----------------------------------------------------
340 SARibbonContextCategory* m_contextDataFrame;
341 SARibbonCategory* m_categoryDataframeOperate;
342 SARibbonPanel* m_pannelDataframeOperateAxes;
343 SARibbonPanel* m_pannelDataframeOperateDType;
344#if DA_ENABLE_PYTHON
345 SARibbonLineWidgetContainer* m_comboxColumnTypesContainer;
346 DAPyDTypeComboBox* m_comboxColumnTypes;
347#endif
348 SARibbonButtonGroupWidget* m_castActionsButtonGroup;
349 //----------------------------------------------------
350 // Context - workflow
351 //----------------------------------------------------
352 SARibbonContextCategory* m_contextWorkflow;
353 //----------------------------------------------------
354 // Context - workflow-view
355 //----------------------------------------------------
356 SARibbonCategory* m_categoryWorkflowGraphicsView;
357 SARibbonPanel* m_pannelWorkflowView;
358
359 SARibbonPanel* m_pannelWorkflowExport;
360 //----------------------------------------------------
361 // Context - workflow-edit
362 //----------------------------------------------------
363 DAFontEditPannelWidget* m_workflowFontEditPannel;
364 DAShapeEditPannelWidget* m_workflowShapeEditPannelWidget;
365
366 SARibbonCategory* m_categoryWorkflowGraphicsEdit;
367 SARibbonPanel* m_pannelClipBoard;
368 SARibbonPanel* m_pannelWorkflowItem;
369 SARibbonPanel* m_pannelWorkflowBackground;
370 SARibbonPanel* m_pannelWorkflowText;
371 SARibbonPanel* m_pannelWorkflowGroup;
372
373 //----------------------------------------------------
374 // Context - workflow-run
375 //----------------------------------------------------
376 SARibbonCategory* m_categoryWorkflowRun;
377 SARibbonPanel* m_pannelWorkflowRun;
378 //----------------------------------------------------
379 // Context - chart
380 //----------------------------------------------------
381 SARibbonContextCategory* m_contextChart;
382 SARibbonCategory* m_categoryChartEdit;
383 SARibbonPanel* m_pannelFigureSettingForContext;
384 SARibbonPanel* m_pannelChartSetting;
385 SARibbonButtonGroupWidget* m_chartGridDirActionsButtonGroup;
386 SARibbonButtonGroupWidget* m_chartGridMinActionsButtonGroup;
387 SARibbonPanel* m_panelFigureTheme;
388 SARibbonGallery* m_figureThemeGallery;
389 // ApplicationMenu
390 DAAppRibbonApplicationMenu* mApplicationMenu;
391 // 菜单相关
392 QMenu* mExportWorkflowSceneToImageMenu { nullptr };
393 QMenu* m_menuViewLineMarkers { nullptr };
394 QMenu* m_menuInsertRow { nullptr };
395 QMenu* m_menuInsertColumn { nullptr };
396 QMenu* m_menuTheme { nullptr };
397 QMenu* m_menuChartPickSetting { nullptr };
398};
399} // namespace DA
400#endif // DAAPPRIBBONAREA_H
Definition AppMainWindow.h:28
action管理
Definition DAAppActions.h:13
App的命令管理
Definition DAAppCommand.h:17
控制层负责逻辑的对接
Definition DAAppController.h:54
负责docking窗口区域的管理,APP分两大区域-RibbonArea和DockArea DockArea包含所有的窗口
Definition DAAppDockingArea.h:43
ribbon application button 弹出的菜单
Definition DAAppRibbonApplicationMenu.h:11
App的Ribbon区域接口,负责ribbon层的管理和调度
Definition DAAppRibbonArea.h:118
void showContextCategory(ContextCategoryType type)
显示上下文(会把其他上下文隐藏)
Definition DAAppRibbonArea.cpp:896
void updateChartAboutRibbon(DAChartWidget *chart)
更新图表相关的ribbon
Definition DAAppRibbonArea.cpp:798
void updateFigureAboutRibbon(DAFigureWidget *fig)
更新绘图相关的ribbon
Definition DAAppRibbonArea.cpp:783
void setDockingArea(DAAppDockingArea *dock)
设置dock区,有些pannel的action是依赖dock界面的,统一在这里设置
Definition DAAppRibbonArea.cpp:688
void buildRedoUndo()
通过DACommandInterface构建redo/undo的action
Definition DAAppRibbonArea.cpp:752
ContextCategoryType
上下文类型
Definition DAAppRibbonArea.h:129
@ ContextCategoryChart
Chart相关的上下文
Definition DAAppRibbonArea.h:132
@ ContextCategoryWorkflow
Workflow相关的上下文
Definition DAAppRibbonArea.h:131
@ ContextCategoryData
Data相关的上下文
Definition DAAppRibbonArea.h:130
@ AllContextCategory
这个代表所有的上下文
Definition DAAppRibbonArea.h:133
void updateChartZoomPanAboutRibbon(DAChartWidget *chart)
更新Ribbon图表缩放相关的界面
Definition DAAppRibbonArea.cpp:835
void updateChartLegendAboutRibbon(DAChartWidget *chart)
更新绘图的legend状态
Definition DAAppRibbonArea.cpp:862
SARibbonCategory * getRibbonCategoryMain() const
mian标签
Definition DAAppRibbonArea.cpp:743
void hideContextCategory(ContextCategoryType type)
隐藏上下文
Definition DAAppRibbonArea.cpp:929
void updateWorkflowAboutRibbon(DAWorkFlowOperateWidget *wfo)
DAAppRibbonArea::updateWorkflowViewAboutRibbon
Definition DAAppRibbonArea.cpp:874
void updateChartPickerAboutRibbon(DAChartWidget *chart)
更新绘图的picker状态
Definition DAAppRibbonArea.cpp:848
void updateChartGridAboutRibbon(DAChartWidget *chart)
更新Ribbon图表网格相关的界面
Definition DAAppRibbonArea.cpp:814
总体界面接口,负责生成DAAppDockingArea和DAAppRibbonArea
Definition DAAppUI.h:17
增强的Qwt图表控件,提供完整的数据绘图、样式设置和交互控制功能
Definition DAChartWidget.h:40
绘图窗口
Definition DAFigureWidget.h:35
Definition DAFontEditPannelWidget.h:13
dtype选择器 此combox构建时默认插入如下信息:
Definition DAPyDTypeComboBox.h:42
对numpy.dtype的封装
Definition DAPyDType.h:37
这个接口管理了AppRibbon区域的相关操作
Definition DARibbonAreaInterface.h:24
针对形状的编辑
Definition DAShapeEditPannelWidget.h:21
界面相关的接口
Definition DAUIInterface.h:26
工作流绘图建模窗口
Definition DAWorkFlowOperateWidget.h:26
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44