Trying to fix random segfault upon connect...
authorManuel Nickschas <sputnick@quassel-irc.org>
Fri, 3 Aug 2007 10:41:28 +0000 (10:41 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 3 Aug 2007 10:41:28 +0000 (10:41 +0000)
src/qtgui/coreconnectdlg.cpp
src/qtgui/coreconnectdlg.h
src/qtgui/mainwin.cpp

index 90efe6f..401809f 100644 (file)
@@ -28,6 +28,8 @@
 CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialog(parent) {
   ui.setupUi(this); //qDebug() << "new dlg";
 
 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)));
   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());
 void CoreConnectDlg::setAccountEditEnabled(bool en) {
   ui.accountList->setEnabled(en);
   ui.hostEdit->setEnabled(en && !ui.internalCore->isChecked());
index 056e9ab..384e257 100644 (file)
@@ -29,6 +29,7 @@ class CoreConnectDlg: public QDialog {
 
   public:
     CoreConnectDlg(QWidget *parent, bool doAutoConnect = false);
 
   public:
     CoreConnectDlg(QWidget *parent, bool doAutoConnect = false);
+    ~CoreConnectDlg();
     QVariant getCoreState();
 
     bool willDoInternalAutoConnect();
     QVariant getCoreState();
 
     bool willDoInternalAutoConnect();
index e6bb7c1..451e82a 100644 (file)
@@ -138,7 +138,7 @@ void MainWin::addBufferView(const QString &viewname, QAbstractItemModel *model,
   
   addDockWidget(Qt::LeftDockWidgetArea, dock);
   ui.menuViews->addAction(dock->toggleViewAction());
   
   addDockWidget(Qt::LeftDockWidgetArea, dock);
   ui.menuViews->addAction(dock->toggleViewAction());
-  
+
   netViews.append(dock);
 }
 
   netViews.append(dock);
 }
 
@@ -149,7 +149,7 @@ void MainWin::connectedToCore() {
 
   ui.menuViews->setEnabled(true);
   ui.menuCore->setEnabled(true);
 
   ui.menuViews->setEnabled(true);
   ui.menuCore->setEnabled(true);
-  ui.actionDisconnectCore->setEnabled(false); // FIXME
+  ui.actionDisconnectCore->setEnabled(true);
   ui.actionNetworkList->setEnabled(true);
   ui.bufferWidget->show();
 }
   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.actionDisconnectCore->setEnabled(false);
   ui.actionNetworkList->setEnabled(false);
   ui.bufferWidget->hide();
-  ui.actionConnectCore->setEnabled(false); // FIXME
+  ui.actionConnectCore->setEnabled(true);
   //qDebug() << "mainwin disconnected";
 }
 
   //qDebug() << "mainwin disconnected";
 }
 
@@ -179,7 +179,7 @@ void MainWin::showCoreConnectionDlg(bool autoConnect) {
 
 void MainWin::coreConnectionDlgFinished(int /*code*/) {
 
 
 void MainWin::coreConnectionDlgFinished(int /*code*/) {
 
-  delete coreConnectDlg;
+  coreConnectDlg->close();
 }
 
 
 }