|
ORE Studio 0.0.4
|
Base class for all detail dialogs. More...
#include <DetailDialogBase.hpp>


Classes | |
| struct | change_reason_selection |
| Result of a successful change reason prompt. More... | |
Signals | |
| void | closeRequested () |
| Emitted when the dialog wants to close its container window. | |
| void | statusMessage (const QString &message) |
| Emitted to show a status message in the status bar. | |
| void | errorMessage (const QString &message) |
| Emitted when an error occurs that should be shown to the user. | |
Public Member Functions | |
| virtual bool | hasUnsavedChanges () const |
| bool | isCloseConfirmed () const |
| Returns true if the user has already confirmed closing this dialog. | |
| void | setChangeReasonCache (ChangeReasonCache *cache) |
| Inject the shared change reason cache. | |
Protected Slots | |
| void | onCloseClicked () |
| Called when the Close button is clicked. | |
Protected Member Functions | |
| void | requestClose () |
| Request closure of the container window. | |
| void | notifySaveSuccess (const QString &message) |
| Notify that a save operation completed successfully. | |
| virtual QTabWidget * | tabWidget () const =0 |
| Returns the dialog's QTabWidget (named "tabWidget" in .ui). | |
| virtual QWidget * | provenanceTab () const =0 |
| Returns the Provenance tab widget (named "provenanceTab" in .ui). | |
| virtual ProvenanceWidget * | provenanceWidget () const =0 |
| Returns the promoted ProvenanceWidget (named "provenanceWidget" in .ui). | |
| void | setProvenanceEnabled (bool enabled) |
| Enable or disable the Provenance tab. | |
| void | populateProvenance (int version, const std::string &modified_by, const std::string &performed_by, std::chrono::system_clock::time_point recorded_at, const std::string &change_reason_code, const std::string &change_commentary) |
| Populate the embedded ProvenanceWidget with entity data. | |
| void | clearProvenance () |
| Clear all fields in the embedded ProvenanceWidget. | |
| std::optional< change_reason_selection > | promptChangeReason (ChangeReasonDialog::OperationType opType, bool isDirty, std::string_view category="system") |
| Show the change reason dialog and return the user's selection. | |
Static Protected Member Functions | |
| template<typename T > | |
| static std::optional< T > | nulloptIfZero (T v) |
| Return std::optional(v) when v is non-zero, std::nullopt otherwise. | |
Base class for all detail dialogs.
Provides common functionality for detail dialogs including:
Every derived dialog exposes its QTabWidget and provenance tab via three pure-virtual one-liners, then calls the shared helpers from its setCreateMode() and updateUiFrom*() implementations:
After a successful save operation, dialogs should:
|
virtual |
Returns true if the dialog has unsaved changes. Subclasses override.
Reimplemented in AccountDetailDialog, AppDetailDialog, AppVersionDetailDialog, BadgeDefinitionDetailDialog, BadgeSeverityDetailDialog, BatchDetailDialog, BondInstrumentDetailDialog, BookDetailDialog, BookStatusDetailDialog, BusinessCentreDetailDialog, BusinessDayConventionTypeDetailDialog, BusinessUnitDetailDialog, BusinessUnitTypeDetailDialog, ChangeReasonCategoryDetailDialog, ChangeReasonDetailDialog, CodeDomainDetailDialog, CommodityInstrumentDetailDialog, ConcurrencyPolicyDetailDialog, ContactTypeDetailDialog, CreditInstrumentDetailDialog, CurrencyMarketTierDetailDialog, DatasetBundleDetailDialog, DayCountFractionTypeDetailDialog, EntityDetailDialog, EquityInstrumentDetailDialog, FloatingIndexTypeDetailDialog, FxInstrumentDetailDialog, InstrumentDetailDialog, JobDefinitionDetailDialog, LegTypeDetailDialog, MonetaryNatureDetailDialog, OriginDimensionDetailDialog, PartyIdSchemeDetailDialog, PartyStatusDetailDialog, PartyTypeDetailDialog, PaymentFrequencyTypeDetailDialog, PortfolioDetailDialog, PurposeTypeDetailDialog, ReportDefinitionDetailDialog, ReportInstanceDetailDialog, ReportTypeDetailDialog, RoundingTypeDetailDialog, SystemSettingDetailDialog, TenantDetailDialog, TenantTypeDetailDialog, TradeDetailDialog, and WorkunitDetailDialog.

