ddt  1.0.0
ddtImageWidget.hpp
Go to the documentation of this file.
1 
20 #ifndef DDT_DATAVISUALISATION_DDTWIDGETS_IMAGEWIDGET_HPP
21 #define DDT_DATAVISUALISATION_DDTWIDGETS_IMAGEWIDGET_HPP
22 
23 #define BOOST_BIND_GLOBAL_PLACEHOLDERS
24 
25 #include <boost/bind.hpp>
26 #include <boost/property_tree/json_parser.hpp>
27 #include <boost/property_tree/ptree.hpp>
28 #include <boost/signals2/signal.hpp>
29 
30 // Subscriber Library
31 #include <QList>
32 #include <QtUiPlugin/QDesignerExportWidget>
33 #include <QtWidgets>
34 
40 
41 class DdtGraphicsView;
42 
46 typedef boost::signals2::signal<void(const std::string&)> signal_response;
47 
52 class QDESIGNER_WIDGET_EXPORT DdtImageWidget : public DdtWidget {
53  Q_OBJECT
54 
55  Q_PROPERTY(bool UseOpenGL READ get_use_open_gl WRITE set_use_open_gl)
56  Q_PROPERTY(
57  bool UseAntialiasing READ get_use_antialiasing WRITE set_use_antialiasing)
58  Q_PROPERTY(bool AutoScale READ get_auto_scale WRITE set_auto_scale)
59  Q_PROPERTY(QString DefaultScale READ get_default_scale_factor WRITE
60  set_default_scale_factor)
61  Q_PROPERTY(QString ScaleFactorList READ get_define_scale_factor WRITE
62  set_define_scale_factor)
63  Q_PROPERTY(QString DefaultColourmap READ get_default_colourmap WRITE
64  set_default_colourmap)
65  Q_PROPERTY(QString ListContextMenu READ get_list_context_menu WRITE
66  set_list_context_menu)
67  Q_PROPERTY(QString ListDialogsMenu READ get_list_dialogs_menu WRITE
68  set_list_dialogs_menu)
69  Q_PROPERTY(QString DefautBiasImage READ get_default_bias_image WRITE
70  set_default_bias_image)
71  Q_PROPERTY(
72  bool ShowScrollbars READ get_show_scrollbars WRITE set_show_scrollbars)
73 
74  public:
76  // Constructors / Destructors
77  //
78 
83  explicit DdtImageWidget(QWidget* parent = nullptr);
84 
88  virtual ~DdtImageWidget();
89 
93  DdtOverlayRendering* GetOverlayRendering();
94 
100  void ProcessRemoteCommand(const std::string& command_name,
101  const std::vector<std::string>& command_arguments);
102 
107  void InitializeDialogMap(const QMap<QString, DdtDialog*> insert_map);
108 
114  QString FetchDialogName(const QString dialog_id) const;
115 
120 
122  // Getters and Setters for properties
123  //
124 
129  bool get_use_open_gl() const;
130 
135  void set_use_open_gl(const bool open_gl);
136 
141  bool get_use_antialiasing() const;
142 
147  void set_use_antialiasing(const bool antialiasing);
148 
153  bool get_auto_scale() const;
154 
159  void set_auto_scale(const bool scale);
160 
167  void ReadScaleFactors();
168 
174  QList<QString> SortedScaleFactors(QMap<QString, float> scale_map);
175 
183  QString get_define_scale_factor() const;
184 
191  void set_define_scale_factor(const QString new_values);
192 
197  QString get_default_scale_factor() const;
198 
203  void set_default_scale_factor(const QString new_default_scale_factor);
204 
209  QString get_default_colourmap() const;
210 
215  void set_default_colourmap(const QString new_default_colourmap);
216 
221  void set_list_context_menu(const QString new_list_context_menu);
222 
227  QString get_list_context_menu() const;
228 
233  void set_list_dialogs_menu(const QString new_list_dialogs_menu);
234 
239  QString get_list_dialogs_menu() const;
240 
245  QString get_default_bias_image() const;
246 
251  void set_default_bias_image(const QString set_bias_image);
252 
257  bool get_show_scrollbars() const;
258 
263  void set_show_scrollbars(const bool set_show_scrollbars);
264 
266  // Graphical Elements
267  //
268 
273  DdtGraphicalElementProperties get_overlay_properties();
274 
280  DdtGraphicalOverlay* get_graphical_overlay();
281 
285  void RedrawOverlay();
286 
288  // Further getters and setters
289  //
290 
295  void set_logger(ddt::DdtLogger* const in_logger);
296 
298  // Utility functions
299  //
300 
307  float ParseFractionString(QString fraction_str);
308 
316  void ConvertCanvasToImage(const double x_canvas, const double y_canvas,
317  double* const x_image, double* const y_image) const;
318 
326  void ConvertImageToCanvas(const double x_image, const double y_image,
327  double* const x_canvas,
328  double* const y_canvas) const;
329 
331  // Event handling
332  //
333 
340  bool eventFilter(QObject* obj, QEvent* event);
341 
346  void HandleNewBoostDataEvent();
347 
351  void CutLevelChanged();
352 
356  void ReloadGraphicsItem();
357 
362  void UpdateThumbnailImages();
363 
367  void UpdateAllStatistics();
368 
373  void CloseAllDialogs();
374 
380  void MarkPositions();
381 
386  QString EndMarkPositions();
387 
392  void RegisterLastSegmentCallback(
393  std::function<void()> const& LastSegmentFunction);
394 
398  void SetOverlayImageFile(const QString overlay_file);
399 
403  void AddRenderingPlugins(DdtRenderingPlugin* const new_plugin);
404 
409  void SetActiveRenderingPlugin(const int rendering_plugin_id);
410 
414  void ActivateTimestampDisplay();
415 
416  protected:
418  // Logger
423 
425  // Graphics Library
426 
431 
436 
437  private:
439  // Private members
440  //
441 
442  // Data Stream access
443  QString current_stream_id;
444  QString last_stream_id;
445  boost::signals2::connection connection;
446  boost::signals2::connection connection_cutlevel;
447 
448  // Data file access
449  QString last_image_path;
450  QString last_selected_file;
451  int current_extension;
452  std::atomic<bool> overlay_file_loaded;
453 
454  // Image display
455  DdtGraphicsView* view;
456  QGraphicsScene* scene;
457  QGraphicsItem* current_image_item;
458 
459  ddt::ImageHandling* img_handling;
460 
461  int current_image_width;
462  int current_image_height;
463 
464  std::atomic<bool> image_cleared;
465 
466  // Pick mode
467  PickMode current_pick_mode;
468  bool show_pick_marker;
469  int current_pick_pixels_size;
470  int current_pick_object_no_samples;
471  int last_pick_x;
472  int last_pick_y;
473  std::atomic<bool> datastream_pick;
474  double datastream_picked_x;
475  double datastream_picked_y;
476 
477  // Tabular region
478  int current_tab_region_x_size;
479  int current_tab_region_y_size;
480 
481  // Pixel vs Colourmap
482  std::atomic<PvcmParameters> pvcm_param;
483 
484  // Flags
485  bool scrollbar_moved_externally;
486 
487  bool current_flip_state_vertical;
488  bool current_flip_state_horizontal;
489 
490  bool defaults_set;
491 
492  bool display_timestamp;
493 
494  // Rendering plugins
495  QList<DdtRenderingPlugin*> rendering_plugins;
496  int active_rendering_plugin_index;
497 
498  // Maps for access to dialogs
499  QMap<QString, DdtDialog*> dialog_map;
500  QMap<QString, bool> dialog_init_map;
501  QMap<QString, QString> dialogname_map;
502 
503  // Context menu
504  QStringList context_menu_entries;
505  QString static_overlay_entry;
506 
507  // Set of image points selected by user
508  QList<QPointF> point_list;
509  bool mark_position_mode;
510 
511  // Last segment callback
512  std::function<void()> last_segment_callback;
513 
514  // Constants
515  const int CLOCKWISE = 90;
516  const int ANTICLOCKWISE = -90;
517  const int NUM_ARGS_REMOTE_ATTACH = 2;
518 
519  protected:
521  // Protected members
522  //
523 
525  // Image Widget Properties
526  //
527 
533 
539 
545 
551 
558 
563 
568 
574 
579 
584 
589 
594 
599 
606  QMap<QString, float> scale_factor_pool;
607 
614  QMap<QString, float> scale_factor_favorites;
615 
623 
629 
635 
641 
643  // Configuration items
644  //
645 
651 
657 
659  // Image handling
660  //
661 
665  QTransform scaling_transform;
666 
670  QTransform rotation_transform;
671 
677  void resizeEvent(QResizeEvent* event);
678 
682  void RemoveAllItemsFromScene();
683 
687  void RemoveAllOverlayItemsFromScene();
688 
695  void GraphicsControlCheckTaggedItems(DdtGraphicalOverlay* overlay,
696  QString tag, bool flag);
697 
698  protected:
700  // Image statistics
701  //
702 
713  void CalculatePickStatistics(PickMode pick_mode, double x, double y,
714  double pixelvalue, QString ra, QString decl);
715 
722  void GetTabularRegion(const double x_image, const double y_image);
723 
724  private:
726  // Private Methods
727  //
728  void HandleImage();
729 
730  bool CheckMemAvailability(const QString filename,
731  const int extension_number) const;
732  bool CheckMemAvailabilityImageExtensions(const QString filename) const;
733  void GetDimensionInfo(const cpl_propertylist* const property_list,
734  int* const number_axis, int* const image_width,
735  int* const image_height, int* const byte_pix) const;
736  void ReadMemoryInfo(qint64* const mem_total, qint64* const mem_available,
737  qint64* const swap_free) const;
738 
739  bool LoadExtension(const QString filename, int& extension_number);
740 
741  void UpdatePick();
742  void StoreDataStreamPick();
743  double ConsiderFlipState(double angle) const;
744  bool CheckIfPickInactive() const;
745  void UpdatePVCMDialog();
746  void UpdatePVCMDialogMinMax();
747  void UpdatePVCMDialogAutoCuts();
748  void UpdatePVCMDialogCutValues();
749  void UpdatePVCMDialogPercent();
750 
751  // Remote commands
752  void RemoteAttach(const QStringList args);
753  void RemoteDetach();
754  void RemoteRotate(const QStringList args);
755  void RemoteFlip(const QStringList args);
756  void RemoteZoom(const QStringList args);
757  void RemoteScale(const QStringList args);
758  void RemotePointSelection();
759  void RemoteStatistics();
760  void RemoteTabularRegion();
761  void RemoteScaleRotateCut();
762  void RemoteSlit();
763  void RemotePick();
764  void RemoteLoad(const QStringList args);
765  void RemoteDistance();
766  void RemoteOverlay(const QStringList args);
767 
768  bool Xor(const bool state_a, const bool state_b) const;
769 
770  // Widget setup
771  void Initialize();
772  void CreateWidget();
773  void SetDefaultSettings();
774  void SetDefaultColourmapSettings();
775  void SetDefaultConfigurationmapSettings();
776  void SetDefaultBiasImageSettings();
777 
778  // Context Menu and Dialogs
779  void InitializeContextMenu();
780  void InitializeDialogNames();
781  QStringList AddDefaultContextMenuEntries() const;
782  void ExecuteDialog(const QString dialog_id);
783  QMenu* ComposeDialogsContextMenu(const QString menu_title);
784 
785  // File access
786  void BrowseForFile();
787  void BrowseForFileExt();
788  void SaveAsFile();
789  void ClearImage();
790  void StaticOverlay();
791 
792  // Colourmap handling
793  void UpdateColourmap();
794 
795  // FITS Header updates
796  void UpdateFitsHeaderDialog();
797 
798  // Metadata Sample updates
799  void UpdateMetadataSampleDialog();
800 
801  // Update image
802  void UpdateImage(const QImage* const image);
803 
804  // Update current plane
805  void UpdateCurrentPlane();
806 
807  // BIAS handling
808  void StoreCurrentImage(const int dest_slot);
809  void DisplaySelected(const QVariant parameter);
810  void LoadFromDisc(const QVariant parameter);
811 
812  // PVCM handling
813  void SendCutValuesAndHistogram();
814 
815  // Cut values handling
816  void HandleCutValuesParameter(const QString parameter_id,
817  const QVariant parameter,
818  const QString dialog_id);
819  // HDU handling
820  void CheckHDUs();
821 
822  // Binary Table handling
823  void CheckBinaryTable(const QString extension_name);
824  void FillTable(cpl_table* const table, const cpl_array* const column_names,
825  int* const ncol, int* const nrow,
826  const QString extension_name);
827  void FillSingleTable(cpl_table* const table, const char* const col_name,
828  QList<QVariant>& single_table,
829  QList<QVariant>& single_col_names, const int rows,
830  int* const num_vals, int* const cols) const;
831  void FillSingleTableString(cpl_table* const table, const char* const col_name,
832  QList<QVariant>& single_table,
833  const int rows) const;
834  void FillSingleTableInt(cpl_table* const table, const char* const col_name,
835  QList<QVariant>& singleTable, const int rows) const;
836  void FillSingleTableIntArr(cpl_table* const table, const char* const col_name,
837  QList<QVariant>& single_table, const int rows,
838  int* const num_vals) const;
839  void FillSingleTableFloat(cpl_table* const table, const char* const col_name,
840  QList<QVariant>& single_table,
841  const int rows) const;
842  void FillSingleTableFloatArr(cpl_table* const table,
843  const char* const col_name,
844  QList<QVariant>& single_table, const int rows,
845  int* const num_vals) const;
846  void FillSingleTableDouble(cpl_table* const table, const char* const col_name,
847  QList<QVariant>& single_table,
848  const int rows) const;
849  void FillSingleTableDoubleArr(cpl_table* const table,
850  const char* const col_name,
851  QList<QVariant>& single_table, const int rows,
852  int* const num_vals) const;
853 
854  void SetBinaryTableParameter(const int table_number, const int rows,
855  const int cols,
856  const QList<QVariant> single_table,
857  const QList<QVariant> single_col_names);
858 
859  void GetSingleTableDimensions(const cpl_table* const table,
860  const char* const col_name, const int rows,
861  int* const table_rows, int* const table_cols,
862  int* const dim_x) const;
863 
864  // Statistic handling
865  void AdjustMagnificationWidgets(const double x, const double y);
866 
867  // Get coordinates of visible rectangle
868  // The returned coordinates represent the lower left and upper right corners
869  // of the visible rectangle, converted into image coordinates
870  // coords[0] = lower left x coordinate
871  // coords[1] = lower left y coordinate
872  // coords[2] = upper right x coordinate
873  // coords[3] = upper right y coordinate
874  void GetVisibleRectCoordinates(QVector<double>& coords) const;
875 
876  protected:
878  // Protected Methods
879  //
880 
881  // Widget interface
882 
883  // Magnification widget
884 
892  void MagnifyImage(int x, int y, const bool pick_mode = false);
893 
901  void MagnifyImageWithFactor(const QString mag_factor_str,
902  const int mag_fact_index, const int x,
903  const int y);
904 
905  // Dialog interfaces
911  void SetInitialDialogParameters(DdtDialog* dialog, const QString dialog_id);
917  void SetInitialDialogParametersColourmapDialog(DdtDialog* dialog,
918  const QString dialog_id);
924  void SetInitialDialogParametersPickObjectDialog(DdtDialog* dialog,
925  const QString dialog_id);
926 
932  void SetInitialDialogParametersMagnificationDialog(DdtDialog* dialog,
933  const QString dialog_id);
939  void SetInitialDialogParametersFITSHeaderDialog(DdtDialog* dialog,
940  const QString dialog_id);
941 
947  void SetInitialDialogParametersMetadataSampleDialog(DdtDialog* dialog,
948  const QString dialog_id);
949 
955  void SetInitialDialogParametersHDUDialog(DdtDialog* dialog,
956  const QString dialog_id);
957 
963  void SetInitialDialogParametersTabularRegionDialog(DdtDialog* dialog,
964  const QString dialog_id);
965 
971  void SetInitialDialogParametersGraphicalDialog(DdtDialog* dialog,
972  const QString dialog_id);
978  void SetInitialDialogParametersGraphicsControl(DdtDialog* dialog,
979  const QString dialog_id);
980 
986  void SetInitialDialogParametersCutValuesDialog(DdtDialog* dialog,
987  const QString dialog_id);
988 
994  void SetInitialDialogParametersBiasDialog(DdtDialog* dialog,
995  const QString dialog_id);
996 
1002  void SetInitialDialogParametersScaleRotateCutValuesDialog(
1003  DdtDialog* dialog, const QString dialog_id);
1004 
1010  void SetInitialDialogParametersStatisticDialog(DdtDialog* dialog,
1011  const QString dialog_id);
1012 
1018  void SetInitialDialogParametersPVCMDialog(DdtDialog* dialog,
1019  const QString dialog_id);
1020 
1026  void SetInitialDialogParametersReferenceLineDialog(DdtDialog* dialog,
1027  const QString dialog_id);
1028 
1034  void SetInitialDialogParametersDataStreamDialog(DdtDialog* dialog,
1035  const QString dialog_id);
1036 
1042  void SetInitialDialogParametersDistanceDialog(DdtDialog* dialog,
1043  const QString dialog_id);
1044 
1050  void SetInitialDialogParametersBinaryTableDialog(DdtDialog* dialog,
1051  const QString dialog_id);
1052 
1058  void DialogParameterChangedColourmapDialog(const QString parameter_id,
1059  const QVariant parameter);
1066  void DialogParameterChangedPickObject(const QString parameter_id,
1067  const QVariant parameter);
1068 
1075  void DialogParameterChangedMagnification(const QString parameter_id,
1076  const QVariant parameter);
1077 
1084  void DialogParameterChangedTabularRegion(const QString parameter_id,
1085  const QVariant parameter);
1086 
1093  void DialogParameterChangedGraphicalElements(const QString parameter_id,
1094  const QVariant parameter);
1101  void DialogParameterChangedGraphicsControl(const QString parameter_id,
1102  const QVariant parameter);
1103 
1109  void DialogParameterChangedCutValues(const QString parameter_id,
1110  const QVariant parameter);
1111 
1118  void DialogParameterChangedScaleRotateCutValues(const QString parameter_id,
1119  const QVariant parameter);
1120 
1126  void DialogParameterChangedBias(const QString parameter_id,
1127  const QVariant parameter);
1128 
1134  void DialogParameterChangedStatistic(const QString parameter_id,
1135  const QVariant parameter);
1136 
1142  void DialogParameterChangedSlit(const QString parameter_id,
1143  const QVariant parameter);
1144 
1150  void DialogParameterChangedPVCM(const QString parameter_id,
1151  const QVariant parameter);
1152 
1159  void DialogParameterChangedReferenceLine(const QString parameter_id,
1160  const QVariant parameter);
1161 
1168  void DialogParameterChangedDataStream(const QString parameter_id,
1169  const QVariant parameter);
1170 
1177  void DialogParameterChangedHDU(const QString parameter_id,
1178  const QVariant parameter);
1179 
1185  void DialogParameterChangedDistance(const QString parameter_id,
1186  const QVariant parameter);
1187 
1188  public slots:
1190  // Public slots
1191  //
1192 
1196  void ChangeContrast(ddt::colorMap_t const& colourmap,
1197  ddt::colorMap_t const& colourmap_inverted,
1198  ddt::colorMapARGB_t const& colourmap_argb,
1199  ddt::colorMapARGB_t const& colourmap_argb_inverted);
1200 
1204  void RestoreColourmap();
1205 
1207  // Dialog interface
1208  //
1209 
1216  void DialogParameterChanged(const QString dialog_id,
1217  const QString parameter_id,
1218  const QVariant parameter);
1219 
1221  // Data Stream Widget interface
1222  //
1223 
1229  void AttachDataStream(const QString data_stream_id);
1230 
1235  void DetachDataStream(const QString data_stream_id);
1236 
1244  bool AttachDataFile(QString filename, const bool open_single = false);
1245 
1251  void AttachImageExtensionsAsOne(QString filename);
1252 
1258  void LastBrokerConnection(const QString data_stream_id);
1259 
1263  void CheckInvalidImageHDUs() const;
1264 
1269  void SetImageScale(const QString image_scale);
1270 
1275  void SetNoWaitNewData(const bool no_wait_flag);
1276 
1283  QString LoadOverlayFile(const QString startup_overlay_file,
1284  const bool remote = false);
1285 
1287  // Flip Rotate Widget interface
1288  //
1289 
1298  void FlipImage(bool vertical_axis, bool horizontal_axis);
1299 
1304  void RotateImage(int rotation_angle);
1305 
1307  // Panning Widget interface
1308  //
1309 
1317  void UpdatePosition(double scroll_fraction_x, double scroll_fraction_y);
1318 
1319  // Scale Buttons Widget interface
1324  void IncrementScale();
1325 
1330  void DecrementScale();
1331 
1336  void SetToDefaultScale();
1337 
1343  void SelectNewScale(QString next_scale);
1344 
1348  void ScaleFactorForNewImage();
1349 
1355  QString FindAutoScale();
1356 
1362  void IncrementLayer(const int inc);
1363 
1369  void DecrementLayer(const int dec);
1370 
1375  void JumpToLayer(const int num);
1376 
1377  // Graphical Elements Dialog
1378 
1387  void GraphicalElement(double x1, double y1, double x2, double y2,
1388  const QString draw_mode);
1389 
1400  void GraphicalTextElement(double x1, double y1, double x2, double y2,
1401  const QString draw_mode, QString text);
1402 
1403  // Statistics Dialog
1404 
1413  void StatisticRectangle(const double x1, const double y1, const double x2,
1414  const double y2);
1415 
1416  // Slit Dialog
1417 
1427  void SlitElement(const double target_x, const double target_y,
1428  const double slit_x, const double slit_y,
1429  const double x_offset, const double y_offset);
1430 
1431  // Reference Line Dialog
1432  void CalculateHistogramReferenceLine(QPointF p1, QPointF p2);
1433 
1434  // Distance Dialog
1435  void CalculateDistanceLine(QPointF p1, QPointF p2);
1436 
1438  // Magnification Widget interface
1439  //
1446  void SetMagnificationFactor(const QString magnification_factor);
1447 
1449  // Cursor Information Widget interface
1450  //
1451 
1459  void CursorPosition(double x, double y, bool mouse_clicked);
1460 
1462  // Cut Values Widget interface
1463  //
1464 
1470  void SetCutValues(const double low, const double high);
1471 
1475  void SetAutoCuts();
1476 
1480  void SetMinMaxCuts();
1481 
1483  // Internal slots
1484  //
1485 
1489  void DetachStream();
1490 
1494  void HandleNewDataEvent();
1495 
1501  void SetAutoScaleState(const bool new_auto_scale_state);
1502 
1503  private slots:
1505  // Private slots
1506  //
1507 
1508  // Loading rendering plugins
1509  void LoadRenderingPlugins();
1510 
1511  // Scrollbar handling
1512  void ScrollBarMoved(int pos);
1513  void ScrollBarRangeChanged(int min, int max);
1514 
1515  // Context menu related
1516  void DisplayContextMenu(const QPoint& pos);
1517  void ExecuteContextMenuCommand(const QString command);
1518 
1519  signals:
1520 
1522  // Signals
1523  //
1524 
1526  // Dialogs
1527  //
1528 
1535  void SetChangedDialogParameter(QString param_id, QVariant parameter);
1536 
1542 
1544  // Panning Widget interface
1545  //
1546 
1554  void UpdatedImage(const QImage* const image, const QTransform& transform,
1555  const double rotation);
1556 
1565  void ImageWidgetViewChanged(QRectF visible_image_rect,
1566  int current_image_width,
1567  int current_image_height);
1568 
1573 
1575  // Cursor Information Widget Interface
1576  //
1577 
1587  void CursorInfo(double x, double y, double pixelvalue, QString ra,
1588  QString decl);
1589 
1591  // Flip Rotate Widget Interface
1592  //
1598  void UpdateFlipStatus(bool vertical, bool horizontal);
1599 
1603  void Swap();
1604 
1606  // Magnification Widget interface
1607  //
1608 
1609  void MagnifiedImage(QImage magnified_image);
1611 
1613  // Cube Navigation Widget Interface
1614  //
1621  void CurrentLayer(const int current_layer, const int total_layers);
1622 
1624  // Cut Values Widget interface
1625  //
1626 
1632  void CurrentCutValues(double cutvalue_min, double cutvalue_max);
1633 
1635  // Colourmap Widget interface
1636  //
1637 
1642  void SetCurrentColourmap(QVector<QRgb> colourtable);
1643 
1651  void UpdateColourbarAxis(double min_value, double max_value,
1652  int scaling_function);
1653 
1658  void InvertColourmap(bool inverted);
1659 
1661  // Data Stream Widget
1662  //
1663 
1670  void CurrentConnectStatus(QString data_stream_id, ConnectionStatus status);
1671 
1673  // Image Widget interface - internal slots
1674  //
1675 
1680  void ContextMenuCommandSelected(QString menu_entry);
1681 
1686  void Reset();
1687 
1692 
1694  // Image Scale Widget interface
1695  //
1696 
1702  void ScaleFactorListChanged(QList<QString> scale_factor_list);
1703 
1709  void UpdateScaleFactor(QString new_scale_factor);
1710 
1717  void UpdateAutoScale(bool new_state);
1718 };
1719 
1720 #endif // DDT_DATAVISUALISATION_DDTWIDGETS_IMAGEWIDGET_HPP
1721 
Definition: ddtDialog.hpp:27
Definition: ddtGraphicalElementProperties.hpp:29
Definition: ddtGraphicalOverlay.hpp:30
Definition: ddtGraphicsView.hpp:80
Definition: ddtImageWidget.hpp:52
DdtOverlayRendering * overlay_rendering
Definition: ddtImageWidget.hpp:430
void CurrentConnectStatus(QString data_stream_id, ConnectionStatus status)
QString current_magnification_factor
Definition: ddtImageWidget.hpp:578
bool auto_scale
auto_scale Flag for the usage of automatic scaling of new images
Definition: ddtImageWidget.hpp:544
bool use_open_gl
use_open_gl Flag for the usage of OpenGl
Definition: ddtImageWidget.hpp:532
QTransform scaling_transform
Definition: ddtImageWidget.hpp:665
QString current_scale_factor
current_scale_factor The current used scale factor
Definition: ddtImageWidget.hpp:573
void ClearMagnifiedImage()
void UpdateFlipStatus(bool vertical, bool horizontal)
void CurrentCutValues(double cutvalue_min, double cutvalue_max)
QString default_bias_image
Definition: ddtImageWidget.hpp:562
QString default_scale_factor
default_scale_factor Value of the default scale factor
Definition: ddtImageWidget.hpp:550
DdtGraphicalElementProperties overlay_properties
Definition: ddtImageWidget.hpp:435
void UpdateAutoScale(bool new_state)
UpdateAutoScale this signal inform others about that the auto scale state changed.
QString configurationmap_directory
configurationmap_directory The configurationmap directory used
Definition: ddtImageWidget.hpp:656
void UpdatedImage(const QImage *const image, const QTransform &transform, const double rotation)
QString define_scale_factor
define_scale_factor This string is configured from outside over the designer. The scale factors are s...
Definition: ddtImageWidget.hpp:622
QString list_dialogs_menu
list_dialogs_menu List of context menu dialog items
Definition: ddtImageWidget.hpp:640
bool no_wait_new_data
no_wait_new_data flag Flag indicating that the content of the data stream is displayed without waitin...
Definition: ddtImageWidget.hpp:557
bool use_antialiasing
use_antialiasing Flag for the usage of antialiasing
Definition: ddtImageWidget.hpp:538
void UpdateScaleFactor(QString new_scale_factor)
UpdateScaleFactor this signal inform others about a new scale factor.
int last_magnify_y
Definition: ddtImageWidget.hpp:598
void ImageWidgetViewChanged(QRectF visible_image_rect, int current_image_width, int current_image_height)
QString current_dialog_magnification_factor
Definition: ddtImageWidget.hpp:588
void InvertColourmap(bool inverted)
void UpdateColourbarAxis(double min_value, double max_value, int scaling_function)
ddt::DdtLogger * logger
Definition: ddtImageWidget.hpp:422
int last_magnify_x
Definition: ddtImageWidget.hpp:593
void NewBoostDataEvent()
QString default_colourmap
default_colourmap The default colourmap
Definition: ddtImageWidget.hpp:628
void CursorInfo(double x, double y, double pixelvalue, QString ra, QString decl)
void CurrentLayer(const int current_layer, const int total_layers)
void DefaultDockWidgetsLayout()
void SetChangedDialogParameter(QString param_id, QVariant parameter)
QTransform rotation_transform
Definition: ddtImageWidget.hpp:670
QString colourmap_directory
colourmap_directory The colourmap directory used
Definition: ddtImageWidget.hpp:650
bool show_scrollbars
Definition: ddtImageWidget.hpp:567
void ScaleFactorListChanged(QList< QString > scale_factor_list)
ScaleFactorListChanged Signal to inform other about new scale values are set.
void MagnifiedImage(QImage magnified_image)
signal_response response_signal
Definition: ddtImageWidget.hpp:119
QString current_pick_object_magnification_factor
Definition: ddtImageWidget.hpp:583
QMap< QString, float > scale_factor_pool
scale_factor_pool Each possible scale factor is here stored with the string and float value.
Definition: ddtImageWidget.hpp:606
void GraphicalElementsDialogClosed()
void ContextMenuCommandSelected(QString menu_entry)
void SetCurrentColourmap(QVector< QRgb > colourtable)
QMap< QString, float > scale_factor_favorites
scale_factor_favorites All favorites scale factor are here stored with the string and float value.
Definition: ddtImageWidget.hpp:614
QString list_context_menu
list_context_menu List of context menu items
Definition: ddtImageWidget.hpp:634
Definition: ddtOverlayRendering.hpp:37
Definition: ddtRenderingPlugin.hpp:41
The DdtWidget class Use as wrapper class for new widgets.
Definition: ddtWidget.hpp:28
Definition: ddtLogger.hpp:51
Definition: imageHandling.hpp:54
Data Subscriber. This class provides the functionality for subscriber applications to register / unre...
Factory for DdtDataPublishers and DdtDataSubscribers. This class provides factory methods for creatin...
DDT Utils. Definitions for the data visualisation. Utilities for the DDT Datavisualisation.
PickMode
Definition: ddtDatavisualisationDefines.hpp:25
ConnectionStatus
Definition: ddtDatavisualisationDefines.hpp:93
DDT Widgets. Class for the Graphics View which is used by the DDT Image Widget. The view is used by t...
boost::signals2::signal< void(const std::string &)> signal_response
Definition: ddtImageWidget.hpp:41
DDT Widgets. Base class for the DDT widgets. Base class for the DDT widgets.
std::array< std::array< float, COLOR_MAP_ENTRY_SIZE >, MAX_COLOR_MAP_ENTRIES > colorMap_t
Definition: imageColor.hpp:57
std::array< unsigned int, MAX_COLOR_MAP_ENTRIES > colorMapARGB_t
Definition: imageColor.hpp:67
string p1
Definition: testCommandLineParser.cpp:358
string p2
Definition: testCommandLineParser.cpp:359