SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
infilassigntoselectiondialog.h File Reference
#include "mesh/meshinfil.h"
#include <QDialog>
#include <QPointer>
#include <QString>
#include <QVector>
Include dependency graph for infilassigntoselectiondialog.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::ui::InfilAssignToSelectionDialog
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::ui
 

Detailed Description

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

"Assign Infiltration to Selection…" — GUI plan workplans/INTEGRATED2D_GW_GUI_PLAN_2026-08-15.md §3.5(4), phase GG0c.

The mesh-editing toolbar's cell editor prescribes ONE parameter to a selection. Infiltration is not one parameter: it is a method plus up to five positional values plus a destination, and the values only mean anything together. This dialog is the whole-row form, applied to the cells the user picked on the map with MapToolPick2DCells.

Two write targets, and the difference matters (engine D-I3):

  • Per-cell overrides — mesh::pushCellInfilEdit, one [2D_INFILTRATION] row per cell. The command snapshots each cell's PROVENANCE, so undoing an assignment made over an inheriting cell restores INHERITANCE rather than a materialised copy carrying identical numbers.
  • Region tag — mesh::pushInfilDefaultsEdit, one [2D_INFILTRATION_DEFAULTS] row. Offered only when every selected cell shares one non-empty tag, because that is the only case where "these cells" and "this region" mean the same thing. This is the in-map route to editing a default instead of minting overrides, so a later region-level edit still reaches the cells.

Parameter fields are masked by the chosen method through mesh::infilUsesParam(). Every destination is selectable and carries a mesh::infilDestHint() tooltip — the engine routes all three, and whether AQUIFER_2D works depends on the open model carrying a [2D_AQUIFER] rather than on the release, so the engine judges it at resolve. Same two rules the attribute table and the region-defaults table follow.

Singleton-raise per [[feedback_mvc_synchronized_uis]]: showFor() keeps a static QPointer so the toolbar action and the menu mirror raise one window rather than stacking two views over the same selection.