QTfrontend/pages.cpp
author unc0rr
Mon, 12 Oct 2009 16:44:30 +0000
changeset 2428 6800f8aa0184
parent 2414 fd9ca82077d8
child 2437 10e4b5fc0d93
permissions -rw-r--r--
Huge Smaxx patch with some fixes by me: - support for non power of two textures - modelview matrix calculation optimizations - health effect when picking up health crates or using vampirism - rc plane training time trial - fix visual gear drawing position (might require recheck) - gamepad support - reordered options in frontend - updated binding options (subcaptions, descriptions and localizable names) - cfg-dir parameter for frontend (allows teams/settings to sit on a usb flash drive for example) - icons for chatroom user list
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>
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
    40
#include <QDataWidgetMapper>
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
    41
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    42
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    43
#include "pages.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    44
#include "sdlkeys.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    45
#include "hwconsts.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 "teamselect.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    48
#include "gamecfgwidget.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    49
#include "SquareLabel.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    50
#include "mapContainer.h"
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
    51
#include "about.h"
297
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
    52
#include "fpsedit.h"
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
    53
#include "netserverslist.h"
412
2ddcc3e3e644 udp server detecting experimental version
displacer
parents: 373
diff changeset
    54
#include "netudpwidget.h"
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
    55
#include "chatwidget.h"
579
94db15de0392 - Some changes to make build process clear
unc0rr
parents: 555
diff changeset
    56
#include "playrecordpage.h"
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 603
diff changeset
    57
#include "selectWeapon.h"
1192
63b7961f68de Add iconed groupbox class
unc0rr
parents: 1168
diff changeset
    58
#include "igbox.h"
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
    59
#include "hats.h"
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
    60
#include "misc.h"
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
    61
#include "togglebutton.h"
2098
c977d7f2aa09 Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents: 2093
diff changeset
    62
#include "hwform.h"
2191
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2155
diff changeset
    63
#include "SDLs.h"
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    64
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
    65
