17#ifndef ATTRIBUTETABLEPANEL_H
18#define ATTRIBUTETABLEPANEL_H
34class QSortFilterProxyModel;
35class QStyledItemDelegate;
137 [[nodiscard]] QAction *
copyAction()
const {
return m_copyAct; }
156 void onCategoryChanged(
int comboIdx);
157 void onTableSelectionChanged();
158 void onSelectionManagerChanged(
const QSet<SWMMObjectRef> ¤t,
159 const QSet<SWMMObjectRef> &added,
160 const QSet<SWMMObjectRef> &removed);
161 void onShowSelectedOnlyToggled(
bool on);
162 void onZoomToSelectedClicked();
167 void onRowHeaderDoubleClicked(
int row);
168 void onExportCsvClicked();
169 void onContextMenuRequested(
const QPoint &
pos);
170 void onChangeTypeTriggered();
177 void deleteSelectedRows();
180 void onQueryApplyClicked();
182 void onQueryClearClicked();
188 void onSelectionApplyClicked();
191 bool eventFilter(QObject *watched, QEvent *event)
override;
207 void saveColumnWidths(
const QString &sourceKey)
const;
208 void restoreColumnWidths(
const QString &sourceKey);
216 void ensureMinColumnWidths();
221 void installColumnDelegates();
225 void installColumnDelegates(
const QList<openswmmvis::ColumnSpec> &specs,
231 QList<QStyledItemDelegate *> m_installedDelegates;
236 void bindMeshSource(
const QString &
key);
244 [[nodiscard]]
bool meshSourceActive()
const;
249 QSet<SWMMObjectRef> meshRefs(
bool applyQuery)
const;
253 void meshSelectionToBus();
254 void meshSelectionFromBus(
const QSet<SWMMObjectRef> ¤t);
258 [[nodiscard]]
bool gisSourceActive()
const;
259 void gisSelectionToBus();
260 void gisSelectionFromBus(
const QSet<SWMMObjectRef> ¤t);
266 QSet<SWMMObjectRef> matchedRefs()
const;
269 QSet<SWMMObjectRef> allCategoryRefs()
const;
278 QList<int> selectedSourceRows()
const;
279 void applyValueToSelectedRows(
int column,
const QList<int> &sourceRows,
280 const QVariant &value);
281 QVariant promptBulkValue(
int column,
const QVariant ¤t,
284 QPointer<SWMMModelLayer> m_layer;
285 QPointer<SelectionManager> m_selMgr;
286 QPointer<MapCanvas> m_canvas;
288 QComboBox *m_categoryCombo =
nullptr;
289 QTableView *m_view =
nullptr;
290 QToolBar *m_toolbar =
nullptr;
291 QAction *m_copyAct =
nullptr;
296 QSortFilterProxyModel *m_proxy =
nullptr;
299 QLineEdit *m_queryEdit =
nullptr;
300 QPushButton *m_queryApply =
nullptr;
301 QPushButton *m_queryClear =
nullptr;
302 QLabel *m_queryStatus =
nullptr;
315 QButtonGroup *m_selGroup =
nullptr;
316 QRadioButton *m_selReplaceR =
nullptr;
317 QRadioButton *m_selAddR =
nullptr;
318 QRadioButton *m_selSubtractR =
nullptr;
319 QRadioButton *m_selIntersectR =
nullptr;
320 QRadioButton *m_selInvertR =
nullptr;
322 bool m_applyingFromBus =
false;
323 bool m_showSelectedOnly =
false;
324 bool m_suppressEditForward =
false;
Definition attributetablepanel.h:51
void copySelectionToClipboard()
Definition attributetablepanel.cpp:1946
QAction * copyAction() const
Definition attributetablepanel.h:137
void showLayerSource(OpenSWMMVisLayer *layer)
Definition attributetablepanel.cpp:1246
void onObjectEditedExternally(const QString &name)
Definition attributetablepanel.cpp:2608
bool categoryIsDeletable() const
Definition attributetablepanel.cpp:2649
void setProject(SWMMModelLayer *layer, SelectionManager *selMgr, MapCanvas *canvas=nullptr)
Definition attributetablepanel.cpp:938
~AttributeTablePanel() override
Definition attributetablepanel.cpp:658
void setResultsSource(SWMMResultsLayer *layer)
Definition attributetablepanel.cpp:1029
bool featureSourceIsEditable() const
Definition attributetablepanel.cpp:2769
int deleteObjects(const QStringList &names)
Definition attributetablepanel.cpp:2663
void refresh()
Definition attributetablepanel.cpp:1039
void objectEdited(const QString &name)
void refreshHeaders()
Definition attributetablepanel.cpp:1034
int deleteSelectedFeatures()
Definition attributetablepanel.cpp:2777
QString selectionAsTsv() const
Definition attributetablepanel.cpp:1894
Definition attributetablepanel.cpp:120
A map layer backed by a GDAL/OGR vector dataset.
Definition gisvectorlayer.h:103
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
Definition meshattributetablemodel.h:50
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:116
Definition swmm2dmeshlayer.h:64
Definition swmmattributetablemodel.h:111
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Overlays time-stepped simulation results on the SWMM network geometry.
Definition swmmresultslayer.h:96
Owner of the canonical selection set for one SWMM project.
Definition selectionmanager.h:112
Definition tabulardatalayer.h:28
Definition tabulardatatablemodel.h:28
bool ok
Definition inpmeshwriter.cpp:575
const char * key
Definition meshcellparams.cpp:24
SwmmCategory
Stable ordinal categorising every SWMM-element kind that has per-kind styling, per-kind tree rows,...
Definition swmm_category.h:28
Definition aquiferprovider.h:21
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
int pos
Definition queryparser.cpp:36
QString name
Definition sectionmodelbuilders.cpp:474
ObjectType
Coarse object kind. Mirrors the engine's logical groupings; finer subtypes (e.g. junction vs outfall)...
Definition selectionmanager.h:39
Map layer that renders an OpenSWMMEngine network (nodes, links, subcatchments, rain gages) and provid...