41 inline static std::string_view logger_name =
42 "ores.qt.client_scripted_instrument_model";
44 [[nodiscard]]
static auto& lg() {
46 static auto instance = make_logger(logger_name);
63 QObject* parent =
nullptr);
66 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
67 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
68 QVariant data(
const QModelIndex& index,
69 int role = Qt::DisplayRole)
const override;
70 QVariant headerData(
int section, Qt::Orientation orientation,
71 int role = Qt::DisplayRole)
const override;
74 void load_page(std::uint32_t offset, std::uint32_t limit);
77 getScriptedInstrument(
int row)
const;
79 std::uint32_t page_size()
const {
return page_size_; }
80 void set_page_size(std::uint32_t size);
81 std::uint32_t total_available_count()
const {
return total_available_count_; }
85 void loadError(
const QString& error_message,
const QString& details = {});
88 void onScriptedInstrumentsLoaded();
89 void onPulseStateChanged(
bool isOn);
90 void onPulsingComplete();
93 QVariant recency_foreground_color(
const std::string& key)
const;
97 std::vector<trading::domain::scripted_instrument> instruments;
98 std::uint32_t total_available_count;
99 QString error_message;
100 QString error_details;
103 void fetch_scripted_instruments(std::uint32_t offset, std::uint32_t limit);
106 std::vector<trading::domain::scripted_instrument> instruments_;
107 QFutureWatcher<FetchResult>* watcher_;
108 std::uint32_t page_size_{100};
109 std::uint32_t total_available_count_{0};
110 bool is_fetching_{
false};