- the currentViewContainer function has been rewritten in order to avoid linking problems with g++/clang compiler

This commit is contained in:
Guido Ranzuglia granzuglia 2016-09-09 08:06:53 +00:00
parent 88bd464a60
commit 4235b48adf
3 changed files with 12 additions and 8 deletions

View File

@ -325,13 +325,15 @@ public:
}
MultiViewer_Container* currentViewContainer() const {
MultiViewer_Container *mvc = dynamic_cast<MultiViewer_Container *>(mdiarea->currentSubWindow());
if(mvc) return mvc;
if(mvc==0 && mdiarea->currentSubWindow()!=0 ){
mvc = dynamic_cast<MultiViewer_Container *>(mdiarea->currentSubWindow()->widget());
if(mvc) return mvc;
/* MultiViewer_Container *mvc = dynamic_cast<MultiViewer_Container *>(mdiarea->currentSubWindow());
if(mvc) return mvc;*/
if(mdiarea->currentSubWindow()!=0 )
{
Splitter* split = reinterpret_cast<Splitter*>(mdiarea->currentSubWindow()->widget());
if (split->isMultiViewerContainer())
return reinterpret_cast<MultiViewer_Container*>(split);
}
QList<QMdiSubWindow *> subwinList=mdiarea->subWindowList();
/*QList<QMdiSubWindow *> subwinList=mdiarea->subWindowList();
foreach(QMdiSubWindow *subwinPtr,subwinList)
{
MultiViewer_Container *mvc = dynamic_cast<MultiViewer_Container *>(subwinPtr);
@ -340,7 +342,7 @@ public:
mvc = dynamic_cast<MultiViewer_Container *>(subwinPtr->widget());
if(mvc) return mvc;
}
}
}*/
return 0;
}

View File

@ -38,7 +38,7 @@ QSplitterHandle *Splitter::createHandle()
MultiViewer_Container *Splitter::getRootContainer()
{
Splitter * parentSplitter = qobject_cast<Splitter *>(this);
Splitter * parentSplitter = this;
MultiViewer_Container* mvc = qobject_cast<MultiViewer_Container *>(parentSplitter);
while(!mvc)
{

View File

@ -49,6 +49,7 @@ public:
Splitter(Qt::Orientation orientation, QWidget *parent = 0);
~Splitter() {}
virtual bool isMultiViewerContainer() const { return false; }
MultiViewer_Container *getRootContainer();
protected:
@ -77,6 +78,7 @@ public:
MultiViewer_Container(vcg::QtThreadSafeMemoryInfo& meminfo,bool highprec,size_t perbatchprimitives,QWidget *parent);
~MultiViewer_Container();
bool isMultiViewerContainer() const { return true; }
void addView(GLArea *viewer, Qt::Orientation);
void removeView(int);