aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/options/instances.cpp
diff options
context:
space:
mode:
authorGravatar Fabio Bas2010-11-16 22:33:28 +0000
committerGravatar Fabio Bas2010-11-16 22:33:28 +0000
commit9835195771d8d95ab3737539723a24593d60ddb1 (patch)
tree3bb5f831f4e02d43d2956fb0db8c8be030a9340e /src/modules/options/instances.cpp
parentfix for #1020, hopefully compatible cross-os (diff)
downloadKVIrc-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.cpp18
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!