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
TimeSeriesLayerBrowser::Impl Class Reference

Browser state; GUI data models contain metadata and one bounded page only. More...

Collaboration diagram for TimeSeriesLayerBrowser::Impl:

Public Member Functions

QStringList selection () const
 Copy visible selected series IDs without depending on sorted row ordinals.
 
void refresh ()
 Refresh metadata and restore qualified selection; samples are read separately.
 
void syncSelection ()
 Reflect layer selection in sorted table and sample selector without signal loops.
 
void loadPage ()
 Start a worker page query and discard any obsolete receiver/source generation.
 
void exportSelection ()
 Export selected immutable series; no GUI/table data is transferred to the worker.
 

Public Attributes

TimeSeriesLayerBrowser * owner
 Borrowed owning dialog; all widget callbacks use its QObject lifetime.
 
QPointer< TimeSeriesLayer > layer
 Borrowed collection, guarded against project or layer destruction.
 
QStandardItemModel * series = nullptr
 Dialog-owned series metadata model, never observation rows.
 
QStandardItemModel * samples = nullptr
 Dialog-owned model for the current bounded observation page.
 
QSortFilterProxyModel * filter = nullptr
 Dialog-owned metadata sort/filter proxy preserving UUID item roles.
 
QTableView * seriesView = nullptr
 Dialog-owned table sharing qualified series selection with the layer.
 
QTableView * sampleView = nullptr
 Dialog-owned read-only observation page view.
 
QComboBox * sampleSeries = nullptr
 Chooses the single series whose observations are paged below.
 
QPlainTextEdit * details = nullptr
 Optional source metadata/quality details without lossy formatting.
 
QLabel * status = nullptr
 Displays page position, export progress, and reader diagnostics.
 
QPushButton * previous = nullptr
 Pops one keyset cursor to revisit the preceding page.
 
QPushButton * next = nullptr
 Pushes the current page's final time key before reading the next page.
 
QAction * use = nullptr
 Requests an explicit model-owned copy of one usable selected series.
 
QAction * plot = nullptr
 Sends selected stable identities to the native comparison plot controller.
 
QAction * zoom = nullptr
 Frames selected source stations or resolved nonspatial-series links.
 
QAction * attach = nullptr
 Creates an undoable association to the selected persistent feature.
 
QAction * detach = nullptr
 Removes selected series' feature relationships without changing samples.
 
QAction * exportAction = nullptr
 Starts complete original-sample export independently of paging.
 
QVector< qint64 > cursors {std::numeric_limits<qint64>::min()}
 Exclusive time-key history; first sentinel starts before all observations.
 
ObservationPage page
 Owned current page used for Next availability and observation details.
 
quint64 generation = 0
 Monotonic page request token rejecting obsolete worker completions.
 
bool syncing = false
 Prevents table and layer selection callbacks from recursively mutating each other.
 
std::shared_ptr< std::atomic_bool > cancel = std::make_shared<std::atomic_bool>(false)
 Shared page cancellation flag, readable after the browser closes.
 
std::shared_ptr< std::atomic_bool > exportCancel
 Active export cancellation flag; null when no export is running.
 

Detailed Description

Browser state; GUI data models contain metadata and one bounded page only.

Member Function Documentation

◆ exportSelection()

void TimeSeriesLayerBrowser::Impl::exportSelection ( )
inline

Export selected immutable series; no GUI/table data is transferred to the worker.

Here is the call graph for this function:

◆ loadPage()

void TimeSeriesLayerBrowser::Impl::loadPage ( )
inline

Start a worker page query and discard any obsolete receiver/source generation.

Here is the call graph for this function:

◆ refresh()

void TimeSeriesLayerBrowser::Impl::refresh ( )
inline

Refresh metadata and restore qualified selection; samples are read separately.

Here is the call graph for this function:

◆ selection()

QStringList TimeSeriesLayerBrowser::Impl::selection ( ) const
inline

Copy visible selected series IDs without depending on sorted row ordinals.

Returns
Stable IDs held in the selected proxy rows' item roles.
Here is the caller graph for this function:

