From 39e4a22d9a7f9603494daa8611c9683ab07d8f40 Mon Sep 17 00:00:00 2001 From: Andreas Schenk <andreas_schenk@hms.harvard.edu> Date: Tue, 31 Jan 2012 16:55:40 -0500 Subject: [PATCH] added SetSelection to DataViewer --- modules/gui/pymod/export_data_viewer.cc | 1 + modules/gui/src/data_viewer/data_viewer.cc | 6 ++++++ modules/gui/src/data_viewer/data_viewer.hh | 3 +++ .../gui/src/data_viewer/data_viewer_panel_base.cc | 12 ++++++++++++ .../gui/src/data_viewer/data_viewer_panel_base.hh | 3 +++ 5 files changed, 25 insertions(+) diff --git a/modules/gui/pymod/export_data_viewer.cc b/modules/gui/pymod/export_data_viewer.cc index 993f272a8..1a3ada014 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 14e15380a..a0d75b28f 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 3fd08f977..6594b588c 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 ec113e525..9249bef7d 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 60999a900..9e165925e 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; -- GitLab