292 |
292 |
293 connect(ui.pageNet->BtnSpecifyServer, SIGNAL(clicked()), this, SLOT(NetConnect())); |
293 connect(ui.pageNet->BtnSpecifyServer, SIGNAL(clicked()), this, SLOT(NetConnect())); |
294 connect(ui.pageNet->BtnNetSvrStart, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
294 connect(ui.pageNet->BtnNetSvrStart, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
295 pageSwitchMapper->setMapping(ui.pageNet->BtnNetSvrStart, ID_PAGE_NETSERVER); |
295 pageSwitchMapper->setMapping(ui.pageNet->BtnNetSvrStart, ID_PAGE_NETSERVER); |
296 |
296 |
297 connect(ui.pageNet, SIGNAL(connectClicked(const QString &, quint16)), this, SLOT(NetConnectServer(const QString &, quint16))); |
297 connect(ui.pageNet, SIGNAL(connectClicked(const QString &, quint16, bool)), this, SLOT(NetConnectServer(const QString &, quint16, bool))); |
298 |
298 |
299 connect(ui.pageNetServer->BtnStart, SIGNAL(clicked()), this, SLOT(NetStartServer())); |
299 connect(ui.pageNetServer->BtnStart, SIGNAL(clicked()), this, SLOT(NetStartServer())); |
300 |
300 |
301 connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(setEnabledGameStart(bool)), |
301 connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(setEnabledGameStart(bool)), |
302 ui.pageNetGame->BtnStart, SLOT(setEnabled(bool))); |
302 ui.pageNetGame->BtnStart, SLOT(setEnabled(bool))); |
1153 } |
1153 } |
1154 |
1154 |
1155 void HWForm::NetConnectQuick(const QString & host, quint16 port) |
1155 void HWForm::NetConnectQuick(const QString & host, quint16 port) |
1156 { |
1156 { |
1157 GoToPage(ID_PAGE_MAIN); |
1157 GoToPage(ID_PAGE_MAIN); |
1158 NetConnectServer(host, port); |
1158 NetConnectServer(host, port, false); |
1159 } |
1159 } |
1160 |
1160 |
1161 void HWForm::NetConnectServer(const QString & host, quint16 port) |
1161 void HWForm::NetConnectServer(const QString & host, quint16 port, bool useTls) |
1162 { |
1162 { |
1163 qDebug("connecting to %s:%d", qPrintable(host), port); |
1163 qDebug("connecting to %s:%d", qPrintable(host), port); |
1164 _NetConnect(host, port, ui.pageOptions->editNetNick->text().trimmed()); |
1164 _NetConnect(host, port, useTls, ui.pageOptions->editNetNick->text().trimmed()); |
1165 } |
1165 } |
1166 |
1166 |
1167 void HWForm::NetConnectOfficialServer() |
1167 void HWForm::NetConnectOfficialServer() |
1168 { |
1168 { |
1169 NetConnectServer(NETGAME_DEFAULT_SERVER, NETGAME_DEFAULT_PORT); |
1169 NetConnectServer(NETGAME_DEFAULT_SERVER, NETGAME_DEFAULT_PORT, false); |
1170 } |
1170 } |
1171 |
1171 |
1172 void HWForm::NetPassword(const QString & nick) |
1172 void HWForm::NetPassword(const QString & nick) |
1173 { |
1173 { |
1174 Q_UNUSED(nick); |
1174 Q_UNUSED(nick); |
1259 bool retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied.")); |
1259 bool retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied.")); |
1260 GoBack(); |
1260 GoBack(); |
1261 if (retry && hwnet) { |
1261 if (retry && hwnet) { |
1262 if (hwnet->m_private_game) { |
1262 if (hwnet->m_private_game) { |
1263 QStringList list = hwnet->getHost().split(":"); |
1263 QStringList list = hwnet->getHost().split(":"); |
1264 NetConnectServer(list.at(0), list.at(1).toShort()); |
1264 NetConnectServer(list.at(0), list.at(1).toShort(), false); |
1265 } else |
1265 } else |
1266 NetConnectOfficialServer(); |
1266 NetConnectOfficialServer(); |
1267 } |
1267 } |
1268 return; |
1268 return; |
1269 } |
1269 } |
1348 ui.pageNetGame->displayWarning(wrnmsg); |
1348 ui.pageNetGame->displayWarning(wrnmsg); |
1349 else |
1349 else |
1350 ui.pageRoomsList->displayWarning(wrnmsg); |
1350 ui.pageRoomsList->displayWarning(wrnmsg); |
1351 } |
1351 } |
1352 |
1352 |
1353 void HWForm::_NetConnect(const QString & hostName, quint16 port, QString nick) |
1353 void HWForm::_NetConnect(const QString & hostName, quint16 port, bool useTls, QString nick) |
1354 { |
1354 { |
1355 Q_UNUSED(nick); |
1355 Q_UNUSED(nick); |
1356 |
1356 |
1357 if (hwnet) { |
1357 if (hwnet) { |
1358 // destroy old connection |
1358 // destroy old connection |
1529 |
1529 |
1530 QString nickname = config->value("net/nick", config->getRandomNick()).toString(); |
1530 QString nickname = config->value("net/nick", config->getRandomNick()).toString(); |
1531 ui.pageRoomsList->setUser(nickname); |
1531 ui.pageRoomsList->setUser(nickname); |
1532 ui.pageNetGame->setUser(nickname); |
1532 ui.pageNetGame->setUser(nickname); |
1533 |
1533 |
1534 hwnet->Connect(hostName, port, nickname); |
1534 hwnet->Connect(hostName, port, useTls, nickname); |
1535 } |
1535 } |
1536 |
1536 |
1537 int HWForm::AskForNickAndPwd(void) |
1537 int HWForm::AskForNickAndPwd(void) |
1538 { |
1538 { |
1539 //remove temppasswordhash just in case |
1539 //remove temppasswordhash just in case |
1583 int retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied.")); |
1583 int retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied.")); |
1584 GoBack(); |
1584 GoBack(); |
1585 if (retry) { |
1585 if (retry) { |
1586 if (hwnet->m_private_game) { |
1586 if (hwnet->m_private_game) { |
1587 QStringList list = hwnet->getHost().split(":"); |
1587 QStringList list = hwnet->getHost().split(":"); |
1588 NetConnectServer(list.at(0), list.at(1).toShort()); |
1588 NetConnectServer(list.at(0), list.at(1).toShort(), false); |
1589 } else |
1589 } else |
1590 NetConnectOfficialServer(); |
1590 NetConnectOfficialServer(); |
1591 } |
1591 } |
1592 break; //loop restart |
1592 break; //loop restart |
1593 } else { |
1593 } else { |
1629 { |
1629 { |
1630 config->SaveOptions(); |
1630 config->SaveOptions(); |
1631 delete netHost; |
1631 delete netHost; |
1632 netHost = new QString(hpd->leHost->text()); |
1632 netHost = new QString(hpd->leHost->text()); |
1633 netPort = hpd->sbPort->value(); |
1633 netPort = hpd->sbPort->value(); |
1634 NetConnectServer(*netHost, netPort); |
1634 NetConnectServer(*netHost, netPort, false); |
1635 } |
1635 } |
1636 delete hpd; |
1636 delete hpd; |
1637 } |
1637 } |
1638 |
1638 |
1639 void HWForm::NetStartServer() |
1639 void HWForm::NetStartServer() |
1686 if (reason == "Reconnected too fast") { //TODO: this is a hack, which should be remade |
1686 if (reason == "Reconnected too fast") { //TODO: this is a hack, which should be remade |
1687 bool retry = RetryDialog(tr("Hedgewars - Connection error"), tr("You reconnected too fast.\nPlease wait a few seconds and try again.")); |
1687 bool retry = RetryDialog(tr("Hedgewars - Connection error"), tr("You reconnected too fast.\nPlease wait a few seconds and try again.")); |
1688 if (retry) { |
1688 if (retry) { |
1689 if (hwnet->m_private_game) { |
1689 if (hwnet->m_private_game) { |
1690 QStringList list = hwnet->getHost().split(":"); |
1690 QStringList list = hwnet->getHost().split(":"); |
1691 NetConnectServer(list.at(0), list.at(1).toUInt()); |
1691 NetConnectServer(list.at(0), list.at(1).toUInt(), false); |
1692 } else |
1692 } else |
1693 NetConnectOfficialServer(); |
1693 NetConnectOfficialServer(); |
1694 } |
1694 } |
1695 else { |
1695 else { |
1696 while (ui.Pages->currentIndex() != ID_PAGE_NET |
1696 while (ui.Pages->currentIndex() != ID_PAGE_NET |
1726 questionMsg.setWindowModality(Qt::WindowModal); |
1726 questionMsg.setWindowModality(Qt::WindowModal); |
1727 questionMsg.addButton(QMessageBox::Yes); |
1727 questionMsg.addButton(QMessageBox::Yes); |
1728 questionMsg.addButton(QMessageBox::No); |
1728 questionMsg.addButton(QMessageBox::No); |
1729 |
1729 |
1730 if (questionMsg.exec() == QMessageBox::Yes) |
1730 if (questionMsg.exec() == QMessageBox::Yes) |
1731 { |
1731 { |
1732 |
1732 QString host = hwnet->getHost().split(":").at(0); |
|
1733 NetConnectServer(host, port, true); |
|
1734 } |
|
1735 else if (hwnet) |
|
1736 { |
|
1737 hwnet->ContinueConnection(); |
1733 } |
1738 } |
1734 } |
1739 } |
1735 |
1740 |
1736 void HWForm::NetConnected() |
1741 void HWForm::NetConnected() |
1737 { |
1742 { |