◆ syncSelection()

void TimeSeriesLayerBrowser::Impl::syncSelection ( )
inline

Reflect layer selection in sorted table and sample selector without signal loops.

Here is the caller graph for this function:

Member Data Documentation

◆ attach

QAction* TimeSeriesLayerBrowser::Impl::attach = nullptr

Creates an undoable association to the selected persistent feature.

◆ cancel

std::shared_ptr<std::atomic_bool> TimeSeriesLayerBrowser::Impl::cancel = std::make_shared<std::atomic_bool>(false)

Shared page cancellation flag, readable after the browser closes.

◆ cursors

QVector<qint64> TimeSeriesLayerBrowser::Impl::cursors {std::numeric_limits<qint64>::min()}

Exclusive time-key history; first sentinel starts before all observations.

◆ detach

QAction* TimeSeriesLayerBrowser::Impl::detach = nullptr

Removes selected series' feature relationships without changing samples.

◆ details

QPlainTextEdit* TimeSeriesLayerBrowser::Impl::details = nullptr

Optional source metadata/quality details without lossy formatting.

◆ exportAction

QAction* TimeSeriesLayerBrowser::Impl::exportAction = nullptr

Starts complete original-sample export independently of paging.

◆ exportCancel

std::shared_ptr<std::atomic_bool> TimeSeriesLayerBrowser::Impl::exportCancel

Active export cancellation flag; null when no export is running.

◆ filter

QSortFilterProxyModel* TimeSeriesLayerBrowser::Impl::filter = nullptr

Dialog-owned metadata sort/filter proxy preserving UUID item roles.

◆ generation

quint64 TimeSeriesLayerBrowser::Impl::generation = 0

Monotonic page request token rejecting obsolete worker completions.

◆ layer

QPointer<TimeSeriesLayer> TimeSeriesLayerBrowser::Impl::layer

Borrowed collection, guarded against project or layer destruction.

◆ next

QPushButton* TimeSeriesLayerBrowser::Impl::next = nullptr

Pushes the current page's final time key before reading the next page.

◆ owner

TimeSeriesLayerBrowser* TimeSeriesLayerBrowser::Impl::owner

Borrowed owning dialog; all widget callbacks use its QObject lifetime.

◆ page

ObservationPage TimeSeriesLayerBrowser::Impl::page

Owned current page used for Next availability and observation details.

◆ plot

QAction* TimeSeriesLayerBrowser::Impl::plot = nullptr

Sends selected stable identities to the native comparison plot controller.

◆ previous

QPushButton* TimeSeriesLayerBrowser::Impl::previous = nullptr

Pops one keyset cursor to revisit the preceding page.

◆ samples

QStandardItemModel* TimeSeriesLayerBrowser::Impl::samples = nullptr

Dialog-owned model for the current bounded observation page.

◆ sampleSeries

QComboBox* TimeSeriesLayerBrowser::Impl::sampleSeries = nullptr

Chooses the single series whose observations are paged below.

◆ sampleView

QTableView* TimeSeriesLayerBrowser::Impl::sampleView = nullptr

Dialog-owned read-only observation page view.

◆ series

QStandardItemModel* TimeSeriesLayerBrowser::Impl::series = nullptr

Dialog-owned series metadata model, never observation rows.

◆ seriesView

QTableView* TimeSeriesLayerBrowser::Impl::seriesView = nullptr

Dialog-owned table sharing qualified series selection with the layer.

◆ status

QLabel* TimeSeriesLayerBrowser::Impl::status = nullptr

Displays page position, export progress, and reader diagnostics.

◆ syncing

bool TimeSeriesLayerBrowser::Impl::syncing = false

Prevents table and layer selection callbacks from recursively mutating each other.

◆ use

QAction* TimeSeriesLayerBrowser::Impl::use = nullptr

Requests an explicit model-owned copy of one usable selected series.

◆ zoom

QAction* TimeSeriesLayerBrowser::Impl::zoom = nullptr

Frames selected source stations or resolved nonspatial-series links.


The documentation for this class was generated from the following file: