From 3c9f050e9c8fbf308fc121af7c1faed07419ed80 Mon Sep 17 00:00:00 2001 From: Guido Ranzuglia granzuglia Date: Tue, 15 Feb 2011 17:11:32 +0000 Subject: [PATCH] removed crash happening with split screen. --- src/meshlab/glarea.cpp | 11 +++++++++++ src/meshlab/glarea.h | 6 +----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/meshlab/glarea.cpp b/src/meshlab/glarea.cpp index 1c158e47d..feec9002c 100644 --- a/src/meshlab/glarea.cpp +++ b/src/meshlab/glarea.cpp @@ -1664,4 +1664,15 @@ void GLArea::createOrthoView(QString dir) loadShot(shotAndScale); } +MultiViewer_Container * GLArea::mvc() +{ + Splitter * parentSplitter = qobject_cast(parent()); + MultiViewer_Container* mvc = qobject_cast(parentSplitter); + while(!mvc) + { + parentSplitter = qobject_cast(parentSplitter->parent()); + mvc= qobject_cast(parentSplitter); + } + return mvc; +} diff --git a/src/meshlab/glarea.h b/src/meshlab/glarea.h index 8cf716de8..71a059374 100644 --- a/src/meshlab/glarea.h +++ b/src/meshlab/glarea.h @@ -88,11 +88,7 @@ public: // Layer Management stuff. - MultiViewer_Container *mvc() - { - MultiViewer_Container *localMVC = reinterpret_cast(this->parent()); - return localMVC; - } + MultiViewer_Container *mvc(); MeshModel *mm(){ return mvc()->meshDoc.mm();} inline MeshDocument *md() {return &(mvc()->meshDoc);}