# HG changeset patch # User unc0rr # Date 1197209521 0 # Node ID 8fa7ed5e13bd080c86aea2cbb4ff74d3330c23f9 # Parent dc93ac775bb9e3c8646277e6247862b765f5f3b9 Fix bad behavior when quickly click Connect button more than once diff -r dc93ac775bb9 -r 8fa7ed5e13bd QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Sun Dec 09 13:49:33 2007 +0000 +++ b/QTfrontend/hwform.cpp Sun Dec 09 14:12:01 2007 +0000 @@ -42,15 +42,13 @@ #include "newnetclient.h" #include "gamecfgwidget.h" #include "netserverslist.h" -#include "netudpwidget.h" #include "netudpserver.h" -#include "netwwwwidget.h" #include "netwwwserver.h" #include "chatwidget.h" #include "playrecordpage.h" HWForm::HWForm(QWidget *parent) - : QMainWindow(parent), pnetserver(0), pRegisterServer(0), editedTeam(0) + : QMainWindow(parent), pnetserver(0), pRegisterServer(0), editedTeam(0), hwnet(0) { ui.setupUi(this); config = new GameUIConfig(this, cfgdir->absolutePath() + "/hedgewars.ini"); @@ -347,8 +345,14 @@ void HWForm::_NetConnect(const QString & hostName, quint16 port, const QString & nick) { + if(hwnet) { + hwnet->Disconnect(); + delete hwnet; + hwnet=0; + } ui.pageNetGame->pChatWidget->clear(); hwnet = new HWNewNet(config, ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget); + connect(hwnet, SIGNAL(GameStateChanged(GameState)), this, SLOT(NetGameStateChanged(GameState))); connect(hwnet, SIGNAL(EnteredGame()), this, SLOT(NetGameEnter())); connect(hwnet, SIGNAL(AddNetTeam(const HWTeam&)), this, SLOT(AddNetTeam(const HWTeam&))); diff -r dc93ac775bb9 -r 8fa7ed5e13bd QTfrontend/netudpserver.cpp --- a/QTfrontend/netudpserver.cpp Sun Dec 09 13:49:33 2007 +0000 +++ b/QTfrontend/netudpserver.cpp Sun Dec 09 14:12:01 2007 +0000 @@ -25,9 +25,7 @@ { pUdpSocket = new QUdpSocket(this); pUdpSocket->bind(46631); - connect(pUdpSocket, SIGNAL(readyRead()), this, SLOT(onClientRead())); - } void HWNetUdpServer::onClientRead()