diff options
| author | 2011-02-21 22:16:06 +0000 | |
|---|---|---|
| committer | 2011-02-21 22:16:06 +0000 | |
| commit | 5570e05af982c7581ba28d873bd95f0afb6307a1 (patch) | |
| tree | 722f8adff9ab7b6453ba87f7619fd0f6c0b33175 /src/modules | |
| parent | Make some entries of the default script translateable (diff) | |
| download | KVIrc-5570e05af982c7581ba28d873bd95f0afb6307a1.tar.gz KVIrc-5570e05af982c7581ba28d873bd95f0afb6307a1.tar.bz2 KVIrc-5570e05af982c7581ba28d873bd95f0afb6307a1.zip | |
Fix a crash in the server options widget
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5492 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/options/OptionsWidget_servers.cpp | 18 | ||||
| -rw-r--r-- | src/modules/options/OptionsWidget_servers.h | 2 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/modules/options/OptionsWidget_servers.cpp b/src/modules/options/OptionsWidget_servers.cpp index aff0f9d24..41f584f31 100644 --- a/src/modules/options/OptionsWidget_servers.cpp +++ b/src/modules/options/OptionsWidget_servers.cpp @@ -1370,6 +1370,7 @@ OptionsWidget_servers::OptionsWidget_servers(QWidget * parent) KviTalToolTip::add(tb,__tr2qs_ctx("<center>This button shows a list of recently used servers. It allows you to quickly find them in the list.</center>","options")); + m_pShowThisDialogAtStartupSelector = NULL; // The "Show this dialog at startup" option is shown only when the server options widget is shown as standalone dialog if(parent->inherits("OptionsWidgetContainer")) @@ -1411,10 +1412,13 @@ OptionsWidget_servers::OptionsWidget_servers(QWidget * parent) OptionsWidgetContainer * pContainer = dynamic_cast<OptionsWidgetContainer *>(parent); if(pContainer) { - KviBoolSelector * b = addBoolSelector(pContainer,__tr2qs_ctx("Show this dialog at startup","options"),KviOption_boolShowServersConnectDialogOnStart); - pContainer->setLeftCornerWidget(b); + m_pShowThisDialogAtStartupSelector = addBoolSelector(pContainer,__tr2qs_ctx("Show this dialog at startup","options"),KviOption_boolShowServersConnectDialogOnStart); + pContainer->setLeftCornerWidget(m_pShowThisDialogAtStartupSelector); + // This selector can be destroyed upon reparenting: make sure it's removed from the selector list + // (or we'll get a crash at commit() time...). + QObject::connect(m_pShowThisDialogAtStartupSelector,SIGNAL(destroyed()),this,SLOT(slotShowThisDialogAtStartupSelectorDestroyed())); - KviTalToolTip::add(b,__tr2qs_ctx("<center>If this option is enabled, the Servers dialog will appear every time you start KVIrc</center>","options")); + KviTalToolTip::add(m_pShowThisDialogAtStartupSelector,__tr2qs_ctx("<center>If this option is enabled, the Servers dialog will appear every time you start KVIrc</center>","options")); } } else { m_pConnectCurrent = NULL; @@ -1448,6 +1452,14 @@ OptionsWidget_servers::~OptionsWidget_servers() delete m_pNetworkDetailsDialog; } +void OptionsWidget_servers::slotShowThisDialogAtStartupSelectorDestroyed() +{ + KVI_ASSERT(m_pShowThisDialogAtStartupSelector); + + removeSelector(m_pShowThisDialogAtStartupSelector); + m_pShowThisDialogAtStartupSelector = NULL; +} + void OptionsWidget_servers::recentServersPopupAboutToShow() { g_pApp->fillRecentServersPopup(m_pRecentPopup); diff --git a/src/modules/options/OptionsWidget_servers.h b/src/modules/options/OptionsWidget_servers.h index cebc50164..2d394560b 100644 --- a/src/modules/options/OptionsWidget_servers.h +++ b/src/modules/options/OptionsWidget_servers.h @@ -190,6 +190,7 @@ protected: IrcServerDetailsWidget * m_pServerDetailsDialog; IrcNetworkDetailsWidget * m_pNetworkDetailsDialog; KviMexServerImport * m_pImportFilter; + KviBoolSelector * m_pShowThisDialogAtStartupSelector; QToolButton * m_pNewServerButton; QToolButton * m_pNewNetworkButton; @@ -203,6 +204,7 @@ private: IrcServerOptionsTreeWidgetItem * findNetItem(const QString &netname); void selectBestServerByUrl(const QString &szUrl); protected slots: + void slotShowThisDialogAtStartupSelectorDestroyed(); void importerDead(); void importServer(const KviIrcServer & s,const QString &network); void importPopupAboutToShow(); |
