26#ifndef OPENSWMMVIS_UI_DIALOGS_RULESEDITORDIALOG_H
27#define OPENSWMMVIS_UI_DIALOGS_RULESEDITORDIALOG_H
37class QSortFilterProxyModel;
45class ControlRuleProvider;
46class ControlRuleRegistry;
63 QUndoStack *undoStack,
64 QWidget *
parent =
nullptr);
70 QUndoStack *undoStack,
71 QWidget *
parent =
nullptr);
81 QUndoStack *undoStack,
82 const QString &initialName,
83 QWidget *
parent =
nullptr);
94 QListView *
listView() const noexcept {
return m_listView; }
109 void onListSelectionChanged_();
110 void onCodeEditorTextChanged_();
111 void onCodeEditorFocusOut_();
112 void onAddClicked_();
113 void onDeleteClicked_();
114 void onRenameClicked_();
115 void onSearchTextChanged_(
const QString &
text);
116 void onCancelCreateClicked_();
117 void onCreateNewNameChanged_(
const QString &
text);
118 void onCreateNewSubmit_();
120 const QString &prev,
const QString &now);
121 void onProviderValidationChanged_();
125 void buildCreateCard_();
127 void updateValidationBanner_();
130 QPointer<SWMMModelLayer> m_layer;
131 QUndoStack *m_undoStack =
nullptr;
132 QPointer<openswmmvis::controls::ControlRuleProvider> m_current;
135 QSplitter *m_splitter =
nullptr;
138 QLineEdit *m_searchEdit =
nullptr;
139 QListView *m_listView =
nullptr;
141 QSortFilterProxyModel *m_listProxy =
nullptr;
142 QToolButton *m_addBtn =
nullptr;
143 QToolButton *m_delBtn =
nullptr;
144 QToolButton *m_renameBtn =
nullptr;
147 QLabel *m_nameLabel =
nullptr;
148 QToolButton *m_renameBodyBtn =
nullptr;
149 QFrame *m_validationBanner =
nullptr;
150 QLabel *m_validationLabel =
nullptr;
152 QToolButton *m_validateNowBtn =
nullptr;
158 QFrame *m_createCard =
nullptr;
159 QLineEdit *m_createNameEdit =
nullptr;
160 QLabel *m_createValidationLbl =
nullptr;
161 QPushButton *m_createBtn =
nullptr;
162 QPushButton *m_cancelCreateBtn =
nullptr;
165 bool m_suppressTextSignal =
false;
166 bool m_dirty =
false;
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition controlruleprovider.h:45
Definition controlruleregistry.h:38
Definition rulevalidator.h:32
Definition rulecodeeditor.h:38
Definition rulelistmodel.h:51
Definition ruleseditordialog.h:56
void submitCreateNew()
Definition ruleseditordialog.cpp:505
QString pendingName() const
Definition ruleseditordialog.cpp:495
void openForRule(const QString &name)
Bring the dialog forward and select name in the list (no-op if absent).
Definition ruleseditordialog.cpp:593
Mode
Definition ruleseditordialog.h:59
RuleListModel * listModel() const noexcept
Definition ruleseditordialog.h:96
void flushPendingEdit()
Definition ruleseditordialog.cpp:433
bool renameCurrent(const QString &newName)
Definition ruleseditordialog.cpp:565
RuleCodeEditor * codeEditor() const noexcept
Definition ruleseditordialog.h:95
~RulesEditorDialog() override
void invokeDelete()
Definition ruleseditordialog.cpp:539
Mode mode() const noexcept
Definition ruleseditordialog.h:89
static RulesEditorDialog * createNew(SWMMModelLayer *layer, QUndoStack *undoStack, QWidget *parent=nullptr)
Slice BM.0-Add-New factory: same dialog, started in CreateNew mode. Caller owns the returned dialog.
Definition ruleseditordialog.cpp:94
bool isCreateEnabled() const
Definition ruleseditordialog.cpp:500
openswmmvis::controls::ControlRuleProvider * currentProvider() const noexcept
Definition ruleseditordialog.cpp:133
void closeEvent(QCloseEvent *e) override
Definition ruleseditordialog.cpp:604
QListView * listView() const noexcept
Definition ruleseditordialog.h:94
void invokeNew()
Definition ruleseditordialog.cpp:451
static QString pickControlRule(SWMMModelLayer *layer, QUndoStack *undoStack, const QString &initialName, QWidget *parent=nullptr)
Modal pick / create / edit entry point — mirrors TimeseriesEditorDialog::pickTimeseries....
Definition ruleseditordialog.cpp:104
int e
Definition inpmeshreader.cpp:41
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition controlruleprovider.h:34
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString text
Definition queryparser.cpp:35
QString name
Definition sectionmodelbuilders.cpp:474