| bool isCloseConfirmed | ( | ) | const |
Returns true if the user has already confirmed closing this dialog.
Set by onCloseClicked() after the user acknowledges unsaved changes. Used by DetachableMdiSubWindow::closeEvent() to avoid showing a second confirmation when the close was initiated via the dialog's Close button.
| void setChangeReasonCache | ( | ChangeReasonCache * | cache | ) |
Inject the shared change reason cache.
Controllers call this immediately after constructing any detail dialog. Once set, derived classes can call promptChangeReason() without passing the cache explicitly.
|
signal |
Emitted when the dialog wants to close its container window.
Controllers should connect this signal to the container window's close() slot to enable decoupled window management.

|
signal |
Emitted to show a status message in the status bar.
Controllers should connect this signal to the main window's status bar.

|
protectedslot |
Called when the Close button is clicked.
Warns the user if there are unsaved changes, then calls requestClose().
|
protectedpure virtual |
Returns the dialog's QTabWidget (named "tabWidget" in .ui).
Implemented in AccountDetailDialog, AppDetailDialog, AppVersionDetailDialog, BadgeDefinitionDetailDialog, BadgeSeverityDetailDialog, BatchDetailDialog, BondInstrumentDetailDialog, BookDetailDialog, BookStatusDetailDialog, BusinessCentreDetailDialog, BusinessDayConventionTypeDetailDialog, BusinessUnitDetailDialog, BusinessUnitTypeDetailDialog, CatalogDetailDialog, ChangeReasonCategoryDetailDialog, ChangeReasonDetailDialog, CodeDomainDetailDialog, CommodityInstrumentDetailDialog, ConcurrencyPolicyDetailDialog, ContactTypeDetailDialog, CreditInstrumentDetailDialog, CurrencyMarketTierDetailDialog, DatasetBundleDetailDialog, DayCountFractionTypeDetailDialog, EntityDetailDialog, EquityInstrumentDetailDialog, FloatingIndexTypeDetailDialog, FxInstrumentDetailDialog, InstrumentDetailDialog, JobDefinitionDetailDialog, LegTypeDetailDialog, MonetaryNatureDetailDialog, OriginDimensionDetailDialog, PartyIdSchemeDetailDialog, PartyStatusDetailDialog, PartyTypeDetailDialog, PaymentFrequencyTypeDetailDialog, PortfolioDetailDialog, PurposeTypeDetailDialog, ReportDefinitionDetailDialog, ReportInstanceDetailDialog, ReportTypeDetailDialog, RoleDetailDialog, RoundingTypeDetailDialog, SystemSettingDetailDialog, TenantDetailDialog, TenantTypeDetailDialog, TradeDetailDialog, and WorkunitDetailDialog.