PageMain::PageMain(QWidget* parent) :
684
257444d8429f some copy/paste code removed
displacer
parents: 683
diff changeset
    66
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    67
{
2098
c977d7f2aa09 Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents: 2093
diff changeset
    68
    if(frontendEffects) setAttribute(Qt::WA_NoSystemBackground, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    69
	QGridLayout * pageLayout = new QGridLayout(this);
1148
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    70
	//pageLayout->setColumnStretch(0, 1);
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    71
	//pageLayout->setColumnStretch(1, 2);
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    72
	//pageLayout->setColumnStretch(2, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    73
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    74
	//QPushButton* btnLogo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    75
	//pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
1148
e44de3416af4 images at main page
displacer
parents: 1129
diff changeset
    76
	pageLayout->setRowStretch(0, 1);
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    77
	pageLayout->setRowStretch(1, 1);
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    78
	pageLayout->setRowStretch(2, 0);
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    79
	pageLayout->setRowStretch(3, 1);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    80
	pageLayout->setRowStretch(4, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    81
1152
c72b939c00df Make buttons border have different colors when mouse is over or it is pressed
unc0rr
parents: 1151
diff changeset
    82
	BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
    83
	BtnSinglePlayer->setToolTip(tr("Local Game (Play a game on a single computer)"));
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    84
	pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    85
1152
c72b939c00df Make buttons border have different colors when mouse is over or it is pressed
unc0rr
parents: 1151
diff changeset
    86
	BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
    87
	BtnNet->setToolTip(tr("Network Game (Play a game across a network)"));
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    88
	pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
579
94db15de0392 - Some changes to make build process clear
unc0rr
parents: 555
diff changeset
    89
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    90
	BtnSetup = addButton(":/res/Settings.png", pageLayout, 4, 3, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    91
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    92
	//BtnInfo = addButton(":/res/About.png", pageLayout, 3, 1, 1, 2, true);
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    93
	BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
1212
9890facbe047 Fix "Hedgewars" button look
unc0rr
parents: 1199
diff changeset
    94
	BtnInfo->setStyleSheet("border: transparent;background: transparent;");
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
    95
	pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    96
	//pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    97
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
    98
	BtnExit = addButton(":/res/Exit.png", pageLayout, 4, 0, 1, 1, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    99
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   100
788
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 730
diff changeset
   101
PageEditTeam::PageEditTeam(QWidget* parent) :
692
07787e748831 code size reduse
displacer
parents: 686
diff changeset
   102
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   103
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   104
	QGridLayout * pageLayout = new QGridLayout(this);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   105
	QTabWidget * tbw = new QTabWidget(this);
1389
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   106
	QWidget * page1 = new QWidget(this);
6e411559cc7b Customize team select widget background
unc0rr
parents: 1377
diff changeset
   107
	QWidget * page2 = new QWidget(this);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   108
	tbw->addTab(page1, tr("General"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   109
	tbw->addTab(page2, tr("Advanced"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   110
	pageLayout->addWidget(tbw, 0, 0, 1, 3);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   111
	BtnTeamDiscard = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   112
	BtnTeamSave = addButton(":/res/Save.png", pageLayout, 1, 2, true);;
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   113
	BtnTeamSave->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   114
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   115
	QHBoxLayout * page1Layout = new QHBoxLayout(page1);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   116
	page1Layout->setAlignment(Qt::AlignTop);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   117
	QGridLayout * page2Layout = new QGridLayout(page2);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   118
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   119
// ====== Page 1 ======
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   120
	QVBoxLayout * vbox1 = new QVBoxLayout();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   121
	QVBoxLayout * vbox2 = new QVBoxLayout();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   122
	QVBoxLayout * vbox3 = new QVBoxLayout();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   123
	page1Layout->addLayout(vbox1);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   124
	page1Layout->addLayout(vbox2);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   125
	page1Layout->addLayout(vbox3);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   126
588
b2e61fc49e5d Better stub for Training mode
unc0rr
parents: 587
diff changeset
   127
	GBoxHedgehogs = new QGroupBox(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   128
	GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   129
	GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   130
	QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
1840
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   131
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   132
	signalMapper = new QSignalMapper(this);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   133
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   134
	HatsModel * hatsModel = new HatsModel(GBoxHedgehogs);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   135
	for(int i = 0; i < 8; i++)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   136
	{
1238
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   137
		HHHats[i] = new QComboBox(GBoxHedgehogs);
914bd2a9a249 Add hat selection control to team editing page (it's empty combobox yet)
unc0rr
parents: 1236
diff changeset
   138
		HHHats[i]->setModel(hatsModel);
1282
76533d0e76e3 Full-size hedgehog in hats selection widget
unc0rr
parents: 1252
diff changeset
   139
		HHHats[i]->setIconSize(QSize(32, 37));
76533d0e76e3 Full-size hedgehog in hats selection widget
unc0rr
parents: 1252
diff changeset
   140
		//HHHats[i]->setSizeAdjustPolicy(QComboBox::AdjustToContents);
1239
4901abe4c3b0 - Finish hat selection widget
unc0rr
parents: 1238
diff changeset
   141
		//HHHats[i]->setModelColumn(1);
1240
16b85f292030 Store selected hats in team config
unc0rr
parents: 1239
diff changeset
   142
		//HHHats[i]->setMinimumWidth(132);
1840
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   143
		GBHLayout->addWidget(HHHats[i], i, 0);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   144
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   145
		HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   146
		HHNameEdit[i]->setMaxLength(64);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   147
		HHNameEdit[i]->setMinimumWidth(120);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   148
		GBHLayout->addWidget(HHNameEdit[i], i, 1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   149
1840
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   150
		randButton[i] = addButton(":/res/dice.png", GBHLayout, i, 3, true);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   151
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   152
		connect(randButton[i], SIGNAL(clicked()), signalMapper, SLOT(map()));
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   153
         	signalMapper->setMapping(randButton[i], i);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   154
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   155
	}
1840
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   156
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   157
	randTeamButton = addButton("Random Team", GBHLayout, 9, false);
4747f0232b88 ttsmj2's random teams patch
unc0rr
parents: 1812
diff changeset
   158
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   159
	vbox1->addWidget(GBoxHedgehogs);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   160
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   161
1288
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   162
	GBoxTeam = new QGroupBox(this);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   163
	GBoxTeam->setTitle(QGroupBox::tr("Team"));
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   164
	GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   165
	QVBoxLayout * GBTLayout = new QVBoxLayout(GBoxTeam);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   166
	TeamNameEdit = new QLineEdit(GBoxTeam);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   167
	TeamNameEdit->setMaxLength(64);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   168
	GBTLayout->addWidget(TeamNameEdit);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   169
	vbox2->addWidget(GBoxTeam);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   170
1290
3cb7f6b5000e Fix frontend
unc0rr
parents: 1288
diff changeset
   171
	CBTeamLvl = new QComboBox(GBoxTeam);
1440
6439fa9af904 Replace grey hedgehogs
unc0rr
parents: 1415
diff changeset
   172
	CBTeamLvl->setIconSize(QSize(48, 48));
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   173
	CBTeamLvl->addItem(QIcon(":/res/botlevels/0.png"), QComboBox::tr("Human"));
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   174
	for(int i = 5; i > 0; i--)
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   175
		CBTeamLvl->addItem(
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   176
				QIcon(QString(":/res/botlevels/%1.png").arg(6 - i)),
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   177
				QString("%1 %2").arg(QComboBox::tr("Level")).arg(i)
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   178
				);
1288
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   179
	GBTLayout->addWidget(CBTeamLvl);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   180
1290
3cb7f6b5000e Fix frontend
unc0rr
parents: 1288
diff changeset
   181
	CBGrave = new QComboBox(GBoxTeam);
1288
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   182
	CBGrave->setMaxCount(65535);
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   183
	CBGrave->setIconSize(QSize(32, 32));
cea4a8f52f5a Reorganize team edit page a little (save a lot of space)
unc0rr
parents: 1287
diff changeset
   184
	GBTLayout->addWidget(CBGrave);
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   185
1659
fd593a5e71fb Team class now supports voicepacks
unc0rr
parents: 1649
diff changeset
   186
	{
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   187
		QHBoxLayout * hbox = new QHBoxLayout();
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   188
		CBVoicepack = new QComboBox(GBoxTeam);
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   189
		{
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   190
			QDir tmpdir;
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   191
			tmpdir.cd(datadir->absolutePath());
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   192
			tmpdir.cd("Sounds/voices");
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   193
			QStringList list = tmpdir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name);
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   194
			CBVoicepack->addItems(list);
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   195
		}
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   196
		hbox->addWidget(CBVoicepack, 100);
1718
659b214ba777 Nice icon for sound button
unc0rr
parents: 1701
diff changeset
   197
		BtnTestSound = addButton(":/res/PlaySound.png", hbox, 1, true);
2294
2e6ffb3ef304 For people's consideration. Restore the .11 behaviour of not initialising sound if music is turned off. Reason. I still get 100% CPU useage in frontend due to sucky sound daemon setups *cough*pulseaudio*cough* so this offers an easy workaround for people (turn off music). Disadvantage, this removes Smaxx' code to disable sound-related buttons on failure to init sound.
nemo
parents: 2261
diff changeset
   198
		//BtnTestSound->setEnabled(openal_ready());
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   199
		hbox->setStretchFactor(BtnTestSound, 1);
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   200
		connect(BtnTestSound, SIGNAL(clicked()), this, SLOT(testSound()));
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   201
		GBTLayout->addLayout(hbox);
1659
fd593a5e71fb Team class now supports voicepacks
unc0rr
parents: 1649
diff changeset
   202
	}
fd593a5e71fb Team class now supports voicepacks
unc0rr
parents: 1649
diff changeset
   203
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   204
	GBoxFort = new QGroupBox(this);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   205
	GBoxFort->setTitle(QGroupBox::tr("Fort"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   206
	QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   207
	CBFort = new QComboBox(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   208
	CBFort->setMaxCount(65535);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   209
	GBFLayout->addWidget(CBFort, 0, 0);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   210
	FortPreview = new SquareLabel(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   211
	FortPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   212
	FortPreview->setPixmap(QPixmap());
2072
6e0fcbcc3f60 Custom controls implementing paintEvent play poorly with stars, especially SquareLabel
nemo
parents: 2071
diff changeset
   213
    // perhaps due to handling its own paintevents, SquareLabel doesn't play nice with the stars
6e0fcbcc3f60 Custom controls implementing paintEvent play poorly with stars, especially SquareLabel
nemo
parents: 2071
diff changeset
   214
    //FortPreview->setAttribute(Qt::WA_PaintOnScreen, true);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   215
	GBFLayout->addWidget(FortPreview, 1, 0);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   216
	vbox3->addWidget(GBoxFort);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   217
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   218
	QDir tmpdir;
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   219
	tmpdir.cd(datadir->absolutePath());
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   220
	tmpdir.cd("Forts");
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   221
	tmpdir.setFilter(QDir::Files);
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   222
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   223
	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
   224
	CBFort->addItems(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1"));
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   225
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   226
	tmpdir.cd("../Graphics/Graves");
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   227
	QStringList list = tmpdir.entryList(QStringList("*.png"));
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   228
	for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   229
	{
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   230
		QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + *it);
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   231
		QIcon icon(pix.copy(0, 0, 32, 32));
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   232
		CBGrave->addItem(icon, (*it).replace(QRegExp("^(.*)\\.png"), "\\1"));
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   233
	}
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   234
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   235
	vbox1->addStretch();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   236
	vbox2->addStretch();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   237
//	vbox3->addStretch();
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   238
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   239
// ====== Page 2 ======
588
b2e61fc49e5d Better stub for Training mode
unc0rr
parents: 587
diff changeset
   240
	GBoxBinds = new QGroupBox(this);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   241
	GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   242
	QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   243
	BindsBox = new QToolBox(GBoxBinds);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   244
	BindsBox->setLineWidth(0);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   245
	GBBLayout->addWidget(BindsBox);
1252
2e2719c0a397 - Reorganize headers according to Qt's style guide
unc0rr
parents: 1249
diff changeset
   246
	page2Layout->addWidget(GBoxBinds, 0, 0);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   247
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   248
	quint16 widind = 0, i = 0;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   249
	quint16 num = 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   250
	QWidget * curW = NULL;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   251
	QGridLayout * pagelayout = NULL;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   252
	QLabel* l = NULL;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   253
	while (i < BINDS_NUMBER) {
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   254
		if(cbinds[i].category != NULL)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   255
		{
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   256
			if(curW != NULL)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   257
			{
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   258
				l = new QLabel(curW);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   259
				l->setText("");
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   260
				pagelayout->addWidget(l, num++, 0, 1, 2);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   261
			}
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   262
			curW = new QWidget(this);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   263
			BindsBox->addItem(curW, QApplication::translate("binds (categories)", cbinds[i].category));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   264
			pagelayout = new QGridLayout(curW);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   265
			num = 0;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   266
		}
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   267
		if(cbinds[i].description != NULL)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   268
		{
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   269
			l = new QLabel(curW);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   270
			l->setText((num > 0 ? QString("\n") : QString("")) + QApplication::translate("binds (descriptions)", cbinds[i].description));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   271
			pagelayout->addWidget(l, num++, 0, 1, 2);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   272
		}
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   273
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   274
		l = new QLabel(curW);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   275
		l->setText(QApplication::translate("binds", cbinds[i].name));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   276
		l->setAlignment(Qt::AlignRight);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   277
		pagelayout->addWidget(l, num, 0);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   278
		CBBind[i] = new QComboBox(curW);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   279
		for(int j = 0; sdlkeys[j][1][0] != '\0'; j++)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   280
			CBBind[i]->addItem(QApplication::translate("binds (keys)", sdlkeys[j][1]).contains(": ") ? QApplication::translate("binds (keys)", sdlkeys[j][1]) : QApplication::translate("binds (keys)", "Keyboard") + QString(": ") + QApplication::translate("binds (keys)", sdlkeys[j][1]), sdlkeys[j][0]);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   281
		pagelayout->addWidget(CBBind[i++], num++, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   282
	}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   283
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   284
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   285
void PageEditTeam::CBFort_activated(const QString & fortname)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   286
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   287
	QPixmap pix(datadir->absolutePath() + "/Forts/" + fortname + "L.png");
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   288
	FortPreview->setPixmap(pix);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   289
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   290
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   291
void PageEditTeam::testSound()
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   292
{
2194
1597710c6118 koda adds threading for fadein/out. Untested under windows, but works beautifully under Linux (and presumably OSX, right koda?)
nemo
parents: 2191
diff changeset
   293
	int sound;
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   294
	QDir tmpdir;
2402
edd12b259e7c revert to manual startup of frontend's OpenAL session (keeping voices' bug fixed)
koda
parents: 2395
diff changeset
   295
edd12b259e7c revert to manual startup of frontend's OpenAL session (keeping voices' bug fixed)
koda
parents: 2395
diff changeset
   296
	OpenAL_Init();
edd12b259e7c revert to manual startup of frontend's OpenAL session (keeping voices' bug fixed)
koda
parents: 2395
diff changeset
   297
	
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   298
	tmpdir.cd(datadir->absolutePath());
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   299
	tmpdir.cd("Sounds/voices");
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   300
	tmpdir.cd(CBVoicepack->currentText());
2191
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2155
diff changeset
   301
	QStringList list = tmpdir.entryList(QStringList() << "Illgetyou.ogg" << "Incoming.ogg" << "Stupid.ogg" << "Coward.ogg" << "Firstblood.ogg", QDir::Files);
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2155
diff changeset
   302
	if (list.size()) {
2194
1597710c6118 koda adds threading for fadein/out. Untested under windows, but works beautifully under Linux (and presumably OSX, right koda?)
nemo
parents: 2191
diff changeset
   303
		sound = openal_loadfile(QString(tmpdir.absolutePath() + "/" + list[rand() % list.size()]).toLocal8Bit().constData());
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   304
		openal_playsound(sound);
2191
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2155
diff changeset
   305
	}
1684
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   306
}
b3f4ec08f0a4 A button for checking voicepack (doesn't work yet)
unc0rr
parents: 1677
diff changeset
   307
1287
4a0cbcbe3521 Move preview icons into comboboxes
unc0rr
parents: 1282
diff changeset
   308
PageMultiplayer::PageMultiplayer(QWidget* parent) :
692
07787e748831 code size reduse
displacer
parents: 686
diff changeset
   309
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   310
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   311
	QGridLayout * pageLayout = new QGridLayout(this);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   312
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   313
	BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   314
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   315
	gameCFG = new GameCFGWidget(this);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   316
	pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
696
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 693
diff changeset
   317
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   318
	pageLayout->setRowStretch(1, 1);
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   319
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   320
	teamsSelect = new TeamSelWidget(this);
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   321
	pageLayout->addWidget(teamsSelect, 0, 2, 2, 2);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   322
1218
ada50f82ea53 Save some pixels for chat widget
unc0rr
parents: 1216
diff changeset
   323
	BtnStartMPGame = addButton(tr("Start"), pageLayout, 2, 3);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   324
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   325
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
   326
PageOptions::PageOptions(QWidget* parent) :
692
07787e748831 code size reduse
displacer
parents: 686
diff changeset
   327
  AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   328
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   329
	QGridLayout * pageLayout = new QGridLayout(this);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   330
	pageLayout->setColumnStretch(0, 100);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   331
	pageLayout->setColumnStretch(1, 100);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   332
	pageLayout->setColumnStretch(2, 100);
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   333
	pageLayout->setRowStretch(0, 0);
1644
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   334
	pageLayout->setRowStretch(1, 100);
719
bea32693bd7a - Fix layout on options page
unc0rr
parents: 718
diff changeset
   335
	pageLayout->setRowStretch(2, 0);
1644
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   336
	pageLayout->setContentsMargins(7, 7, 7, 0);
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   337
	pageLayout->setSpacing(0);
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   338
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   339
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   340
	QGroupBox * gbTwoBoxes = new QGroupBox(this);
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   341
	pageLayout->addWidget(gbTwoBoxes, 0, 0, 1, 3);
1644
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   342
	QGridLayout * gbTBLayout = new QGridLayout(gbTwoBoxes);
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   343
	gbTBLayout->setMargin(0);
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   344
	gbTBLayout->setSpacing(0);
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   345
	{
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   346
            teamsBox = new IconedGroupBox(this);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   347
            //teamsBox->setAttribute(Qt::WA_PaintOnScreen, true);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   348
            teamsBox->setIcon(QIcon(":/res/teamicon.png"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   349
            teamsBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   350
            teamsBox->setTitle(QGroupBox::tr("Teams"));
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   351
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   352
            QVBoxLayout * GBTlayout = new QVBoxLayout(teamsBox);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   353
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   354
            CBTeamName = new QComboBox(teamsBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   355
            GBTlayout->addWidget(CBTeamName);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   356
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   357
            QHBoxLayout * layout1 = new QHBoxLayout;
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   358
            GBTlayout->addLayout(layout1);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   359
            BtnNewTeam = addButton(tr("New team"), layout1, 0);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   360
            BtnEditTeam = addButton(tr("Edit team"), layout1, 1);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   361
            layout1->setStretchFactor(BtnNewTeam, 100);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   362
            layout1->setStretchFactor(BtnEditTeam, 100);
1199
543d1268847b More work on options page
unc0rr
parents: 1198
diff changeset
   363
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   364
            QHBoxLayout * layout2 = new QHBoxLayout;
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   365
            GBTlayout->addLayout(layout2);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   366
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   367
            labelNN = new QLabel(teamsBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   368
            labelNN->setText(QLabel::tr("Net nick"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   369
            layout2->addWidget(labelNN);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   370
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   371
            editNetNick = new QLineEdit(teamsBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   372
            editNetNick->setMaxLength(20);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   373
            editNetNick->setText(QLineEdit::tr("unnamed"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   374
            layout2->addWidget(editNetNick);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   375
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   376
            gbTBLayout->addWidget(teamsBox, 0, 0);
1198
b600b0d9408c Reorganize widgets on options page
unc0rr
parents: 1194
diff changeset
   377
	}
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   378
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   379
        {
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   380
            IconedGroupBox* groupWeapons = new IconedGroupBox(this);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   381
            groupWeapons->setContentTopPadding(0);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   382
            groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   383
            groupWeapons->setIcon(QIcon(":/res/weaponsicon.png"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   384
            //groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   385
            groupWeapons->setTitle(QGroupBox::tr("Weapons"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   386
            QGridLayout * WeaponsLayout = new QGridLayout(groupWeapons);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   387
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   388
            WeaponsButt = addButton(tr("Weapons set"), WeaponsLayout, 1, 0);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   389
            WeaponsName = new QComboBox(this);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   390
            WeaponsLayout->addWidget(WeaponsName, 0, 0, 1, 2);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   391
            WeaponEdit = addButton(tr("Edit"), WeaponsLayout, 1, 1);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   392
            gbTBLayout->addWidget(groupWeapons, 1, 0);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   393
        }
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   394
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   395
        {
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   396
            AGGroupBox = new IconedGroupBox(this);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   397
            AGGroupBox->setIcon(QIcon(":/res/graphicsicon.png"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   398
            AGGroupBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   399
            AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
427
b505012a3f15 New widgets layout on PageOptions
unc0rr
parents: 421
diff changeset
   400
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   401
            QVBoxLayout * GBAlayout = new QVBoxLayout(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   402
            QHBoxLayout * GBAreslayout = new QHBoxLayout(0);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   403
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   404
            CBFrontendFullscreen = new QCheckBox(AGGroupBox);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   405
            CBFrontendFullscreen->setText(QCheckBox::tr("Frontend fullscreen"));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   406
            GBAlayout->addWidget(CBFrontendFullscreen);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   407
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   408
            CBFrontendEffects = new QCheckBox(AGGroupBox);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   409
            CBFrontendEffects->setText(QCheckBox::tr("Frontend effects (requires restart)"));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   410
            GBAlayout->addWidget(CBFrontendEffects);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   411
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   412
            QLabel * resolution = new QLabel(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   413
            resolution->setText(QLabel::tr("Resolution"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   414
            GBAreslayout->addWidget(resolution);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   415
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   416
            CBResolution = new QComboBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   417
            GBAreslayout->addWidget(CBResolution);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   418
            GBAlayout->addLayout(GBAreslayout);
1812
3d4692e825e7 'Reduce quality' patch by nemo
unc0rr
parents: 1810
diff changeset
   419
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   420
            CBFullscreen = new QCheckBox(AGGroupBox);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   421
            CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   422
            GBAlayout->addWidget(CBFullscreen);
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   423
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   424
            QHBoxLayout * GBAfpslayout = new QHBoxLayout(0);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   425
            QLabel * maxfps = new QLabel(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   426
            maxfps->setText(QLabel::tr("FPS limit"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   427
            GBAfpslayout->addWidget(maxfps);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   428
            GBAlayout->addLayout(GBAfpslayout);
2098
c977d7f2aa09 Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents: 2093
diff changeset
   429
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   430
            CBReduceQuality = new QCheckBox(AGGroupBox);
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   431
            CBReduceQuality->setText(QCheckBox::tr("Reduced quality"));
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   432
            GBAlayout->addWidget(CBReduceQuality);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   433
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   434
            CBHardwareSound = new QCheckBox(AGGroupBox);
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   435
            CBHardwareSound->setText(QCheckBox::tr("Hardware sound (if available; requires restart)"));
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   436
            //CBHardwareSound->setEnabled(openal_ready());
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   437
            GBAlayout->addWidget(CBHardwareSound);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   438
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   439
            CBEnableSound = new QCheckBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   440
            CBEnableSound->setText(QCheckBox::tr("Enable sound"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   441
            //CBEnableSound->setEnabled(openal_ready());
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   442
            GBAlayout->addWidget(CBEnableSound);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   443
            CBEnableMusic = new QCheckBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   444
            CBEnableMusic->setText(QCheckBox::tr("Enable music"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   445
            //CBEnableMusic->setEnabled(openal_ready());
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   446
            GBAlayout->addWidget(CBEnableMusic);
1129
b74ffca22762 Add a checkbox in frontend to turn music off
unc0rr
parents: 1066
diff changeset
   447
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   448
            QHBoxLayout * GBAvollayout = new QHBoxLayout(0);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   449
            QLabel * vol = new QLabel(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   450
            vol->setText(QLabel::tr("Initial sound volume"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   451
            GBAvollayout->addWidget(vol);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   452
            GBAlayout->addLayout(GBAvollayout);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   453
            volumeBox = new QSpinBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   454
            volumeBox->setRange(0, 100);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   455
            volumeBox->setSingleStep(5);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   456
            //volumeBox->setEnabled(openal_ready());
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   457
            GBAvollayout->addWidget(volumeBox);
1777
88674c291331 Implement initial sound volume option
unc0rr
parents: 1718
diff changeset
   458
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   459
            CBShowFPS = new QCheckBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   460
            CBShowFPS->setText(QCheckBox::tr("Show FPS"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   461
            GBAlayout->addWidget(CBShowFPS);
297
279e10ec31b4 'Show FPS' and 'FPS limit' options
unc0rr
parents: 290
diff changeset
   462
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   463
            CBAltDamage = new QCheckBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   464
            CBAltDamage->setText(QCheckBox::tr("Alternative damage show"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   465
            GBAlayout->addWidget(CBAltDamage);
529
812682c1ab62 Option for alternative damage tags
unc0rr
parents: 492
diff changeset
   466
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   467
            CBNameWithDate = new QCheckBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   468
            CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   469
            GBAlayout->addWidget(CBNameWithDate);
1487
b4cc59a6d50a Add an option to name records with current date and time
unc0rr
parents: 1457
diff changeset
   470
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   471
#ifdef SPARKLE_ENABLED
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   472
            CBAutoUpdate = new QCheckBox(AGGroupBox);
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   473
            CBAutoUpdate->setText(QCheckBox::tr("Check for updates at startup"));
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   474
            GBAlayout->addWidget(CBAutoUpdate);
2261
57e99c908e7c a lot of stuff:
koda
parents: 2216
diff changeset
   475
#endif
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   476
2261
57e99c908e7c a lot of stuff:
koda
parents: 2216
diff changeset
   477
            fpsedit = new FPSEdit(AGGroupBox);
57e99c908e7c a lot of stuff:
koda
parents: 2216
diff changeset
   478
            GBAfpslayout->addWidget(fpsedit);
57e99c908e7c a lot of stuff:
koda
parents: 2216
diff changeset
   479
            gbTBLayout->addWidget(AGGroupBox, 0, 1, 2, 1);
2395
d01d3bf3e1de makes the updater optional at compile time
koda
parents: 2392
diff changeset
   480
        }
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   481
1644
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   482
	BtnSaveOptions = addButton(":/res/Save.png", pageLayout, 2, 2, true);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   483
	BtnSaveOptions->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   484
1644
1e51e80c383c Save much space on options page
unc0rr
parents: 1621
diff changeset
   485
	BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   486
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   487
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   488
PageNet::PageNet(QWidget* parent) : AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   489
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   490
	QFont * font14 = new QFont("MS Shell Dlg", 14);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   491
	QGridLayout * pageLayout = new QGridLayout(this);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   492
	pageLayout->setColumnStretch(0, 1);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   493
	pageLayout->setColumnStretch(1, 1);
617
127510b442ca Better Net page
unc0rr
parents: 612
diff changeset
   494
	pageLayout->setColumnStretch(2, 1);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   495
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   496
	BtnNetSvrStart = new QPushButton(this);
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   497
	BtnNetSvrStart->setFont(*font14);
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   498
	BtnNetSvrStart->setText(QPushButton::tr("Start server"));
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1409
diff changeset
   499
	BtnNetSvrStart->setVisible(haveServer);
1395
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   500
	pageLayout->addWidget(BtnNetSvrStart, 4, 2);
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   501
46fd70de89e2 Add "Join official server" button
unc0rr
parents: 1389
diff changeset
   502
	BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   503
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   504
	ConnGroupBox = new QGroupBox(this);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   505
	ConnGroupBox->setTitle(QGroupBox::tr("Net game"));
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   506
	pageLayout->addWidget(ConnGroupBox, 2, 0, 1, 3);
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   507
	GBClayout = new QGridLayout(ConnGroupBox);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   508
	GBClayout->setColumnStretch(0, 1);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   509
	GBClayout->setColumnStretch(1, 1);
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   510
	GBClayout->setColumnStretch(2, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   511
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   512
	BtnNetConnect = new QPushButton(ConnGroupBox);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   513
	BtnNetConnect->setFont(*font14);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   514
	BtnNetConnect->setText(QPushButton::tr("Connect"));
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   515
	GBClayout->addWidget(BtnNetConnect, 2, 2);
416
595d8663254d update button for udp servers list
displacer
parents: 412
diff changeset
   516
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   517
	tvServersList = new QTableView(ConnGroupBox);
671
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   518
	tvServersList->setSelectionBehavior(QAbstractItemView::SelectRows);
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   519
	GBClayout->addWidget(tvServersList, 1, 0, 1, 3);
421
ebd79d171804 - Remake net game page
unc0rr
parents: 416
diff changeset
   520
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   521
	BtnUpdateSList = new QPushButton(ConnGroupBox);
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   522
	BtnUpdateSList->setFont(*font14);
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   523
	BtnUpdateSList->setText(QPushButton::tr("Update"));
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   524
	GBClayout->addWidget(BtnUpdateSList, 2, 0);
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
   525
653
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   526
	BtnSpecifyServer = new QPushButton(ConnGroupBox);
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   527
	BtnSpecifyServer->setFont(*font14);
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   528
	BtnSpecifyServer->setText(QPushButton::tr("Specify"));
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   529
	GBClayout->addWidget(BtnSpecifyServer, 2, 1);
4f44fc06ca45 Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents: 647
diff changeset
   530
668
0d7683a66d61 - Share much code between models
unc0rr
parents: 667
diff changeset
   531
	connect(BtnNetConnect, SIGNAL(clicked()), this, SLOT(slotConnect()));
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   532
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   533
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   534
void PageNet::updateServersList()
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   535
{
1310
4616e15d566f Get rid of "internet" network game mode
unc0rr
parents: 1290
diff changeset
   536
	tvServersList->setModel(new HWNetUdpModel(tvServersList));
659
5eafb20566f1 - Fix some stupid object casts
unc0rr
parents: 657
diff changeset
   537
673
bd82104a28af - Save after save now works
unc0rr
parents: 672
diff changeset
   538
	tvServersList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
bd82104a28af - Save after save now works
unc0rr
parents: 672
diff changeset
   539
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   540
	static_cast<HWNetServersModel *>(tvServersList->model())->updateList();
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   541
665
5c7bfc8bac6a Start move from custom widgets to custom models
unc0rr
parents: 659
diff changeset
   542
	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
   543
	connect(tvServersList, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotConnect()));
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   544
}
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   545
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   546
void PageNet::slotConnect()
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   547
{
671
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   548
	HWNetServersModel * model = static_cast<HWNetServersModel *>(tvServersList->model());
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   549
	QModelIndex mi = tvServersList->currentIndex();
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   550
	if(!mi.isValid())
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   551
	{
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   552
		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
   553
		return;
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   554
	}
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   555
	QString host = model->index(mi.row(), 1).data().toString();
a8970859f50e Actually pass host and port values to NetConnect method
unc0rr
parents: 668
diff changeset
   556
	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
   557
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
   558
	emit connectClicked(host, port);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   559
}
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   560
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   561
PageNetServer::PageNetServer(QWidget* parent) : AbstractPage(parent)
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   562
{
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   563
	QFont * font14 = new QFont("MS Shell Dlg", 14);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   564
	QGridLayout * pageLayout = new QGridLayout(this);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   565
	pageLayout->setColumnStretch(0, 1);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   566
	pageLayout->setColumnStretch(1, 1);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   567
	pageLayout->setColumnStretch(2, 1);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   568
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   569
	pageLayout->setRowStretch(0, 1);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   570
	pageLayout->setRowStretch(1, 0);
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   571
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   572
	BtnBack =addButton(":/res/Exit.png", pageLayout, 1, 0, true);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   573
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   574
	BtnStart = new QPushButton(this);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   575
	BtnStart->setFont(*font14);
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   576
	BtnStart->setText(QPushButton::tr("Start"));
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   577
	pageLayout->addWidget(BtnStart, 1, 2);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   578
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   579
	QWidget * wg = new QWidget(this);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   580
	pageLayout->addWidget(wg, 0, 0, 1, 3);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   581
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   582
	QGridLayout * wgLayout = new QGridLayout(wg);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   583
	wgLayout->setColumnStretch(0, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   584
	wgLayout->setColumnStretch(1, 3);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   585
	wgLayout->setColumnStretch(2, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   586
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   587
	wgLayout->setRowStretch(0, 0);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   588
	wgLayout->setRowStretch(1, 1);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   589
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   590
	QGroupBox * gb = new QGroupBox(wg);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   591
	wgLayout->addWidget(gb, 0, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   592
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   593
	QGridLayout * gbLayout = new QGridLayout(gb);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   594
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   595
	labelSD = new QLabel(gb);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   596
	labelSD->setText(QLabel::tr("Server name:"));
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   597
	gbLayout->addWidget(labelSD, 0, 0);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   598
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   599
	leServerDescr = new QLineEdit(gb);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   600
	gbLayout->addWidget(leServerDescr, 0, 1);
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   601
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   602
	labelPort = new QLabel(gb);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   603
	labelPort->setText(QLabel::tr("Server port:"));
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   604
	gbLayout->addWidget(labelPort, 1, 0);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   605
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   606
	sbPort = new QSpinBox(gb);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   607
	sbPort->setMinimum(0);
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   608
	sbPort->setMaximum(65535);
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   609
	gbLayout->addWidget(sbPort, 1, 1);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   610
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   611
	BtnDefault = new QPushButton(gb);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   612
	BtnDefault->setText(QPushButton::tr("default"));
675
28e294a496cb Remake widgets layout on PageNetServer
unc0rr
parents: 673
diff changeset
   613
	gbLayout->addWidget(BtnDefault, 1, 2);
657
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   614
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   615
	connect(BtnDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort()));
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   616
}
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   617
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   618
void PageNetServer::setDefaultPort()
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   619
{
b34fc518a48a Basic concept for net server options page (subject to change)
unc0rr
parents: 653
diff changeset
   620
	sbPort->setValue(46631);
632
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   621
}
5e09ae25729f Half implement possibility for different backends of servers list
unc0rr
parents: 617
diff changeset
   622
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   623
PageNetGame::PageNetGame(QWidget* parent) : AbstractPage(parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   624
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   625
	QGridLayout * pageLayout = new QGridLayout(this);
452
45fbb9df0c99 problems with widget sizes for net chat
displacer
parents: 451
diff changeset
   626
	pageLayout->setSizeConstraint(QLayout::SetMinimumSize);
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   627
	//pageLayout->setSpacing(1);
463
353c2f830888 fixes last commit problems
displacer
parents: 461
diff changeset
   628
	pageLayout->setColumnStretch(0, 50);
353c2f830888 fixes last commit problems
displacer
parents: 461
diff changeset
   629
	pageLayout->setColumnStretch(1, 50);
322
e7175ae57945 first new widgets added to net game
displacer
parents: 314
diff changeset
   630
461
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   631
	// chatwidget
105af110b0e6 chatWidget with layout
displacer
parents: 453
diff changeset
   632
	pChatWidget = new HWChatWidget(this);
1647
ab0c8c4be7b3 Reorganize net game page
unc0rr
parents: 1644
diff changeset
   633
	pageLayout->addWidget(pChatWidget, 1, 0, 1, 2);
464
7f48321fc38a vertical size fix for chatwidget
displacer
parents: 463
diff changeset
   634
	pageLayout->setRowStretch(1, 100);
453
4b1236759402 simple net cha added
displacer
parents: 452
diff changeset
   635
329
4c3aad46baa5 Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents: 323
diff changeset
   636
	pGameCFG = new GameCFGWidget(this);
322
e7175ae57945 first new widgets added to net game
displacer
parents: 314
diff changeset
   637
	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
   638
4c3aad46baa5 Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents: 323
diff changeset
   639
	pNetTeamsWidget = new TeamSelWidget(this);
373
df912aab6b7e network team add can be denied by server
displacer
parents: 336
diff changeset
   640
	pNetTeamsWidget->setAcceptOuter(true);
1647
ab0c8c4be7b3 Reorganize net game page
unc0rr
parents: 1644
diff changeset
   641
	pageLayout->addWidget(pNetTeamsWidget, 0, 1);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   642
1649
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   643
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   644
	QHBoxLayout * bottomLayout = new QHBoxLayout;
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   645
	pageLayout->addLayout(bottomLayout, 3, 0, 1, 2);
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   646
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   647
	BtnBack = addButton(":/res/Exit.png", bottomLayout, 0, true);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   648
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 638
diff changeset
   649
	BtnGo = new QPushButton(this);
1677
0655bb13af01 Set 'ready' tooltip to lightbulb button
unc0rr
parents: 1659
diff changeset
   650
	BtnGo->setToolTip(QPushButton::tr("Ready"));
1648
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   651
	BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   652
	BtnGo->setIconSize(QSize(25, 34));
1649
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   653
	BtnGo->setMinimumWidth(50);
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   654
	BtnGo->setMinimumHeight(50);
1951
47f38d84ac72 Move game starting action outside menu
unc0rr
parents: 1950
diff changeset
   655
	bottomLayout->addWidget(BtnGo, 4);
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   656
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   657
1951
47f38d84ac72 Move game starting action outside menu
unc0rr
parents: 1950
diff changeset
   658
	BtnMaster = addButton(tr("Control"), bottomLayout, 2);
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   659
	QMenu * menu = new QMenu(BtnMaster);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   660
	restrictJoins = new QAction(QAction::tr("Restrict Joins"), menu);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   661
	restrictJoins->setCheckable(true);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   662
	restrictTeamAdds = new QAction(QAction::tr("Restrict Team Additions"), menu);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   663
	restrictTeamAdds->setCheckable(true);
1951
47f38d84ac72 Move game starting action outside menu
unc0rr
parents: 1950
diff changeset
   664
	//menu->addAction(startGame);
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   665
	menu->addAction(restrictJoins);
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   666
	menu->addAction(restrictTeamAdds);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   667
1409
d1cbe4a57ebf Add button for controlling room options (no usefull yet)
unc0rr
parents: 1404
diff changeset
   668
	BtnMaster->setMenu(menu);
1649
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   669
1951
47f38d84ac72 Move game starting action outside menu
unc0rr
parents: 1950
diff changeset
   670
	BtnStart = addButton(QAction::tr("Start"), bottomLayout, 3);
47f38d84ac72 Move game starting action outside menu
unc0rr
parents: 1950
diff changeset
   671
1649
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   672
	bottomLayout->insertStretch(1, 100);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   673
}
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   674
1648
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   675
void PageNetGame::setReadyStatus(bool isReady)
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   676
{
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   677
	if(isReady)
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   678
		BtnGo->setIcon(QIcon(":/res/lightbulb_on.png"));
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   679
	else
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   680
		BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   681
}
32d99a3c7998 Draw ready status icon on ready button
unc0rr
parents: 1647
diff changeset
   682
1649
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   683
void PageNetGame::setMasterMode(bool isMaster)
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   684
{
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   685
	BtnMaster->setVisible(isMaster);
1951
47f38d84ac72 Move game starting action outside menu
unc0rr
parents: 1950
diff changeset
   686
	BtnStart->setVisible(isMaster);
1649
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   687
}
938a0fda0206 Some button reorganization on net game page
unc0rr
parents: 1648
diff changeset
   688
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   689
PageInfo::PageInfo(QWidget* parent) : AbstractPage(parent)
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   690
{
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   691
	QGridLayout * pageLayout = new QGridLayout(this);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   692
	pageLayout->setColumnStretch(0, 1);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   693
	pageLayout->setColumnStretch(1, 1);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   694
	pageLayout->setColumnStretch(2, 1);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   695
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   696
	BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   697
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   698
	about = new About(this);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   699
	pageLayout->addWidget(about, 0, 0, 1, 3);
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   700
}
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 297
diff changeset
   701
1150
ae86e36dad2e - Make look better
unc0rr
parents: 1149
diff changeset
   702
PageSinglePlayer::PageSinglePlayer(QWidget* parent) : AbstractPage(parent)
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   703
{
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   704
	QVBoxLayout * vLayout = new QVBoxLayout(this);
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   705
	QHBoxLayout * topLine = new QHBoxLayout();
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   706
	QHBoxLayout * middleLine = new QHBoxLayout();
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   707
	QHBoxLayout * bottomLine = new QHBoxLayout();
1444
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   708
	vLayout->addStretch();
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   709
	vLayout->addLayout(topLine);
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   710
	vLayout->addSpacing(30);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   711
	vLayout->addLayout(middleLine);
1444
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   712
	vLayout->addStretch();
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   713
	vLayout->addLayout(bottomLine);
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   714
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   715
	topLine->addStretch();
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   716
	BtnSimpleGamePage = addButton(":/res/SimpleGame.png", topLine, 0, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   717
	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
   718
	topLine->addSpacing(60);
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   719
	BtnMultiplayer = addButton(":/res/Multiplayer.png", topLine, 1, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   720
	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
   721
	topLine->addStretch();
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   722
1457
44cc464de8f3 Add lightbulbs, some more changes to look
unc0rr
parents: 1450
diff changeset
   723
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   724
	BtnTrainPage = addButton(":/res/Trainings.png", middleLine, 0, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   725
	BtnTrainPage->setToolTip(tr("Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT"));
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   726
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   727
	BtnBack = addButton(":/res/Exit.png", bottomLine, 0, true);
1444
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   728
	bottomLine->addStretch();
06f6ae457a2f Finish reorganizing local game page
unc0rr
parents: 1443
diff changeset
   729
1447
e3a05ce15f1a - Fix a message
unc0rr
parents: 1444
diff changeset
   730
	BtnDemos = addButton(":/res/Record.png", bottomLine, 1, true);
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   731
	BtnDemos->setToolTip(tr("Demos (Watch recorded demos)"));
1443
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   732
	BtnLoad = addButton(":/res/Save.png", bottomLine, 2, true);
e79e4b48c771 Reorganize single player menu
unc0rr
parents: 1440
diff changeset
   733
	BtnLoad->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
1450
f854866390a5 Add tooltips
unc0rr
parents: 1447
diff changeset
   734
	BtnLoad->setToolTip(tr("Load (Load a previously saved game)"));
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   735
}
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   736
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   737
PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent)
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   738
{
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   739
	QGridLayout * pageLayout = new QGridLayout(this);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   740
	pageLayout->setColumnStretch(0, 1);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   741
	pageLayout->setColumnStretch(1, 2);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   742
	pageLayout->setColumnStretch(2, 1);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   743
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   744
	BtnStartTrain = new QPushButton(this);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   745
	BtnStartTrain->setFont(*font14);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   746
	BtnStartTrain->setText(QPushButton::tr("Go!"));
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   747
	pageLayout->addWidget(BtnStartTrain, 1, 2);
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   748
1153
825931b81ad4 Iconed "Back" button everywhere
unc0rr
parents: 1152
diff changeset
   749
	BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   750
}
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   751
923
b3d097097b54 Use default ammostore string size for weapons number instead of predefined const
unc0rr
parents: 788
diff changeset
   752
PageSelectWeapon::PageSelectWeapon(QWidget* parent) :
684
257444d8429f some copy/paste code removed
displacer
parents: 683
diff changeset
   753
  AbstractPage(parent)
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   754
{
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   755
	QGridLayout * pageLayout = new QGridLayout(this);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   756
2369
c3eb11f1ab3a Implement probability editor for weapon schemes (engine doesn't support that yet)
unc0rr
parents: 2368
diff changeset
   757
	pWeapons = new SelWeaponWidget(cAmmoNumber, this);
718
f93a38d2c982 delete weapon button added
displacer
parents: 696
diff changeset
   758
	pageLayout->addWidget(pWeapons, 0, 0, 1, 4);
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   759
1168
f3c68684ef88 Finally fix save button look
unc0rr
parents: 1162
diff changeset
   760
	BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
730
6ac11b0aeb12 tr()s everywhere
displacer
parents: 728
diff changeset
   761
	BtnDefault = addButton(tr("Default"), pageLayout, 1, 1);
6ac11b0aeb12 tr()s everywhere
displacer
parents: 728
diff changeset
   762
	BtnDelete = addButton(tr("Delete"), pageLayout, 1, 2);
1168
f3c68684ef88 Finally fix save button look
unc0rr
parents: 1162
diff changeset
   763
	BtnSave = addButton(":/res/Save.png", pageLayout, 1, 3, true);
2368
e0750b23c9e6 Move connect call to more appropriate place
unc0rr
parents: 2294
diff changeset
   764
	BtnSave->setStyleSheet("QPushButton{margin: 12px 0px 12px 0px;}");
e0750b23c9e6 Move connect call to more appropriate place
unc0rr
parents: 2294
diff changeset
   765
e0750b23c9e6 Move connect call to more appropriate place
unc0rr
parents: 2294
diff changeset
   766
	connect(BtnDefault, SIGNAL(clicked()), pWeapons, SLOT(setDefault()));
e0750b23c9e6 Move connect call to more appropriate place
unc0rr
parents: 2294
diff changeset
   767
	connect(BtnSave, SIGNAL(clicked()), pWeapons, SLOT(save()));
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   768
}
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 597
diff changeset
   769
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
   770
PageInGame::PageInGame(QWidget* parent) :
686
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   771
  AbstractPage(parent)
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   772
{
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   773
	QLabel * label = new QLabel(this);
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   774
	label->setText("In game...");
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 684
diff changeset
   775
}
1311
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   776
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   777
PageRoomsList::PageRoomsList(QWidget* parent) :
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   778
  AbstractPage(parent)
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   779
{
1312
0078e4f72d40 Create a page for rooms list
unc0rr
parents: 1311
diff changeset
   780
	QGridLayout * pageLayout = new QGridLayout(this);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   781
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2414
diff changeset
   782
	QHBoxLayout * newRoomLayout = new QHBoxLayout();
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   783
	QLabel * roomNameLabel = new QLabel(this);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   784
	roomNameLabel->setText(tr("Room Name:"));
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   785
	roomName = new QLineEdit(this);
1334
b58afaadf7ae Send team removal message to others in room when client disconnects
unc0rr
parents: 1315
diff changeset
   786
	roomName->setMaxLength(60);
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   787
	newRoomLayout->addWidget(roomNameLabel);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   788
	newRoomLayout->addWidget(roomName);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   789
	pageLayout->addLayout(newRoomLayout, 0, 0);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   790
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   791
	roomsList = new QTableWidget(this);
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   792
	roomsList->setColumnCount(7);
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   793
	roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   794
	roomsList->verticalHeader()->setVisible(false);
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   795
	roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
1894
ba54441631da Rooms list colourizing patch by TheXception
unc0rr
parents: 1893
diff changeset
   796
	roomsList->setAlternatingRowColors(true);
1522
6794cf8f1e6f Add chat widget to lobby page (not usable yet)
unc0rr
parents: 1487
diff changeset
   797
	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
   798
	pageLayout->setRowStretch(2, 100);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   799
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
   800
	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
   801
	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
   802
	pageLayout->setRowStretch(4, 350);
1522
6794cf8f1e6f Add chat widget to lobby page (not usable yet)
unc0rr
parents: 1487
diff changeset
   803
1312
0078e4f72d40 Create a page for rooms list
unc0rr
parents: 1311
diff changeset
   804
	BtnCreate = addButton(tr("Create"), pageLayout, 0, 1);
0078e4f72d40 Create a page for rooms list
unc0rr
parents: 1311
diff changeset
   805
	BtnJoin = addButton(tr("Join"), pageLayout, 1, 1);
1522
6794cf8f1e6f Add chat widget to lobby page (not usable yet)
unc0rr
parents: 1487
diff changeset
   806
	BtnRefresh = addButton(tr("Refresh"), pageLayout, 3, 1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   807
1856
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1840
diff changeset
   808
	BtnBack = addButton(":/res/Exit.png", pageLayout, 5, 0, true);
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1840
diff changeset
   809
	BtnAdmin = addButton(tr("Admin features"), pageLayout, 5, 1);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   810
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   811
	connect(BtnCreate, SIGNAL(clicked()), this, SLOT(onCreateClick()));
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   812
	connect(BtnJoin, SIGNAL(clicked()), this, SLOT(onJoinClick()));
1315
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   813
	connect(BtnRefresh, SIGNAL(clicked()), this, SLOT(onRefreshClick()));
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   814
	connect(roomsList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(onJoinClick()));
1311
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1310
diff changeset
   815
}
1313
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   816
1856
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1840
diff changeset
   817
void PageRoomsList::setAdmin(bool flag)
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1840
diff changeset
   818
{
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1840
diff changeset
   819
	BtnAdmin->setVisible(flag);
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1840
diff changeset
   820
}
1377
a9e768739345 - Customize QTextBrowser look
unc0rr
parents: 1334
diff changeset
   821
1313
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   822
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
   823
{
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1312
diff changeset
   824
	roomsList->clear();
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   825
	roomsList->setHorizontalHeaderLabels(
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   826
			QStringList() <<
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   827
			QTableWidget::tr("Room Name") <<
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   828
			QTableWidget::tr("C") <<
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   829
			QTableWidget::tr("T") <<
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   830
			QTableWidget::tr("Owner") <<
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   831
			QTableWidget::tr("Map") <<
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   832
			QTableWidget::tr("Rules") <<
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   833
			QTableWidget::tr("Weapons")
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   834
			);
1893
85c61bc5e160 Style fixes by nemo
unc0rr
parents: 1891
diff changeset
   835
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   836
	// set resize modes
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   837
	roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   838
	roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   839
	roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   840
	roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   841
	roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   842
	roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   843
	roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
1893
85c61bc5e160 Style fixes by nemo
unc0rr
parents: 1891
diff changeset
   844
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   845
	if (list.size() % 8)
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   846
		return;
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   847
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   848
	roomsList->setRowCount(list.size() / 8);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   849
	for(int i = 0, r = 0; i < list.size(); i += 8, r++)
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   850
	{
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   851
		QTableWidgetItem * item;
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   852
		item = new QTableWidgetItem(list[i + 1]); // room name
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   853
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   854
		
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   855
		// pick appropriate room icon and tooltip (game in progress yes/no; later maybe locked rooms etc.)
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   856
		if(list[i].compare("True"))
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   857
		{
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   858
			item->setIcon(QIcon(":/res/iconTime.png"));// game is in lobby
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   859
			item->setToolTip(tr("This game is in lobby.\nYou may join and start playing once the game starts."));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   860
		}
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   861
		else
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   862
		{
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   863
			item->setIcon(QIcon(":/res/iconDamage.png"));// game has started
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   864
			item->setToolTip(tr("This game is in progress.\nYou may join and spectate now but you'll have to wait for the game to end to start playing."));
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   865
		}
2414
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   866
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   867
		roomsList->setItem(r, 0, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   868
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   869
		item = new QTableWidgetItem(list[i + 2]); // number of clients
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   870
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   871
		item->setTextAlignment(Qt::AlignCenter);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   872
		item->setToolTip(tr("There are %1 clients connected to this room.").arg(list[i + 2]));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   873
		roomsList->setItem(r, 1, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   874
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   875
		item = new QTableWidgetItem(list[i + 3]); // number of teams
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   876
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   877
		item->setTextAlignment(Qt::AlignCenter);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   878
		item->setToolTip(tr("There are %1 teams participating in this room.").arg(list[i + 3]));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   879
		roomsList->setItem(r, 2, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   880
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   881
		item = new QTableWidgetItem(list[i + 4]); // name of host
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   882
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   883
		item->setToolTip(tr("%1 is the host. He may adjust settings and start the game.").arg(list[i + 4]));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   884
		roomsList->setItem(r, 3, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   885
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   886
		if(list[i + 5].compare("+rnd+"))
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   887
			item = new QTableWidgetItem(list[i + 5]); // selected map
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   888
		else
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   889
			item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   890
		
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   891
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   892
		item->setToolTip(tr("Games may be played on precreated or randomized maps."));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   893
		roomsList->setItem(r, 4, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   894
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   895
		item = new QTableWidgetItem(list[i + 6]); // selected game scheme
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   896
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   897
		item->setToolTip(tr("The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism."));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   898
		roomsList->setItem(r, 5, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   899
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   900
		item = new QTableWidgetItem(list[i + 7]); // selected weapon scheme
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   901
		item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   902
		item->setToolTip(tr("The Weapon Scheme defines available weapons and their ammunition count."));
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   903
		roomsList->setItem(r, 6, item);
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   904
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   905
	}
fd9ca82077d8 Smaxx: new rooms list
unc0rr
parents: 2402
diff changeset
   906
	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
   907
}
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   908
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   909
void PageRoomsList::onCreateClick()
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   910
{
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   911
	if (roomName->text().size())
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   912
		emit askForCreateRoom(roomName->text());
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   913
	else
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   914
		QMessageBox::critical(this,
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   915
				tr("Error"),
1315
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   916
				tr("Please, enter room name"),
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   917
				tr("OK"));
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   918
}
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   919
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   920
void PageRoomsList::onJoinClick()
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   921
{
1399
ada2411c1d60 Show additional info in rooms list
unc0rr
parents: 1395
diff changeset
   922
	QTableWidgetItem * curritem = roomsList->item(roomsList->currentRow(), 0);
1314
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   923
	if (!curritem)
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   924
	{
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   925
		QMessageBox::critical(this,
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   926
				tr("Error"),
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   927
				tr("Please, select room from the list"),
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   928
				tr("OK"));
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   929
		return ;
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   930
	}
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   931
	emit askForJoinRoom(curritem->data(Qt::DisplayRole).toString());
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   932
}
e56b178d6d62 Implement room create and join
unc0rr
parents: 1313
diff changeset
   933
1315
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   934
void PageRoomsList::onRefreshClick()
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   935
{
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   936
	emit askForRoomList();
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   937
}
c2f09811bb8c Implement rooms list refresh
unc0rr
parents: 1314
diff changeset
   938
1800
f1df2eb32a16 "connecting" page
unc0rr
parents: 1777
diff changeset
   939
f1df2eb32a16 "connecting" page
unc0rr
parents: 1777
diff changeset
   940
PageConnecting::PageConnecting(QWidget* parent) :
f1df2eb32a16 "connecting" page
unc0rr
parents: 1777
diff changeset
   941
	AbstractPage(parent)
f1df2eb32a16 "connecting" page
unc0rr
parents: 1777
diff changeset
   942
{
f1df2eb32a16 "connecting" page
unc0rr
parents: 1777
diff changeset
   943
	QGridLayout * pageLayout = new QGridLayout(this);
1904
20348675b015 - Fix warnings in frontend
unc0rr
parents: 1902
diff changeset
   944
20348675b015 - Fix warnings in frontend
unc0rr
parents: 1902
diff changeset
   945
	QLabel * lblConnecting = new QLabel(this);
20348675b015 - Fix warnings in frontend
unc0rr
parents: 1902
diff changeset
   946
	lblConnecting->setText(tr("Connecting..."));
20348675b015 - Fix warnings in frontend
unc0rr
parents: 1902
diff changeset
   947
	pageLayout->addWidget(lblConnecting);
1800
f1df2eb32a16 "connecting" page
unc0rr
parents: 1777
diff changeset
   948
}
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1856
diff changeset
   949
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1856
diff changeset
   950
PageScheme::PageScheme(QWidget* parent) :
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1856
diff changeset
   951
	AbstractPage(parent)
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1856
diff changeset
   952
{
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1856
diff changeset
   953
	QGridLayout * pageLayout = new QGridLayout(this);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   954
	QGroupBox * gb = new QGroupBox(this);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   955
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   956
	QGridLayout * gl = new QGridLayout();
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   957
	gb->setLayout(gl);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   958
	QSizePolicy sp;
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   959
	sp.setVerticalPolicy(QSizePolicy::MinimumExpanding);
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   960
	sp.setHorizontalPolicy(QSizePolicy::Expanding);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
   961
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   962
	pageLayout->addWidget(gb, 1,0,13,4);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   963
1984
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
   964
	gbGameModes = new QGroupBox(QGroupBox::tr("Game Modifiers"), gb);
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
   965
	gbBasicSettings = new QGroupBox(QGroupBox::tr("Basic Settings"), gb);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   966
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   967
	gbGameModes->setStyleSheet(".QGroupBox {"
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   968
			"background-color: #130f2c; background-image:url();"
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   969
			"}");
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   970
	gbBasicSettings->setStyleSheet(".QGroupBox {"
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   971
			"background-color: #130f2c; background-image:url();"
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   972
			"}");
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   973
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   974
	gbGameModes->setSizePolicy(sp);
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   975
	gbBasicSettings->setSizePolicy(sp);
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   976
	gl->addWidget(gbGameModes,0,0,1,3,Qt::AlignTop);
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
   977
	gl->addWidget(gbBasicSettings,0,3,1,3,Qt::AlignTop);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   978
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   979
	QGridLayout * glGMLayout = new QGridLayout(gbGameModes);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   980
	QGridLayout * glBSLayout = new QGridLayout(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   981
	gbGameModes->setLayout(glGMLayout);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   982
	gbBasicSettings->setLayout(glBSLayout);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   983
	// Left
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
   984
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   985
	TBW_mode_Forts = new ToggleButtonWidget(gbGameModes, ":/res/btnForts.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   986
	TBW_mode_Forts->setText(ToggleButtonWidget::tr("Fort Mode"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
   987
    TBW_mode_Forts->setToolTip(tr("Defend your fort and destroy the opponents, two team colours max!"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   988
	glGMLayout->addWidget(TBW_mode_Forts,0,0,1,1);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
   989
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   990
	TBW_teamsDivide = new ToggleButtonWidget(gbGameModes, ":/res/btnTeamsDivide.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   991
	TBW_teamsDivide->setText(ToggleButtonWidget::tr("Divide Teams"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
   992
    TBW_teamsDivide->setToolTip(tr("Teams will start on opposite sides of the terrain, two team colours max!"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   993
	glGMLayout->addWidget(TBW_teamsDivide,0,1,1,1);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
   994
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   995
	TBW_solid = new ToggleButtonWidget(gbGameModes, ":/res/btnSolid.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   996
	TBW_solid->setText(ToggleButtonWidget::tr("Solid Land"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
   997
    TBW_solid->setToolTip(tr("Land can not be destroyed!"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
   998
	glGMLayout->addWidget(TBW_solid,0,2,1,1);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
   999
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1000
	TBW_border = new ToggleButtonWidget(gbGameModes, ":/res/btnBorder.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1001
	TBW_border->setText(ToggleButtonWidget::tr("Add Border"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1002
    TBW_border->setToolTip(tr("Add an indestructable border around the terrain"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1003
	glGMLayout->addWidget(TBW_border,0,3,1,1);
1895
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1004
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1005
	TBW_lowGravity = new ToggleButtonWidget(gbGameModes, ":/res/btnLowGravity.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1006
	TBW_lowGravity->setText(ToggleButtonWidget::tr("Low Gravity"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1007
    TBW_lowGravity->setToolTip(tr("Lower gravity"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1008
	glGMLayout->addWidget(TBW_lowGravity,1,0,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1009
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1010
	TBW_laserSight = new ToggleButtonWidget(gbGameModes, ":/res/btnLaserSight.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1011
	TBW_laserSight->setText(ToggleButtonWidget::tr("Laser Sight"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1012
    TBW_laserSight->setToolTip(tr("Assisted aiming with laser sight"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1013
	glGMLayout->addWidget(TBW_laserSight,1,1,1,1);
1895
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1014
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1015
	TBW_invulnerable = new ToggleButtonWidget(gbGameModes, ":/res/btnInvulnerable.png");
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1016
	TBW_invulnerable->setText(ToggleButtonWidget::tr("Invulnerable"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1017
    TBW_invulnerable->setToolTip(tr("All hogs have a personal forcefield"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1018
	glGMLayout->addWidget(TBW_invulnerable,1,2,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1019
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1020
	TBW_mines = new ToggleButtonWidget(gbGameModes, ":/res/btnMines.png");
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1021
	TBW_mines->setText(ToggleButtonWidget::tr("Add Mines"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1022
    TBW_mines->setToolTip(tr("Enable random mines"));
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1023
	glGMLayout->addWidget(TBW_mines,1,3,1,1);
1895
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1024
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1025
	TBW_vampiric = new ToggleButtonWidget(gbGameModes, ":/res/btnVampiric.png");
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1026
	TBW_vampiric->setText(ToggleButtonWidget::tr("Vampirism"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1027
    TBW_vampiric->setToolTip(tr("Gain 80% of the damage you do back in health"));
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1028
	glGMLayout->addWidget(TBW_vampiric,2,0,1,1);
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1029
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1030
	TBW_karma = new ToggleButtonWidget(gbGameModes, ":/res/btnKarma.png");
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1031
	TBW_karma->setText(ToggleButtonWidget::tr("Karma"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1032
    TBW_karma->setToolTip(tr("Share your opponents pain, share their damage"));
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1033
	glGMLayout->addWidget(TBW_karma,2,1,1,1);
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1034
2023
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1035
	TBW_artillery = new ToggleButtonWidget(gbGameModes, ":/res/btnArtillery.png");
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1036
	TBW_artillery->setText(ToggleButtonWidget::tr("Artillery"));
2026
21c986c528ba Descriptions for the tooltip buttons. Rename btnInvurnable to btnInvulnerable
nemo
parents: 2023
diff changeset
  1037
    TBW_artillery->setToolTip(tr("Your hogs are unable to move, put your artillery skills to the test"));
2023
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1038
	glGMLayout->addWidget(TBW_artillery,2,2,1,1);
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1039
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1040
	// Right
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1041
	QLabel * l;
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1042
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1043
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1044
	l->setText(QLabel::tr("Damage Modifier"));
1933
7b8b0a9032d3 - perform lupdate-qt4
unc0rr
parents: 1932
diff changeset
  1045
	l->setWordWrap(true);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1046
	glBSLayout->addWidget(l,0,0,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1047
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1048
	l->setFixedSize(32,32);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1049
	l->setPixmap(QPixmap(":/res/iconDamage.png"));
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1050
	glBSLayout->addWidget(l,0,1,1,1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1051
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1052
	SB_DamageModifier = new QSpinBox(gbBasicSettings);
1895
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1053
	SB_DamageModifier->setRange(10, 300);
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1054
	SB_DamageModifier->setValue(100);
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1055
	SB_DamageModifier->setSingleStep(25);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1056
	glBSLayout->addWidget(SB_DamageModifier,0,2,1,1);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1057
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1058
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1059
	l->setText(QLabel::tr("Turn Time"));
1933
7b8b0a9032d3 - perform lupdate-qt4
unc0rr
parents: 1932
diff changeset
  1060
	l->setWordWrap(true);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1061
	glBSLayout->addWidget(l,1,0,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1062
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1063
	l->setFixedSize(32,32);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1064
	l->setPixmap(QPixmap(":/res/iconTime.png"));
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1065
	glBSLayout->addWidget(l,1,1,1,1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1066
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1067
	SB_TurnTime = new QSpinBox(gbBasicSettings);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1068
	SB_TurnTime->setRange(1, 99);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1069
	SB_TurnTime->setValue(45);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1070
	SB_TurnTime->setSingleStep(15);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1071
	glBSLayout->addWidget(SB_TurnTime,1,2,1,1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1072
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1073
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1074
	l->setText(QLabel::tr("Initial Health"));
1933
7b8b0a9032d3 - perform lupdate-qt4
unc0rr
parents: 1932
diff changeset
  1075
	l->setWordWrap(true);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1076
	glBSLayout->addWidget(l,2,0,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1077
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1078
	l->setFixedSize(32,32);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1079
	l->setPixmap(QPixmap(":/res/iconHealth.png"));
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1080
	glBSLayout->addWidget(l,2,1,1,1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1081
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1082
	SB_InitHealth = new QSpinBox(gbBasicSettings);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1083
	SB_InitHealth->setRange(50, 200);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1084
	SB_InitHealth->setValue(100);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1085
	SB_InitHealth->setSingleStep(25);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1086
	glBSLayout->addWidget(SB_InitHealth,2,2,1,1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1087
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1088
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1089
	l->setText(QLabel::tr("Sudden Death Timeout"));
1933
7b8b0a9032d3 - perform lupdate-qt4
unc0rr
parents: 1932
diff changeset
  1090
	l->setWordWrap(true);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1091
	glBSLayout->addWidget(l,3,0,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1092
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1093
	l->setFixedSize(32,32);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1094
	l->setPixmap(QPixmap(":/res/iconSuddenDeath.png"));
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1095
	glBSLayout->addWidget(l,3,1,1,1);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1096
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1097
	SB_SuddenDeath = new QSpinBox(gbBasicSettings);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1098
	SB_SuddenDeath->setRange(0, 50);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1099
	SB_SuddenDeath->setValue(15);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1100
	SB_SuddenDeath->setSingleStep(3);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1101
	glBSLayout->addWidget(SB_SuddenDeath,3,2,1,1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1102
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1103
	l = new QLabel(gbBasicSettings);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1104
	l->setText(QLabel::tr("Crate Drops"));
1933
7b8b0a9032d3 - perform lupdate-qt4
unc0rr
parents: 1932
diff changeset
  1105
	l->setWordWrap(true);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1106
	glBSLayout->addWidget(l,4,0,1,1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1107
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1108
	l->setFixedSize(32,32);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1109
	l->setPixmap(QPixmap(":/res/iconBox.png"));
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1110
	glBSLayout->addWidget(l,4,1,1,1);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1111
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1112
	SB_CaseProb = new FreqSpinBox(gbBasicSettings);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1113
	SB_CaseProb->setRange(0, 9);
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1114
	SB_CaseProb->setValue(5);
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1115
	glBSLayout->addWidget(SB_CaseProb,4,2,1,1);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1116
2031
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1117
	l = new QLabel(gbBasicSettings);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1118
	l->setText(QLabel::tr("Mines Time"));
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1119
	l->setWordWrap(true);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1120
	glBSLayout->addWidget(l,5,0,1,1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1121
	l = new QLabel(gbBasicSettings);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1122
	l->setFixedSize(32,32);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1123
	l->setPixmap(QPixmap(":/res/iconTime.png")); // TODO: icon
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1124
	glBSLayout->addWidget(l,5,1,1,1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1125
	SB_MinesTime = new QSpinBox(gbBasicSettings);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1126
	SB_MinesTime->setRange(-1, 3);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1127
	SB_MinesTime->setValue(3);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1128
	SB_MinesTime->setSingleStep(1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1129
	SB_MinesTime->setSpecialValueText(tr("Random"));
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1130
	SB_MinesTime->setSuffix(" "+ tr("Seconds"));
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1131
	glBSLayout->addWidget(SB_MinesTime,5,2,1,1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1132
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1133
	l = new QLabel(gbBasicSettings);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1134
	l->setText(QLabel::tr("Mines"));
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1135
	l->setWordWrap(true);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1136
	glBSLayout->addWidget(l,6,0,1,1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1137
	l = new QLabel(gbBasicSettings);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1138
	l->setFixedSize(32,32);
2036
d4448c021553 Mine icon for game scheme mine count
nemo
parents: 2031
diff changeset
  1139
	l->setPixmap(QPixmap(":/res/iconMine.png")); // TODO: icon
2031
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1140
	glBSLayout->addWidget(l,6,1,1,1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1141
	SB_Mines = new QSpinBox(gbBasicSettings);
2076
aa3263e57b8f increase # of mines to 50, limit max depth of drowning damage tag
nemo
parents: 2072
diff changeset
  1142
	SB_Mines->setRange(1, 50);
2031
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1143
	SB_Mines->setValue(1);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1144
	SB_Mines->setSingleStep(5);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1145
	glBSLayout->addWidget(SB_Mines,6,2,1,1);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1146
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1147
	l = new QLabel(gbBasicSettings);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1148
	l->setText(QLabel::tr("Scheme Name:"));
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1149
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1150
	LE_name = new QLineEdit(this);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1151
1943
03dcac72692b - Better schemes page look
unc0rr
parents: 1933
diff changeset
  1152
	gl->addWidget(LE_name,14,1,1,5);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1153
	gl->addWidget(l,14,0,1,1);
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1154
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1155
	mapper = new QDataWidgetMapper(this);
1887
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1156
1895
7ba647a88b2f More game options by nemo
unc0rr
parents: 1894
diff changeset
  1157
	BtnBack = addButton(":/res/Exit.png", pageLayout, 15, 0, true);
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1158
	BtnNew = addButton(tr("New"), pageLayout, 15, 2);
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1159
	BtnDelete = addButton(tr("Delete"), pageLayout, 15, 3);
1887
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1160
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1161
	selectScheme = new QComboBox(this);
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1162
	pageLayout->addWidget(selectScheme, 15, 1);
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1163
1889
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1164
	connect(BtnNew, SIGNAL(clicked()), this, SLOT(newRow()));
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1165
	connect(BtnDelete, SIGNAL(clicked()), this, SLOT(deleteRow()));
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1166
	connect(selectScheme, SIGNAL(currentIndexChanged(int)), mapper, SLOT(setCurrentIndex(int)));
1984
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
  1167
	connect(selectScheme, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeSelected(int)));
1887
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1168
}
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1169
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1170
void PageScheme::setModel(QAbstractItemModel * model)
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1171
{
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1172
	mapper->setModel(model);
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1173
	selectScheme->setModel(model);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2369
diff changeset
  1174
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
  1175
	mapper->addMapping(LE_name, 0);
1932
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1176
	mapper->addMapping(TBW_mode_Forts->button(), 1);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1177
	mapper->addMapping(TBW_teamsDivide->button(), 2);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1178
	mapper->addMapping(TBW_solid->button(), 3);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1179
	mapper->addMapping(TBW_border->button(), 4);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1180
	mapper->addMapping(TBW_lowGravity->button(), 5);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1181
	mapper->addMapping(TBW_laserSight->button(), 6);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1182
	mapper->addMapping(TBW_invulnerable->button(), 7);
f586d75c8b6a New schemes page look by TheXception
unc0rr
parents: 1924
diff changeset
  1183
	mapper->addMapping(TBW_mines->button(), 8);
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1184
	mapper->addMapping(TBW_vampiric->button(), 9);
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1984
diff changeset
  1185
	mapper->addMapping(TBW_karma->button(), 10);
2023
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1186
	mapper->addMapping(TBW_artillery->button(), 11);
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1187
	mapper->addMapping(SB_DamageModifier, 12);
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1188
	mapper->addMapping(SB_TurnTime, 13);
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1189
	mapper->addMapping(SB_InitHealth, 14);
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1190
	mapper->addMapping(SB_SuddenDeath, 15);
41d3afaa20c7 Artillery mode, sniper rifle, speech bubble tweaks, fix of rope bug introduced by enabling hats in jump
nemo
parents: 2017
diff changeset
  1191
	mapper->addMapping(SB_CaseProb, 16);
2031
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1192
	mapper->addMapping(SB_MinesTime, 17);
b6f3e56fb100 david_ac's game scheme options for mine delay/quantity, tweaks to sniper rifle
nemo
parents: 2026
diff changeset
  1193
	mapper->addMapping(SB_Mines, 18);
1887
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1194
d68939b3f7f0 - Share model between test table and widgets
unc0rr
parents: 1885
diff changeset
  1195
	mapper->toFirst();
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1856
diff changeset
  1196
}
1889
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1197
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1198
void PageScheme::newRow()
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1199
{
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1200
	QAbstractItemModel * model = mapper->model();
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1201
	model->insertRow(model->rowCount());
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1202
	selectScheme->setCurrentIndex(model->rowCount() - 1);
1889
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
  1203
}
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1204
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1205
void PageScheme::deleteRow()
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1206
{
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1207
	QAbstractItemModel * model = mapper->model();
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1208
	model->removeRow(selectScheme->currentIndex());
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1895
diff changeset
  1209
}
1905
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1210
1984
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
  1211
void PageScheme::schemeSelected(int n)
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
  1212
{
2093
485e084cedc4 Portugese (european) translation, Tiy's "minefield" scheme/wepset, disable vampirism, update translations
nemo
parents: 2076
diff changeset
  1213
	gbGameModes->setEnabled(n >= 5); // FIXME: derive number from model
485e084cedc4 Portugese (european) translation, Tiy's "minefield" scheme/wepset, disable vampirism, update translations
nemo
parents: 2076
diff changeset
  1214
	gbBasicSettings->setEnabled(n >= 5);
485e084cedc4 Portugese (european) translation, Tiy's "minefield" scheme/wepset, disable vampirism, update translations
nemo
parents: 2076
diff changeset
  1215
	LE_name->setEnabled(n >= 5);
1984
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
  1216
}
955b049eb099 Disable feel of editing for built-in schemes
unc0rr
parents: 1977
diff changeset
  1217
1905
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1218
/////////////////////////////////////////////////
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1219
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1220
PageAdmin::PageAdmin(QWidget* parent) :
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1221
	AbstractPage(parent)
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1222
{
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1223
	QGridLayout * pageLayout = new QGridLayout(this);
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1224
1924
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1225
	QLabel * lblSM = new QLabel(this);
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1226
	lblSM->setText(tr("Server message:"));
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1227
	pageLayout->addWidget(lblSM, 0, 0);
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1228
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1229
	leServerMessage = new QLineEdit(this);
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1230
	pageLayout->addWidget(leServerMessage, 0, 1);
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1231
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1232
	pbSetSM = addButton(tr("Set message"), pageLayout, 0, 2);
2155
d897222d3339 Implement ability for server admin to clear accounts cache
unc0rr
parents: 2098
diff changeset
  1233
	pbClearAccountsCache = addButton(tr("Clear Accounts Cache"), pageLayout, 1, 0);
d897222d3339 Implement ability for server admin to clear accounts cache
unc0rr
parents: 2098
diff changeset
  1234
d897222d3339 Implement ability for server admin to clear accounts cache
unc0rr
parents: 2098
diff changeset
  1235
	BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
1924
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1236
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1237
	connect(pbSetSM, SIGNAL(clicked()), this, SLOT(smChanged()));
1905
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1904
diff changeset
  1238
}
1924
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1239
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1240
void PageAdmin::smChanged()
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1241
{
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1242
	emit setServerMessage(leServerMessage->text());
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1243
}
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1244
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1245
void PageAdmin::serverMessage(const QString & str)
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1246
{
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1247
	leServerMessage->setText(str);
8f8fe856ce9d Prepare to add ability for admin to set MOTD
unc0rr
parents: 1905
diff changeset
  1248
}
1950
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1249
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1250
/////////////////////////////////////////////////
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1251
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1252
PageNetType::PageNetType(QWidget* parent) : AbstractPage(parent)
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1253
{
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1254
	QGridLayout * pageLayout = new QGridLayout(this);
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1255
	pageLayout->setRowStretch(0, 10);
1977
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1256
	pageLayout->setRowStretch(3, 10);
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1257
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1258
	pageLayout->setColumnStretch(1, 10);
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1259
	pageLayout->setColumnStretch(2, 20);
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1260
	pageLayout->setColumnStretch(3, 10);
1950
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1261
1977
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1262
	BtnLAN = addButton(tr("LAN game"), pageLayout, 1, 2);
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1263
	BtnOfficialServer = addButton(tr("Official server"), pageLayout, 2, 2);
1950
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1264
1977
2284d7fefe4f Some polishing
unc0rr
parents: 1951
diff changeset
  1265
	BtnBack = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
1950
09ad18a1be11 Implement two buttons
unc0rr
parents: 1943
diff changeset
  1266
}