QTfrontend/pages.cpp
author unc0rr
Fri, 09 Jan 2009 11:55:05 +0000
changeset 1624 3cbf01d31e5c
parent 1621 d1ded2532d3f
child 1644 1e51e80c383c
permissions -rw-r--r--
- Fix bug when hedgehog was unable to drop some weapons from rope if it thrown rope in jump - This makes engine incompatible, so increase protocol number
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 923
diff changeset
     2
 * Hedgewars, a free turn based strategy game
1236
f9110fd03754 Add stubs for hats implementation
unc0rr
parents: 1225
diff changeset
     3
 * Copyright (c) 2006-2008 Andrey Korotaev <unC0Rr@gmail.com>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     4
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     8
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    12
 * GNU General Public License for more details.
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    13
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    15
 * along with this program; if not, write to the Free Software
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    17
 */
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    18
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    19
#include <QGridLayout>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    20
#include <QPushButton>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    21
#include <QGroupBox>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    22
#include <QComboBox>
311
b8905423f19f - Limit list of teams in game with 200 px
unc0rr
parents: 310
diff changeset
    23
#include <QCheckBox>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    24
#include <QLabel>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    25
#include <QToolBox>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    26
#include <QLineEdit>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    27
#include <QListWidget>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    28
#include <QApplication>
231
c77b16e48273 bots power icons added
displacer
parents: 187
diff changeset
    29
#include <QSpinBox>
452
45fbb9df0c99 problems with widget sizes for net chat
displacer
parents: 451
diff changeset
    30
#include <QTextEdit>
636
dc93ac775bb9 - Switch between local and internet game
unc0rr
parents: 632
diff changeset
    31
#include <QRadioButton>
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
    32
#include <QTableView>
671
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
    33
#include <QMessageBox>
673
bd82104a28af - Save after save now works
unc0rr
parents: 672
diff changeset
    34
#include <QHeaderView>
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
    35
#include <QTabWidget>
1377
a9e768739345 - Customize QTextBrowser look
unc0rr
parents: 1334
diff changeset
    36
#include <QTextBrowser>
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
    37
#include <QTableWidget>
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
    38
#include <QAction>
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
    39
#include <QMenu>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    40
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    41
#include "pages.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    42
#include "sdlkeys.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    43
#include "hwconsts.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    44
#include "gamecfgwidget.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    45
#include "teamselect.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    46
#include "gamecfgwidget.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    47
#include "SquareLabel.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    48
#include "mapContainer.h"
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
    49
#include "about.h"
297
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
    50
#include "fpsedit.h"
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
    51
#include "netserverslist.h"
412
2ddcc3e3e644 udp server detecting experimental version
displacer
parents: 373
diff changeset
    52
#include "netudpwidget.h"
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
    53
#include "chatwidget.h"
579
94db15de0392 - Some changes to make build process clear
unc0rr
parents: 555
diff changeset
    54
#include "playrecordpage.h"
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 603
diff changeset
    55
#include "selectWeapon.h"
1192
63b7961f68de Add iconed groupbox class
unc0rr
parents: 1168
diff changeset
    56
#include "igbox.h"
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
    57
#include "hats.h"
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    58
684
257444d8429f some copy/paste code removed
displacer
parents: 683
diff changeset
    59
PageMain::PageMain(QWidget* parent) : 
257444d8429f some copy/paste code removed
displacer
parents: 683
diff changeset
    60
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    61
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    62
	QGridLayout * pageLayout = new QGridLayout(this);
1148
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    63
	//pageLayout->setColumnStretch(0, 1);
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    64
	//pageLayout->setColumnStretch(1, 2);
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    65
	//pageLayout->setColumnStretch(2, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    66
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    67
	//QPushButton* btnLogo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    68
	//pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
