- first reasonable instance of the new rendering gui

- billions of bugs
- all the user defined color pickers miss!
This commit is contained in:
Guido Ranzuglia granzuglia 2016-05-22 23:12:33 +00:00
parent 8cd7a93a7a
commit dffcd6e07b
4 changed files with 431 additions and 119 deletions

View File

@ -373,7 +373,8 @@ void LayerDialog::updateTable(const MLSceneGLSharedDataContext::PerMeshRendering
rendertb->setIconSize(QSize(16,16));
rendertb->setAccordingToRenderingData((*rdit));
connect(rendertb,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SLOT(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
MeshTreeWidgetItem* item = new MeshTreeWidgetItem(mmd,ui->meshTreeWidget,rendertb);
connect(rendertb,SIGNAL(activatedAction(MLRenderingAction*)),this,SLOT(actionActivated(MLRenderingAction*)));
MeshTreeWidgetItem* item = new MeshTreeWidgetItem(mmd,ui->meshTreeWidget,rendertb);
item->setExpanded(expandedMap.value(qMakePair(item->_meshid,-1)));
/* QTreeWidgetItem* childitem = new QTreeWidgetItem();
item->addChild(childitem);
@ -732,6 +733,15 @@ void LayerDialog::updateRenderingDataAccordingToActions(int meshid,const QList<M
mw->GLA()->update();
}
void LayerDialog::actionActivated( MLRenderingAction* ract )
{
if ((mw == NULL) || (ract == NULL))
return;
MLRenderingData dt;
mw->getRenderingData(ract->meshId(),dt);
tabw->switchTab(ract->meshId(),ract->text(),dt);
}
MeshTreeWidgetItem::MeshTreeWidgetItem(MeshModel* meshmodel,QTreeWidget* tree,MLRenderingToolbar* rendertoolbar)
:QTreeWidgetItem(tree),_rendertoolbar(rendertoolbar)
{
@ -751,16 +761,6 @@ MeshTreeWidgetItem::MeshTreeWidgetItem(MeshModel* meshmodel,QTreeWidget* tree,ML
}
}
MeshTreeWidgetItem::MeshTreeWidgetItem(QTreeWidget* tree,MLRenderingToolbar* rendertoolbar)
:QTreeWidgetItem(tree),_rendertoolbar(rendertoolbar)
{
setIcon(0,QIcon(":/images/layer_eye_open.png"));
if (rendertoolbar != NULL)
tree->setItemWidget(this,3,_rendertoolbar);
_meshid = -1;
}
MeshTreeWidgetItem::~MeshTreeWidgetItem()
{
/*if (addwid->parent() == NULL)

View File

@ -56,7 +56,6 @@ class MeshTreeWidgetItem : public QTreeWidgetItem
{
public:
MeshTreeWidgetItem(MeshModel* meshmodel,QTreeWidget* tree,MLRenderingToolbar* rendertoolbar);
MeshTreeWidgetItem(QTreeWidget* tree,MLRenderingToolbar* rendertoolbar);
~MeshTreeWidgetItem();
void updateVisibility(bool isvisible);
@ -123,6 +122,7 @@ public slots:
void showContextMenu(const QPoint& pos);
void adaptLayout(QTreeWidgetItem * item);
void updateRenderingDataAccordingToActions(int meshid,const QList<MLRenderingAction*>&);
void actionActivated(MLRenderingAction* ract);
private:
Ui::layerDialog* ui;

View File

@ -56,7 +56,11 @@ void MLRenderingToolbar::toggle( QAction* act)
}
}
if (ract != NULL)
{
emit updateRenderingDataAccordingToActions(_meshid,_acts);
if (ract->isChecked())
emit activatedAction(ract);
}
}
void MLRenderingToolbar::setAccordingToRenderingData(const MLRenderingData& dt)
@ -89,88 +93,6 @@ QList<MLRenderingAction*>& MLRenderingToolbar::getRenderingActions()
}
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame(QWidget* parent )
:MLRenderingParametersFrame(-1,parent)
{
initGui();
}
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame( int meshid,QWidget* parent )
:MLRenderingParametersFrame(meshid,parent)
{
initGui();
}
void MLRenderingSolidParametersFrame::initGui()
{
setAutoFillBackground(true);
QGridLayout* layout = new QGridLayout();
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
QLabel* shadelab = new QLabel("Shading",this);
QFont boldfont;
boldfont.setBold(true);
shadelab->setFont(boldfont);
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
_shadingtool->addRenderingAction(new MLRenderingFlatAction(_meshid,this));
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* colorlab = new QLabel("Color",this);
colorlab->setFont(boldfont);
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
_colortool = new MLRenderingToolbar(_meshid,true,this);
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerFaceColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_SOLID,_meshid,this));
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* textlab = new QLabel("Texture Coord",this);
textlab->setFont(boldfont);
layout->addWidget(textlab,2,0,Qt::AlignLeft);
_texttool = new MLRenderingToolbar(this);
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
_texttool->addRenderingAction(new MLRenderingPerWedgeTextCoordAction(_meshid,this));
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
setMinimumSize(layout->sizeHint());
setLayout(layout);
showNormal();
adjustSize();
}
void MLRenderingSolidParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
{
_shadingtool->setAccordingToRenderingData(dt);
_colortool->setAccordingToRenderingData(dt);
_texttool->setAccordingToRenderingData(dt);
}
void MLRenderingSolidParametersFrame::setAssociatedMeshId( int meshid )
{
_meshid = meshid;
_shadingtool->setAssociatedMeshId(meshid);
_colortool->setAssociatedMeshId(meshid);
_texttool->setAssociatedMeshId(meshid);
}
MLRenderingSolidParametersFrame::~MLRenderingSolidParametersFrame()
{
delete _shadingtool;
delete _colortool;
delete _texttool;
}
void MLRenderingSolidParametersFrame::getAllRenderingActions( QList<MLRenderingAction*>& acts )
{
acts.append(_shadingtool->getRenderingActions());
acts.append(_colortool->getRenderingActions());
acts.append(_texttool->getRenderingActions());
}
//MLRenderingParametersFrame::~MLRenderingParametersFrame()
//{
//
@ -231,6 +153,9 @@ void MLRenderingSideToolbar::initGui()
}
MLRenderingParametersFrame::MLRenderingParametersFrame( int meshid,QWidget* parent )
:QFrame(parent),_meshid(-1)
{
@ -247,21 +172,359 @@ MLRenderingParametersFrame* MLRenderingParametersFrame::factory( MLRenderingActi
if (qobject_cast<MLRenderingSolidAction*>(act) != NULL)
return new MLRenderingSolidParametersFrame(meshid,parent);
/*if (qobject_cast<MLRenderingPointsAction*>(act) != NULL)
if (qobject_cast<MLRenderingPointsAction*>(act) != NULL)
return new MLRenderingPointsParametersFrame(meshid,parent);
if (qobject_cast<MLRenderingWireAction*>(act) != NULL)
return new MLRenderingWireParametersFrame(meshid,parent);
if (qobject_cast<MLRenderingLightOnOffAction*>(act) != NULL)
return new MLRenderingLightingParametersFrame(meshid,parent);*/
return new MLRenderingLightingParametersFrame(meshid,parent);
/*if (qobject_cast<MLRenderingLightOnOffAction*>(act) != NULL)
return new MLRenderingSolidParametersFrame(meshid,parent);*/
if (qobject_cast<MLRenderingBBoxAction*>(act) != NULL)
return new MLRenderingBBoxParametersFrame(meshid,parent);
return NULL;
}
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame(QWidget* parent )
:MLRenderingParametersFrame(-1,parent)
{
initGui();
}
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame( int meshid,QWidget* parent )
:MLRenderingParametersFrame(meshid,parent)
{
initGui();
}
void MLRenderingSolidParametersFrame::initGui()
{
setAutoFillBackground(true);
QGridLayout* layout = new QGridLayout();
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
QLabel* shadelab = new QLabel("Shading",this);
QFont boldfont;
boldfont.setBold(true);
shadelab->setFont(boldfont);
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
_shadingtool->addRenderingAction(new MLRenderingFlatAction(_meshid,this));
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* colorlab = new QLabel("Color",this);
colorlab->setFont(boldfont);
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
_colortool = new MLRenderingToolbar(_meshid,true,this);
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerFaceColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_SOLID,_meshid,this));
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* textlab = new QLabel("Texture Coord",this);
textlab->setFont(boldfont);
layout->addWidget(textlab,2,0,Qt::AlignLeft);
_texttool = new MLRenderingToolbar(this);
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
_texttool->addRenderingAction(new MLRenderingPerWedgeTextCoordAction(_meshid,this));
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
setMinimumSize(layout->sizeHint());
setLayout(layout);
showNormal();
adjustSize();
}
void MLRenderingSolidParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
{
_shadingtool->setAccordingToRenderingData(dt);
_colortool->setAccordingToRenderingData(dt);
_texttool->setAccordingToRenderingData(dt);
}
void MLRenderingSolidParametersFrame::setAssociatedMeshId( int meshid )
{
_meshid = meshid;
_shadingtool->setAssociatedMeshId(meshid);
_colortool->setAssociatedMeshId(meshid);
_texttool->setAssociatedMeshId(meshid);
}
MLRenderingSolidParametersFrame::~MLRenderingSolidParametersFrame()
{
delete _shadingtool;
delete _colortool;
delete _texttool;
}
MLRenderingWireParametersFrame::MLRenderingWireParametersFrame( QWidget* parent )
:MLRenderingParametersFrame(-1,parent)
{
initGui();
}
MLRenderingWireParametersFrame::MLRenderingWireParametersFrame( int meshid,QWidget* parent )
:MLRenderingParametersFrame(meshid,parent)
{
initGui();
}
MLRenderingWireParametersFrame::~MLRenderingWireParametersFrame()
{
delete _wiretool;
delete _shadingtool;
delete _colortool;
delete _texttool;
}
void MLRenderingWireParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
{
_shadingtool->setAccordingToRenderingData(dt);
_colortool->setAccordingToRenderingData(dt);
_texttool->setAccordingToRenderingData(dt);
_wiretool->setAccordingToRenderingData(dt);
}
void MLRenderingWireParametersFrame::setAssociatedMeshId( int meshid )
{
_meshid = meshid;
_shadingtool->setAssociatedMeshId(meshid);
_colortool->setAssociatedMeshId(meshid);
_texttool->setAssociatedMeshId(meshid);
_wiretool->setAssociatedMeshId(meshid);
}
void MLRenderingWireParametersFrame::initGui()
{
setAutoFillBackground(true);
QGridLayout* layout = new QGridLayout();
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
QLabel* shadelab = new QLabel("Shading",this);
QFont boldfont;
boldfont.setBold(true);
shadelab->setFont(boldfont);
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
_shadingtool->addRenderingAction(new MLRenderingFlatAction(_meshid,this));
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* colorlab = new QLabel("Color",this);
colorlab->setFont(boldfont);
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
_colortool = new MLRenderingToolbar(_meshid,true,this);
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerFaceColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_WIREFRAME_TRIANGLES,_meshid,this));
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* textlab = new QLabel("Texture Coord",this);
textlab->setFont(boldfont);
layout->addWidget(textlab,2,0,Qt::AlignLeft);
_texttool = new MLRenderingToolbar(this);
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
_texttool->addRenderingAction(new MLRenderingPerWedgeTextCoordAction(_meshid,this));
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* wirelab = new QLabel("Wire Modality",this);
wirelab->setFont(boldfont);
layout->addWidget(wirelab,3,0,Qt::AlignLeft);
_wiretool = new MLRenderingToolbar(this);
_wiretool->setToolButtonStyle(Qt::ToolButtonTextOnly);
_wiretool->addRenderingAction(new MLRenderingWireAction(_meshid,this));
_wiretool->addRenderingAction(new MLRenderingEdgeWireAction(_meshid,this));
layout->addWidget(_wiretool,3,1,Qt::AlignLeft);
connect(_wiretool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
setMinimumSize(layout->sizeHint());
setLayout(layout);
showNormal();
adjustSize();
}
MLRenderingPointsParametersFrame::MLRenderingPointsParametersFrame( QWidget* parent )
:MLRenderingParametersFrame(-1,parent)
{
initGui();
}
MLRenderingPointsParametersFrame::MLRenderingPointsParametersFrame( int meshid,QWidget* parent )
:MLRenderingParametersFrame(meshid,parent)
{
initGui();
}
MLRenderingPointsParametersFrame::~MLRenderingPointsParametersFrame()
{
delete _shadingtool;
delete _colortool;
delete _texttool;
}
void MLRenderingPointsParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
{
_shadingtool->setAccordingToRenderingData(dt);
_colortool->setAccordingToRenderingData(dt);
_texttool->setAccordingToRenderingData(dt);
}
void MLRenderingPointsParametersFrame::setAssociatedMeshId( int meshid )
{
_meshid = meshid;
_shadingtool->setAssociatedMeshId(meshid);
_colortool->setAssociatedMeshId(meshid);
_texttool->setAssociatedMeshId(meshid);
}
void MLRenderingPointsParametersFrame::initGui()
{
setAutoFillBackground(true);
QGridLayout* layout = new QGridLayout();
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
QLabel* shadelab = new QLabel("Shading",this);
QFont boldfont;
boldfont.setBold(true);
shadelab->setFont(boldfont);
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* colorlab = new QLabel("Color",this);
colorlab->setFont(boldfont);
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
_colortool = new MLRenderingToolbar(_meshid,true,this);
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_POINTS,_meshid,this));
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
QLabel* textlab = new QLabel("Texture Coord",this);
textlab->setFont(boldfont);
layout->addWidget(textlab,2,0,Qt::AlignLeft);
_texttool = new MLRenderingToolbar(this);
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
setMinimumSize(layout->sizeHint());
setLayout(layout);
showNormal();
adjustSize();
}
MLRenderingLightingParametersFrame::MLRenderingLightingParametersFrame( QWidget* parent )
:MLRenderingParametersFrame(-1,parent)
{
initGui();
}
MLRenderingLightingParametersFrame::MLRenderingLightingParametersFrame( int meshid,QWidget* parent )
:MLRenderingParametersFrame(meshid,parent)
{
initGui();
}
MLRenderingLightingParametersFrame::~MLRenderingLightingParametersFrame()
{
delete _lighttool;
}
void MLRenderingLightingParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
{
_lighttool->setAccordingToRenderingData(dt);
}
void MLRenderingLightingParametersFrame::setAssociatedMeshId( int meshid )
{
_meshid = meshid;
_lighttool->setAssociatedMeshId(meshid);
}
void MLRenderingLightingParametersFrame::initGui()
{
setAutoFillBackground(true);
QGridLayout* layout = new QGridLayout();
_lighttool = new MLRenderingToolbar(_meshid,true,this);
QLabel* lightlab = new QLabel("Lighting Options",this);
QFont boldfont;
boldfont.setBold(true);
lightlab->setFont(boldfont);
layout->addWidget(lightlab,0,0,Qt::AlignLeft);
_lighttool->addRenderingAction(new MLRenderingFancyLightingAction(_meshid,this));
_lighttool->addRenderingAction(new MLRenderingDoubleLightingAction(_meshid,this));
layout->addWidget(_lighttool,0,1,Qt::AlignLeft);
connect(_lighttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
setMinimumSize(layout->sizeHint());
setLayout(layout);
showNormal();
adjustSize();
}
MLRenderingBBoxParametersFrame::MLRenderingBBoxParametersFrame( QWidget* parent )
:MLRenderingParametersFrame(-1,parent)
{
initGui();
}
MLRenderingBBoxParametersFrame::MLRenderingBBoxParametersFrame( int meshid,QWidget* parent )
:MLRenderingParametersFrame(meshid,parent)
{
initGui();
}
MLRenderingBBoxParametersFrame::~MLRenderingBBoxParametersFrame()
{
delete _colortool;
}
void MLRenderingBBoxParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
{
_colortool->setAccordingToRenderingData(dt);
}
void MLRenderingBBoxParametersFrame::setAssociatedMeshId( int meshid )
{
_meshid = meshid;
_colortool->setAssociatedMeshId(meshid);
}
void MLRenderingBBoxParametersFrame::initGui()
{
setAutoFillBackground(true);
QGridLayout* layout = new QGridLayout();
QLabel* colorlab = new QLabel("Color",this);
QFont boldfont;
boldfont.setBold(true);
colorlab->setFont(boldfont);
layout->addWidget(colorlab,0,0,Qt::AlignLeft);
_colortool = new MLRenderingToolbar(_meshid,true,this);
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_BBOX,_meshid,this));
layout->addWidget(_colortool,0,1,Qt::AlignLeft);
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
setMinimumSize(layout->sizeHint());
setLayout(layout);
showNormal();
adjustSize();
}
MLRenderingParametersTab::MLRenderingParametersTab( int meshid,const QList<MLRenderingAction*>& tab, QWidget* parent )
:QTabWidget(parent),_meshid(meshid)
{
@ -276,11 +539,12 @@ void MLRenderingParametersTab::setAssociatedMeshId( int meshid )
}
void MLRenderingParametersTab::switchTab( const QString& name )
void MLRenderingParametersTab::switchTab(int meshid,const QString& tabname,const MLRenderingData& dt)
{
QMap<QString,MLRenderingParametersFrame*>::iterator itt = _parframe.find(name);
QMap<QString,MLRenderingParametersFrame*>::iterator itt = _parframe.find(tabname);
if (itt != _parframe.end())
setCurrentWidget((*itt));
setAssociatedMeshIdAndRenderingData(meshid,dt);
}
void MLRenderingParametersTab::setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt )

View File

@ -58,6 +58,7 @@ private slots:
signals:
void updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>& acts);
void activatedAction(MLRenderingAction*);
private:
//if meshid is -1 it means that the actions are intended to be deployed to all the document and not to a specific mesh model
@ -85,7 +86,6 @@ public:
virtual ~MLRenderingParametersFrame();
virtual void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt) = 0;
virtual void setAssociatedMeshId(int meshid) = 0;
virtual void getAllRenderingActions(QList<MLRenderingAction*>& acts) = 0;
static MLRenderingParametersFrame* factory(MLRenderingAction* act,int meshid,QWidget* parent);
static void destroy(MLRenderingParametersFrame* pf);
@ -105,7 +105,6 @@ public:
~MLRenderingSolidParametersFrame();
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
void setAssociatedMeshId(int meshid);
void getAllRenderingActions(QList<MLRenderingAction*>& acts);
private:
void initGui();
@ -114,22 +113,71 @@ private:
MLRenderingToolbar* _texttool;
};
//class MLRenderingSolidParametersFrame : public MLRenderingParametersFrame
//{
// Q_OBJECT
//public:
// MLRenderingSolidParametersFrame(QWidget* parent);
// MLRenderingSolidParametersFrame(int meshid,QWidget* parent);
// ~MLRenderingSolidParametersFrame();
// void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
// void setAssociatedMeshId(int meshid);
//
//private:
// void initGui();
// MLRenderingToolbar* _shadingtool;
// MLRenderingToolbar* _colortool;
// MLRenderingToolbar* _texttool;
//};
class MLRenderingWireParametersFrame : public MLRenderingParametersFrame
{
Q_OBJECT
public:
MLRenderingWireParametersFrame(QWidget* parent);
MLRenderingWireParametersFrame(int meshid,QWidget* parent);
~MLRenderingWireParametersFrame();
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
void setAssociatedMeshId(int meshid);
private:
void initGui();
MLRenderingToolbar* _wiretool;
MLRenderingToolbar* _shadingtool;
MLRenderingToolbar* _colortool;
MLRenderingToolbar* _texttool;
};
class MLRenderingPointsParametersFrame : public MLRenderingParametersFrame
{
Q_OBJECT
public:
MLRenderingPointsParametersFrame(QWidget* parent);
MLRenderingPointsParametersFrame(int meshid,QWidget* parent);
~MLRenderingPointsParametersFrame();
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
void setAssociatedMeshId(int meshid);
private:
void initGui();
MLRenderingToolbar* _shadingtool;
MLRenderingToolbar* _colortool;
MLRenderingToolbar* _texttool;
};
class MLRenderingLightingParametersFrame : public MLRenderingParametersFrame
{
Q_OBJECT
public:
MLRenderingLightingParametersFrame(QWidget* parent);
MLRenderingLightingParametersFrame(int meshid,QWidget* parent);
~MLRenderingLightingParametersFrame();
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
void setAssociatedMeshId(int meshid);
private:
void initGui();
MLRenderingToolbar* _lighttool;
};
class MLRenderingBBoxParametersFrame : public MLRenderingParametersFrame
{
Q_OBJECT
public:
MLRenderingBBoxParametersFrame(QWidget* parent);
MLRenderingBBoxParametersFrame(int meshid,QWidget* parent);
~MLRenderingBBoxParametersFrame();
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
void setAssociatedMeshId(int meshid);
private:
void initGui();
MLRenderingToolbar* _colortool;
};
//
//
//class MLRenderingSolidParametersFrame : public MLRenderingParametersFrame
@ -182,7 +230,7 @@ private:
int _meshid;
public slots:
void switchTab(const QString& name);
void switchTab(int meshid,const QString& tabname,const MLRenderingData& dt);
void setAssociatedMeshId(int meshid);
signals: