diff options
| author | 2010-11-16 22:33:28 +0000 | |
|---|---|---|
| committer | 2010-11-16 22:33:28 +0000 | |
| commit | 9835195771d8d95ab3737539723a24593d60ddb1 (patch) | |
| tree | 3bb5f831f4e02d43d2956fb0db8c8be030a9340e /src/modules/options/instances.cpp | |
| parent | fix for #1020, hopefully compatible cross-os (diff) | |
| download | KVIrc-9835195771d8d95ab3737539723a24593d60ddb1.tar.gz KVIrc-9835195771d8d95ab3737539723a24593d60ddb1.tar.bz2 KVIrc-9835195771d8d95ab3737539723a24593d60ddb1.zip | |
don't try to reuse already opened option widgets (fixes #1018)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5143 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/options/instances.cpp')
| -rw-r--r-- | src/modules/options/instances.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/modules/options/instances.cpp b/src/modules/options/instances.cpp index 2b158c984..8ae532156 100644 --- a/src/modules/options/instances.cpp +++ b/src/modules/options/instances.cpp @@ -3580,18 +3580,24 @@ void KviOptionsInstanceManager::widgetDestroyed() KviOptionsWidget * KviOptionsInstanceManager::getInstance(KviOptionsWidgetInstanceEntry * e,QWidget * par) { if(!e)return 0; + if(e->pWidget) + { + if(e->pWidget->parent() != par) + { + QWidget * oldPar = (QWidget *)e->pWidget->parent(); + e->pWidget->setParent(par); + oldPar->deleteLater(); + e->pWidget=0; + } + } + if(!(e->pWidget)) { e->pWidget = e->createProc(par); g_iOptionWidgetInstances++; connect(e->pWidget,SIGNAL(destroyed()),this,SLOT(widgetDestroyed())); } - if(e->pWidget->parent() != par) - { - QWidget * oldPar = (QWidget *)e->pWidget->parent(); - e->pWidget->setParent(par); //reparent(par,QPoint(0,0)); - delete oldPar; - } + if(e->bIsContainer) { // need to create the container structure! |