1148
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    69
	pageLayout->setRowStretch(0, 1);
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    70
	pageLayout->setRowStretch(1, 1);
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    71
	pageLayout->setRowStretch(2, 0);
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    72
	pageLayout->setRowStretch(3, 1);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    73
	pageLayout->setRowStretch(4, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    74
1152
c72b939c00df Make buttons border have different colors when mouse is over or it is pressed
unc0rr
parents: 1151
diff changeset
    75
	BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
    76
	BtnSinglePlayer->setToolTip(tr("Local Game (Play a game on a single computer)"));
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    77
	pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    78
1152
c72b939c00df Make buttons border have different colors when mouse is over or it is pressed
unc0rr
parents: 1151
diff changeset
    79
	BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
    80
	BtnNet->setToolTip(tr("Network Game (Play a game across a network)"));
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    81
	pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
579
94db15de0392 - Some changes to make build process clear
unc0rr
parents: 555
diff changeset
    82
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    83
	BtnSetup = addButton(":/res/Settings.png", pageLayout, 4, 3, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    84
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    85
	//BtnInfo = addButton(":/res/About.png", pageLayout, 3, 1, 1, 2, true);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    86
	BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
1212
9890facbe047 Fix "Hedgewars" button look
unc0rr
parents: 1199
diff changeset
    87
	BtnInfo->setStyleSheet("border: transparent;background: transparent;");
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    88
	pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    89
	//pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    90
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    91
	BtnExit = addButton(":/res/Exit.png", pageLayout, 4, 0, 1, 1, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    92
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    93
788
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 730
diff changeset
    94
PageEditTeam::PageEditTeam(QWidget* parent) :
692
07787e748831 code size reduse
displacer
parents: 686
diff changeset
    95
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    96
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    97
	QGridLayout * pageLayout = new QGridLayout(this);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
    98
	QTabWidget * tbw = new QTabWidget(this);
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
    99
	QWidget * page1 = new QWidget(this);
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   100
	QWidget * page2 = new QWidget(this);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   101
	tbw->addTab(page1, tr("General"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   102
	tbw->addTab(page2, tr("Advanced"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   103
	pageLayout->addWidget(tbw, 0, 0, 1, 3);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   104
	BtnTeamDiscard = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   105
	BtnTeamSave = addButton(":/res/Save.png", pageLayout, 1, 2, true);;
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   106
	BtnTeamSave->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   107
	
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   108
	QHBoxLayout * page1Layout = new QHBoxLayout(page1);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   109
	page1Layout->setAlignment(Qt::AlignTop);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   110
	QGridLayout * page2Layout = new QGridLayout(page2);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   111
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   112
// ====== Page 1 ======
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   113
	QVBoxLayout * vbox1 = new QVBoxLayout();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   114
	QVBoxLayout * vbox2 = new QVBoxLayout();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   115
	QVBoxLayout * vbox3 = new QVBoxLayout();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   116
	page1Layout->addLayout(vbox1);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   117
	page1Layout->addLayout(vbox2);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   118
	page1Layout->addLayout(vbox3);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   119
	
588
b2e61fc49e5d Better stub for Training mode
unc0rr
parents: 587
diff changeset
   120
	GBoxHedgehogs = new QGroupBox(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   121
	GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   122
	GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   123
	QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   124
	
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   125
	HatsModel * hatsModel = new HatsModel(GBoxHedgehogs);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   126
	for(int i = 0; i < 8; i++)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   127
	{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   128
		HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
1216
df1b19976e28 Allow team and hh name length be up to 64 letters length
unc0rr
parents: 1212
diff changeset
   129
		HHNameEdit[i]->setMaxLength(64);
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   130
		HHNameEdit[i]->setMinimumWidth(120);
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   131
		GBHLayout->addWidget(HHNameEdit[i], i, 0);
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   132
		
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   133
		HHHats[i] = new QComboBox(GBoxHedgehogs);
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   134
		HHHats[i]->setModel(hatsModel);
1282
76533d0e76e3 Full-size hedgehog in hats selection widget
unc0rr
parents: 1252
diff changeset
   135
		HHHats[i]->setIconSize(QSize(32, 37));
76533d0e76e3 Full-size hedgehog in hats selection widget
unc0rr
parents: 1252
diff changeset
   136
		//HHHats[i]->setSizeAdjustPolicy(QComboBox::AdjustToContents);
1239
4901abe4c3b0 - Finish hat selection widget
unc0rr
parents: 1238
diff changeset
   137
		//HHHats[i]->setModelColumn(1);
1240
16b85f292030 Store selected hats in team config
unc0rr
parents: 1239
diff changeset
   138
		//HHHats[i]->setMinimumWidth(132);
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   139
		GBHLayout->addWidget(HHHats[i], i, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   140
	}
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   141
	vbox1->addWidget(GBoxHedgehogs);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   142
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   143
1288
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   144
	GBoxTeam = new QGroupBox(this);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   145
	GBoxTeam->setTitle(QGroupBox::tr("Team"));
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   146
	GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   147
	QVBoxLayout * GBTLayout = new QVBoxLayout(GBoxTeam);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   148
	TeamNameEdit = new QLineEdit(GBoxTeam);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   149
	TeamNameEdit->setMaxLength(64);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   150
	GBTLayout->addWidget(TeamNameEdit);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   151
	vbox2->addWidget(GBoxTeam);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   152
	
1290
3cb7f6b5000e Fix frontend
unc0rr
parents: 1288
diff changeset
   153
	CBTeamLvl = new QComboBox(GBoxTeam);
1440
6439fa9af904 Replace grey hedgehogs
unc0rr
parents: 1415
diff changeset
   154
	CBTeamLvl->setIconSize(QSize(48, 48));
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   155
	CBTeamLvl->addItem(QIcon(":/res/botlevels/0.png"), QComboBox::tr("Human"));
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   156
	for(int i = 5; i > 0; i--)
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   157
		CBTeamLvl->addItem(
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   158
				QIcon(QString(":/res/botlevels/%1.png").arg(6 - i)),
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   159
				QString("%1 %2").arg(QComboBox::tr("Level")).arg(i)
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   160
				);
1288
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   161
	GBTLayout->addWidget(CBTeamLvl);
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   162
	
1290
3cb7f6b5000e Fix frontend
unc0rr
parents: 1288
diff changeset
   163
	CBGrave = new QComboBox(GBoxTeam);
1288
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   164
	CBGrave->setMaxCount(65535);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   165
	CBGrave->setIconSize(QSize(32, 32));
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   166
	GBTLayout->addWidget(CBGrave);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   167
	
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   168
	GBoxFort = new QGroupBox(this);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   169
	GBoxFort->setTitle(QGroupBox::tr("Fort"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   170
	QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   171
	CBFort = new QComboBox(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   172
	CBFort->setMaxCount(65535);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   173
	GBFLayout->addWidget(CBFort, 0, 0);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   174
	FortPreview = new SquareLabel(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   175
	FortPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   176
	FortPreview->setPixmap(QPixmap());
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   177
	GBFLayout->addWidget(FortPreview, 1, 0);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   178
	vbox3->addWidget(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   179
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   180
	QDir tmpdir;
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   181
	tmpdir.cd(datadir->absolutePath());
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   182
	tmpdir.cd("Forts");
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   183
	tmpdir.setFilter(QDir::Files);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   184
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   185
	connect(CBFort, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(CBFort_activated(const QString &)));
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   186
	CBFort->addItems(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1"));
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   187
	
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   188
	tmpdir.cd("../Graphics/Graves");
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   189
	QStringList list = tmpdir.entryList(QStringList("*.png"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   190
	for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   191
	{
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   192
		QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + *it);
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   193
		QIcon icon(pix.copy(0, 0, 32, 32));
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   194
		CBGrave->addItem(icon, (*it).replace(QRegExp("^(.*)\\.png"), "\\1"));
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   195
	}
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   196
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   197
	vbox1->addStretch();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   198
	vbox2->addStretch();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   199
//	vbox3->addStretch();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   200
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   201
// ====== Page 2 ======
588
b2e61fc49e5d Better stub for Training mode
unc0rr
parents: 587
diff changeset
   202
	GBoxBinds = new QGroupBox(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   203
	GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   204
	QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   205
	BindsBox = new QToolBox(GBoxBinds);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   206
	BindsBox->setLineWidth(0);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   207
	GBBLayout->addWidget(BindsBox);
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   208
	page_A = new QWidget(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   209
	BindsBox->addItem(page_A, QToolBox::tr("Actions"));
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   210
	page_W = new QWidget(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   211
	BindsBox->addItem(page_W, QToolBox::tr("Weapons"));
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   212
	page_WP = new QWidget(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   213
	BindsBox->addItem(page_WP, QToolBox::tr("Weapon properties"));
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   214
	page_O = new QWidget(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   215
	BindsBox->addItem(page_O, QToolBox::tr("Other"));
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   216
	page2Layout->addWidget(GBoxBinds, 0, 0);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   217
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   218
	QStringList binds;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   219
	for(int i = 0; strlen(sdlkeys[i][1]) > 0; i++)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   220
	{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   221
		binds << sdlkeys[i][1];
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   222
	}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   223
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   224
	quint16 widind = 0, i = 0;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   225
	while (i < BINDS_NUMBER) {
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   226
		quint16 num = 0;
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   227
		QWidget * curW = BindsBox->widget(widind);
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   228
		QGridLayout * pagelayout = new QGridLayout(curW);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   229
		do {
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   230
			LBind[i] = new QLabel(curW);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   231
			LBind[i]->setText(QApplication::translate("binds", cbinds[i].name));
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   232
			LBind[i]->setAlignment(Qt::AlignRight);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   233
			pagelayout->addWidget(LBind[i], num, 0);
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   234
			CBBind[i] = new QComboBox(curW);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   235
			CBBind[i]->addItems(binds);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   236
			pagelayout->addWidget(CBBind[i], num, 1);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   237
			num++;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   238
		} while (!cbinds[i++].chwidget);
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   239
		pagelayout->addWidget(new QWidget(curW), num, 0, 1, 2);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   240
		widind++;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   241
	}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   242
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   243
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   244
void PageEditTeam::CBFort_activated(const QString & fortname)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   245
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   246
	QPixmap pix(datadir->absolutePath() + "/Forts/" + fortname + "L.png");
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   247
	FortPreview->setPixmap(pix);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   248
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   249
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   250
PageMultiplayer::PageMultiplayer(QWidget* parent) :
692
07787e748831 code size reduse
displacer
parents: 686
diff changeset
   251
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   252
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   253
	QGridLayout * pageLayout = new QGridLayout(this);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   254
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   255
	BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   256
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   257
	gameCFG = new GameCFGWidget(this);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   258
	pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
696
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 693
diff changeset
   259
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   260
	pageLayout->setRowStretch(1, 1);
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   261
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   262
	teamsSelect = new TeamSelWidget(this);
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   263
	pageLayout->addWidget(teamsSelect, 0, 2, 2, 2);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   264
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   265
	BtnStartMPGame = addButton(tr("Start"), pageLayout, 2, 3);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   266
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   267
1249
b6670a6ea2d0 Remove 25pix margin on every page, so exit button is almost in the same place on all pages
unc0rr
parents: 1240
diff changeset
   268
PageOptions::PageOptions(QWidget* parent) :
692
07787e748831 code size reduse
displacer
parents: 686
diff changeset
   269
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   270
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   271
	QGridLayout * pageLayout = new QGridLayout(this);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   272
	pageLayout->setColumnStretch(0, 100);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   273
	pageLayout->setColumnStretch(1, 100);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   274
	pageLayout->setColumnStretch(2, 100);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   275
	pageLayout->setRowStretch(0, 0);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   276
	pageLayout->setRowStretch(1, 0);
719
bea32693bd7a - Fix layout on options page
unc0rr
parents: 718
diff changeset
   277
	pageLayout->setRowStretch(2, 0);
bea32693bd7a - Fix layout on options page
unc0rr
parents: 718
diff changeset
   278
	pageLayout->setRowStretch(3, 100);
bea32693bd7a - Fix layout on options page
unc0rr
parents: 718
diff changeset
   279
	pageLayout->setRowStretch(4, 0);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   280
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   281
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   282
	QGroupBox * gbTwoBoxes = new QGroupBox(this);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   283
	pageLayout->addWidget(gbTwoBoxes, 0, 0, 1, 3);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   284
	QHBoxLayout * gbTBLayout = new QHBoxLayout(gbTwoBoxes);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   285
	{
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   286
		teamsBox = new IconedGroupBox(this);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   287
		teamsBox->setIcon(QIcon(":/res/teamicon.png"));
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   288
		teamsBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   289
		teamsBox->setTitle(QGroupBox::tr("Teams"));
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   290
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   291
		QGridLayout * GBTlayout = new QGridLayout(teamsBox);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   292
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   293
		BtnNewTeam = addButton(tr("New team"), GBTlayout, 1, 0);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   294
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   295
		CBTeamName = new QComboBox(teamsBox);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   296
		GBTlayout->addWidget(CBTeamName, 0, 0, 1, 2);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   297
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   298
		BtnEditTeam = addButton(tr("Edit team"), GBTlayout, 1, 1);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   299
		
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   300
		labelNN = new QLabel(teamsBox);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   301
		labelNN->setText(QLabel::tr("Net nick"));
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   302
		GBTlayout->addWidget(labelNN, 2, 0, 1, 2);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   303
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   304
		editNetNick = new QLineEdit(teamsBox);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   305
		editNetNick->setMaxLength(20);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   306
		editNetNick->setText(QLineEdit::tr("unnamed"));
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   307
		GBTlayout->addWidget(editNetNick, 3, 0, 1, 2);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   308
		
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   309
		gbTBLayout->addWidget(teamsBox);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   310
	}
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   311
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   312
	{
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   313
		IconedGroupBox* groupWeapons = new IconedGroupBox(this);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   314
		groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   315
		groupWeapons->setIcon(QIcon(":/res/weaponsicon.png"));
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   316
		//groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   317
		groupWeapons->setTitle(QGroupBox::tr("Weapons"));
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   318
		QGridLayout * WeaponsLayout = new QGridLayout(groupWeapons);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   319
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   320
		WeaponsButt = addButton(tr("Weapons set"), WeaponsLayout, 1, 0);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   321
		WeaponsName = new QComboBox(this);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   322
		WeaponsLayout->addWidget(WeaponsName, 0, 0, 1, 2);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   323
		WeaponEdit = addButton(tr("Edit"), WeaponsLayout, 1, 1);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   324
		gbTBLayout->addWidget(groupWeapons);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   325
	}
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   326
1193
2911384169b4 Finish iconed groupbox implementation
unc0rr
parents: 1192
diff changeset
   327
	AGGroupBox = new IconedGroupBox(this);
2911384169b4 Finish iconed groupbox implementation
unc0rr
parents: 1192
diff changeset
   328
	AGGroupBox->setIcon(QIcon(":/res/graphicsicon.png"));
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   329
	AGGroupBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   330
	AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
693
32a546d1eb3e prepare weapons combo
displacer
parents: 692
diff changeset
   331
	pageLayout->addWidget(AGGroupBox, 2, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   332
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   333
	QVBoxLayout * GBAlayout = new QVBoxLayout(AGGroupBox);
436
3f806cadb4e3 Fix runtime warning
unc0rr
parents: 427
diff changeset
   334
	QHBoxLayout * GBAreslayout = new QHBoxLayout(0);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   335
	QLabel * resolution = new QLabel(AGGroupBox);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   336
	resolution->setText(QLabel::tr("Resolution"));
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   337
	GBAreslayout->addWidget(resolution);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   338
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   339
	CBResolution = new QComboBox(AGGroupBox);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   340
	GBAreslayout->addWidget(CBResolution);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   341
	GBAlayout->addLayout(GBAreslayout);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   342
436
3f806cadb4e3 Fix runtime warning
unc0rr
parents: 427
diff changeset
   343
	QHBoxLayout * GBAfpslayout = new QHBoxLayout(0);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   344
	QLabel * maxfps = new QLabel(AGGroupBox);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   345
	maxfps->setText(QLabel::tr("FPS limit"));
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   346
	GBAfpslayout->addWidget(maxfps);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   347
	GBAlayout->addLayout(GBAfpslayout);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   348
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   349
	CBFullscreen = new QCheckBox(AGGroupBox);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   350
	CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   351
	GBAlayout->addWidget(CBFullscreen);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   352
1162
91bf5e3e558d Frontend Fullscreen mode added
displacer
parents: 1157
diff changeset
   353
	CBFrontendFullscreen = new QCheckBox(AGGroupBox);
91bf5e3e558d Frontend Fullscreen mode added
displacer
parents: 1157
diff changeset
   354
	CBFrontendFullscreen->setText(QCheckBox::tr("Frontend fullscreen"));
91bf5e3e558d Frontend Fullscreen mode added
displacer
parents: 1157
diff changeset
   355
	GBAlayout->addWidget(CBFrontendFullscreen);
91bf5e3e558d Frontend Fullscreen mode added
displacer
parents: 1157
diff changeset
   356
1157
c2e02c52dcad Try to modify QGroupBox view
unc0rr
parents: 1153
diff changeset
   357
	CBEnableSound = new QCheckBox(AGGroupBox);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   358
	CBEnableSound->setText(QCheckBox::tr("Enable sound"));
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   359
	GBAlayout->addWidget(CBEnableSound);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   360
1157
c2e02c52dcad Try to modify QGroupBox view
unc0rr
parents: 1153
diff changeset
   361
	CBEnableMusic = new QCheckBox(AGGroupBox);
1129
b74ffca22762 Add a checkbox in frontend to turn music off
unc0rr
parents: 1066
diff changeset
   362
	CBEnableMusic->setText(QCheckBox::tr("Enable music"));
b74ffca22762 Add a checkbox in frontend to turn music off
unc0rr
parents: 1066
diff changeset
   363
	GBAlayout->addWidget(CBEnableMusic);
b74ffca22762 Add a checkbox in frontend to turn music off
unc0rr
parents: 1066
diff changeset
   364
297
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
   365
	CBShowFPS = new QCheckBox(AGGroupBox);
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
   366
	CBShowFPS->setText(QCheckBox::tr("Show FPS"));
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   367
	GBAlayout->addWidget(CBShowFPS);
297
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
   368
529
812682c1ab62 Option for alternative damage tags
unc0rr
parents: 492
diff changeset
   369
	CBAltDamage = new QCheckBox(AGGroupBox);
812682c1ab62 Option for alternative damage tags
unc0rr
parents: 492
diff changeset
   370
	CBAltDamage->setText(QCheckBox::tr("Alternative damage show"));
812682c1ab62 Option for alternative damage tags
unc0rr
parents: 492
diff changeset
   371
	GBAlayout->addWidget(CBAltDamage);
812682c1ab62 Option for alternative damage tags
unc0rr
parents: 492
diff changeset
   372
1487
b4cc59a6d50a Add an option to name records with current date and time
unc0rr
parents: 1457
diff changeset
   373
	CBNameWithDate = new QCheckBox(AGGroupBox);
b4cc59a6d50a Add an option to name records with current date and time
unc0rr
parents: 1457
diff changeset
   374
	CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
b4cc59a6d50a Add an option to name records with current date and time
unc0rr
parents: 1457
diff changeset
   375
	GBAlayout->addWidget(CBNameWithDate);
b4cc59a6d50a Add an option to name records with current date and time
unc0rr
parents: 1457
diff changeset
   376
297
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
   377
	fpsedit = new FPSEdit(AGGroupBox);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   378
	GBAfpslayout->addWidget(fpsedit);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   379
1157
c2e02c52dcad Try to modify QGroupBox view
unc0rr
parents: 1153
diff changeset
   380
	BtnSaveOptions = addButton(":/res/Save.png", pageLayout, 4, 2, true);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   381
	BtnSaveOptions->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   382
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   383
	BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   384
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   385
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   386
PageNet::PageNet(QWidget* parent) : AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   387
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   388
	QFont * font14 = new QFont("MS Shell Dlg", 14);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   389
	QGridLayout * pageLayout = new QGridLayout(this);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   390
	pageLayout->setColumnStretch(0, 1);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   391
	pageLayout->setColumnStretch(1, 1);
617
127510b442ca Better Net page
unc0rr
parents: 612
diff changeset
   392
	pageLayout->setColumnStretch(2, 1);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   393
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   394
	BtnNetSvrStart = new QPushButton(this);
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   395
	BtnNetSvrStart->setFont(*font14);
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   396
	BtnNetSvrStart->setText(QPushButton::tr("Start server"));
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1409
diff changeset
   397
	BtnNetSvrStart->setVisible(haveServer);
1395
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   398
	pageLayout->addWidget(BtnNetSvrStart, 4, 2);
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   399
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   400
	BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   401
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   402
	ConnGroupBox = new QGroupBox(this);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   403
	ConnGroupBox->setTitle(QGroupBox::tr("Net game"));
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   404
	pageLayout->addWidget(ConnGroupBox, 2, 0, 1, 3);
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   405
	GBClayout = new QGridLayout(ConnGroupBox);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   406
	GBClayout->setColumnStretch(0, 1);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   407
	GBClayout->setColumnStretch(1, 1);
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   408
	GBClayout->setColumnStretch(2, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   409
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   410
	BtnNetConnect = new QPushButton(ConnGroupBox);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   411
	BtnNetConnect->setFont(*font14);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   412
	BtnNetConnect->setText(QPushButton::tr("Connect"));
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   413
	GBClayout->addWidget(BtnNetConnect, 2, 2);
416
595d8663254d update button for udp servers list
displacer
parents: 412
diff changeset
   414
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   415
	tvServersList = new QTableView(ConnGroupBox);
671
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   416
	tvServersList->setSelectionBehavior(QAbstractItemView::SelectRows);
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   417
	GBClayout->addWidget(tvServersList, 1, 0, 1, 3);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   418
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   419
	BtnUpdateSList = new QPushButton(ConnGroupBox);
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   420
	BtnUpdateSList->setFont(*font14);
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   421
	BtnUpdateSList->setText(QPushButton::tr("Update"));
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   422
	GBClayout->addWidget(BtnUpdateSList, 2, 0);
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
   423
653
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   424
	BtnSpecifyServer = new QPushButton(ConnGroupBox);
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   425
	BtnSpecifyServer->setFont(*font14);
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   426
	BtnSpecifyServer->setText(QPushButton::tr("Specify"));
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   427
	GBClayout->addWidget(BtnSpecifyServer, 2, 1);
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   428
1395
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   429
	BtnOfficialServer = new QPushButton(ConnGroupBox);
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   430
	BtnOfficialServer->setFont(*font14);
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   431
	BtnOfficialServer->setText(QPushButton::tr("Join official server"));
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   432
	GBClayout->addWidget(BtnOfficialServer, 3, 0, 1, 3);
636
dc93ac775bb9 - Switch between local and internet game
unc0rr
parents: 632
diff changeset
   433
668
0d7683a66d61 - Share much code between models
unc0rr
parents: 667
diff changeset
   434
	connect(BtnNetConnect, SIGNAL(clicked()), this, SLOT(slotConnect()));
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   435
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   436
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   437
void PageNet::updateServersList()
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   438
{
1310
4616e15d566f Get rid of "internet" network game mode
unc0rr
parents: 1290
diff changeset
   439
	tvServersList->setModel(new HWNetUdpModel(tvServersList));
659
5eafb20566f1 - Fix some stupid object casts
unc0rr
parents: 657
diff changeset
   440
673
bd82104a28af - Save after save now works
unc0rr
parents: 672
diff changeset
   441
	tvServersList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
bd82104a28af - Save after save now works
unc0rr
parents: 672
diff changeset
   442
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   443
	static_cast<HWNetServersModel *>(tvServersList->model())->updateList();
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   444
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   445
	connect(BtnUpdateSList, SIGNAL(clicked()), static_cast<HWNetServersModel *>(tvServersList->model()), SLOT(updateList()));
671
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   446
	connect(tvServersList, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotConnect()));
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   447
}
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   448
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   449
void PageNet::slotConnect()
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   450
{
671
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   451
	HWNetServersModel * model = static_cast<HWNetServersModel *>(tvServersList->model());
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   452
	QModelIndex mi = tvServersList->currentIndex();
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   453
	if(!mi.isValid())
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   454
	{
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   455
		QMessageBox::information(this, tr("Error"), tr("Please, select server from the list above"));
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   456
		return;
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   457
	}
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   458
	QString host = model->index(mi.row(), 1).data().toString();
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   459
	quint16 port = model->index(mi.row(), 2).data().toUInt();
672
08ed55ea1e2a - Fix a bug when server fails to start, and then connecting to another server on the same host (strange, the fix won't work on my machine)
unc0rr
parents: 671
diff changeset
   460
08ed55ea1e2a - Fix a bug when server fails to start, and then connecting to another server on the same host (strange, the fix won't work on my machine)
unc0rr
parents: 671
diff changeset
   461
	emit connectClicked(host, port);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   462
}
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   463
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   464
PageNetServer::PageNetServer(QWidget* parent) : AbstractPage(parent)
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   465
{
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   466
	QFont * font14 = new QFont("MS Shell Dlg", 14);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   467
	QGridLayout * pageLayout = new QGridLayout(this);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   468
	pageLayout->setColumnStretch(0, 1);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   469
	pageLayout->setColumnStretch(1, 1);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   470
	pageLayout->setColumnStretch(2, 1);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   471
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   472
	pageLayout->setRowStretch(0, 1);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   473
	pageLayout->setRowStretch(1, 0);
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   474
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   475
	BtnBack =addButton(":/res/Exit.png", pageLayout, 1, 0, true);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   476
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   477
	BtnStart = new QPushButton(this);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   478
	BtnStart->setFont(*font14);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   479
	BtnStart->setText(QPushButton::tr("Start"));
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   480
	pageLayout->addWidget(BtnStart, 1, 2);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   481
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   482
	QWidget * wg = new QWidget(this);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   483
	pageLayout->addWidget(wg, 0, 0, 1, 3);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   484
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   485
	QGridLayout * wgLayout = new QGridLayout(wg);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   486
	wgLayout->setColumnStretch(0, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   487
	wgLayout->setColumnStretch(1, 3);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   488
	wgLayout->setColumnStretch(2, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   489
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   490
	wgLayout->setRowStretch(0, 0);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   491
	wgLayout->setRowStretch(1, 1);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   492
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   493
	QGroupBox * gb = new QGroupBox(wg);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   494
	wgLayout->addWidget(gb, 0, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   495
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   496
	QGridLayout * gbLayout = new QGridLayout(gb);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   497
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   498
	labelSD = new QLabel(gb);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   499
	labelSD->setText(QLabel::tr("Server name:"));
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   500
	gbLayout->addWidget(labelSD, 0, 0);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   501
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   502
	leServerDescr = new QLineEdit(gb);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   503
	gbLayout->addWidget(leServerDescr, 0, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   504
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   505
	labelPort = new QLabel(gb);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   506
	labelPort->setText(QLabel::tr("Server port:"));
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   507
	gbLayout->addWidget(labelPort, 1, 0);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   508
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   509
	sbPort = new QSpinBox(gb);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   510
	sbPort->setMinimum(0);
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   511
	sbPort->setMaximum(65535);
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   512
	gbLayout->addWidget(sbPort, 1, 1);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   513
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   514
	BtnDefault = new QPushButton(gb);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   515
	BtnDefault->setText(QPushButton::tr("default"));
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   516
	gbLayout->addWidget(BtnDefault, 1, 2);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   517
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   518
	connect(BtnDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort()));
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   519
}
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   520
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   521
void PageNetServer::setDefaultPort()
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   522
{
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   523
	sbPort->setValue(46631);
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   524
}
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   525
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   526
PageNetGame::PageNetGame(QWidget* parent) : AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   527
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   528
	QFont * font14 = new QFont("MS Shell Dlg", 14);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   529
	QGridLayout * pageLayout = new QGridLayout(this);
452
45fbb9df0c99 problems with widget sizes for net chat
displacer
parents: 451
diff changeset
   530
	pageLayout->setSizeConstraint(QLayout::SetMinimumSize);
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   531
	//pageLayout->setSpacing(1);
463
353c2f830888 fixes last commit problems
displacer
parents: 461
diff changeset
   532
	pageLayout->setColumnStretch(0, 50);
353c2f830888 fixes last commit problems
displacer
parents: 461
diff changeset
   533
	pageLayout->setColumnStretch(1, 50);
322
e7175ae57945 first new widgets added to net game
displacer
parents: 314
diff changeset
   534
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   535
	// chatwidget
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   536
	pChatWidget = new HWChatWidget(this);
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   537
	pageLayout->addWidget(pChatWidget, 1, 0, 2, 1);
464
7f48321fc38a vertical size fix for chatwidget
displacer
parents: 463
diff changeset
   538
	pageLayout->setRowStretch(1, 100);
453
4b1236759402 simple net cha added
displacer
parents: 452
diff changeset
   539
329
4c3aad46baa5 Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents: 323
diff changeset
   540
	pGameCFG = new GameCFGWidget(this);
322
e7175ae57945 first new widgets added to net game
displacer
parents: 314
diff changeset
   541
	pageLayout->addWidget(pGameCFG, 0, 0);
329
4c3aad46baa5 Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents: 323
diff changeset
   542
4c3aad46baa5 Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents: 323
diff changeset
   543
	pNetTeamsWidget = new TeamSelWidget(this);
373
df912aab6b7e network team add can be denied by server
displacer
parents: 336
diff changeset
   544
	pNetTeamsWidget->setAcceptOuter(true);
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   545
	pageLayout->addWidget(pNetTeamsWidget, 0, 1, 2, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   546
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   547
	BtnGo = new QPushButton(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   548
	BtnGo->setFont(*font14);
1404
2b6b6809c2e4 - Fix a bug in READY message handling
unc0rr
parents: 1400
diff changeset
   549
	BtnGo->setText(QPushButton::tr("Ready"));
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   550
	pageLayout->addWidget(BtnGo, 3, 1);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   551
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   552
	BtnBack = addButton(":/res/Exit.png", pageLayout, 3, 0, true);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   553
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   554
	BtnMaster = addButton(tr("Control"), pageLayout, 2, 1);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   555
	QMenu * menu = new QMenu(BtnMaster);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   556
	startGame = new QAction(QAction::tr("Start"), menu);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   557
	restrictJoins = new QAction(QAction::tr("Restrict Joins"), menu);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   558
	restrictJoins->setCheckable(true);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   559
	restrictTeamAdds = new QAction(QAction::tr("Restrict Team Additions"), menu);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   560
	restrictTeamAdds->setCheckable(true);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   561
	menu->addAction(startGame);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   562
	menu->addAction(restrictJoins);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   563
	menu->addAction(restrictTeamAdds);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   564
	
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   565
	BtnMaster->setMenu(menu);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   566
}
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   567
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   568
PageInfo::PageInfo(QWidget* parent) : AbstractPage(parent)
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   569
{
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   570
	QFont * font14 = new QFont("MS Shell Dlg", 14);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   571
	QGridLayout * pageLayout = new QGridLayout(this);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   572
	pageLayout->setColumnStretch(0, 1);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   573
	pageLayout->setColumnStretch(1, 1);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   574
	pageLayout->setColumnStretch(2, 1);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   575
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   576
	BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   577
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   578
	about = new About(this);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   579
	pageLayout->addWidget(about, 0, 0, 1, 3);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   580
}
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 297
diff changeset
   581
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
   582
PageSinglePlayer::PageSinglePlayer(QWidget* parent) : AbstractPage(parent)
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   583
{
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   584
	QFont * font14 = new QFont("MS Shell Dlg", 14);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   585
	QVBoxLayout * vLayout = new QVBoxLayout(this);
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   586
	QHBoxLayout * topLine = new QHBoxLayout();
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   587
	QHBoxLayout * middleLine = new QHBoxLayout();
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   588
	QHBoxLayout * bottomLine = new QHBoxLayout();
1444
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   589
	vLayout->addStretch();
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   590
	vLayout->addLayout(topLine);
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   591
	vLayout->addSpacing(30);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   592
	vLayout->addLayout(middleLine);
1444
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   593
	vLayout->addStretch();
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   594
	vLayout->addLayout(bottomLine);
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   595
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   596
	topLine->addStretch();
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   597
	BtnSimpleGamePage = addButton(":/res/SimpleGame.png", topLine, 0, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   598
	BtnSimpleGamePage->setToolTip(tr("Simple Game (a quick game against the computer, settings are chosen for you)"));
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   599
	topLine->addSpacing(60);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   600
	BtnMultiplayer = addButton(":/res/Multiplayer.png", topLine, 1, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   601
	BtnMultiplayer->setToolTip(tr("Multiplayer (play a hotseat game against your friends, or AI teams)"));
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   602
	topLine->addStretch();
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   603
	
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   604
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   605
	BtnTrainPage = addButton(":/res/Trainings.png", middleLine, 0, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   606
	BtnTrainPage->setToolTip(tr("Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT"));
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   607
	
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   608
	BtnBack = addButton(":/res/Exit.png", bottomLine, 0, true);
1444
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   609
	bottomLine->addStretch();
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   610
1447
e3a05ce15f1a - Fix a message
unc0rr
parents: 1444
diff changeset
   611
	BtnDemos = addButton(":/res/Record.png", bottomLine, 1, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   612
	BtnDemos->setToolTip(tr("Demos (Watch recorded demos)"));
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   613
	BtnLoad = addButton(":/res/Save.png", bottomLine, 2, true);
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   614
	BtnLoad->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   615
	BtnLoad->setToolTip(tr("Load (Load a previously saved game)"));
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   616
}
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   617
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   618
PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent)
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   619
{
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   620
	QFont * font14 = new QFont("MS Shell Dlg", 14);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   621
	QGridLayout * pageLayout = new QGridLayout(this);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   622
	pageLayout->setColumnStretch(0, 1);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   623
	pageLayout->setColumnStretch(1, 2);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   624
	pageLayout->setColumnStretch(2, 1);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   625
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   626
	BtnStartTrain = new QPushButton(this);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   627
	BtnStartTrain->setFont(*font14);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   628
	BtnStartTrain->setText(QPushButton::tr("Go!"));
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   629
	pageLayout->addWidget(BtnStartTrain, 1, 2);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   630
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   631
	BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   632
}
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   633
923
b3d097097b54 Use default ammostore string size for weapons number instead of predefined const
unc0rr
parents: 788
diff changeset
   634
PageSelectWeapon::PageSelectWeapon(QWidget* parent) :
684
257444d8429f some copy/paste code removed
displacer
parents: 683
diff changeset
   635
  AbstractPage(parent)
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   636
{
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   637
	QGridLayout * pageLayout = new QGridLayout(this);
923
b3d097097b54 Use default ammostore string size for weapons number instead of predefined const
unc0rr
parents: 788
diff changeset
   638
	
1576
a02353129a41 Check for deprecated ammo schemes at startup and delete them
unc0rr
parents: 1522
diff changeset
   639
	pWeapons = new SelWeaponWidget(cDefaultAmmoStore->size(), this);
718
f93a38d2c982 delete weapon button added
displacer
parents: 696
diff changeset
   640
	pageLayout->addWidget(pWeapons, 0, 0, 1, 4);
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   641
1168
f3c68684ef88 Finally fix save button look
unc0rr
parents: 1162
diff changeset
   642
	BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
730
6ac11b0aeb12 tr()s everywhere
displacer
parents: 728
diff changeset
   643
	BtnDefault = addButton(tr("Default"), pageLayout, 1, 1);
6ac11b0aeb12 tr()s everywhere
displacer
parents: 728
diff changeset
   644
	BtnDelete = addButton(tr("Delete"), pageLayout, 1, 2);
1168
f3c68684ef88 Finally fix save button look
unc0rr
parents: 1162
diff changeset
   645
	BtnSave = addButton(":/res/Save.png", pageLayout, 1, 3, true);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   646
	BtnSave->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");	
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   647
}
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   648
1249
b6670a6ea2d0 Remove 25pix margin on every page, so exit button is almost in the same place on all pages
unc0rr
parents: 1240
diff changeset
   649
PageInGame::PageInGame(QWidget* parent) :
686
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   650
  AbstractPage(parent)
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   651
{
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   652
	QLabel * label = new QLabel(this);
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   653
	label->setText("In game...");
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   654
}
1311
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   655
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   656
PageRoomsList::PageRoomsList(QWidget* parent) :
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   657
  AbstractPage(parent)
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   658
{
1312
0078e4f72d40 Create a page for rooms list
unc0rr
parents: 1311
diff changeset
   659
	QGridLayout * pageLayout = new QGridLayout(this);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   660
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   661
	roomName = new QLineEdit(this);
1334
b58afaadf7ae Send team removal message to others in room when client disconnects
unc0rr
parents: 1315
diff changeset
   662
	roomName->setMaxLength(60);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   663
	pageLayout->addWidget(roomName, 0, 0);
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   664
	
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   665
	roomsList = new QTableWidget(this);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   666
	roomsList->setColumnCount(3);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   667
	roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   668
	roomsList->verticalHeader()->setVisible(false);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   669
	roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   670
	roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
1522
6794cf8f1e6f Add chat widget to lobby page (not usable yet)
unc0rr
parents: 1487
diff changeset
   671
	pageLayout->addWidget(roomsList, 1, 0, 3, 1);
1584
90f6a5abad17 Save much space for chat widget on lobby page by removing server message widget (now this messages goes to chat)
unc0rr
parents: 1576
diff changeset
   672
	pageLayout->setRowStretch(2, 100);
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   673
	
1584
90f6a5abad17 Save much space for chat widget on lobby page by removing server message widget (now this messages goes to chat)
unc0rr
parents: 1576
diff changeset
   674
	chatWidget = new HWChatWidget(this);
90f6a5abad17 Save much space for chat widget on lobby page by removing server message widget (now this messages goes to chat)
unc0rr
parents: 1576
diff changeset
   675
	pageLayout->addWidget(chatWidget, 4, 0, 1, 2);
90f6a5abad17 Save much space for chat widget on lobby page by removing server message widget (now this messages goes to chat)
unc0rr
parents: 1576
diff changeset
   676
	pageLayout->setRowStretch(4, 350);
1522
6794cf8f1e6f Add chat widget to lobby page (not usable yet)
unc0rr
parents: 1487
diff changeset
   677
1584
90f6a5abad17 Save much space for chat widget on lobby page by removing server message widget (now this messages goes to chat)
unc0rr
parents: 1576
diff changeset
   678
	BtnBack = addButton(":/res/Exit.png", pageLayout, 5, 0, true);
1312
0078e4f72d40 Create a page for rooms list
unc0rr
parents: 1311
diff changeset
   679
	BtnCreate = addButton(tr("Create"), pageLayout, 0, 1);
0078e4f72d40 Create a page for rooms list
unc0rr
parents: 1311
diff changeset
   680
	BtnJoin = addButton(tr("Join"), pageLayout, 1, 1);
1522
6794cf8f1e6f Add chat widget to lobby page (not usable yet)
unc0rr
parents: 1487
diff changeset
   681
	BtnRefresh = addButton(tr("Refresh"), pageLayout, 3, 1);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   682
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   683
	connect(BtnCreate, SIGNAL(clicked()), this, SLOT(onCreateClick()));
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   684
	connect(BtnJoin, SIGNAL(clicked()), this, SLOT(onJoinClick()));
1315
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   685
	connect(BtnRefresh, SIGNAL(clicked()), this, SLOT(onRefreshClick()));
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   686
	connect(roomsList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(onJoinClick()));
1311
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   687
}
1313
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   688
1377
a9e768739345 - Customize QTextBrowser look
unc0rr
parents: 1334
diff changeset
   689
1313
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   690
void PageRoomsList::setRoomsList(const QStringList & list)
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   691
{
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   692
	roomsList->clear();
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   693
	roomsList->setHorizontalHeaderLabels(
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   694
			QStringList() <<
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   695
			QTableWidget::tr("Room name") <<
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   696
			QTableWidget::tr("Players number") <<
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   697
			QTableWidget::tr("Round in progress")
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   698
			);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   699
	
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   700
	if (list.size() % 3)
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   701
		return;
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   702
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   703
	roomsList->setRowCount(list.size() / 3);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   704
	for(int i = 0; i < list.size(); i += 3)
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   705
		for(int t = 0; t < 3; t++)
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   706
		{
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   707
			QTableWidgetItem * item = new QTableWidgetItem(list[i + t]);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   708
			item->setFlags(Qt::ItemIsSelectable);
1400
8196ce1d9be1 Fix rooms list
unc0rr
parents: 1399
diff changeset
   709
			roomsList->setItem(i / 3, t, item);
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   710
		}
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   711
	//roomsList->resizeColumnsToContents();
1313
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   712
}
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   713
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   714
void PageRoomsList::onCreateClick()
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   715
{
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   716
	if (roomName->text().size())
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   717
		emit askForCreateRoom(roomName->text());
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   718
	else
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   719
		QMessageBox::critical(this,
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   720
				tr("Error"),
1315
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   721
				tr("Please, enter room name"),
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   722
				tr("OK"));
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   723
}
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   724
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   725
void PageRoomsList::onJoinClick()
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   726
{
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   727
	QTableWidgetItem * curritem = roomsList->item(roomsList->currentRow(), 0);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   728
	if (!curritem)
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   729
	{
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   730
		QMessageBox::critical(this,
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   731
				tr("Error"),
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   732
				tr("Please, select room from the list"),
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   733
				tr("OK"));
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   734
		return ;
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   735
	}
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   736
	emit askForJoinRoom(curritem->data(Qt::DisplayRole).toString());
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   737
}
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   738
1315
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   739
void PageRoomsList::onRefreshClick()
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   740
{
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   741
	emit askForRoomList();
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   742
}
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   743