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 @@
#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);
}
......
......@@ -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_;
......
......@@ -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
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment