diff --git a/modules/gui/src/data_viewer/data_viewer.cc b/modules/gui/src/data_viewer/data_viewer.cc index 59ed688925f217b50790b7006c2a3bc21697b5b6..855e20db8a5884ba5ca7186b5194b5ce174410d5 100644 --- a/modules/gui/src/data_viewer/data_viewer.cc +++ b/modules/gui/src/data_viewer/data_viewer.cc @@ -57,23 +57,6 @@ namespace ost { namespace img { namespace gui { -/*class GraphicsProxyWidget: public QGraphicsProxyWidget{ -public: - GraphicsProxyWidget(QGraphicsItem* parent,Qt::WindowFlags flags): - QGraphicsProxyWidget(parent,flags) - {} - virtual void paint( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget){ - //painter->setWorldMatrixEnabled (false); - //translate(20,10); - painter->setTransform(QTransform(),false); - QGraphicsProxyWidget::paint(painter,option,widget); - } - virtual void paintWindowFrame( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget){ - //painter->setWorldMatrixEnabled (false); - painter->setTransform(QTransform(),false); - QGraphicsProxyWidget::paintWindowFrame(painter,option,widget); - } -};*/ namespace { int ipow(int base, unsigned int exponent){ @@ -104,6 +87,11 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name): panel_->AddWidget(info_); panel_->AddWidget(argand_); //scene_->setSceneRect(image->boundingRect()); + connect(image,SIGNAL(MousePositionReal(const QPointF&,Real)),info_,SLOT(SetMousePoint(const QPointF&,Real))); + connect(image,SIGNAL(MousePositionComplex(const QPointF&,Complex)),info_,SLOT(SetMousePoint(const QPointF&,Complex))); + connect(image,SIGNAL(MousePositionReal(const QPointF&,Real)),fft_,SLOT(SetPosition(const QPointF&))); + connect(image,SIGNAL(MousePositionComplex(const QPointF&,Complex)),fft_,SLOT(SetPosition(const QPointF&))); + OnSlabChange(image->GetSlab()); connect(ov_manager_gui_,SIGNAL(SettingsChanged()),this,SLOT(UpdateView())); setAnimated(false); QSplitter* splitter=new QSplitter(this); @@ -127,10 +115,8 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name): connect(panel_,SIGNAL(zoomed(Real)),SLOT(OnZoomChange(Real))); connect(image,SIGNAL(selected(const Extent&, const Data&)),argand_,SLOT(SetExtent(const Extent&, const Data&))); connect(image,SIGNAL(deselected()),argand_,SLOT(ClearExtent())); - /*connect(panel_,SIGNAL(slabChanged(int)),SLOT(OnSlabChange(int))); - connect(panel_,SIGNAL(selected(const Extent&)),info_,SLOT(SetSelection(const Extent&))); - connect(panel_,SIGNAL(deselected()),info_,SLOT(ClearSelection())); - connect(panel_,SIGNAL(released()),this,SLOT(close()));*/ + connect(image,SIGNAL(SlabChanged(int)),SLOT(OnSlabChange(int))); +// connect(panel_,SIGNAL(released()),this,SLOT(close())); show(); } diff --git a/modules/gui/src/data_viewer/fft_panel.cc b/modules/gui/src/data_viewer/fft_panel.cc index 6b14752a05242e5efe461f7cd01e4d784721d9fd..ce463bb50dbc6d73b3562dacf1914952de46b54f 100644 --- a/modules/gui/src/data_viewer/fft_panel.cc +++ b/modules/gui/src/data_viewer/fft_panel.cc @@ -59,9 +59,9 @@ void FFTPanel::ObserverUpdate() -void FFTPanel::SetPosition(const Point& p) +void FFTPanel::SetPosition(const QPointF& p) { - parent_position_=p; + parent_position_=Point(p.x(),p.y()); update_fft(); } diff --git a/modules/gui/src/data_viewer/fft_panel.hh b/modules/gui/src/data_viewer/fft_panel.hh index e1020caa6cc61ee17c9dc0a622c2837391af300b..f059e9e2f61fb337848cb57c8de609643497575f 100644 --- a/modules/gui/src/data_viewer/fft_panel.hh +++ b/modules/gui/src/data_viewer/fft_panel.hh @@ -41,7 +41,7 @@ public: virtual void ObserverUpdate(); public slots: - void SetPosition(const Point& p); + void SetPosition(const QPointF& p); void ShowSizeDialog(); protected: diff --git a/modules/gui/src/data_viewer/graphics_image_item.cc b/modules/gui/src/data_viewer/graphics_image_item.cc index e35f96f3e9d07520d370d6e2c196f702ee2afe30..66b5a53d057e974abda3b440fa659fb6ef0a48e2 100644 --- a/modules/gui/src/data_viewer/graphics_image_item.cc +++ b/modules/gui/src/data_viewer/graphics_image_item.cc @@ -438,7 +438,7 @@ void GraphicsImageItem::MoveSlab(int n) { slab_=std::min<int>(std::max<int>(slab_+n,GetObservedData().GetExtent().GetStart()[2]),GetObservedData().GetExtent().GetEnd()[2]); update(); - emit slabChanged(slab_); + emit SlabChanged(GetSlab()); } ViewerNormalizerPtr GraphicsImageItem::GetNormalizer() const @@ -454,7 +454,11 @@ int GraphicsImageItem::GetSlab() const void GraphicsImageItem::hoverMoveEvent(QGraphicsSceneHoverEvent * event) { QPointF pos=event->scenePos(); - emit MousePosition(pos,GetObservedData().GetComplex(Point(floor(pos.x()),floor(pos.y())))); + if(GetObservedData().GetType()==REAL){ + emit MousePositionReal(pos,GetObservedData().GetReal(Point(floor(pos.x()),floor(pos.y())))); + }else{ + emit MousePositionComplex(pos,GetObservedData().GetComplex(Point(floor(pos.x()),floor(pos.y())))); + } } void GraphicsImageItem::focusOutEvent(QFocusEvent* event) diff --git a/modules/gui/src/data_viewer/graphics_image_item.hh b/modules/gui/src/data_viewer/graphics_image_item.hh index 644571d1414ff06023e4dfab9cf1fc8c44fca1de..5bee682335b1281599875539f0fc41014b040f7c 100644 --- a/modules/gui/src/data_viewer/graphics_image_item.hh +++ b/modules/gui/src/data_viewer/graphics_image_item.hh @@ -109,10 +109,12 @@ public: virtual void ObserverRelease(); signals: - void MousePosition(const QPointF& pos, Complex value); + void MousePositionComplex(const QPointF& pos, Complex value); + void MousePositionReal(const QPointF& pos, Real value); void selected(const Extent& selection,const Data& data); void deselected(); void slabChanged(int slab); + void SlabChanged(int slab); protected: virtual void hoverMoveEvent(QGraphicsSceneHoverEvent* event); virtual void focusOutEvent(QFocusEvent* event); diff --git a/modules/gui/src/data_viewer/info_panel.cc b/modules/gui/src/data_viewer/info_panel.cc index 2e2e30f0f1ec8369da664055da7b0b01456b5f4a..2b0aedb300c9861fa5e0b6f9a5d340c8a9145972 100644 --- a/modules/gui/src/data_viewer/info_panel.cc +++ b/modules/gui/src/data_viewer/info_panel.cc @@ -147,9 +147,9 @@ void InfoPanel::SetSelection(const Extent& e) update(); } -void InfoPanel::SetMousePoint(const geom::Vec2& point, Real val) +void InfoPanel::SetMousePoint(const QPointF& point, Real val) { - UpdateMouseAndDistances(point); + UpdateMouseAndDistances(Vec2(point.x(),point.y())); std::ostringstream str; str << boost::format("Pixel Value: %8.2e") % val; mouse_val_->setText(QString::fromStdString(str.str())); diff --git a/modules/gui/src/data_viewer/info_panel.hh b/modules/gui/src/data_viewer/info_panel.hh index a56d9820dda68a0e599dbe8cd492116500f9b3bb..8a9a5b438091111a24037ee60644bcf589478141 100644 --- a/modules/gui/src/data_viewer/info_panel.hh +++ b/modules/gui/src/data_viewer/info_panel.hh @@ -50,7 +50,6 @@ class InfoPanel: public QWidget public: InfoPanel(QWidget* parent=0); void SetImageInfo(const ConstData& data); - void SetMousePoint(const geom::Vec2& point, Real val); void SetClickPoint(const geom::Vec2& point, Real val); void SetClickPoint(const geom::Vec2& point, Complex val); void ClearClickPosition(); @@ -58,6 +57,7 @@ public: public slots: void SetSelection(const Extent& e); void ClearSelection(); + void SetMousePoint(const QPointF& point, Real val); void SetMousePoint(const QPointF& point, Complex val); private: void UpdateMouseAndDistances(const geom::Vec2& point); diff --git a/modules/gui/src/data_viewer/viewer_panel.cc b/modules/gui/src/data_viewer/viewer_panel.cc index d62eff5f345b4ae7cdf1b2df86cd70d4abdda692..341f8029f0c47d2fca577b8622bea3107464e764 100644 --- a/modules/gui/src/data_viewer/viewer_panel.cc +++ b/modules/gui/src/data_viewer/viewer_panel.cc @@ -167,4 +167,5 @@ void ViewerPanel::mouseMoveEvent(QMouseEvent* event) last_mouse_=event->pos(); } + }}} //ns