57 inline static std::string_view logger_name =
58 "ores.qt.service_dashboard_mdi_window";
60 [[nodiscard]]
static auto& lg() {
62 static auto instance = make_logger(logger_name);
69 QWidget* parent =
nullptr);
72 QSize sizeHint()
const override {
73 return savedWindowSize_.isValid() ? savedWindowSize_ : QSize{900, 600};
77 void closeEvent(QCloseEvent* event)
override;
83 void statusChanged(
const QString& message);
84 void errorOccurred(
const QString& error_message);
87 void onRefreshToggled(
bool checked);
88 void onRowSelected(
int row);
89 void onApplyReplicas();
91 void onRestartService();
97 void loadInstanceDetails(
const QString& serviceName);
102 QAction* refreshAction_;
103 QAction* autoRefreshAction_;
106 QTableWidget* table_;
109 QGroupBox* detailGroup_;
110 QLabel* detailServiceLabel_;
111 QSpinBox* replicasSpinBox_;
112 QPushButton* applyReplicasButton_;
113 QPushButton* stopButton_;
114 QPushButton* restartButton_;
115 QTableWidget* detailTable_;
117 QSplitter* splitter_;
118 QTimer* autoRefreshTimer_;
119 QSize savedWindowSize_;
121 std::string selectedServiceName_;
122 std::vector<controller::api::domain::service_definition> serviceDefinitions_;