Enfore singleton, using qApp->property

This commit is contained in:
Laurent Rineau 2018-04-10 14:06:50 +02:00
parent ff0836ec79
commit 8fbab5edde
2 changed files with 12 additions and 2 deletions

View File

@ -39,7 +39,12 @@ using namespace qglviewer;
CGAL_INLINE_FUNCTION
QList<MouseGrabber *> &MouseGrabber::MouseGrabberPool() {
static QList<MouseGrabber*> MouseGrabberPool_;
return MouseGrabberPool_;
void* p = qApp->property("qglviewer mouse grabber pool").value<void*>();
if(p == 0) {
p = (void*)(&MouseGrabberPool_);
qApp->setProperty("qglviewer mouse grabber pool", QVariant::fromValue(p));
}
return *static_cast<QList<MouseGrabber *> * >(p);
}
/*! Default constructor.

View File

@ -66,7 +66,12 @@ using namespace qglviewer;
CGAL_INLINE_FUNCTION
QList<QGLViewer *> &QGLViewer::QGLViewerPool() {
static QList<QGLViewer *> QGLViewerPool_;
return QGLViewerPool_;
void* p = qApp->property("qglviewer pool").value<void*>();
if(p == 0) {
p = (void*)(&QGLViewerPool_);
qApp->setProperty("qglviewer pool", QVariant::fromValue(p));
}
return *static_cast<QList<QGLViewer *> * >(p);
}
/*! \mainpage