41 inline static std::string_view logger_name =
42 "ores.qt.client_market_series_model";
44 [[nodiscard]]
static auto& lg() {
46 static auto instance = make_logger(logger_name);
64 inline static const QSize kDefaultWindowSize = {1100, 600};
65 static constexpr std::string_view kSettingsGroup =
"MarketSeriesListWindow";
68 QObject* parent =
nullptr);
71 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
72 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
73 QVariant data(
const QModelIndex& index,
int role = Qt::DisplayRole)
const override;
74 QVariant headerData(
int section, Qt::Orientation orientation,
75 int role = Qt::DisplayRole)
const override;
77 void refresh(
bool replace =
true);
78 void load_page(std::uint32_t offset, std::uint32_t limit);
79 void set_series_type_filter(
const std::string& series_type);
82 std::uint32_t total_available_count()
const {
return total_available_count_; }
83 std::uint32_t page_size()
const {
return page_size_; }
84 void set_page_size(std::uint32_t size);
92 std::vector<marketdata::domain::market_series> entries;
93 std::uint32_t total_available_count;
94 QString error_message;
95 QString error_details;
98 void fetch_data(std::uint32_t offset, std::uint32_t limit);
101 std::vector<marketdata::domain::market_series> entries_;
102 QFutureWatcher<FetchResult>* watcher_;
103 std::string series_type_filter_;
104 std::uint32_t page_size_{500};
105 std::uint32_t total_available_count_{0};
106 bool is_fetching_{
false};