28#ifndef OPENSWMMVIS_UI_DIALOGS_CURVEEDITORDIALOG_H
29#define OPENSWMMVIS_UI_DIALOGS_CURVEEDITORDIALOG_H
39class InteractiveChartView;
40class CurveEditChartView;
41class ChartAxisFormatController;
54class QStandardItemModel;
55class QSortFilterProxyModel;
68class CurvePointTableModel;
78 QUndoStack *undoStack,
79 QWidget *
parent =
nullptr);
84 QUndoStack *undoStack,
85 QWidget *
parent =
nullptr);
96 QUndoStack *undoStack,
97 const QString &initialName,
98 QWidget *
parent =
nullptr);
107 QListView *
listView() const noexcept {
return m_listView; }
131 void onListSelectionChanged_();
132 void onListContextMenu_(
const QPoint &
pos);
133 void onAddRowClicked_();
134 void onDeleteRowsClicked_();
135 void onCopyRowsClicked_();
136 void onPasteRowsClicked_();
137 void onTableContextMenu_(
const QPoint &
pos);
138 void onTypeComboChanged_(
int index);
139 void onNewClicked_();
140 void onRenameClicked_();
141 void onDeleteCurveClicked_();
142 void onCancelCreateClicked_();
146 const QString &prev,
const QString &now);
147 void onProviderPointsChanged_();
148 void onProviderTypeChanged_();
149 void onMutationRejected_(
const QString &reason);
150 void onCreateNewNameChanged_(
const QString &
text);
151 void onCreateNewSubmit_();
152 void onListItemRenamed_(QStandardItem *item);
156 void buildCreateCard_();
157 void rebuildListModel_();
160 void refreshChart_();
161 void updateStatusBar_();
162 void populateTypeCombo_(QComboBox *combo)
const;
163 void applyTypeFilter_();
165 QPointer<openswmmvis::curve::CurveRegistry> m_registry;
166 QUndoStack *m_undoStack =
nullptr;
167 QPointer<openswmmvis::curve::CurveProvider> m_current;
170 QSplitter *m_splitter =
nullptr;
171 QListView *m_listView =
nullptr;
172 QStandardItemModel *m_listModel =
nullptr;
173 QSortFilterProxyModel *m_listProxy =
nullptr;
174 QComboBox *m_filterCombo =
nullptr;
176 QComboBox *m_typeCombo =
nullptr;
177 QLabel *m_typeHint =
nullptr;
178 QTableView *m_table =
nullptr;
180 QPushButton *m_addRowBtn =
nullptr;
181 QPushButton *m_delRowBtn =
nullptr;
182 QAction *m_copyAct =
nullptr;
183 QAction *m_pasteAct =
nullptr;
184 QStatusBar *m_status =
nullptr;
185 QLabel *m_countLabel =
nullptr;
188 QToolBar *m_chartToolBar =
nullptr;
189 QAction *m_chartPanAction =
nullptr;
190 QAction *m_chartZoomInAction =
nullptr;
191 QAction *m_chartZoomOutAction =
nullptr;
192 QAction *m_chartEditAction =
nullptr;
193 QAction *m_chartLockXAction =
nullptr;
194 QAction *m_chartLockYAction =
nullptr;
195 QChart *m_chart =
nullptr;
197 QLineSeries *m_line =
nullptr;
198 QScatterSeries *m_scatter =
nullptr;
199 QValueAxis *m_xAxis =
nullptr;
200 QValueAxis *m_yAxis =
nullptr;
204 QFrame *m_createCard =
nullptr;
205 QLineEdit *m_nameEdit =
nullptr;
206 QLabel *m_nameValidationLabel =
nullptr;
207 QComboBox *m_createTypeCombo =
nullptr;
208 QPushButton *m_createBtn =
nullptr;
209 QPushButton *m_cancelCreateBtn =
nullptr;
212 QPushButton *m_newBtn =
nullptr;
213 QPushButton *m_renameBtn =
nullptr;
214 QPushButton *m_deleteBtn =
nullptr;
217 bool m_suppressTypeSignal =
false;
219 bool m_suppressListItemRename =
false;
221 bool m_suppressTableSelectionSync =
false;
222 bool m_suppressChartSelectionSync =
false;
Definition curveprovider.h:56
Definition curveregistry.h:26
Definition curveeditchartview.h:55
Definition curveeditordialog.h:71
static CurveEditorDialog * createNew(openswmmvis::curve::CurveRegistry *registry, QUndoStack *undoStack, QWidget *parent=nullptr)
Definition curveeditordialog.cpp:119
CurvePointTableModel * tableModel() const noexcept
Definition curveeditordialog.h:110
void submitCreateNew()
Definition curveeditordialog.cpp:1210
~CurveEditorDialog() override
QListView * listView() const noexcept
Definition curveeditordialog.h:107
QString pendingName() const
Definition curveeditordialog.cpp:1195
void deleteCurrentSilently()
Delete the currently selected curve from the registry (bypasses the confirmation dialog).
Definition curveeditordialog.cpp:1170
Mode
Definition curveeditordialog.h:74
bool renameCurrent(const QString &newName)
Rename the currently selected curve. Returns false if no selection or the new name collides.
Definition curveeditordialog.cpp:1150
Mode mode() const noexcept
Definition curveeditordialog.h:102
void openForCurve(const QString &name)
Definition curveeditordialog.cpp:164
void invokeDeleteRows()
Definition curveeditordialog.cpp:865
int pendingType() const
Definition curveeditordialog.cpp:1200
QTableView * pointTable() const noexcept
Definition curveeditordialog.h:108
openswmmvis::curve::CurveProvider * currentProvider() const noexcept
Definition curveeditordialog.cpp:174
void invokeNew()
Reveal the create-card (mirrors the "+ New" button).
Definition curveeditordialog.cpp:1106
CurveEditChartView * chartView() const noexcept
Definition curveeditordialog.h:109
void invokeAddRow()
Definition curveeditordialog.cpp:851
static QString pickCurve(openswmmvis::curve::CurveRegistry *registry, QUndoStack *undoStack, const QString &initialName, QWidget *parent=nullptr)
Modal pick / create / edit entry point for callers that round-trip a curve selection inline (e....
Definition curveeditordialog.cpp:131
bool isCreateEnabled() const
Definition curveeditordialog.cpp:1205
Definition curvepointtablemodel.h:31
ArrowPlacement p
Definition linesymbollayer.cpp:27
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
Definition curveprovider.h:31
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
int pos
Definition queryparser.cpp:36
QString text
Definition queryparser.cpp:35
QString name
Definition sectionmodelbuilders.cpp:474