diff --git a/modules/gui/src/data_viewer/data_viewer.cc b/modules/gui/src/data_viewer/data_viewer.cc index 855e20db8a5884ba5ca7186b5194b5ce174410d5..eebc398b7d44765d4053801d57c8b614f41f2e9d 100644 --- a/modules/gui/src/data_viewer/data_viewer.cc +++ b/modules/gui/src/data_viewer/data_viewer.cc @@ -36,7 +36,6 @@ #include "data_viewer.hh" #include "data_viewer_panel.hh" -#include <ost/gui/data_viewer/data_viewer_tool_widget_container.hh> #include "overlay_base.hh" #include "overlay_manager.hh" @@ -53,7 +52,6 @@ #include <ost/gui/data_viewer/viewer_graphics_scene.hh> #include "argand.hh" #include "info_panel.hh" -#include "fft_panel.hh" namespace ost { namespace img { namespace gui { @@ -70,13 +68,11 @@ int ipow(int base, unsigned int exponent){ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name): QMainWindow(p,0), - container_(new DataViewerToolWidgetContainer(this)), panel_(new ViewerPanel(this)), ov_manager_(new OverlayManager(this)), - ov_manager_gui_(new OverlayManagerGUI(this, ov_manager_)), + ov_manager_gui_(new OverlayManagerGUI(0, ov_manager_)), info_(new InfoPanel()), argand_(new Argand()), - fft_(new FFTPanel(data,this)), zoomlabel_(new QLabel("1:1")), slablabel_(new QLabel("0")), lastmouse_() @@ -85,30 +81,32 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name): GraphicsImageItem* image=panel_->AddImage(data); //connect(image,SIGNAL(MousePosition(const QPointF&,Complex)),info_,SLOT(SetMousePoint(const QPointF&,Complex))); panel_->AddWidget(info_); + panel_->AddWidget(ov_manager_gui_); 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&))); + //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); + setCentralWidget(panel_); +/* QSplitter* splitter=new QSplitter(this); setCentralWidget(splitter); splitter->addWidget(panel_); splitter->addWidget(container_); splitter->setCollapsible(0,false); splitter->setStretchFactor(0,1); splitter->setCollapsible(1,true); - splitter->setStretchFactor(1,0); + splitter->setStretchFactor(1,0);*/ statusBar()->addWidget(zoomlabel_); statusBar()->addWidget(slablabel_); - container_->AddChildWidget(ov_manager_gui_,"Overlays",true); + //container_->AddChildWidget(ov_manager_gui_,"Overlays",true); //container_->AddChildWidget(info_,"Info",true); //container_->AddChildWidget(argand_,"Argand",false); - container_->AddChildWidget(fft_,"Live FFT",false); + // container_->AddChildWidget(fft_,"Live FFT",false); info_->SetImageInfo(data); @@ -239,12 +237,12 @@ void DataViewer::SetAntialiasing(bool f) void DataViewer::AddDockWidget(QWidget* w, const QString& name, bool show) { - container_->AddChildWidget(w,name,show); + panel_->AddWidget(w); } void DataViewer::RemoveDockWidget(QWidget* w) { - container_->RemoveWidget(w); +// container_->RemoveWidget(w); } diff --git a/modules/gui/src/data_viewer/data_viewer.hh b/modules/gui/src/data_viewer/data_viewer.hh index cfa9c30e1ebdfd6e24e024e0212eb9cf43ff2b32..ad4800d9ae9e9c8f5e9713586e50b912d7381a7c 100644 --- a/modules/gui/src/data_viewer/data_viewer.hh +++ b/modules/gui/src/data_viewer/data_viewer.hh @@ -53,10 +53,8 @@ namespace img { namespace gui { //fw decl class DataViewerPanel; -class DataViewerToolWidgetContainer; class Argand; class InfoPanel; -class FFTPanel; //! Data viewer class DLLEXPORT_OST_GUI DataViewer: public QMainWindow @@ -128,7 +126,6 @@ public slots: DataViewer& operator=(const DataViewer& v) {return *this;} - DataViewerToolWidgetContainer* container_; ViewerPanel* panel_; OverlayManagerPtr ov_manager_; @@ -136,7 +133,6 @@ public slots: InfoPanel* info_; Argand* argand_; - FFTPanel* fft_; QLabel* zoomlabel_; QLabel* slablabel_; diff --git a/modules/gui/src/data_viewer/widget_layer_item.cc b/modules/gui/src/data_viewer/widget_layer_item.cc index 1389a13c76394eb0f216302acee0f893e516cfa1..f6bcaab9c49ee1f24b9d8a6dee8cd0a6ef69ab34 100644 --- a/modules/gui/src/data_viewer/widget_layer_item.cc +++ b/modules/gui/src/data_viewer/widget_layer_item.cc @@ -26,12 +26,15 @@ #include <QPainter> #include "widget_layer_item.hh" #include <QGraphicsProxyWidget> +#include <QGraphicsAnchorLayout> namespace ost { namespace img { namespace gui { WidgetLayerItem::WidgetLayerItem(QGraphicsItem* parent): - QGraphicsItem(parent) + QGraphicsWidget(parent) { + setLayout(new QGraphicsAnchorLayout); + dynamic_cast<QGraphicsAnchorLayout*>(layout())->setSpacing(25); } void WidgetLayerItem::paint( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) @@ -49,14 +52,28 @@ void WidgetLayerItem::AddWidget(QWidget* widget) proxy->setWidget(widget); proxy->setFlag(QGraphicsItem::ItemIsMovable); proxy->setOpacity(0.9); - proxy->setPos(30,30); +// proxy->setPos(30,30); + add_widget_to_layout(proxy); } void WidgetLayerItem::AddWidget(QGraphicsWidget* widget) { - widget->setParentItem(this); widget->setFlag(QGraphicsItem::ItemIsMovable); widget->setOpacity(0.9); - widget->setPos(30,30); + //widget->setPos(30,30); + add_widget_to_layout(widget); +} + + + +void WidgetLayerItem::add_widget_to_layout(QGraphicsWidget* widget) +{ + if(layout()->count()>=1){ + QGraphicsLayoutItem* last=layout()->itemAt(layout()->count()-1); + dynamic_cast<QGraphicsAnchorLayout*>(layout())->addCornerAnchors(last, Qt::BottomLeftCorner, widget, Qt::TopLeftCorner); + dynamic_cast<QGraphicsAnchorLayout*>(layout())->addCornerAnchors(last, Qt::BottomRightCorner, widget, Qt::TopRightCorner); + }else{ + dynamic_cast<QGraphicsAnchorLayout*>(layout())->addCornerAnchors(layout(), Qt::TopLeftCorner, widget, Qt::TopLeftCorner); + } } }}} //ns diff --git a/modules/gui/src/data_viewer/widget_layer_item.hh b/modules/gui/src/data_viewer/widget_layer_item.hh index c79aabc4d08c5be4dcc37d503f493f9fa409e8aa..215f3832cf4bec24b5b6b565ae39701a67a91565 100644 --- a/modules/gui/src/data_viewer/widget_layer_item.hh +++ b/modules/gui/src/data_viewer/widget_layer_item.hh @@ -25,10 +25,10 @@ #ifndef WIDGET_LAYER_ITEM_HH #define WIDGET_LAYER_ITEM_HH -#include <QGraphicsItem> +#include <QGraphicsWidget> namespace ost { namespace img { namespace gui { -class WidgetLayerItem : public QGraphicsItem +class WidgetLayerItem : public QGraphicsWidget { public: WidgetLayerItem(QGraphicsItem* parent=0); @@ -36,6 +36,8 @@ public: virtual QRectF boundingRect() const; virtual void AddWidget(QWidget* widget); virtual void AddWidget(QGraphicsWidget* widget); +protected: + void add_widget_to_layout(QGraphicsWidget* widget); }; }}} //ns