20#ifndef ORES_QT_CURRENCY_DETAIL_DIALOG_HPP
21#define ORES_QT_CURRENCY_DETAIL_DIALOG_HPP
27#include "ores.risk/domain/currency.hpp"
28#include "ores.qt/ClientManager.hpp"
29#include "ores.utility/log/make_logger.hpp"
34class CurrencyDetailDialog;
40class CurrencyDetailDialog final :
public QWidget {
44 inline static std::string_view logger_name =
45 "ores.qt.currency_detail_dialog";
47 [[nodiscard]]
static auto& lg() {
49 static auto instance = make_logger(logger_name);
54 explicit CurrencyDetailDialog(QWidget* parent =
nullptr);
55 ~CurrencyDetailDialog()
override;
57 void setClientManager(ClientManager* clientManager);
58 void setUsername(
const std::string& username);
66 void currencyUpdated(
const QString& iso_code);
67 void currencyCreated(
const QString& iso_code);
68 void currencyDeleted(
const QString& iso_code);
69 void statusMessage(
const QString& message);
70 void errorMessage(
const QString& message);
71 void isDirtyChanged(
bool isDirty);
75 void onResetClicked();
76 void onDeleteClicked();
77 void onFieldChanged();
80 void updateSaveResetButtonState();
83 std::unique_ptr<Ui::CurrencyDetailDialog> ui_;
86 std::string username_;
89 QAction* deleteAction_;
91 ClientManager* clientManager_;
93 static constexpr const char* max_timestamp =
"9999-12-31 23:59:59";
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:35
Implements logging for ORE Studio.
Definition lifecycle_manager.hpp:30
Represents a currency with its metadata and formatting rules.
Definition currency.hpp:30