58 inline static std::string_view logger_name =
59 "ores.qt.telemetry_mdi_window";
61 [[nodiscard]]
static auto& lg() {
63 static auto instance = make_logger(logger_name);
69 const QString& username,
70 QWidget* parent =
nullptr);
75 QSize sizeHint()
const override;
78 void statusChanged(
const QString& message);
79 void errorOccurred(
const QString& error_message);
83 void reloadSessions();
85 void clearStaleIndicator();
88 void onSessionsLoaded();
89 void onSessionSelected(QTreeWidgetItem* item,
int column);
90 void onLogSelected(
const QModelIndex& current,
const QModelIndex& previous);
92 void onLoadError(
const QString& error_message,
const QString& details = {});
93 void onConnectionStateChanged();
98 void setupLevelFilters();
99 void setupSessionTree();
100 void setupLogTable();
101 void setupDetailPanels();
102 void setupReloadAction();
103 void startPulseAnimation();
104 void stopPulseAnimation();
106 void populateSessionTree(
const std::vector<iam::domain::session>& sessions);
109 void clearDetailPanels();
110 void applyLevelFilter();
111 void updateFilterButtonStyle(QPushButton* btn,
bool enabled,
const QColor& color);
114 void closeEvent(QCloseEvent* event)
override;
118 QSplitter* mainSplitter_;
120 QWidget* rightPanel_;
123 QSplitter* leftSplitter_;
124 QTreeWidget* sessionTree_;
125 QGroupBox* sessionDetailsGroup_;
126 QTableWidget* sessionDetailsTable_;
129 QVBoxLayout* rightLayout_;
131 QTableView* logTableView_;
135 QGroupBox* logDetailGroup_;
136 QTextEdit* logMessageEdit_;
139 QPushButton* filterTraceBtn_;
140 QPushButton* filterDebugBtn_;
141 QPushButton* filterInfoBtn_;
142 QPushButton* filterWarnBtn_;
143 QPushButton* filterErrorBtn_;
146 QAction* reloadAction_;
147 QIcon normalReloadIcon_;
148 QIcon staleReloadIcon_;
150 bool pulseState_{
false};
154 std::unique_ptr<ClientTelemetryLogModel> logModel_;
155 QSortFilterProxyModel* proxyModel_;
158 bool isStale_{
false};
161 std::unordered_map<std::string, iam::domain::session> sessionCache_;
162 std::optional<boost::uuids::uuid> selectedSessionId_;
165 bool showTrace_{
true};
166 bool showDebug_{
true};
167 bool showInfo_{
true};
168 bool showWarn_{
true};
169 bool showError_{
true};