From 51dc042dd59b491e45951cb9d8371a1f62857945 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Fri, 3 Aug 2007 10:41:28 +0000 Subject: [PATCH 1/1] Trying to fix random segfault upon connect... --- src/qtgui/coreconnectdlg.cpp | 6 ++++++ src/qtgui/coreconnectdlg.h | 1 + src/qtgui/mainwin.cpp | 8 ++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/qtgui/coreconnectdlg.cpp b/src/qtgui/coreconnectdlg.cpp index 90efe6fc..401809f6 100644 --- a/src/qtgui/coreconnectdlg.cpp +++ b/src/qtgui/coreconnectdlg.cpp @@ -28,6 +28,8 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialog(parent) { ui.setupUi(this); //qDebug() << "new dlg"; + setAttribute(Qt::WA_DeleteOnClose); + coreState = 0; if(Global::runMode == Global::Monolithic) { connect(ui.internalCore, SIGNAL(toggled(bool)), ui.hostEdit, SLOT(setDisabled(bool))); @@ -99,6 +101,10 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialo } } +CoreConnectDlg::~CoreConnectDlg() { + //qDebug() << "destroy"; +} + void CoreConnectDlg::setAccountEditEnabled(bool en) { ui.accountList->setEnabled(en); ui.hostEdit->setEnabled(en && !ui.internalCore->isChecked()); diff --git a/src/qtgui/coreconnectdlg.h b/src/qtgui/coreconnectdlg.h index 056e9ab4..384e2579 100644 --- a/src/qtgui/coreconnectdlg.h +++ b/src/qtgui/coreconnectdlg.h @@ -29,6 +29,7 @@ class CoreConnectDlg: public QDialog { public: CoreConnectDlg(QWidget *parent, bool doAutoConnect = false); + ~CoreConnectDlg(); QVariant getCoreState(); bool willDoInternalAutoConnect(); diff --git a/src/qtgui/mainwin.cpp b/src/qtgui/mainwin.cpp index e6bb7c17..451e82a2 100644 --- a/src/qtgui/mainwin.cpp +++ b/src/qtgui/mainwin.cpp @@ -138,7 +138,7 @@ void MainWin::addBufferView(const QString &viewname, QAbstractItemModel *model, addDockWidget(Qt::LeftDockWidgetArea, dock); ui.menuViews->addAction(dock->toggleViewAction()); - + netViews.append(dock); } @@ -149,7 +149,7 @@ void MainWin::connectedToCore() { ui.menuViews->setEnabled(true); ui.menuCore->setEnabled(true); - ui.actionDisconnectCore->setEnabled(false); // FIXME + ui.actionDisconnectCore->setEnabled(true); ui.actionNetworkList->setEnabled(true); ui.bufferWidget->show(); } @@ -160,7 +160,7 @@ void MainWin::disconnectedFromCore() { ui.actionDisconnectCore->setEnabled(false); ui.actionNetworkList->setEnabled(false); ui.bufferWidget->hide(); - ui.actionConnectCore->setEnabled(false); // FIXME + ui.actionConnectCore->setEnabled(true); //qDebug() << "mainwin disconnected"; } @@ -179,7 +179,7 @@ void MainWin::showCoreConnectionDlg(bool autoConnect) { void MainWin::coreConnectionDlgFinished(int /*code*/) { - delete coreConnectDlg; + coreConnectDlg->close(); } -- 2.20.1