|
protectedpure virtual |
Returns the Provenance tab widget (named "provenanceTab" in .ui).
Implemented in AccountDetailDialog, AppDetailDialog, AppVersionDetailDialog, BadgeDefinitionDetailDialog, BadgeSeverityDetailDialog, BatchDetailDialog, BondInstrumentDetailDialog, BookDetailDialog, BookStatusDetailDialog, BusinessCentreDetailDialog, BusinessDayConventionTypeDetailDialog, BusinessUnitDetailDialog, BusinessUnitTypeDetailDialog, CatalogDetailDialog, ChangeReasonCategoryDetailDialog, ChangeReasonDetailDialog, CodeDomainDetailDialog, CommodityInstrumentDetailDialog, ConcurrencyPolicyDetailDialog, ContactTypeDetailDialog, CreditInstrumentDetailDialog, CurrencyMarketTierDetailDialog, DatasetBundleDetailDialog, DayCountFractionTypeDetailDialog, EntityDetailDialog, EquityInstrumentDetailDialog, FloatingIndexTypeDetailDialog, FxInstrumentDetailDialog, InstrumentDetailDialog, JobDefinitionDetailDialog, LegTypeDetailDialog, MonetaryNatureDetailDialog, OriginDimensionDetailDialog, PartyIdSchemeDetailDialog, PartyStatusDetailDialog, PartyTypeDetailDialog, PaymentFrequencyTypeDetailDialog, PortfolioDetailDialog, PurposeTypeDetailDialog, ReportDefinitionDetailDialog, ReportInstanceDetailDialog, ReportTypeDetailDialog, RoleDetailDialog, RoundingTypeDetailDialog, SystemSettingDetailDialog, TenantDetailDialog, TenantTypeDetailDialog, TradeDetailDialog, and WorkunitDetailDialog.

|
protectedpure virtual |
Returns the promoted ProvenanceWidget (named "provenanceWidget" in .ui).
Implemented in AccountDetailDialog, AppDetailDialog, AppVersionDetailDialog, BadgeDefinitionDetailDialog, BadgeSeverityDetailDialog, BatchDetailDialog, BondInstrumentDetailDialog, BookDetailDialog, BookStatusDetailDialog, BusinessCentreDetailDialog, BusinessDayConventionTypeDetailDialog, BusinessUnitDetailDialog, BusinessUnitTypeDetailDialog, CatalogDetailDialog, ChangeReasonCategoryDetailDialog, ChangeReasonDetailDialog, CodeDomainDetailDialog, CommodityInstrumentDetailDialog, ConcurrencyPolicyDetailDialog, ContactTypeDetailDialog, CreditInstrumentDetailDialog, CurrencyMarketTierDetailDialog, DatasetBundleDetailDialog, DayCountFractionTypeDetailDialog, EntityDetailDialog, EquityInstrumentDetailDialog, FloatingIndexTypeDetailDialog, FxInstrumentDetailDialog, InstrumentDetailDialog, JobDefinitionDetailDialog, LegTypeDetailDialog, MonetaryNatureDetailDialog, OriginDimensionDetailDialog, PartyIdSchemeDetailDialog, PartyStatusDetailDialog, PartyTypeDetailDialog, PaymentFrequencyTypeDetailDialog, PortfolioDetailDialog, PurposeTypeDetailDialog, ReportDefinitionDetailDialog, ReportInstanceDetailDialog, ReportTypeDetailDialog, RoleDetailDialog, RoundingTypeDetailDialog, SystemSettingDetailDialog, TenantDetailDialog, TenantTypeDetailDialog, TradeDetailDialog, and WorkunitDetailDialog.

|
staticprotected |
Return std::optional(v) when v is non-zero, std::nullopt otherwise.
Use when reading a spin box value that maps to a nullable database column where zero means "not set".
|
protected |
Enable or disable the Provenance tab.
Call with false in create mode (no provenance data exists yet) and with true after loading an existing record.
|
protected |
Populate the embedded ProvenanceWidget with entity data.
| recorded_at | Pass a default-constructed time_point to leave the Recorded At field blank for entities that do not track this column. |
|
protected |
Show the change reason dialog and return the user's selection.
Handles all three operation types (Create, Amend, Delete) uniformly. Uses the cache injected via setChangeReasonCache(). Returns std::nullopt if the cache is not ready, no reasons are available, or the user cancels.
Usage in onSaveClicked():
| opType | Create, Amend, or Delete. |
| isDirty | Whether any fields have been modified (used by Amend to enable/disable the non-material-update reason). |
| category | Category code to filter reasons (default: "system" for Create; use "common" for Amend/Delete). |