20#ifndef ORES_QT_REPORT_DEFINITION_MDI_WINDOW_HPP
21#define ORES_QT_REPORT_DEFINITION_MDI_WINDOW_HPP
26#include <QSortFilterProxyModel>
27#include <boost/uuid/uuid.hpp>
28#include "ores.qt/EntityListMdiWindow.hpp"
29#include "ores.qt/ClientManager.hpp"
30#include "ores.qt/ClientReportDefinitionModel.hpp"
31#include "ores.qt/PaginationWidget.hpp"
32#include "ores.logging/make_logger.hpp"
33#include "ores.reporting.api/domain/report_definition.hpp"
49 inline static std::string_view logger_name =
50 "ores.qt.report_definition_mdi_window";
52 [[nodiscard]]
static auto& lg() {
54 static auto instance = make_logger(logger_name);
61 const QString& username,
63 QWidget* parent =
nullptr);
67 void doReload()
override;
70 void statusChanged(
const QString& message);
71 void errorOccurred(
const QString& error_message);
73 void addNewRequested();
74 void definitionDeleted(
const QString& code);
76 void scheduleRequested(
const std::vector<boost::uuids::uuid>& ids);
77 void unscheduleRequested(
const std::vector<boost::uuids::uuid>& ids);
82 void deleteSelected();
83 void viewHistorySelected();
84 void scheduleSelected();
85 void unscheduleSelected();
89 void onLoadError(
const QString& error_message,
const QString& details = {});
90 void onSelectionChanged();
91 void onDoubleClicked(
const QModelIndex& index);
95 return tr(
"Refresh report definitions");
102 void setupConnections();
103 void updateActionStates();
110 QTableView* tableView_;
112 QSortFilterProxyModel* proxyModel_;
116 QAction* reloadAction_;
118 QAction* editAction_;
119 QAction* deleteAction_;
120 QAction* historyAction_;
121 QAction* scheduleAction_;
122 QAction* unscheduleAction_;
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:29
Client-side cache of badge definitions and mappings.
Definition BadgeCache.hpp:46
Manages the lifecycle of the NATS client and login state.
Definition ClientManager.hpp:109
Model for displaying report definitions fetched from the server.
Definition ClientReportDefinitionModel.hpp:43
Base class for entity list MDI windows providing stale indicator support.
Definition EntityListMdiWindow.hpp:62
Widget providing pagination controls for data tables.
Definition PaginationWidget.hpp:39
MDI window for displaying and managing report definitions.
Definition ReportDefinitionMdiWindow.hpp:45
QString normalRefreshTooltip() const override
Get the normal (non-stale) tooltip text for the refresh action.
Definition ReportDefinitionMdiWindow.hpp:94
Persistent template for a scheduled report.
Definition report_definition.hpp:44