20#ifndef ORES_QT_CURRENCY_HISTORY_DIALOG_HPP
21#define ORES_QT_CURRENCY_HISTORY_DIALOG_HPP
30#include "ores.qt/ClientManager.hpp"
31#include "ores.qt/ImageCache.hpp"
32#include "ores.refdata/domain/currency_version.hpp"
33#include "ores.refdata/domain/currency_version_history.hpp"
34#include "ores.logging/make_logger.hpp"
35#include "ui_CurrencyHistoryDialog.h"
38class CurrencyHistoryDialog;
50 inline static std::string_view logger_name =
51 "ores.qt.currency_history_dialog";
53 [[nodiscard]]
static auto& lg() {
55 static auto instance = make_logger(logger_name);
59 const QIcon& getHistoryIcon()
const;
64 QWidget* parent =
nullptr);
74 QSize sizeHint()
const override;
87 [[nodiscard]] QString
isoCode()
const {
return isoCode_; }
97 void statusChanged(
const QString& message);
98 void errorOccurred(
const QString& error_message);
114 void onVersionSelected(
int index);
115 void onHistoryLoaded();
116 void onHistoryLoadError(
const QString& error);
117 void onOpenClicked();
118 void onRevertClicked();
119 void onReloadClicked();
122 void displayChangesTab(
int version_index);
123 void displayFullDetailsTab(
int version_index);
130 using DiffResult = QVector<QPair<QString, QPair<QString, QString>>>;
131 DiffResult calculateDiff(
136 void updateButtonStates();
137 int selectedVersionIndex()
const;
139 std::unique_ptr<Ui::CurrencyHistoryDialog> ui_;
146 QAction* reloadAction_;
147 QAction* openAction_;
148 QAction* revertAction_;
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:35
Manages the lifecycle of the network client and IO context.
Definition ClientManager.hpp:90
Widget for displaying currency version history.
Definition CurrencyHistoryDialog.hpp:46
const refdata::domain::currency_version_history & getHistory() const
Returns the loaded history for version navigation.
Definition CurrencyHistoryDialog.hpp:92
QString isoCode() const
Returns the ISO code of the currency.
Definition CurrencyHistoryDialog.hpp:87
void markAsStale()
Mark the history data as stale and reload.
Definition CurrencyHistoryDialog.cpp:540
void setImageCache(ImageCache *imageCache)
Set the image cache for displaying currency flags.
Definition CurrencyHistoryDialog.cpp:551
void openVersionRequested(const refdata::domain::currency ¤cy, int versionNumber)
Emitted when user requests to open a version in read-only mode.
void revertVersionRequested(const refdata::domain::currency ¤cy)
Emitted when user requests to revert to a selected version.
Cache for dynamically loaded images (flags, icons) from the server.
Definition ImageCache.hpp:52
Represents a currency with its metadata and formatting rules.
Definition currency.hpp:33
Represents a specific version of a currency with metadata.
Definition currency_version.hpp:32
Contains the full version history for a currency.
Definition currency_version_history.hpp:32