diff -r b945f4174d00 -r f1df2eb32a16 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Sun Feb 15 17:48:05 2009 +0000 +++ b/QTfrontend/hwform.cpp Sun Feb 15 20:29:52 2009 +0000 @@ -329,7 +329,7 @@ if (id == ID_PAGE_NETGAME || id == ID_PAGE_NETGAME) GoBack(); - if (id == ID_PAGE_NET) { + if ((id == ID_PAGE_NET) && (curid != ID_PAGE_CONNECTING)) { if(hwnet || pnetserver) NetDisconnect(); } } @@ -449,6 +449,12 @@ hwnet = new HWNewNet(config, ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget); + { + GoToPage(ID_PAGE_CONNECTING); + connect(hwnet, SIGNAL(Connected()), this, SLOT(GoBack())); + connect(hwnet, SIGNAL(Disconnected()), this, SLOT(GoBack())); + } + connect(hwnet, SIGNAL(showMessage(const QString &)), this, SLOT(ShowErrorMessage(const QString &)), Qt::QueuedConnection); connect(hwnet, SIGNAL(AskForRunGame()), this, SLOT(CreateNetGame())); @@ -533,7 +539,7 @@ hwnet, SLOT(onWeaponsNameChanged(const QString &, const QString &))); connect(ui.pageNetGame->pGameCFG, SIGNAL(newTemplateFilter(int)), hwnet, SLOT(onTemplateFilterChanged(int))); - connect(hwnet, SIGNAL(Disconnected()), this, SLOT(ForcedDisconnect())); + connect(hwnet, SIGNAL(Disconnected()), this, SLOT(ForcedDisconnect()), Qt::QueuedConnection); connect(hwnet, SIGNAL(seedChanged(const QString &)), ui.pageNetGame->pGameCFG, SLOT(setSeed(const QString &))); connect(hwnet, SIGNAL(mapChanged(const QString &)), ui.pageNetGame->pGameCFG, SLOT(setMap(const QString &))); connect(hwnet, SIGNAL(themeChanged(const QString &)), ui.pageNetGame->pGameCFG, SLOT(setTheme(const QString &))); @@ -599,6 +605,7 @@ void HWForm::NetDisconnect() { + qDebug("NetDisconnect"); if(hwnet) { hwnet->Disconnect(); delete hwnet; @@ -625,8 +632,9 @@ hwnet = 0; QMessageBox::warning(this, QMessageBox::tr("Network"), QMessageBox::tr("Connection to server is lost")); + } - GoBack(); + if (ui.Pages->currentIndex() != ID_PAGE_NET) GoBack(); } void HWForm::NetConnected()