4#include <NDEVR/ReportIterator.h>
5#include <NDEVR/QTDesignObject.h>
6#include <NDEVR/Deployment.h>
7#include <NDEVR/ApplicationOptions.h>
11 class DeploymentReportUI;
15 class TopDownDeploymentChart;
16 class SideViewDeploymentChart;
20 class DeploymentReport;
26 enum class DeploymentReportType
35 class DeploymentReportOptions :
public QMenu
38 DeploymentReportOptions(DeploymentReportType type, QWidget* parent =
nullptr);
39 DeploymentReportType reportType()
const;
41 QCustomComboBox* m_type_combo;
46 class NDEVR_CHARTS_API DeploymentReportHandler :
public ReportHandler
49 DeploymentReportHandler();
52 virtual Buffer<UUID> defaultReportIDs(
const Buffer<UUID>& objects_to_report, QTModelManager* manager)
const override;
55 virtual bool canHandle(UUID
id, QTModelManager* manager)
const override;
58 virtual QWidget* getReport(
const UUID&
id, QTModelManager* manager,
const QRect& requested_geometry)
const override;
60 DeploymentReportType reportType()
const;
61 bool autoIncludePlanned()
const;
63 virtual void createReportJSON(
const UUID&
id, JSONNode& parent, ReportJSONMaker& maker)
const override;
64 virtual QMenu* popupOptions()
const override;
66 mutable DeploymentReportOptions* m_report_options;
67 mutable DeploymentReport* m_report =
nullptr;
68 static ApplicationOption<DeploymentReportType> s_report_type;
69 static ApplicationOption<bool> s_auto_include_planned;
75 class DeploymentReport :
public QWidget
80 DeploymentReport(QWidget* parent =
nullptr);
82 void setReportType(DeploymentReportType report_type);
83 void setAutoIncludePlanned(
bool include_planned);
84 void setDeployment(
const DynamicPointer<QTDesignObject>& deployment);
85 void setDeployments(
const Buffer<Deployment>& deployments);
86 void setStation(
const StationModel& station);
87 void setCalibration(
const Calibration& station);
88 void setProject(
const Project& project);
90 void clearCalibration();
91 void resizeEvent(QResizeEvent* event);
96 String m_station_name;
97 String m_deployment_name;
100 TopDownDeploymentChart* m_top_down_chart;
101 SideViewDeploymentChart* m_front_chart;
102 SideViewDeploymentChart* m_side_chart;
103 Ui::DeploymentReportUI* ui;
104 Vertex<3, fltp08> m_average_hole_bottom;
105 Vertex<3, fltp08> m_planned_hole_bottom;
106 Vertex<3, fltp08> m_collar_location;
109 DeploymentReportType m_report_type = DeploymentReportType::e_best_fit;
110 bool m_auto_include_planned =
false;
A Model which represents a user-project.
A compact way to present a list of options to the user.
Handles creating a report page from some given data.
The primary namespace for the NDEVR SDK.
double fltp08
Defines an alias representing an 8 byte floating-point number.