Skip to content
Snippets Groups Projects
Commit 1770d0bc authored by Andreas Schenk's avatar Andreas Schenk
Browse files

added layout for panels within data viewer

parent 7a659d80
No related branches found
No related tags found
No related merge requests found
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
#include "data_viewer.hh" #include "data_viewer.hh"
#include "data_viewer_panel.hh" #include "data_viewer_panel.hh"
#include <ost/gui/data_viewer/data_viewer_tool_widget_container.hh>
#include "overlay_base.hh" #include "overlay_base.hh"
#include "overlay_manager.hh" #include "overlay_manager.hh"
...@@ -53,7 +52,6 @@ ...@@ -53,7 +52,6 @@
#include <ost/gui/data_viewer/viewer_graphics_scene.hh> #include <ost/gui/data_viewer/viewer_graphics_scene.hh>
#include "argand.hh" #include "argand.hh"
#include "info_panel.hh" #include "info_panel.hh"
#include "fft_panel.hh"
namespace ost { namespace img { namespace gui { namespace ost { namespace img { namespace gui {
...@@ -70,13 +68,11 @@ int ipow(int base, unsigned int exponent){ ...@@ -70,13 +68,11 @@ int ipow(int base, unsigned int exponent){
DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name): DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name):
QMainWindow(p,0), QMainWindow(p,0),
container_(new DataViewerToolWidgetContainer(this)),
panel_(new ViewerPanel(this)), panel_(new ViewerPanel(this)),
ov_manager_(new OverlayManager(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()), info_(new InfoPanel()),
argand_(new Argand()), argand_(new Argand()),
fft_(new FFTPanel(data,this)),
zoomlabel_(new QLabel("1:1")), zoomlabel_(new QLabel("1:1")),
slablabel_(new QLabel("0")), slablabel_(new QLabel("0")),
lastmouse_() lastmouse_()
...@@ -85,30 +81,32 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name): ...@@ -85,30 +81,32 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name):
GraphicsImageItem* image=panel_->AddImage(data); GraphicsImageItem* image=panel_->AddImage(data);
//connect(image,SIGNAL(MousePosition(const QPointF&,Complex)),info_,SLOT(SetMousePoint(const QPointF&,Complex))); //connect(image,SIGNAL(MousePosition(const QPointF&,Complex)),info_,SLOT(SetMousePoint(const QPointF&,Complex)));
panel_->AddWidget(info_); panel_->AddWidget(info_);
panel_->AddWidget(ov_manager_gui_);
panel_->AddWidget(argand_); panel_->AddWidget(argand_);
//scene_->setSceneRect(image->boundingRect()); //scene_->setSceneRect(image->boundingRect());
connect(image,SIGNAL(MousePositionReal(const QPointF&,Real)),info_,SLOT(SetMousePoint(const QPointF&,Real))); 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(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(MousePositionReal(const QPointF&,Real)),fft_,SLOT(SetPosition(const QPointF&)));
connect(image,SIGNAL(MousePositionComplex(const QPointF&,Complex)),fft_,SLOT(SetPosition(const QPointF&))); // connect(image,SIGNAL(MousePositionComplex(const QPointF&,Complex)),fft_,SLOT(SetPosition(const QPointF&)));
OnSlabChange(image->GetSlab()); OnSlabChange(image->GetSlab());
connect(ov_manager_gui_,SIGNAL(SettingsChanged()),this,SLOT(UpdateView())); connect(ov_manager_gui_,SIGNAL(SettingsChanged()),this,SLOT(UpdateView()));
setAnimated(false); setAnimated(false);
QSplitter* splitter=new QSplitter(this); setCentralWidget(panel_);
/* QSplitter* splitter=new QSplitter(this);
setCentralWidget(splitter); setCentralWidget(splitter);
splitter->addWidget(panel_); splitter->addWidget(panel_);
splitter->addWidget(container_); splitter->addWidget(container_);
splitter->setCollapsible(0,false); splitter->setCollapsible(0,false);
splitter->setStretchFactor(0,1); splitter->setStretchFactor(0,1);
splitter->setCollapsible(1,true); splitter->setCollapsible(1,true);
splitter->setStretchFactor(1,0); splitter->setStretchFactor(1,0);*/
statusBar()->addWidget(zoomlabel_); statusBar()->addWidget(zoomlabel_);
statusBar()->addWidget(slablabel_); statusBar()->addWidget(slablabel_);
container_->AddChildWidget(ov_manager_gui_,"Overlays",true); //container_->AddChildWidget(ov_manager_gui_,"Overlays",true);
//container_->AddChildWidget(info_,"Info",true); //container_->AddChildWidget(info_,"Info",true);
//container_->AddChildWidget(argand_,"Argand",false); //container_->AddChildWidget(argand_,"Argand",false);
container_->AddChildWidget(fft_,"Live FFT",false); // container_->AddChildWidget(fft_,"Live FFT",false);
info_->SetImageInfo(data); info_->SetImageInfo(data);
...@@ -239,12 +237,12 @@ void DataViewer::SetAntialiasing(bool f) ...@@ -239,12 +237,12 @@ void DataViewer::SetAntialiasing(bool f)
void DataViewer::AddDockWidget(QWidget* w, const QString& name, bool show) void DataViewer::AddDockWidget(QWidget* w, const QString& name, bool show)
{ {
container_->AddChildWidget(w,name,show); panel_->AddWidget(w);
} }
void DataViewer::RemoveDockWidget(QWidget* w) void DataViewer::RemoveDockWidget(QWidget* w)
{ {
container_->RemoveWidget(w); // container_->RemoveWidget(w);
} }
......
...@@ -53,10 +53,8 @@ namespace img { namespace gui { ...@@ -53,10 +53,8 @@ namespace img { namespace gui {
//fw decl //fw decl
class DataViewerPanel; class DataViewerPanel;
class DataViewerToolWidgetContainer;
class Argand; class Argand;
class InfoPanel; class InfoPanel;
class FFTPanel;
//! Data viewer //! Data viewer
class DLLEXPORT_OST_GUI DataViewer: public QMainWindow class DLLEXPORT_OST_GUI DataViewer: public QMainWindow
...@@ -128,7 +126,6 @@ public slots: ...@@ -128,7 +126,6 @@ public slots:
DataViewer& operator=(const DataViewer& v) {return *this;} DataViewer& operator=(const DataViewer& v) {return *this;}
DataViewerToolWidgetContainer* container_;
ViewerPanel* panel_; ViewerPanel* panel_;
OverlayManagerPtr ov_manager_; OverlayManagerPtr ov_manager_;
...@@ -136,7 +133,6 @@ public slots: ...@@ -136,7 +133,6 @@ public slots:
InfoPanel* info_; InfoPanel* info_;
Argand* argand_; Argand* argand_;
FFTPanel* fft_;
QLabel* zoomlabel_; QLabel* zoomlabel_;
QLabel* slablabel_; QLabel* slablabel_;
......
...@@ -26,12 +26,15 @@ ...@@ -26,12 +26,15 @@
#include <QPainter> #include <QPainter>
#include "widget_layer_item.hh" #include "widget_layer_item.hh"
#include <QGraphicsProxyWidget> #include <QGraphicsProxyWidget>
#include <QGraphicsAnchorLayout>
namespace ost { namespace img { namespace gui { namespace ost { namespace img { namespace gui {
WidgetLayerItem::WidgetLayerItem(QGraphicsItem* parent): 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) void WidgetLayerItem::paint( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
...@@ -49,14 +52,28 @@ void WidgetLayerItem::AddWidget(QWidget* widget) ...@@ -49,14 +52,28 @@ void WidgetLayerItem::AddWidget(QWidget* widget)
proxy->setWidget(widget); proxy->setWidget(widget);
proxy->setFlag(QGraphicsItem::ItemIsMovable); proxy->setFlag(QGraphicsItem::ItemIsMovable);
proxy->setOpacity(0.9); proxy->setOpacity(0.9);
proxy->setPos(30,30); // proxy->setPos(30,30);
add_widget_to_layout(proxy);
} }
void WidgetLayerItem::AddWidget(QGraphicsWidget* widget) void WidgetLayerItem::AddWidget(QGraphicsWidget* widget)
{ {
widget->setParentItem(this);
widget->setFlag(QGraphicsItem::ItemIsMovable); widget->setFlag(QGraphicsItem::ItemIsMovable);
widget->setOpacity(0.9); 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 }}} //ns
...@@ -25,10 +25,10 @@ ...@@ -25,10 +25,10 @@
#ifndef WIDGET_LAYER_ITEM_HH #ifndef WIDGET_LAYER_ITEM_HH
#define WIDGET_LAYER_ITEM_HH #define WIDGET_LAYER_ITEM_HH
#include <QGraphicsItem> #include <QGraphicsWidget>
namespace ost { namespace img { namespace gui { namespace ost { namespace img { namespace gui {
class WidgetLayerItem : public QGraphicsItem class WidgetLayerItem : public QGraphicsWidget
{ {
public: public:
WidgetLayerItem(QGraphicsItem* parent=0); WidgetLayerItem(QGraphicsItem* parent=0);
...@@ -36,6 +36,8 @@ public: ...@@ -36,6 +36,8 @@ public:
virtual QRectF boundingRect() const; virtual QRectF boundingRect() const;
virtual void AddWidget(QWidget* widget); virtual void AddWidget(QWidget* widget);
virtual void AddWidget(QGraphicsWidget* widget); virtual void AddWidget(QGraphicsWidget* widget);
protected:
void add_widget_to_layout(QGraphicsWidget* widget);
}; };
}}} //ns }}} //ns
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment