ddt  0.1
ddtViewer.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file ddtViewer.hpp
8 // @brief Class for the DDT Standard Viewer
9 //
10 // This is the main class for the DDT Standard Viewer. The used widgets are all
11 // included into the viewer using Qt Designer.
12 //
13 // @author Carsten Mannel, CGI
14 // @since 2020/01/16
15 
16 #ifndef DDT_DATAVISUALISATION_DDTVIEWER_DDTVIEWER_H
17 #define DDT_DATAVISUALISATION_DDTVIEWER_DDTVIEWER_H
18 
19 #include <QMainWindow>
20 
22 #include "ddt/ddtLogger.hpp"
23 #include "ddt/ddtRemoteControl.hpp"
24 
28 
29 namespace Ui {
30 
31 class DdtViewerForm;
32 }
33 
38 class DdtViewer : public QMainWindow {
39  Q_OBJECT
40 
41  public:
45  explicit DdtViewer(QWidget* parent = nullptr);
46 
52  virtual ~DdtViewer();
53 
62  bool Init(int argc, char* argv[]);
63 
69  void LastSegment(void);
70 
71  protected:
76 
81 
82  private:
83  Ui::DdtViewerForm* ui;
84  QMap<QString, DdtDialog*> dialog_map;
85 
86  QString startup_filename;
87  QString startup_data_stream;
88  QString startup_server_uri;
89  QString startup_image_scale;
90  bool startup_no_wait_new_data;
91  bool startup_timestamp;
92 
93  bool debug_log_enabled;
94 
95  boost::signals2::connection connection;
96 
97  public slots:
102  void HandleArguments();
103 
104  private:
108  void ConnectWidgets();
109 
110  void ConnectWidgetDataStream();
111  void ConnectWidgetFlipRotate();
112  void ConnectWidgetPanning();
113  void ConnectWidgetMagnification();
114  void ConnectWidgetScaleButton();
115  void ConnectWidgetImageScale();
116  void ConnectWidgetCursorInfo();
117  void ConnectWidgetCutValues();
118  void ConnectWidgetColourmap();
119  void ConnectWidgetImageWidget();
120  void ConnectWidgetCubeNavigation();
121 
122  // Create instances of all supported dialogs
123  void CreateDialogs();
124 
125  const void RegisterMetaTypes();
126 
130  void ConnectRemoteControl();
131 
139  void ProcessRemoteCommand(const std::string& image_widget_name,
140  const std::string& command_name,
141  const std::vector<std::string>& command_arguments);
142 
143  protected:
149  void closeEvent(QCloseEvent* event) override;
150 
157  bool ParseCommandline(int argc, char* argv[]);
158 
159  signals:
164  void AttachDataFile(QString filename);
165 
170  void AttachDataStream(QString data_stream);
171 
175  void DetachStream();
176 
181  void SetDataStream(QString startup_data_stream);
182 
187  void SetImageScale(const QString startup_image_scale);
188 
193  void SetNoWaitNewData(const bool startup_no_wait_new_data);
194 };
195 
196 #endif // DDT_DATAVISUALISATION_DDTVIEWER_DDTVIEWER_H
DdtViewer::LastSegment
void LastSegment(void)
Definition: ddtViewer.cpp:385
commandLineParserBuilder.hpp
DdtViewer::ParseCommandline
bool ParseCommandline(int argc, char *argv[])
Definition: ddtViewer.cpp:418
DdtViewer::SetNoWaitNewData
void SetNoWaitNewData(const bool startup_no_wait_new_data)
DdtViewer
The DdtViewer class Main class of the DDT Standard Viewer.
Definition: ddtViewer.hpp:38
ddt::DdtLogger
Definition: ddtLogger.hpp:48
ddtDialogFactory.hpp
DdtViewer::remote_control
ddt::DdtRemoteControl * remote_control
Definition: ddtViewer.hpp:80
DdtViewer::Init
bool Init(int argc, char *argv[])
Definition: ddtViewer.cpp:31
DdtViewer::AttachDataStream
void AttachDataStream(QString data_stream)
ddt::DdtRemoteControl
Definition: ddtRemoteControl.hpp:51
DdtViewer::~DdtViewer
virtual ~DdtViewer()
Definition: ddtViewer.cpp:90
DdtViewer::SetDataStream
void SetDataStream(QString startup_data_stream)
ddtDialog.hpp
ddtRemoteControl.hpp
Ui
Definition: ddtTestViewer.hpp:28
DdtViewer::AttachDataFile
void AttachDataFile(QString filename)
ddtDialogIds.hpp
DdtViewer::SetImageScale
void SetImageScale(const QString startup_image_scale)
DdtViewer::HandleArguments
void HandleArguments()
HandleArguments Slot to handle commandline arguments after initialisation of the GUI.
Definition: ddtViewer.cpp:400
ddtLogger.hpp
DdtViewer::closeEvent
void closeEvent(QCloseEvent *event) override
closeEvent Close event which is triggered when the main window shell be closed.
Definition: ddtViewer.cpp:391
DdtViewer::logger
ddt::DdtLogger * logger
Definition: ddtViewer.hpp:75
DdtViewer::DetachStream
void DetachStream()
DdtViewer::DdtViewer
DdtViewer(QWidget *parent=nullptr)
Definition: ddtViewer.cpp:26