51 inline static std::string_view logger_name =
52 "ores.qt.queue_detail_dialog";
54 [[nodiscard]]
static auto& lg() {
56 static auto instance = make_logger(logger_name);
62 const QString& displayName,
64 QWidget* parent =
nullptr);
67 QSize sizeHint()
const override {
return {750, 520}; }
70 void statusChanged(
const QString& message);
71 void errorOccurred(
const QString& error_message);
76 void onDeleteSelected();
78 void onGetMessagesDone();
81 enum class GetMode { Peek, Pop };
83 struct PublishResult {
85 QString error_message;
86 QString error_details;
90 std::uint64_t sequence{0};
92 std::string timestamp;
96 struct GetMessagesResult {
98 std::vector<MessageRow> messages;
99 GetMode mode{GetMode::Peek};
100 QString error_message;
101 QString error_details;
106 void setupPublishTab();
107 void setupMessagesTab();
108 void populateMessagesTable(
const std::vector<MessageRow>& messages);
109 void updateDeleteAction();
112 QString displayName_;
116 QAction* publishAction_;
117 QAction* getMessagesAction_;
118 QAction* deleteAction_;
119 QTabWidget* tabWidget_;
122 QWidget* publishTab_;
123 QLineEdit* subjectEdit_;
124 QPlainTextEdit* payloadEdit_;
127 QWidget* messagesTab_;
128 QComboBox* modeCombo_;
129 QSpinBox* startSeqSpinBox_;
130 QSpinBox* countSpinBox_;
131 QTableWidget* messagesTable_;
133 QFutureWatcher<PublishResult>* publishWatcher_;
134 QFutureWatcher<GetMessagesResult>* getWatcher_;