# HG changeset patch
# User dag10
# Date 1356044081 -3600
# Node ID e2c01fbf36c0cecb911634b326fccd6718022124
# Parent ec9f94ab2737e81c8dbc63a9510ad077dce4d759
GCI2012: Beautify Network Page
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/hedgewars.qrc
--- a/QTfrontend/hedgewars.qrc Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/hedgewars.qrc Thu Dec 20 23:54:41 2012 +0100
@@ -44,6 +44,7 @@
res/HedgewarsTitle.png
res/LocalPlay.png
res/NetworkPlay.png
+ res/NetworkPlayDisabled.png
res/Settings.png
res/dropdown.png
res/new.png
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/hwform.cpp
--- a/QTfrontend/hwform.cpp Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/hwform.cpp Thu Dec 20 23:54:41 2012 +0100
@@ -73,7 +73,6 @@
#include "pagefeedback.h"
#include "pagenetserver.h"
#include "pagedrawmap.h"
-#include "pagenettype.h"
#include "pagegamestats.h"
#include "pageplayrecord.h"
#include "pagedata.h"
@@ -203,9 +202,6 @@
connect(ui.pageMain->BtnFeedback, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
pageSwitchMapper->setMapping(ui.pageMain->BtnFeedback, ID_PAGE_FEEDBACK);
- connect(ui.pageMain->BtnNet, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
- pageSwitchMapper->setMapping(ui.pageMain->BtnNet, ID_PAGE_NETTYPE);
-
connect(ui.pageMain->BtnInfo, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
pageSwitchMapper->setMapping(ui.pageMain->BtnInfo, ID_PAGE_INFO);
@@ -304,8 +300,8 @@
// this, SLOT(GoBack())); // executed third
- connect(ui.pageNetType->BtnLAN, SIGNAL(clicked()), this, SLOT(GoToNet()));
- connect(ui.pageNetType->BtnOfficialServer, SIGNAL(clicked()), this, SLOT(NetConnectOfficialServer()));
+ connect(ui.pageMain->BtnNetLocal, SIGNAL(clicked()), this, SLOT(GoToNet()));
+ connect(ui.pageMain->BtnNetOfficial, SIGNAL(clicked()), this, SLOT(NetConnectOfficialServer()));
connect(ui.pageConnecting, SIGNAL(cancelConnection()), this, SLOT(GoBack()));
@@ -573,7 +569,6 @@
case ID_PAGE_CONNECTING : qDebug("%sPAGE_CONNECTING%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
case ID_PAGE_SCHEME : qDebug("%sPAGE_SCHEME%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
case ID_PAGE_ADMIN : qDebug("%sPAGE_ADMIN%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
- case ID_PAGE_NETTYPE : qDebug("%sPAGE_NETTYPE%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
case ID_PAGE_CAMPAIGN : qDebug("%sPAGE_CAMPAIGN%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
case ID_PAGE_DRAWMAP : qDebug("%sPAGE_DRAWMAP%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
case ID_PAGE_DATADOWNLOAD : qDebug("%sPAGE_DATADOWNLOAD%s", qPrintable(closePrefix), qPrintable(closeSuffix)); break;
@@ -601,7 +596,6 @@
case ID_PAGE_CONNECTING : qDebug("%sPAGE_CONNECTING%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
case ID_PAGE_SCHEME : qDebug("%sPAGE_SCHEME%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
case ID_PAGE_ADMIN : qDebug("%sPAGE_ADMIN%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
- case ID_PAGE_NETTYPE : qDebug("%sPAGE_NETTYPE%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
case ID_PAGE_CAMPAIGN : qDebug("%sPAGE_CAMPAIGN%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
case ID_PAGE_DRAWMAP : qDebug("%sPAGE_DRAWMAP%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
case ID_PAGE_DATADOWNLOAD : qDebug("%sPAGE_DATADOWNLOAD%s", qPrintable(openPrefix), qPrintable(openSuffix)); break;
@@ -1508,7 +1502,6 @@
}
else {
while (ui.Pages->currentIndex() != ID_PAGE_NET
- && ui.Pages->currentIndex() != ID_PAGE_NETTYPE
&& ui.Pages->currentIndex() != ID_PAGE_MAIN)
{
GoBack();
@@ -1525,7 +1518,6 @@
}
while (ui.Pages->currentIndex() != ID_PAGE_NET
- && ui.Pages->currentIndex() != ID_PAGE_NETTYPE
&& ui.Pages->currentIndex() != ID_PAGE_MAIN)
{
GoBack();
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/hwform.h
--- a/QTfrontend/hwform.h Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/hwform.h Thu Dec 20 23:54:41 2012 +0100
@@ -172,7 +172,6 @@
ID_PAGE_CONNECTING ,
ID_PAGE_SCHEME ,
ID_PAGE_ADMIN ,
- ID_PAGE_NETTYPE ,
ID_PAGE_CAMPAIGN ,
ID_PAGE_DRAWMAP ,
ID_PAGE_DATADOWNLOAD ,
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/res/NetworkPlayDisabled.png
Binary file QTfrontend/res/NetworkPlayDisabled.png has changed
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/res/css/qt.css
--- a/QTfrontend/res/css/qt.css Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/res/css/qt.css Thu Dec 20 23:54:41 2012 +0100
@@ -105,7 +105,6 @@
outline: none;
}
-
QHeaderView {
border-radius: 0;
border-width: 0;
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/ui/page/pagemain.cpp
--- a/QTfrontend/ui/page/pagemain.cpp Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/ui/page/pagemain.cpp Thu Dec 20 23:54:41 2012 +0100
@@ -46,10 +46,35 @@
BtnSinglePlayer->setWhatsThis(tr("Play a game on a single computer"));
pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
+ //BtnNet = addButton(":/res/NetworkPlay.png", (QBoxLayout*)netLayout, 1, true);
BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
BtnNet->setToolTip(tr("Network Game"));
BtnNet->setWhatsThis(tr("Play a game across a network"));
pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
+ connect(BtnNet, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
+
+ originalNetworkIcon = BtnNet->icon();
+ disabledNetworkIcon = QIcon(":/res/NetworkPlayDisabled.png");
+
+ //QWidget *netLayoutWidget = new QWidget();
+ QVBoxLayout *netLayout = new QVBoxLayout(BtnNet);
+ //pageLayout->addWidget(netLayoutWidget, 2, 2, 1, 2);
+ //netLayoutWidget->setStyleSheet("background: green;");
+ //netLayoutWidget->setFixedSize(314, 260);
+ netLayout->setSpacing(20);
+ netLayout->setAlignment(Qt::AlignHCenter);
+
+ BtnNetLocal = addButton("Play local network game", (QBoxLayout*)netLayout, 0, false);
+ BtnNetLocal->setToolTip(tr("Play a local network game"));
+ BtnNetLocal->setWhatsThis(tr("Play a game across a local area network"));
+ BtnNetLocal->setFixedSize(BtnNet->width() - 50, 60);
+ BtnNetLocal->setVisible(false);
+
+ BtnNetOfficial = addButton("Play official network game", (QBoxLayout*)netLayout, 0, false);
+ BtnNetOfficial->setToolTip(tr("Play a network game"));
+ BtnNetOfficial->setWhatsThis(tr("Play a game on an official server"));
+ BtnNetOfficial->setFixedSize(BtnNet->width() - 50, 60);
+ BtnNetOfficial->setVisible(false);
// button order matters for overlapping (what's on top and what isn't)
BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
@@ -184,3 +209,12 @@
return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
}
+
+void PageMain::toggleNetworkChoice()
+{
+ bool visible = BtnNetLocal->isVisible();
+ BtnNetLocal->setVisible(!visible);
+ BtnNetOfficial->setVisible(!visible);
+ if (visible) BtnNet->setIcon(originalNetworkIcon);
+ else BtnNet->setIcon(disabledNetworkIcon);
+}
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/ui/page/pagemain.h
--- a/QTfrontend/ui/page/pagemain.h Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/ui/page/pagemain.h Thu Dec 20 23:54:41 2012 +0100
@@ -21,15 +21,19 @@
#include "AbstractPage.h"
+class QIcon;
+
class PageMain : public AbstractPage
{
- Q_OBJECT
+ Q_OBJECT
public:
PageMain(QWidget * parent = 0);
QPushButton * BtnSinglePlayer;
QPushButton * BtnNet;
+ QPushButton * BtnNetLocal;
+ QPushButton * BtnNetOfficial;
QPushButton * BtnSetup;
QPushButton * BtnFeedback;
QPushButton * BtnInfo;
@@ -41,8 +45,12 @@
QLayout * bodyLayoutDefinition();
QLayout * footerLayoutDefinition();
void connectSignals();
+ QIcon originalNetworkIcon, disabledNetworkIcon;
QString randomTip() const;
+
+ private slots:
+ void toggleNetworkChoice();
};
#endif
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/ui/page/pagenettype.cpp
--- a/QTfrontend/ui/page/pagenettype.cpp Thu Dec 20 23:14:54 2012 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include
-#include
-
-#include "pagenettype.h"
-
-
-QLayout * PageNetType::bodyLayoutDefinition()
-{
- QGridLayout * pageLayout = new QGridLayout();
- pageLayout->setRowStretch(0, 10);
- pageLayout->setRowStretch(3, 10);
-
- pageLayout->setColumnStretch(1, 10);
- pageLayout->setColumnStretch(2, 20);
- pageLayout->setColumnStretch(3, 10);
-
- BtnLAN = addButton(tr("LAN game"), pageLayout, 1, 2);
- BtnLAN->setWhatsThis(tr("Join or host your own game server in a Local Area Network."));
- BtnOfficialServer = addButton(tr("Official server"), pageLayout, 2, 2);
- BtnOfficialServer->setWhatsThis(tr("Join hundreds of players online!"));
-
- // hack: temporary deactivated - requires server modifications that aren't backward compatible (yet)
- //BtnOfficialServer->setEnabled(false);
-
- return pageLayout;
-}
-
-PageNetType::PageNetType(QWidget* parent) : AbstractPage(parent)
-{
- initPage();
-}
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/ui/page/pagenettype.h
--- a/QTfrontend/ui/page/pagenettype.h Thu Dec 20 23:14:54 2012 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_NETTYPE_H
-#define PAGE_NETTYPE_H
-
-#include "AbstractPage.h"
-
-class PageNetType : public AbstractPage
-{
- Q_OBJECT
-
- public:
- PageNetType(QWidget* parent = 0);
-
- QPushButton * BtnLAN;
- QPushButton * BtnOfficialServer;
-
- protected:
- QLayout * bodyLayoutDefinition();
-};
-
-#endif
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/ui_hwform.cpp
--- a/QTfrontend/ui_hwform.cpp Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/ui_hwform.cpp Thu Dec 20 23:54:41 2012 +0100
@@ -30,7 +30,6 @@
#include "pagefeedback.h"
#include "pageingame.h"
#include "pagescheme.h"
-#include "pagenettype.h"
#include "pageroomslist.h"
#include "pageinfo.h"
#include "pagenetgame.h"
@@ -132,9 +131,6 @@
pageAdmin = new PageAdmin();
Pages->addWidget(pageAdmin);
- pageNetType = new PageNetType();
- Pages->addWidget(pageNetType);
-
pageCampaign = new PageCampaign();
Pages->addWidget(pageCampaign);
diff -r ec9f94ab2737 -r e2c01fbf36c0 QTfrontend/ui_hwform.h
--- a/QTfrontend/ui_hwform.h Thu Dec 20 23:14:54 2012 +0100
+++ b/QTfrontend/ui_hwform.h Thu Dec 20 23:54:41 2012 +0100
@@ -41,7 +41,6 @@
class PageConnecting;
class PageScheme;
class PageAdmin;
-class PageNetType;
class PageDrawMap;
class PageVideos;
class QStackedLayout;
@@ -76,7 +75,6 @@
PageConnecting *pageConnecting;
PageScheme *pageScheme;
PageAdmin *pageAdmin;
- PageNetType *pageNetType;
PageCampaign *pageCampaign;
PageDrawMap *pageDrawMap;
PageVideos *pageVideos;