QTfrontend/hwform.cpp
changeset 14865 90cf07c60feb
parent 14838 bdb47255d7e4
child 14903 5119203470f3
equal deleted inserted replaced
14864:0c231b5184c5 14865:90cf07c60feb
   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()
  1657                                          ui.pageNetServer->sbPort->value());
  1657                                          ui.pageNetServer->sbPort->value());
  1658 }
  1658 }
  1659 
  1659 
  1660 void HWForm::AsyncNetServerStart()
  1660 void HWForm::AsyncNetServerStart()
  1661 {
  1661 {
  1662     NetConnectServer("localhost", pnetserver->getRunningPort());
  1662     NetConnectServer("localhost", pnetserver->getRunningPort(), false);
  1663 }
  1663 }
  1664 
  1664 
  1665 void HWForm::NetDisconnect()
  1665 void HWForm::NetDisconnect()
  1666 {
  1666 {
  1667     if(pnetserver)
  1667     if(pnetserver)
  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 {