13#include <QStackedWidget>
15#include <QDialogButtonBox>
18#ifdef AST_WITH_MATPLOT
27class AxesPropertyPage;
28class LinePropertyPage;
29class SurfacePropertyPage;
31class AST_CHART_API EditFigureDialog :
public QDialog {
34 explicit EditFigureDialog(matplot::figure_type* figure, QWidget* parent =
nullptr);
35 EditFigureDialog(
const EditFigureDialog&) =
delete;
36 EditFigureDialog& operator=(
const EditFigureDialog&) =
delete;
38 void selectPlotItem(
int axesIndex,
int itemIndex);
41 void onTreeSelectionChanged();
47 QIcon loadIcon(
const QString& name)
const;
49 enum NodeType { TypeFigure, TypeAxes, TypePlotItem };
50 enum DataRole { TypeRole = Qt::UserRole, AxesIndexRole = Qt::UserRole + 1, ItemIndexRole = Qt::UserRole + 2 };
52 matplot::figure_type* figure_{};
54 QStackedWidget* stack_{};
55 AxesPropertyPage* axesPage_{};
56 LinePropertyPage* linePage_{};
57 SurfacePropertyPage* surfacePage_{};
58 QWidget* placeholder_{};
59 QPushButton* applyBtn_{};