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/mkcreateinstanceproc.sh | |
| 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/mkcreateinstanceproc.sh')
| -rwxr-xr-x | src/modules/options/mkcreateinstanceproc.sh | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/modules/options/mkcreateinstanceproc.sh b/src/modules/options/mkcreateinstanceproc.sh index f0d700b6b..deefa509e 100755 --- a/src/modules/options/mkcreateinstanceproc.sh +++ b/src/modules/options/mkcreateinstanceproc.sh @@ -191,7 +191,7 @@ KviOptionsInstanceManager::KviOptionsInstanceManager() { //qDebug("Instantiating"); - // Create the global widget dict : case sensitive , do not copy keys + // Create the global widget dict : case sensitive, do not copy keys m_pInstanceTree = new KviPointerList<KviOptionsWidgetInstanceEntry>; m_pInstanceTree->setAutoDelete(true); @@ -350,18 +350,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! |
