|
ORE Studio 0.0.4
|
Model for displaying currencies fetched from the server via client. More...
#include <ClientCurrencyModel.hpp>


Public Types | |
| enum | Column { IsoCode , CurrencyName , NumericCode , Symbol , FractionSymbol , FractionsPerUnit , RoundingType , RoundingPrecision , Format , MonetaryNature , MarketTier , Version , ModifiedBy , RecordedAt , ColumnCount } |
| Enumeration of table columns for type-safe column access. More... | |
Public Member Functions | |
| ClientCurrencyModel (ClientManager *clientManager, ImageCache *imageCache, QObject *parent=nullptr) | |
| int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
| int | columnCount (const QModelIndex &parent=QModelIndex()) const override |
| QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const override |
| QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override |
| void | refresh (bool replace=true) |
| Refresh currency data from server asynchronously. | |
| void | load_page (std::uint32_t offset, std::uint32_t limit) |
| Load a specific page of currency data. | |
| const refdata::domain::currency * | getCurrency (int row) const |
| Get currency at the specified row. | |
| std::vector< refdata::domain::currency > | getCurrencies () const |
| Get all currencies. | |
| std::uint32_t | page_size () const |
| Get the page size used for pagination. | |
| void | set_page_size (std::uint32_t size) |
| Set the page size for pagination. | |
| std::uint32_t | total_available_count () const |
| Get the total number of records available on the server. | |
| void | add_synthetic_currencies (std::vector< refdata::domain::currency > currencies) |
| Add synthetic (generated) currencies to the model. | |
| bool | is_synthetic (const std::string &iso_code) const |
| Check if a currency is synthetic (generated but not saved). | |
| void | mark_as_saved (const std::string &iso_code) |
| Mark a synthetic currency as saved (no longer synthetic). | |
| void | clear_synthetic_markers () |
| Clear all synthetic currency markers. | |
Static Public Member Functions | |
| static std::vector< column_style > const & | columnStyles () |
| Returns a static vector of column styles (built once per process). | |
| static QVector< int > | defaultHiddenColumns () |
| Returns a static QVector of hidden column indices (built once per process). | |
Static Public Attributes | |
| static constexpr std::size_t | kColumnCount = std::size_t(ColumnCount) |
| Column metadata: header text, style, visibility, and width. | |
| static constexpr std::array< ColumnMetadata, kColumnCount > | kColumns |
| static const QSize | kDefaultWindowSize = {1000, 600} |
| Default window size for the currency list window. | |
| static constexpr std::string_view | kSettingsGroup = "CurrencyListWindow" |
| Settings group name for persisting window and column state. | |
Additional Inherited Members | |
Signals inherited from AbstractClientModel | |
| void | dataLoaded () |
| void | loadError (const QString &error_message, const QString &details={}) |
Model for displaying currencies fetched from the server via client.
This model extends QAbstractTableModel and fetches currency data asynchronously using the ores.comms client instead of direct database access.
| enum Column |
Enumeration of table columns for type-safe column access.
Using an enum instead of magic numbers makes the code self-documenting and easier to refactor when columns are added, removed, or reordered.
| void refresh | ( | bool | replace = true | ) |
Refresh currency data from server asynchronously.
This method initiates an async request to fetch currencies. The model will emit dataChanged() when the fetch completes.
| void load_page | ( | std::uint32_t | offset, |
| std::uint32_t | limit | ||
| ) |
Load a specific page of currency data.
Used for pagination navigation. Replaces current data with the requested page.
| offset | Number of records to skip |
| limit | Number of records to fetch |
| const refdata::domain::currency * getCurrency | ( | int | row | ) | const |
Get currency at the specified row.
| row | The row index. |
| std::vector< refdata::domain::currency > getCurrencies | ( | ) | const |
Get all currencies.
| std::uint32_t page_size | ( | ) | const |
Get the page size used for pagination.
| void set_page_size | ( | std::uint32_t | size | ) |
Set the page size for pagination.
| size | The number of records to fetch per page (1-1000). |
| std::uint32_t total_available_count | ( | ) | const |
Get the total number of records available on the server.
| void add_synthetic_currencies | ( | std::vector< refdata::domain::currency > | currencies | ) |
Add synthetic (generated) currencies to the model.
These currencies are displayed with a distinct color to indicate they haven't been saved to the server yet.
| currencies | The generated currencies to add. |
| bool is_synthetic | ( | const std::string & | iso_code | ) | const |
Check if a currency is synthetic (generated but not saved).
| iso_code | The ISO code to check. |
| void mark_as_saved | ( | const std::string & | iso_code | ) |
Mark a synthetic currency as saved (no longer synthetic).
Called after a generated currency has been successfully saved to server.
| iso_code | The ISO code of the saved currency. |
| void clear_synthetic_markers | ( | ) |
Clear all synthetic currency markers.
Called when refreshing data from server.
|
staticconstexpr |
Column metadata: header text, style, visibility, and width.
Order must match the Column enum.