diff --git a/modules/gui/pymod/export_data_viewer.cc b/modules/gui/pymod/export_data_viewer.cc index 993f272a8bbf28417568c1118e1b847acb040665..1a3ada014c63e320b7448a0896238fa169a280b0 100644 --- a/modules/gui/pymod/export_data_viewer.cc +++ b/modules/gui/pymod/export_data_viewer.cc @@ -73,6 +73,7 @@ void export_data_viewer() .def("AddOverlay",&DataViewer::AddOverlay,o_AddOverlay()) .def("ClearOverlays",&DataViewer::ClearOverlays) .def("GetSelection",&DataViewer::GetSelection) + .def("SetSelection",&DataViewer::SetSelection) .def("UpdateView",&DataViewer::UpdateView) .def("Recenter",&DataViewer::Recenter) .def("AddDockWidget",add_dock1) diff --git a/modules/gui/src/data_viewer/data_viewer.cc b/modules/gui/src/data_viewer/data_viewer.cc index 14e15380a5c3dbc2e271b8dec3d99cdefb59bea1..a0d75b28f02c392663832d1e4b02d427326115e1 100644 --- a/modules/gui/src/data_viewer/data_viewer.cc +++ b/modules/gui/src/data_viewer/data_viewer.cc @@ -118,6 +118,12 @@ Extent DataViewer::GetSelection() const return panel_->GetSelection(); } +void DataViewer::SetSelection(const Extent& selection) +{ + assert(panel_); + panel_->SetSelection(selection); +} + void DataViewer::SetName(const String& name) { setWindowTitle(QString::fromStdString(name)); diff --git a/modules/gui/src/data_viewer/data_viewer.hh b/modules/gui/src/data_viewer/data_viewer.hh index 3fd08f9775ea06762342272e6ce41d5f40737856..6594b588cfb4a00b9710d8da4dcd618680b64d3b 100644 --- a/modules/gui/src/data_viewer/data_viewer.hh +++ b/modules/gui/src/data_viewer/data_viewer.hh @@ -80,6 +80,9 @@ public: //! return currently active selection Extent GetSelection() const; + //! set currently active selection + void SetSelection(const Extent& selection); + //! set the name, displayed as the window title void SetName(const String& name); diff --git a/modules/gui/src/data_viewer/data_viewer_panel_base.cc b/modules/gui/src/data_viewer/data_viewer_panel_base.cc index ec113e525419d81359650d68106d9a868ec9d7e6..9249bef7d2bf66487ef423ad37f50e9f4e506ae0 100644 --- a/modules/gui/src/data_viewer/data_viewer_panel_base.cc +++ b/modules/gui/src/data_viewer/data_viewer_panel_base.cc @@ -643,6 +643,18 @@ Extent DataViewerPanelBase::GetSelection() const return selection_; } +void DataViewerPanelBase::SetSelection(const Extent& selection) +{ + selection_=selection; + update_rubberband_from_selection_(); + if(selection==Extent()){ + rubberband_->hide(); + }else{ + rubberband_->show(); + } + UpdateView(false); +} + Real DataViewerPanelBase::GetZoomScale() const { return zoom_scale_; diff --git a/modules/gui/src/data_viewer/data_viewer_panel_base.hh b/modules/gui/src/data_viewer/data_viewer_panel_base.hh index 60999a9003355073ef1810d7067c0a7f635a0847..9e165925e8e516f9320ee85da51ca895eb1b806c 100644 --- a/modules/gui/src/data_viewer/data_viewer_panel_base.hh +++ b/modules/gui/src/data_viewer/data_viewer_panel_base.hh @@ -101,6 +101,9 @@ public: */ Extent GetSelection() const; + //! set currently active selection + void SetSelection(const Extent& extent); + //! convert window coordinates to image point Point WinToPoint(int mx, int my) const; Point WinToPoint(const QPoint& p) const;