author | sheepluva |
Mon, 31 Oct 2011 13:12:10 +0100 | |
changeset 6248 | 103bc8fd4f1b |
parent 6227 | ce60b734fff1 |
child 6428 | 2d2b5e3c59a7 |
permissions | -rw-r--r-- |
184 | 1 |
/* |
1066 | 2 |
* Hedgewars, a free turn based strategy game |
4976 | 3 |
* Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com> |
184 | 4 |
* |
5 |
* This program is free software; you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU General Public License as published by |
|
7 |
* the Free Software Foundation; version 2 of the License |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
|
17 |
*/ |
|
18 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
19 |
#include <QDir> |
184 | 20 |
#include <QFile> |
21 |
#include <QTextStream> |
|
407 | 22 |
#include <QMessageBox> |
502
bc178daca088
Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents:
496
diff
changeset
|
23 |
#include <QPushButton> |
bc178daca088
Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents:
496
diff
changeset
|
24 |
#include <QListWidget> |
bc178daca088
Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents:
496
diff
changeset
|
25 |
#include <QStackedLayout> |
bc178daca088
Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents:
496
diff
changeset
|
26 |
#include <QLineEdit> |
bc178daca088
Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents:
496
diff
changeset
|
27 |
#include <QLabel> |
636 | 28 |
#include <QRadioButton> |
654 | 29 |
#include <QSpinBox> |
674 | 30 |
#include <QCloseEvent> |
1235 | 31 |
#include <QCheckBox> |
1377 | 32 |
#include <QTextBrowser> |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
33 |
#include <QAction> |
1418 | 34 |
#include <QTimer> |
1419 | 35 |
#include <QScrollBar> |
1885 | 36 |
#include <QDataWidgetMapper> |
1887 | 37 |
#include <QTableView> |
2874
3c7c2bf1ba38
A simple hat reservation mechanism. Can be worked around with a little effort, but to make it useful, you'd have to get everyone you played with to work around it too. Quite a bit of effort for a small reward feature.
nemo
parents:
2845
diff
changeset
|
38 |
#include <QCryptographicHash> |
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
39 |
#include <QSignalMapper> |
4759 | 40 |
#include <QShortcut> |
5651
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
41 |
#include <QDesktopServices> |
5734 | 42 |
#include <QInputDialog> |
184 | 43 |
|
44 |
#include "hwform.h" |
|
45 |
#include "game.h" |
|
46 |
#include "team.h" |
|
47 |
#include "teamselect.h" |
|
681 | 48 |
#include "selectWeapon.h" |
184 | 49 |
#include "gameuiconfig.h" |
5204 | 50 |
#include "pageinfo.h" |
51 |
#include "pagetraining.h" |
|
52 |
#include "pagesingleplayer.h" |
|
53 |
#include "pageselectweapon.h" |
|
54 |
#include "pageadmin.h" |
|
55 |
#include "pagecampaign.h" |
|
56 |
#include "pagescheme.h" |
|
57 |
#include "pagenetgame.h" |
|
58 |
#include "pageroomslist.h" |
|
59 |
#include "pageconnecting.h" |
|
60 |
#include "pageoptions.h" |
|
61 |
#include "pageeditteam.h" |
|
62 |
#include "pagemultiplayer.h" |
|
63 |
#include "pagenet.h" |
|
64 |
#include "pagemain.h" |
|
65 |
#include "pagenetserver.h" |
|
66 |
#include "pagedrawmap.h" |
|
67 |
#include "pagenettype.h" |
|
5205
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
68 |
#include "pagegamestats.h" |
5567
44c9a577b082
Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents:
5255
diff
changeset
|
69 |
#include "pageplayrecord.h" |
44c9a577b082
Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents:
5255
diff
changeset
|
70 |
#include "pagedata.h" |
184 | 71 |
#include "hwconsts.h" |
314 | 72 |
#include "newnetclient.h" |
329
4c3aad46baa5
Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents:
328
diff
changeset
|
73 |
#include "gamecfgwidget.h" |
632
5e09ae25729f
Half implement possibility for different backends of servers list
unc0rr
parents:
625
diff
changeset
|
74 |
#include "netserverslist.h" |
634 | 75 |
#include "netudpserver.h" |
461 | 76 |
#include "chatwidget.h" |
653
4f44fc06ca45
Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents:
647
diff
changeset
|
77 |
#include "input_ip.h" |
1885 | 78 |
#include "ammoSchemeModel.h" |
2012 | 79 |
#include "bgwidget.h" |
2821 | 80 |
#include "xfire.h" |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
81 |
#include "drawmapwidget.h" |
184 | 82 |
|
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
83 |
#include "HWDataManager.h" |
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
84 |
|
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
85 |
#ifdef __APPLE__ |
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
86 |
#include "M3Panel.h" |
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
87 |
#ifdef SPARKLE_ENABLED |
2511 | 88 |
#define SPARKLE_APPCAST_URL "http://www.hedgewars.org/download/appcast.xml" |
2261 | 89 |
#include "SparkleAutoUpdater.h" |
90 |
#endif |
|
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
91 |
#endif |
2261 | 92 |
|
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
93 |
// I started handing this down to each place it touches, but it was getting ridiculous |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
94 |
// and this one flag does not warrant a static class |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
95 |
bool frontendEffects = true; |
2874
3c7c2bf1ba38
A simple hat reservation mechanism. Can be worked around with a little effort, but to make it useful, you'd have to get everyone you played with to work around it too. Quite a bit of effort for a small reward feature.
nemo
parents:
2845
diff
changeset
|
96 |
QString playerHash; |
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
97 |
|
5849 | 98 |
HWForm::HWForm(QWidget *parent, QString styleSheet) |
6223
cc3eb9b7230f
It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents:
6211
diff
changeset
|
99 |
: QMainWindow(parent) |
cc3eb9b7230f
It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents:
6211
diff
changeset
|
100 |
, game(0) |
cc3eb9b7230f
It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents:
6211
diff
changeset
|
101 |
, pnetserver(0) |
cc3eb9b7230f
It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents:
6211
diff
changeset
|
102 |
, pRegisterServer(0) |
cc3eb9b7230f
It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents:
6211
diff
changeset
|
103 |
, editedTeam(0) |
cc3eb9b7230f
It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents:
6211
diff
changeset
|
104 |
, hwnet(0) |
184 | 105 |
{ |
6166 | 106 |
// set music track |
6167 | 107 |
SDLInteraction::instance().setMusicTrack( |
108 |
HWDataManager::instance().findFileForRead("Music/main_theme.ogg") |
|
109 |
); |
|
6166 | 110 |
|
2822 | 111 |
#ifdef USE_XFIRE |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
112 |
xfire_init(); |
2822 | 113 |
#endif |
2773
e94f240a8a41
Have game beep when someone joins lobby/room. Controlled by Sound option
nemo
parents:
2742
diff
changeset
|
114 |
gameSettings = new QSettings(cfgdir->absolutePath() + "/hedgewars.ini", QSettings::IniFormat); |
3019 | 115 |
frontendEffects = gameSettings->value("frontend/effects", true).toBool(); |
2874
3c7c2bf1ba38
A simple hat reservation mechanism. Can be worked around with a little effort, but to make it useful, you'd have to get everyone you played with to work around it too. Quite a bit of effort for a small reward feature.
nemo
parents:
2845
diff
changeset
|
116 |
playerHash = QString(QCryptographicHash::hash(gameSettings->value("net/nick","").toString().toLatin1(), QCryptographicHash::Md5).toHex()); |
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
117 |
|
5849 | 118 |
this->setStyleSheet(styleSheet); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
119 |
ui.setupUi(this); |
3284 | 120 |
setMinimumSize(760, 580); |
4592
b1fe47b11b99
disable fix for issue 24 in order to fix issue 123, as suggested by koda
sheepluva
parents:
4576
diff
changeset
|
121 |
//setFocusPolicy(Qt::StrongFocus); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
122 |
CustomizePalettes(); |
3697 | 123 |
|
6165
6fe3e922246e
moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents:
6160
diff
changeset
|
124 |
ui.pageOptions->CBResolution->addItems(SDLInteraction::instance().getResolutions()); |
1225
f882a92ef872
Play music in menu also, with fading effects when run game
unc0rr
parents:
1223
diff
changeset
|
125 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
126 |
config = new GameUIConfig(this, cfgdir->absolutePath() + "/hedgewars.ini"); |
2377 | 127 |
|
128 |
||
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
129 |
#ifdef __APPLE__ |
3937 | 130 |
panel = new M3Panel; |
5087
d3af455a868e
cmd+m should minimize the app as per apple human guidelines
koda
parents:
5061
diff
changeset
|
131 |
|
2395 | 132 |
#ifdef SPARKLE_ENABLED |
3937 | 133 |
AutoUpdater* updater; |
5095
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
5087
diff
changeset
|
134 |
|
3937 | 135 |
updater = new SparkleAutoUpdater(SPARKLE_APPCAST_URL); |
136 |
if (updater && config->isAutoUpdateEnabled()) |
|
137 |
updater->checkForUpdates(); |
|
3697 | 138 |
#endif |
5087
d3af455a868e
cmd+m should minimize the app as per apple human guidelines
koda
parents:
5061
diff
changeset
|
139 |
|
d3af455a868e
cmd+m should minimize the app as per apple human guidelines
koda
parents:
5061
diff
changeset
|
140 |
QShortcut *hideFrontend = new QShortcut(QKeySequence("Ctrl+M"), this); |
d3af455a868e
cmd+m should minimize the app as per apple human guidelines
koda
parents:
5061
diff
changeset
|
141 |
connect (hideFrontend, SIGNAL(activated()), this, SLOT(showMinimized())); |
4759 | 142 |
#else |
143 |
// ctrl+q closes frontend for consistency |
|
144 |
QShortcut *closeFrontend = new QShortcut(QKeySequence("Ctrl+Q"), this); |
|
145 |
connect (closeFrontend, SIGNAL(activated()), this, SLOT(close())); |
|
2261 | 146 |
#endif |
2377 | 147 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
148 |
UpdateTeamsLists(); |
3760 | 149 |
UpdateCampaignPage(0); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
150 |
UpdateWeapons(); |
184 | 151 |
|
6009 | 152 |
// connect all goBack signals |
153 |
int nPages = ui.Pages->count(); |
|
154 |
||
155 |
for (int i = 0; i < nPages; i++) |
|
156 |
connect(ui.Pages->widget(i), SIGNAL(goBack()), this, SLOT(GoBack())); |
|
157 |
||
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
158 |
pageSwitchMapper = new QSignalMapper(this); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
159 |
connect(pageSwitchMapper, SIGNAL(mapped(int)), this, SLOT(GoToPage(int))); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
160 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
161 |
connect(config, SIGNAL(frontendFullscreen(bool)), this, SLOT(onFrontendFullscreen(bool))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
162 |
onFrontendFullscreen(config->isFrontendFullscreen()); |
1162 | 163 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
164 |
connect(ui.pageMain->BtnSinglePlayer, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
165 |
pageSwitchMapper->setMapping(ui.pageMain->BtnSinglePlayer, ID_PAGE_SINGLEPLAYER); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
166 |
|
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
167 |
connect(ui.pageMain->BtnSetup, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
168 |
pageSwitchMapper->setMapping(ui.pageMain->BtnSetup, ID_PAGE_SETUP); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
169 |
|
4518 | 170 |
connect(ui.pageMain->BtnNet, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
171 |
pageSwitchMapper->setMapping(ui.pageMain->BtnNet, ID_PAGE_NETTYPE); |
|
5763
d7a887c7e2d0
Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents:
5746
diff
changeset
|
172 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
173 |
connect(ui.pageMain->BtnInfo, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
5763
d7a887c7e2d0
Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents:
5746
diff
changeset
|
174 |
pageSwitchMapper->setMapping(ui.pageMain->BtnInfo, ID_PAGE_INFO); |
d7a887c7e2d0
Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents:
5746
diff
changeset
|
175 |
|
d7a887c7e2d0
Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents:
5746
diff
changeset
|
176 |
connect(ui.pageMain->BtnDataDownload, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
d7a887c7e2d0
Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents:
5746
diff
changeset
|
177 |
pageSwitchMapper->setMapping(ui.pageMain->BtnDataDownload, ID_PAGE_DATADOWNLOAD); |
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
178 |
|
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
179 |
//connect(ui.pageMain->BtnExit, SIGNAL(pressed()), this, SLOT(btnExitPressed())); |
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
180 |
//connect(ui.pageMain->BtnExit, SIGNAL(clicked()), this, SLOT(btnExitClicked())); |
184 | 181 |
|
6024 | 182 |
connect(ui.pageEditTeam, SIGNAL(teamEdited()), this, SLOT(AfterTeamEdit())); |
1840 | 183 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
184 |
connect(ui.pageMultiplayer->BtnStartMPGame, SIGNAL(clicked()), this, SLOT(StartMPGame())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
185 |
connect(ui.pageMultiplayer->teamsSelect, SIGNAL(setEnabledGameStart(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
186 |
ui.pageMultiplayer->BtnStartMPGame, SLOT(setEnabled(bool))); |
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
187 |
connect(ui.pageMultiplayer, SIGNAL(SetupClicked()), this, SLOT(IntermediateSetup())); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
188 |
connect(ui.pageMultiplayer->gameCFG, SIGNAL(goToSchemes(int)), this, SLOT(GoToScheme(int))); |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
189 |
connect(ui.pageMultiplayer->gameCFG, SIGNAL(goToWeapons(int)), this, SLOT(GoToSelectWeaponSet(int))); |
4511 | 190 |
connect(ui.pageMultiplayer->gameCFG, SIGNAL(goToDrawMap()), pageSwitchMapper, SLOT(map())); |
191 |
pageSwitchMapper->setMapping(ui.pageMultiplayer->gameCFG, ID_PAGE_DRAWMAP); |
|
184 | 192 |
|
6009 | 193 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
194 |
connect(ui.pagePlayDemo->BtnPlayDemo, SIGNAL(clicked()), this, SLOT(PlayDemo())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
195 |
connect(ui.pagePlayDemo->DemosList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(PlayDemo())); |
184 | 196 |
|
6024 | 197 |
connect(ui.pageOptions, SIGNAL(newTeamRequested()), this, SLOT(NewTeam())); |
198 |
connect(ui.pageOptions, SIGNAL(editTeamRequested(const QString&)), this, SLOT(EditTeam(const QString&))); |
|
199 |
connect(ui.pageOptions, SIGNAL(deleteTeamRequested(const QString&)), this, SLOT(DeleteTeam(const QString&))); |
|
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
200 |
connect(ui.pageOptions->btnSave, SIGNAL(clicked()), config, SLOT(SaveOptions())); |
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
201 |
connect(ui.pageOptions->btnSave, SIGNAL(clicked()), this, SLOT(GoBack())); |
3932 | 202 |
connect(ui.pageOptions->BtnAssociateFiles, SIGNAL(clicked()), this, SLOT(AssociateFiles())); |
695 | 203 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
204 |
connect(ui.pageOptions->WeaponEdit, SIGNAL(clicked()), this, SLOT(GoToSelectWeapon())); |
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
205 |
connect(ui.pageOptions->WeaponNew, SIGNAL(clicked()), this, SLOT(GoToSelectNewWeapon())); |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
206 |
connect(ui.pageOptions->WeaponDelete, SIGNAL(clicked()), this, SLOT(DeleteWeaponSet())); |
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
207 |
connect(ui.pageOptions->SchemeEdit, SIGNAL(clicked()), this, SLOT(GoToEditScheme())); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
208 |
connect(ui.pageOptions->SchemeNew, SIGNAL(clicked()), this, SLOT(GoToNewScheme())); |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
209 |
connect(ui.pageOptions->SchemeDelete, SIGNAL(clicked()), this, SLOT(DeleteScheme())); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
210 |
connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsChanged()), this, SLOT(UpdateWeapons())); |
184 | 211 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
212 |
connect(ui.pageNet->BtnSpecifyServer, SIGNAL(clicked()), this, SLOT(NetConnect())); |
4518 | 213 |
connect(ui.pageNet->BtnNetSvrStart, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
214 |
pageSwitchMapper->setMapping(ui.pageNet->BtnNetSvrStart, ID_PAGE_NETSERVER); |
|
215 |
||
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
216 |
connect(ui.pageNet, SIGNAL(connectClicked(const QString &, quint16)), this, SLOT(NetConnectServer(const QString &, quint16))); |
2377 | 217 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
218 |
connect(ui.pageNetServer->BtnStart, SIGNAL(clicked()), this, SLOT(NetStartServer())); |
184 | 219 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
220 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(setEnabledGameStart(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
221 |
ui.pageNetGame->BtnStart, SLOT(setEnabled(bool))); |
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
222 |
connect(ui.pageNetGame, SIGNAL(SetupClicked()), this, SLOT(IntermediateSetup())); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
223 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(goToSchemes(int)), this, SLOT(GoToScheme(int))); |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
224 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(goToWeapons(int)), this, SLOT(GoToSelectWeaponSet(int))); |
4511 | 225 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(goToDrawMap()), pageSwitchMapper, SLOT(map())); |
226 |
pageSwitchMapper->setMapping(ui.pageNetGame->pGameCFG, ID_PAGE_DRAWMAP); |
|
184 | 227 |
|
4518 | 228 |
connect(ui.pageRoomsList->BtnAdmin, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
229 |
pageSwitchMapper->setMapping(ui.pageRoomsList->BtnAdmin, ID_PAGE_ADMIN); |
|
187 | 230 |
|
5651
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
231 |
connect(ui.pageInfo->BtnSnapshots, SIGNAL(clicked()), this, SLOT(OpenSnapshotFolder())); |
1312 | 232 |
|
5734 | 233 |
connect(ui.pageGameStats, SIGNAL(saveDemoRequested()), this, SLOT(saveDemoWithCustomName())); |
306 | 234 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
235 |
connect(ui.pageSinglePlayer->BtnSimpleGamePage, SIGNAL(clicked()), this, SLOT(SimpleGame())); |
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
236 |
connect(ui.pageSinglePlayer->BtnTrainPage, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
237 |
pageSwitchMapper->setMapping(ui.pageSinglePlayer->BtnTrainPage, ID_PAGE_TRAINING); |
4518 | 238 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
239 |
connect(ui.pageSinglePlayer->BtnCampaignPage, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
240 |
pageSwitchMapper->setMapping(ui.pageSinglePlayer->BtnCampaignPage, ID_PAGE_CAMPAIGN); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
241 |
|
4518 | 242 |
connect(ui.pageSinglePlayer->BtnMultiplayer, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
243 |
pageSwitchMapper->setMapping(ui.pageSinglePlayer->BtnMultiplayer, ID_PAGE_MULTIPLAYER); |
|
244 |
||
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
245 |
connect(ui.pageSinglePlayer->BtnLoad, SIGNAL(clicked()), this, SLOT(GoToSaves())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
246 |
connect(ui.pageSinglePlayer->BtnDemos, SIGNAL(clicked()), this, SLOT(GoToDemos())); |
311 | 247 |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
248 |
connect(ui.pageTraining, SIGNAL(startMission(const QString&)), this, SLOT(startTraining(const QString&))); |
587 | 249 |
|
3760 | 250 |
connect(ui.pageCampaign->BtnStartCampaign, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
251 |
connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
|
252 |
||
600 | 253 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
254 |
connect(ui.pageSelectWeapon->BtnDelete, SIGNAL(clicked()), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
255 |
ui.pageSelectWeapon->pWeapons, SLOT(deleteWeaponsName())); // executed first |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
256 |
connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsDeleted()), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
257 |
this, SLOT(UpdateWeapons())); // executed second |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
258 |
//connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsDeleted()), |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
259 |
// this, SLOT(GoBack())); // executed third |
718 | 260 |
|
1887 | 261 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
262 |
connect(ui.pageNetType->BtnLAN, SIGNAL(clicked()), this, SLOT(GoToNet())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
263 |
connect(ui.pageNetType->BtnOfficialServer, SIGNAL(clicked()), this, SLOT(NetConnectOfficialServer())); |
1950 | 264 |
|
5147 | 265 |
connect(ui.pageConnecting, SIGNAL(cancelConnection()), this, SLOT(GoBack())); |
266 |
||
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
267 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
268 |
ammoSchemeModel = new AmmoSchemeModel(this, cfgdir->absolutePath() + "/schemes.ini"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
269 |
ui.pageScheme->setModel(ammoSchemeModel); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
270 |
ui.pageMultiplayer->gameCFG->GameSchemes->setModel(ammoSchemeModel); |
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
271 |
ui.pageOptions->SchemesName->setModel(ammoSchemeModel); |
1885 | 272 |
|
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
273 |
wBackground = NULL; |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
274 |
if (config->isFrontendEffects()) { |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
275 |
wBackground = new BGWidget(this); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
276 |
wBackground->setFixedSize(this->width(), this->height()); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
277 |
wBackground->lower(); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
278 |
wBackground->init(); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
279 |
wBackground->startAnimation(); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
280 |
} |
2012 | 281 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
282 |
PagesStack.push(ID_PAGE_MAIN); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
283 |
GoBack(); |
184 | 284 |
} |
285 |
||
2822 | 286 |
#ifdef USE_XFIRE |
2821 | 287 |
void HWForm::updateXfire(void) |
288 |
{ |
|
6036 | 289 |
if(hwnet && (hwnet->clientState() != HWNewNet::Disconnected)) |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
290 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
291 |
xfire_setvalue(XFIRE_SERVER, !hwnet->getHost().compare("netserver.hedgewars.org:46631") ? "Official server" : hwnet->getHost().toAscii()); |
6036 | 292 |
switch(hwnet->clientState()) |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
293 |
{ |
6036 | 294 |
case HWNewNet::Connecting: // Connecting |
295 |
case HWNewNet::Connected: |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
296 |
xfire_setvalue(XFIRE_STATUS, "Connecting"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
297 |
xfire_setvalue(XFIRE_NICKNAME, "-"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
298 |
xfire_setvalue(XFIRE_ROOM, "-"); |
6036 | 299 |
case HWNewNet::InLobby: // In lobby |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
300 |
xfire_setvalue(XFIRE_STATUS, "Online"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
301 |
xfire_setvalue(XFIRE_NICKNAME, hwnet->getNick().toAscii()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
302 |
xfire_setvalue(XFIRE_ROOM, "In game lobby"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
303 |
break; |
6036 | 304 |
case HWNewNet::InRoom: // In room |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
305 |
xfire_setvalue(XFIRE_STATUS, "Online"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
306 |
xfire_setvalue(XFIRE_NICKNAME, hwnet->getNick().toAscii()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
307 |
xfire_setvalue(XFIRE_ROOM, (hwnet->getRoom() + " (waiting for players)").toAscii()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
308 |
break; |
6036 | 309 |
case HWNewNet::InGame: // In game |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
310 |
xfire_setvalue(XFIRE_STATUS, "Online"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
311 |
xfire_setvalue(XFIRE_NICKNAME, hwnet->getNick().toAscii()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
312 |
xfire_setvalue(XFIRE_ROOM, (hwnet->getRoom() + " (playing or spectating)").toAscii()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
313 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
314 |
default: |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
315 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
316 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
317 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
318 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
319 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
320 |
xfire_setvalue(XFIRE_STATUS, "Offline"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
321 |
xfire_setvalue(XFIRE_NICKNAME, "-"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
322 |
xfire_setvalue(XFIRE_ROOM, "-"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
323 |
xfire_setvalue(XFIRE_SERVER, "-"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
324 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
325 |
xfire_update(); |
2821 | 326 |
} |
2822 | 327 |
#endif |
2821 | 328 |
|
1162 | 329 |
void HWForm::onFrontendFullscreen(bool value) |
330 |
{ |
|
1163 | 331 |
if (value) |
332 |
setWindowState(windowState() | Qt::WindowFullScreen); |
|
333 |
else { |
|
5112
4e2ebd8ac298
avoided some ambiguous function calls
Jonathan@Jonathan-PC.fritz.box
parents:
5095
diff
changeset
|
334 |
setWindowState(windowState() & static_cast<int>(!Qt::WindowFullScreen)); |
1163 | 335 |
} |
1162 | 336 |
} |
337 |
||
4592
b1fe47b11b99
disable fix for issue 24 in order to fix issue 123, as suggested by koda
sheepluva
parents:
4576
diff
changeset
|
338 |
/* |
3937 | 339 |
void HWForm::keyReleaseEvent(QKeyEvent *event) |
340 |
{ |
|
4592
b1fe47b11b99
disable fix for issue 24 in order to fix issue 123, as suggested by koda
sheepluva
parents:
4576
diff
changeset
|
341 |
if (event->key() == Qt::Key_Escape) |
3937 | 342 |
this->GoBack(); |
343 |
} |
|
4592
b1fe47b11b99
disable fix for issue 24 in order to fix issue 123, as suggested by koda
sheepluva
parents:
4576
diff
changeset
|
344 |
*/ |
3937 | 345 |
|
1419 | 346 |
void HWForm::CustomizePalettes() |
347 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
348 |
QList<QScrollBar *> allSBars = findChildren<QScrollBar *>(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
349 |
QPalette pal = palette(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
350 |
pal.setColor(QPalette::WindowText, QColor(0xff, 0xcc, 0x00)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
351 |
pal.setColor(QPalette::Button, QColor(0x00, 0x35, 0x1d)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
352 |
pal.setColor(QPalette::Base, QColor(0x00, 0x35, 0x1d)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
353 |
pal.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00)); |
1419 | 354 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
355 |
for (int i = 0; i < allSBars.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
356 |
allSBars.at(i)->setPalette(pal); |
1419 | 357 |
} |
358 |
||
695 | 359 |
void HWForm::UpdateWeapons() |
360 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
361 |
QVector<QComboBox*> combos; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
362 |
combos.push_back(ui.pageOptions->WeaponsName); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
363 |
combos.push_back(ui.pageMultiplayer->gameCFG->WeaponsName); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
364 |
combos.push_back(ui.pageNetGame->pGameCFG->WeaponsName); |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
365 |
combos.push_back(ui.pageSelectWeapon->selectWeaponSet); |
696 | 366 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
367 |
QStringList names = ui.pageSelectWeapon->pWeapons->getWeaponNames(); |
1517 | 368 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
369 |
for(QVector<QComboBox*>::iterator it = combos.begin(); it != combos.end(); ++it) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
370 |
(*it)->clear(); |
1517 | 371 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
372 |
for(int i = 0; i < names.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
373 |
(*it)->addItem(names[i], ui.pageSelectWeapon->pWeapons->getWeaponsString(names[i])); |
2377 | 374 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
375 |
int pos = (*it)->findText("Default"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
376 |
if (pos != -1) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
377 |
(*it)->setCurrentIndex(pos); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
378 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
379 |
} |
695 | 380 |
} |
381 |
||
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
382 |
void HWForm::UpdateTeamsLists(const QStringList* editable_teams) |
245 | 383 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
384 |
QStringList teamslist; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
385 |
if(editable_teams) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
386 |
teamslist =* editable_teams; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
387 |
} else { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
388 |
teamslist = config->GetTeamsList(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
389 |
} |
245 | 390 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
391 |
if(teamslist.empty()) { |
3760 | 392 |
HWTeam defaultTeam(tr("DefaultTeam")); |
6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
6009
diff
changeset
|
393 |
defaultTeam.saveToFile(); |
3760 | 394 |
teamslist.push_back(tr("DefaultTeam")); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
395 |
} |
245 | 396 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
397 |
ui.pageOptions->CBTeamName->clear(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
398 |
ui.pageOptions->CBTeamName->addItems(teamslist); |
3760 | 399 |
ui.pageCampaign->CBTeam->clear(); |
400 |
ui.pageCampaign->CBTeam->addItems(teamslist); |
|
245 | 401 |
} |
402 |
||
694 | 403 |
void HWForm::GoToSelectNewWeapon() |
404 |
{ |
|
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
405 |
ui.pageSelectWeapon->pWeapons->newWeaponsName(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
406 |
GoToPage(ID_PAGE_SELECTWEAPON); |
694 | 407 |
} |
408 |
||
600 | 409 |
void HWForm::GoToSelectWeapon() |
410 |
{ |
|
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
411 |
ui.pageSelectWeapon->selectWeaponSet->setCurrentIndex(ui.pageOptions->WeaponsName->currentIndex()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
412 |
GoToPage(ID_PAGE_SELECTWEAPON); |
600 | 413 |
} |
414 |
||
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
415 |
void HWForm::GoToSelectWeaponSet(int index) |
2009 | 416 |
{ |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
417 |
ui.pageSelectWeapon->selectWeaponSet->setCurrentIndex(index); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
418 |
GoToPage(ID_PAGE_SELECTWEAPON); |
2009 | 419 |
} |
420 |
||
579 | 421 |
void HWForm::GoToSaves() |
422 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
423 |
ui.pagePlayDemo->FillFromDir(PagePlayDemo::RT_Save); |
579 | 424 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
425 |
GoToPage(ID_PAGE_DEMOS); |
579 | 426 |
} |
427 |
||
184 | 428 |
void HWForm::GoToDemos() |
429 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
430 |
ui.pagePlayDemo->FillFromDir(PagePlayDemo::RT_Demo); |
579 | 431 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
432 |
GoToPage(ID_PAGE_DEMOS); |
184 | 433 |
} |
434 |
||
435 |
void HWForm::GoToNet() |
|
436 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
437 |
ui.pageNet->updateServersList(); |
632
5e09ae25729f
Half implement possibility for different backends of servers list
unc0rr
parents:
625
diff
changeset
|
438 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
439 |
GoToPage(ID_PAGE_NET); |
184 | 440 |
} |
441 |
||
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
442 |
void HWForm::GoToScheme(int index) |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
443 |
{ |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
444 |
ui.pageScheme->selectScheme->setCurrentIndex(index); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
445 |
GoToPage(ID_PAGE_SCHEME); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
446 |
} |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
447 |
|
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
448 |
void HWForm::GoToNewScheme() |
1885 | 449 |
{ |
4410
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
450 |
ui.pageScheme->newRow(); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
451 |
GoToPage(ID_PAGE_SCHEME); |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
452 |
} |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
453 |
|
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
454 |
void HWForm::GoToEditScheme() |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
455 |
{ |
f9e38ce1e813
a Henek-koda production: nicer game config screen, fixed scheme-weapon lock, added scheme editing to config page and some minor stuff
Henek
parents:
4392
diff
changeset
|
456 |
ui.pageScheme->selectScheme->setCurrentIndex(ui.pageOptions->SchemesName->currentIndex()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
457 |
GoToPage(ID_PAGE_SCHEME); |
1885 | 458 |
} |
459 |
||
496 | 460 |
void HWForm::OnPageShown(quint8 id, quint8 lastid) |
311 | 461 |
{ |
2822 | 462 |
#ifdef USE_XFIRE |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
463 |
updateXfire(); |
2822 | 464 |
#endif |
5999
dad168522e3b
display a message when network is down or server is not reachable, nemo also made the page refresh at display time
koda
parents:
5907
diff
changeset
|
465 |
if (id == ID_PAGE_DATADOWNLOAD) |
dad168522e3b
display a message when network is down or server is not reachable, nemo also made the page refresh at display time
koda
parents:
5907
diff
changeset
|
466 |
{ |
dad168522e3b
display a message when network is down or server is not reachable, nemo also made the page refresh at display time
koda
parents:
5907
diff
changeset
|
467 |
ui.pageDataDownload->fetchList(); |
dad168522e3b
display a message when network is down or server is not reachable, nemo also made the page refresh at display time
koda
parents:
5907
diff
changeset
|
468 |
} |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
469 |
if (id == ID_PAGE_DRAWMAP) { |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
470 |
DrawMapScene * scene; |
4535 | 471 |
if(lastid == ID_PAGE_MULTIPLAYER) |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
472 |
scene = ui.pageMultiplayer->gameCFG->pMapContainer->getDrawMapScene(); |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
473 |
else |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
474 |
scene = ui.pageNetGame->pGameCFG->pMapContainer->getDrawMapScene(); |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
475 |
|
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
476 |
ui.pageDrawMap->drawMapWidget->setScene(scene); |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
477 |
} |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
478 |
|
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
479 |
if (lastid == ID_PAGE_DRAWMAP) { |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
480 |
if (id == ID_PAGE_MULTIPLAYER) |
4525 | 481 |
ui.pageMultiplayer->gameCFG->pMapContainer->mapDrawingFinished(); |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
482 |
else |
4525 | 483 |
ui.pageNetGame->pGameCFG->pMapContainer->mapDrawingFinished(); |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
484 |
} |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
485 |
|
6190
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
486 |
if (id == ID_PAGE_ROOMSLIST) { |
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
487 |
if (hwnet && game && game->gameState == gsStarted) { // abnormal exit - kick or room destruction - send kills. |
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
488 |
game->netSuspend = true; |
6211
ee9465c0ea82
move (prematurely) finishing game by removing all teams into engine since that's where it should happen
sheepluva
parents:
6205
diff
changeset
|
489 |
ui.pageRoomsList->displayWarning(tr("Game aborted")); |
ee9465c0ea82
move (prematurely) finishing game by removing all teams into engine since that's where it should happen
sheepluva
parents:
6205
diff
changeset
|
490 |
game->abort(); |
6190
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
491 |
} |
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
492 |
} |
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
493 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
494 |
if (id == ID_PAGE_MULTIPLAYER || id == ID_PAGE_NETGAME) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
495 |
QStringList tmNames = config->GetTeamsList(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
496 |
TeamSelWidget* curTeamSelWidget; |
6024 | 497 |
ui.pageOptions->setTeamOptionsEnabled(false); |
2377 | 498 |
|
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
499 |
if (id == ID_PAGE_MULTIPLAYER) { |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
500 |
curTeamSelWidget = ui.pageMultiplayer->teamsSelect; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
501 |
} else { |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
502 |
curTeamSelWidget = ui.pageNetGame->pNetTeamsWidget; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
503 |
} |
2377 | 504 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
505 |
QList<HWTeam> teamsList; |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
506 |
for (QStringList::iterator it = tmNames.begin(); it != tmNames.end(); it++) { |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
507 |
HWTeam team(*it); |
6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
6009
diff
changeset
|
508 |
team.loadFromFile(); |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
509 |
teamsList.push_back(team); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
510 |
} |
2377 | 511 |
|
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
512 |
if (lastid == ID_PAGE_SETUP || lastid == ID_PAGE_DRAWMAP) { // _TEAM |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
513 |
if (editedTeam) { |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
514 |
curTeamSelWidget->addTeam(*editedTeam); |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
515 |
} |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
516 |
} else if (lastid != ID_PAGE_GAMESTATS |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
517 |
&& lastid != ID_PAGE_INGAME |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
518 |
&& lastid != ID_PAGE_SCHEME |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
519 |
&& lastid != ID_PAGE_SELECTWEAPON) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
520 |
curTeamSelWidget->resetPlayingTeams(teamsList); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
521 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
522 |
} else |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
523 |
if (id == ID_PAGE_GAMESTATS) { |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
524 |
ui.pageGameStats->renderStats(); |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
525 |
} |
2845 | 526 |
|
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
527 |
if (id == ID_PAGE_MAIN) { |
6024 | 528 |
ui.pageOptions->setTeamOptionsEnabled(true); |
3159 | 529 |
} |
530 |
||
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
531 |
// load and save ignore/friends lists |
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
532 |
if (lastid == ID_PAGE_NETGAME) // leaving a room |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
533 |
ui.pageNetGame->pChatWidget->saveLists(ui.pageOptions->editNetNick->text()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
534 |
else if(lastid == ID_PAGE_ROOMSLIST) // leaving the lobby |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
535 |
ui.pageRoomsList->chatWidget->saveLists(ui.pageOptions->editNetNick->text()); |
3159 | 536 |
|
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
537 |
if (id == ID_PAGE_NETGAME) // joining a room |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
538 |
ui.pageNetGame->pChatWidget->loadLists(ui.pageOptions->editNetNick->text()); |
4428
2bc3d3475edf
Try to kill off all teams if the player returns to the lobby in mid-game. Also leave game room open for admins to kick/restrict joins etc. NEEDS TESTING PROBABLY BROKE SOMETHING OR OTHER
nemo
parents:
4416
diff
changeset
|
539 |
// joining the lobby |
6190
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
540 |
else if (id == ID_PAGE_ROOMSLIST) |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
541 |
ui.pageRoomsList->chatWidget->loadLists(ui.pageOptions->editNetNick->text()); |
6190
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
542 |
|
311 | 543 |
} |
544 |
||
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
545 |
void HWForm::GoToPage(int id) |
289 | 546 |
{ |
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
547 |
int lastid = ui.Pages->currentIndex(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
548 |
PagesStack.push(ui.Pages->currentIndex()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
549 |
OnPageShown(id, lastid); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
550 |
ui.Pages->setCurrentIndex(id); |
289 | 551 |
} |
552 |
||
553 |
void HWForm::GoBack() |
|
554 |
{ |
|
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
555 |
int curid = ui.Pages->currentIndex(); |
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
556 |
if (curid == ID_PAGE_MAIN) |
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
557 |
exit(); |
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
558 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
559 |
int id = PagesStack.isEmpty() ? ID_PAGE_MAIN : PagesStack.pop(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
560 |
ui.Pages->setCurrentIndex(id); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
561 |
OnPageShown(id, curid); |
2377 | 562 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
563 |
if (id == ID_PAGE_CONNECTING) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
564 |
GoBack(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
565 |
if (id == ID_PAGE_NETSERVER) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
566 |
GoBack(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
567 |
if ((!hwnet) && (id == ID_PAGE_ROOMSLIST)) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
568 |
GoBack(); |
2377 | 569 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
570 |
if ((!hwnet) || (!hwnet->isInRoom())) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
571 |
if (id == ID_PAGE_NETGAME || id == ID_PAGE_NETGAME) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
572 |
GoBack(); |
1672
6a451649558c
Properly handle room deletion in respect of pages switching
unc0rr
parents:
1671
diff
changeset
|
573 |
|
5147 | 574 |
if (curid == ID_PAGE_ROOMSLIST || curid == ID_PAGE_CONNECTING) NetDisconnect(); |
6030
2577028cba07
fix typo that sneaked in by pressing ctrl+z one time too much I guess :D
sheepluva
parents:
6026
diff
changeset
|
575 |
if (curid == ID_PAGE_NETGAME && hwnet && hwnet->isInRoom()) hwnet->partRoom(); |
4432 | 576 |
// need to work on this, can cause invalid state for admin quit trying to prevent bad state message on kick |
577 |
//if (curid == ID_PAGE_NETGAME && (!game || game->gameState != gsStarted)) hwnet->partRoom(); |
|
1902
aeadb10c2d77
Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents:
1899
diff
changeset
|
578 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
579 |
if (curid == ID_PAGE_SCHEME) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
580 |
ammoSchemeModel->Save(); |
184 | 581 |
} |
582 |
||
5651
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
583 |
void HWForm::OpenSnapshotFolder() |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
584 |
{ |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
585 |
QString path = QDir::toNativeSeparators(cfgdir->absolutePath() + "/Screenshots"); |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
586 |
QDesktopServices::openUrl(QUrl("file:///" + path)); |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
587 |
} |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
588 |
|
530 | 589 |
void HWForm::btnExitPressed() |
590 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
591 |
eggTimer.start(); |
530 | 592 |
} |
593 |
||
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
594 |
void HWForm::exit() |
530 | 595 |
{ |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
596 |
// if (eggTimer.elapsed() < 3000){ |
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
597 |
#ifdef __APPLE__ |
3937 | 598 |
panel->showInstallController(); |
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
599 |
#endif |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
600 |
close(); |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
601 |
// TODO reactivate egg |
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
602 |
/* } |
3937 | 603 |
else |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
604 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
605 |
QPushButton * btn = findChild<QPushButton *>("imageButt"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
606 |
if (btn) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
607 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
608 |
btn->setIcon(QIcon(":/res/bonus.png")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
609 |
} |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6036
diff
changeset
|
610 |
} */ |
530 | 611 |
} |
612 |
||
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
613 |
void HWForm::IntermediateSetup() |
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
614 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
615 |
quint8 id=ui.Pages->currentIndex(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
616 |
TeamSelWidget* curTeamSelWidget; |
2377 | 617 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
618 |
if(id == ID_PAGE_MULTIPLAYER) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
619 |
curTeamSelWidget = ui.pageMultiplayer->teamsSelect; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
620 |
} else { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
621 |
curTeamSelWidget = ui.pageNetGame->pNetTeamsWidget; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
622 |
} |
2377 | 623 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
624 |
QStringList tmnames; |
5772
c09c50efe8b5
Replace iterators with simple declarative foreach (not tested if it works)
unc0rr
parents:
5763
diff
changeset
|
625 |
|
5773 | 626 |
foreach(HWTeam team, curTeamSelWidget->getNotPlayingTeams()) |
6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
6009
diff
changeset
|
627 |
tmnames += team.name(); |
5140
932307228d05
Change a few iterations over list to what is apparently a modification safe syntax, may fix issue #208 and #217 - needs testing of course.
nemo
parents:
5126
diff
changeset
|
628 |
|
3757 | 629 |
//UpdateTeamsLists(&tmnames); // FIXME: still need more work if teamname is updated while configuring |
630 |
UpdateTeamsLists(); |
|
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
631 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
632 |
GoToPage(ID_PAGE_SETUP); |
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
633 |
} |
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
634 |
|
184 | 635 |
void HWForm::NewTeam() |
636 |
{ |
|
6024 | 637 |
ui.pageEditTeam->createTeam(QLineEdit::tr("unnamed"), playerHash); |
638 |
UpdateTeamsLists(); |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
639 |
GoToPage(ID_PAGE_SETUP_TEAM); |
184 | 640 |
} |
641 |
||
6024 | 642 |
void HWForm::EditTeam(const QString & teamName) |
3159 | 643 |
{ |
6024 | 644 |
ui.pageEditTeam->editTeam(teamName, playerHash); |
645 |
GoToPage(ID_PAGE_SETUP_TEAM); |
|
3159 | 646 |
} |
647 |
||
6024 | 648 |
void HWForm::AfterTeamEdit() |
1840 | 649 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
650 |
UpdateTeamsLists(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
651 |
GoBack(); |
184 | 652 |
} |
653 |
||
6024 | 654 |
|
655 |
void HWForm::DeleteTeam(const QString & teamName) |
|
184 | 656 |
{ |
6024 | 657 |
ui.pageEditTeam->deleteTeam(teamName); |
658 |
QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Teams"), QMessageBox::tr("Really delete this team?"), QMessageBox::Ok | QMessageBox::Cancel); |
|
659 |
||
660 |
UpdateTeamsLists(); |
|
184 | 661 |
} |
662 |
||
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
663 |
void HWForm::DeleteScheme() |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
664 |
{ |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
665 |
ui.pageScheme->selectScheme->setCurrentIndex(ui.pageOptions->SchemesName->currentIndex()); |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
666 |
if (ui.pageOptions->SchemesName->currentIndex() < ammoSchemeModel->numberOfDefaultSchemes) { |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
667 |
QMessageBox::warning(0, QMessageBox::tr("Schemes"), QMessageBox::tr("Can not delete default scheme '%1'!").arg(ui.pageOptions->SchemesName->currentText())); |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
668 |
} else { |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
669 |
ui.pageScheme->deleteRow(); |
4576
d85062310790
fixed and enabled removing of game scheme from options page
Henek
parents:
4560
diff
changeset
|
670 |
ammoSchemeModel->Save(); |
4416
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
671 |
} |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
672 |
} |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
673 |
|
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
674 |
void HWForm::DeleteWeaponSet() |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
675 |
{ |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
676 |
ui.pageSelectWeapon->selectWeaponSet->setCurrentIndex(ui.pageOptions->WeaponsName->currentIndex()); |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
677 |
ui.pageSelectWeapon->pWeapons->deleteWeaponsName(); |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
678 |
} |
29d2d1548387
adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents:
4410
diff
changeset
|
679 |
|
184 | 680 |
void HWForm::SimpleGame() |
681 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
682 |
CreateGame(0, 0, *cDefaultAmmoStore); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
683 |
game->StartQuick(); |
184 | 684 |
} |
685 |
||
686 |
void HWForm::PlayDemo() |
|
687 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
688 |
QListWidgetItem * curritem = ui.pagePlayDemo->DemosList->currentItem(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
689 |
if (!curritem) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
690 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
691 |
QMessageBox::critical(this, |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
692 |
tr("Error"), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
693 |
tr("Please select record from the list above"), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
694 |
tr("OK")); |
5252 | 695 |
return; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
696 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
697 |
CreateGame(0, 0, 0); |
5865 | 698 |
game->PlayDemo(curritem->data(Qt::UserRole).toString(), ui.pagePlayDemo->isSave()); |
184 | 699 |
} |
700 |
||
5252 | 701 |
void HWForm::PlayDemoQuick(const QString & demofilename) |
702 |
{ |
|
5255
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
703 |
if (game && game->gameState == gsStarted) return; |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
704 |
GoBack(); //needed to cleanly disconnect from netgame |
947025eeb5dc
under osx don't load a file in case a game is already running (also a little of code formatting)
koda
parents:
5252
diff
changeset
|
705 |
GoToPage(ID_PAGE_MAIN); |
5252 | 706 |
CreateGame(0, 0, 0); |
5865 | 707 |
game->PlayDemo(demofilename, false); |
5252 | 708 |
} |
709 |
||
666 | 710 |
void HWForm::NetConnectServer(const QString & host, quint16 port) |
416 | 711 |
{ |
4870 | 712 |
_NetConnect(host, port, ui.pageOptions->editNetNick->text().trimmed()); |
1395 | 713 |
} |
714 |
||
715 |
void HWForm::NetConnectOfficialServer() |
|
716 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
717 |
NetConnectServer("netserver.hedgewars.org", 46631); |
416 | 718 |
} |
719 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
720 |
void HWForm::NetPassword(const QString & nick) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
721 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
722 |
bool ok = false; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
723 |
int passLength = config->value("net/passwordlength", 0).toInt(); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
724 |
QString hash = config->value("net/passwordhash", "").toString(); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
725 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
726 |
// If the password is blank, ask the user to enter one in |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
727 |
if (passLength == 0) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
728 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
729 |
QString password = QInputDialog::getText(this, tr("Password"), tr("Your nickname %1 is\nregistered on Hedgewars.org\nPlease provide your password below\nor pick another nickname in game config:").arg(nick), QLineEdit::Password, passLength==0?NULL:QString(passLength,'\0'), &ok); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
730 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
731 |
if (!ok) { |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
732 |
ForcedDisconnect(tr("No password supplied.")); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
733 |
return; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
734 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
735 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
736 |
hash = QCryptographicHash::hash(password.toLatin1(), QCryptographicHash::Md5).toHex(); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
737 |
config->setValue("net/passwordhash", hash); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
738 |
config->setValue("net/passwordlength", password.size()); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
739 |
config->setNetPasswordLength(password.size()); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
740 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
741 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
742 |
hwnet->SendPasswordHash(hash); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
743 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
744 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
745 |
void HWForm::NetNickTaken(const QString & nick) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
746 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
747 |
bool ok = false; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
748 |
QString newNick = QInputDialog::getText(this, tr("Nickname"), tr("Some one already uses\n your nickname %1\non the server.\nPlease pick another nickname:").arg(nick), QLineEdit::Normal, nick, &ok); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
749 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
750 |
if (!ok || newNick.isEmpty()) { |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
751 |
ForcedDisconnect(tr("No nickname supplied.")); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
752 |
return; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
753 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
754 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
755 |
hwnet->NewNick(newNick); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
756 |
config->setValue("net/nick", newNick); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
757 |
config->updNetNick(); |
6227
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
758 |
|
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
759 |
ui.pageRoomsList->setUser(nick); |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
760 |
ui.pageNetGame->setUser(nick); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
761 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
762 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
763 |
void HWForm::NetAuthFailed() |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
764 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
765 |
// Set the password blank if case the user tries to join and enter his password again |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
766 |
config->setValue("net/passwordlength", 0); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
767 |
config->setNetPasswordLength(0); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
768 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
769 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
770 |
void HWForm::NetTeamAccepted(const QString & team) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
771 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
772 |
ui.pageNetGame->pNetTeamsWidget->changeTeamStatus(team); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
773 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
774 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
775 |
void HWForm::NetError(const QString & errmsg) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
776 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
777 |
switch (ui.Pages->currentIndex()) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
778 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
779 |
case ID_PAGE_INGAME: |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
780 |
ShowErrorMessage(errmsg); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
781 |
// no break |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
782 |
case ID_PAGE_NETGAME: |
6180
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6167
diff
changeset
|
783 |
ui.pageNetGame->displayError(errmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
784 |
break; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
785 |
default: |
6180
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6167
diff
changeset
|
786 |
ui.pageRoomsList->displayError(errmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
787 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
788 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
789 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
790 |
void HWForm::NetWarning(const QString & wrnmsg) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
791 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
792 |
if (ui.Pages->currentIndex() == ID_PAGE_NETGAME || ui.Pages->currentIndex() == ID_PAGE_INGAME) |
6180
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6167
diff
changeset
|
793 |
ui.pageNetGame->displayWarning(wrnmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
794 |
else |
6180
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6167
diff
changeset
|
795 |
ui.pageRoomsList->displayWarning(wrnmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
796 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
797 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
798 |
void HWForm::_NetConnect(const QString & hostName, quint16 port, QString nick) |
184 | 799 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
800 |
if(hwnet) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
801 |
hwnet->Disconnect(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
802 |
delete hwnet; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
803 |
hwnet=0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
804 |
} |
2377 | 805 |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
806 |
hwnet = new HWNewNet(); |
637
8fa7ed5e13bd
Fix bad behavior when quickly click Connect button more than once
unc0rr
parents:
636
diff
changeset
|
807 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
808 |
GoToPage(ID_PAGE_CONNECTING); |
1800 | 809 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
810 |
connect(hwnet, SIGNAL(AskForRunGame()), this, SLOT(CreateNetGame())); |
6036 | 811 |
connect(hwnet, SIGNAL(connected()), this, SLOT(NetConnected())); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
812 |
connect(hwnet, SIGNAL(Error(const QString&)), this, SLOT(NetError(const QString&))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
813 |
connect(hwnet, SIGNAL(Warning(const QString&)), this, SLOT(NetWarning(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
814 |
connect(hwnet, SIGNAL(EnteredGame()), this, SLOT(NetGameEnter())); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
815 |
connect(hwnet, SIGNAL(LeftRoom(const QString&)), this, SLOT(NetLeftRoom(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
816 |
connect(hwnet, SIGNAL(AddNetTeam(const HWTeam&)), this, SLOT(AddNetTeam(const HWTeam&))); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
817 |
connect(hwnet, SIGNAL(RemoveNetTeam(const HWTeam&)), this, SLOT(RemoveNetTeam(const HWTeam&))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
818 |
connect(hwnet, SIGNAL(TeamAccepted(const QString&)), this, SLOT(NetTeamAccepted(const QString&))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
819 |
connect(hwnet, SIGNAL(AskForPassword(const QString&)), this, SLOT(NetPassword(const QString&))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
820 |
connect(hwnet, SIGNAL(NickTaken(const QString&)), this, SLOT(NetNickTaken(const QString&))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
821 |
connect(hwnet, SIGNAL(AuthFailed()), this, SLOT(NetAuthFailed())); |
4392
95e27e12d0e9
Fix koda's esc key binding so leaving rooms works correctly with it
nemo
parents:
4232
diff
changeset
|
822 |
//connect(ui.pageNetGame->BtnBack, SIGNAL(clicked()), hwnet, SLOT(partRoom())); |
329
4c3aad46baa5
Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents:
328
diff
changeset
|
823 |
|
1874 | 824 |
// rooms list page stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
825 |
connect(hwnet, SIGNAL(roomsList(const QStringList&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
826 |
ui.pageRoomsList, SLOT(setRoomsList(const QStringList&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
827 |
connect(hwnet, SIGNAL(adminAccess(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
828 |
ui.pageRoomsList, SLOT(setAdmin(bool))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
829 |
connect(hwnet, SIGNAL(adminAccess(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
830 |
ui.pageRoomsList->chatWidget, SLOT(adminAccess(bool))); |
2377 | 831 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
832 |
connect(hwnet, SIGNAL(serverMessage(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
833 |
ui.pageRoomsList->chatWidget, SLOT(onServerMessage(const QString&))); |
1584
90f6a5abad17
Save much space for chat widget on lobby page by removing server message widget (now this messages goes to chat)
unc0rr
parents:
1577
diff
changeset
|
834 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
835 |
connect(ui.pageRoomsList, SIGNAL(askForCreateRoom(const QString &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
836 |
hwnet, SLOT(CreateRoom(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
837 |
connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
838 |
hwnet, SLOT(JoinRoom(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
839 |
// connect(ui.pageRoomsList, SIGNAL(askForCreateRoom(const QString &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
840 |
// this, SLOT(NetGameMaster())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
841 |
// connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
842 |
// this, SLOT(NetGameSlave())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
843 |
connect(ui.pageRoomsList, SIGNAL(askForRoomList()), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
844 |
hwnet, SLOT(askRoomsList())); |
1313
f4c54e9e1b8c
- Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents:
1312
diff
changeset
|
845 |
|
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
846 |
// room status stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
847 |
connect(hwnet, SIGNAL(roomMaster(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
848 |
this, SLOT(NetGameChangeStatus(bool))); |
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
849 |
|
1874 | 850 |
// net page stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
851 |
connect(hwnet, SIGNAL(chatStringFromNet(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
852 |
ui.pageNetGame->pChatWidget, SLOT(onChatString(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
853 |
connect(hwnet, SIGNAL(setReadyStatus(const QString &, bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
854 |
ui.pageNetGame->pChatWidget, SLOT(setReadyStatus(const QString &, bool))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
855 |
connect(hwnet, SIGNAL(chatStringFromMe(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
856 |
ui.pageNetGame->pChatWidget, SLOT(onChatString(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
857 |
connect(hwnet, SIGNAL(roomMaster(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
858 |
ui.pageNetGame->pChatWidget, SLOT(adminAccess(bool))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
859 |
connect(ui.pageNetGame->pChatWidget, SIGNAL(chatLine(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
860 |
hwnet, SLOT(chatLineToNet(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
861 |
connect(ui.pageNetGame->BtnGo, SIGNAL(clicked()), hwnet, SLOT(ToggleReady())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
862 |
connect(hwnet, SIGNAL(setMyReadyStatus(bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
863 |
ui.pageNetGame, SLOT(setReadyStatus(bool))); |
1577 | 864 |
|
1874 | 865 |
// chat widget actions |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
866 |
connect(ui.pageNetGame->pChatWidget, SIGNAL(kick(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
867 |
hwnet, SLOT(kickPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
868 |
connect(ui.pageNetGame->pChatWidget, SIGNAL(ban(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
869 |
hwnet, SLOT(banPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
870 |
connect(ui.pageNetGame->pChatWidget, SIGNAL(info(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
871 |
hwnet, SLOT(infoPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
872 |
connect(ui.pageNetGame->pChatWidget, SIGNAL(follow(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
873 |
hwnet, SLOT(followPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
874 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(kick(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
875 |
hwnet, SLOT(kickPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
876 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(ban(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
877 |
hwnet, SLOT(banPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
878 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(info(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
879 |
hwnet, SLOT(infoPlayer(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
880 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(follow(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
881 |
hwnet, SLOT(followPlayer(const QString&))); |
1566
6b63c75fdc68
Start work on lobby: add/remove nick from the list on join/quit
unc0rr
parents:
1531
diff
changeset
|
882 |
|
1874 | 883 |
// chatting |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
884 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(chatLine(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
885 |
hwnet, SLOT(chatLineToLobby(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
886 |
connect(hwnet, SIGNAL(chatStringLobby(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
887 |
ui.pageRoomsList->chatWidget, SLOT(onChatString(const QString&))); |
4897
11598e7aa7e6
make names in chats clickable. still color adjustments needed; and testing
sheepluva
parents:
4894
diff
changeset
|
888 |
connect(hwnet, SIGNAL(chatStringLobby(const QString&, const QString&)), |
11598e7aa7e6
make names in chats clickable. still color adjustments needed; and testing
sheepluva
parents:
4894
diff
changeset
|
889 |
ui.pageRoomsList->chatWidget, SLOT(onChatString(const QString&, const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
890 |
connect(hwnet, SIGNAL(chatStringFromMeLobby(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
891 |
ui.pageRoomsList->chatWidget, SLOT(onChatString(const QString&))); |
1568 | 892 |
|
1874 | 893 |
// nick list stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
894 |
connect(hwnet, SIGNAL(nickAdded(const QString&, bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
895 |
ui.pageNetGame->pChatWidget, SLOT(nickAdded(const QString&, bool))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
896 |
connect(hwnet, SIGNAL(nickRemoved(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
897 |
ui.pageNetGame->pChatWidget, SLOT(nickRemoved(const QString&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
898 |
connect(hwnet, SIGNAL(nickAddedLobby(const QString&, bool)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
899 |
ui.pageRoomsList->chatWidget, SLOT(nickAdded(const QString&, bool))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
900 |
connect(hwnet, SIGNAL(nickRemovedLobby(const QString&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
901 |
ui.pageRoomsList->chatWidget, SLOT(nickRemoved(const QString&))); |
461 | 902 |
|
1874 | 903 |
// teams selecting stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
904 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(hhogsNumChanged(const HWTeam&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
905 |
hwnet, SLOT(onHedgehogsNumChanged(const HWTeam&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
906 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamColorChanged(const HWTeam&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
907 |
hwnet, SLOT(onTeamColorChanged(const HWTeam&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
908 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamWillPlay(HWTeam)), hwnet, SLOT(AddTeam(HWTeam))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
909 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(acceptRequested(HWTeam)), hwnet, SLOT(AddTeam(HWTeam))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
910 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamNotPlaying(const HWTeam&)), hwnet, SLOT(RemoveTeam(const HWTeam&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
911 |
connect(hwnet, SIGNAL(hhnumChanged(const HWTeam&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
912 |
ui.pageNetGame->pNetTeamsWidget, SLOT(changeHHNum(const HWTeam&))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
913 |
connect(hwnet, SIGNAL(teamColorChanged(const HWTeam&)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
914 |
ui.pageNetGame->pNetTeamsWidget, SLOT(changeTeamColor(const HWTeam&))); |
1874 | 915 |
|
1924 | 916 |
// admin stuff |
3283 | 917 |
connect(hwnet, SIGNAL(serverMessageNew(const QString&)), ui.pageAdmin, SLOT(serverMessageNew(const QString &))); |
918 |
connect(hwnet, SIGNAL(serverMessageOld(const QString&)), ui.pageAdmin, SLOT(serverMessageOld(const QString &))); |
|
919 |
connect(hwnet, SIGNAL(latestProtocolVar(int)), ui.pageAdmin, SLOT(protocol(int))); |
|
920 |
connect(ui.pageAdmin, SIGNAL(setServerMessageNew(const QString&)), hwnet, SLOT(setServerMessageNew(const QString &))); |
|
921 |
connect(ui.pageAdmin, SIGNAL(setServerMessageOld(const QString&)), hwnet, SLOT(setServerMessageOld(const QString &))); |
|
922 |
connect(ui.pageAdmin, SIGNAL(setProtocol(int)), hwnet, SLOT(setLatestProtocolVar(int))); |
|
923 |
connect(ui.pageAdmin, SIGNAL(askServerVars()), hwnet, SLOT(askServerVars())); |
|
6009 | 924 |
connect(ui.pageAdmin, SIGNAL(clearAccountsCache()), hwnet, SLOT(clearAccountsCache())); |
1924 | 925 |
|
1898
f0ab0c77946d
Send scheme data over net (but recieving part isn't implemented yet)
unc0rr
parents:
1897
diff
changeset
|
926 |
// disconnect |
6036 | 927 |
connect(hwnet, SIGNAL(disconnected(const QString&)), this, SLOT(ForcedDisconnect(const QString&)), Qt::QueuedConnection); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
928 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
929 |
// config stuff |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
930 |
connect(hwnet, SIGNAL(paramChanged(const QString &, const QStringList &)), ui.pageNetGame->pGameCFG, SLOT(setParam(const QString &, const QStringList &))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
931 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(paramChanged(const QString &, const QStringList &)), hwnet, SLOT(onParamChanged(const QString &, const QStringList &))); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
932 |
connect(hwnet, SIGNAL(configAsked()), ui.pageNetGame->pGameCFG, SLOT(fullNetConfig())); |
2377 | 933 |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
934 |
while (nick.isEmpty()) { |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
935 |
nick = QInputDialog::getText(this, |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
936 |
QObject::tr("Nickname"), |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
937 |
QObject::tr("Please enter your nickname"), |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
938 |
QLineEdit::Normal, |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
939 |
QDir::home().dirName()); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
940 |
config->setValue("net/nick",nick); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
941 |
config->updNetNick(); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
942 |
} |
6227
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
943 |
|
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
944 |
ui.pageRoomsList->setUser(nick); |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
945 |
ui.pageNetGame->setUser(nick); |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
946 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
947 |
hwnet->Connect(hostName, port, nick); |
184 | 948 |
} |
949 |
||
314 | 950 |
void HWForm::NetConnect() |
951 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
952 |
HWHostPortDialog * hpd = new HWHostPortDialog(this); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
953 |
hpd->leHost->setText(*netHost); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
954 |
hpd->sbPort->setValue(netPort); |
653
4f44fc06ca45
Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents:
647
diff
changeset
|
955 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
956 |
if (hpd->exec() == QDialog::Accepted) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
957 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
958 |
config->SaveOptions(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
959 |
delete netHost; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
960 |
netHost = new QString(hpd->leHost->text()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
961 |
netPort = hpd->sbPort->value(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
962 |
NetConnectServer(*netHost, netPort); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
963 |
} |
314 | 964 |
} |
965 |
||
966 |
void HWForm::NetStartServer() |
|
967 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
968 |
config->SaveOptions(); |
636 | 969 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
970 |
pnetserver = new HWNetServer; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
971 |
if(!pnetserver->StartServer(ui.pageNetServer->sbPort->value())) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
972 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
973 |
QMessageBox::critical(0, tr("Error"), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
974 |
tr("Unable to start the server")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
975 |
delete pnetserver; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
976 |
pnetserver = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
977 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
978 |
} |
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:
668
diff
changeset
|
979 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
980 |
QTimer::singleShot(250, this, SLOT(AsyncNetServerStart())); |
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:
668
diff
changeset
|
981 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
982 |
pRegisterServer = new HWNetUdpServer(0, |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
983 |
ui.pageNetServer->leServerDescr->text(), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
984 |
ui.pageNetServer->sbPort->value()); |
1418 | 985 |
} |
986 |
||
987 |
void HWForm::AsyncNetServerStart() |
|
988 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
989 |
NetConnectServer("localhost", pnetserver->getRunningPort()); |
314 | 990 |
} |
991 |
||
184 | 992 |
void HWForm::NetDisconnect() |
993 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
994 |
if(pnetserver) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
995 |
if (pRegisterServer) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
996 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
997 |
pRegisterServer->unregister(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
998 |
pRegisterServer = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
999 |
} |
659 | 1000 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1001 |
pnetserver->StopServer(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1002 |
delete pnetserver; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1003 |
pnetserver = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1004 |
} |
6225
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1005 |
|
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1006 |
if(hwnet) |
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1007 |
hwnet->Disconnect(); |
184 | 1008 |
} |
1009 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1010 |
void HWForm::ForcedDisconnect(const QString & reason) |
383 | 1011 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1012 |
if(pnetserver) return; // we have server - let it care of all things |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1013 |
if (hwnet) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1014 |
QMessageBox::warning(this, QMessageBox::tr("Network"), |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1015 |
QMessageBox::tr("Connection to server is lost") + (reason.isEmpty()?"":("\n\n" + HWNewNet::tr("Quit reason: ") + '"' + reason +'"'))); |
2377 | 1016 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1017 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1018 |
if (ui.Pages->currentIndex() != ID_PAGE_NET) GoBack(); |
383 | 1019 |
} |
1020 |
||
1311 | 1021 |
void HWForm::NetConnected() |
1022 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1023 |
GoToPage(ID_PAGE_ROOMSLIST); |
1311 | 1024 |
} |
1025 |
||
184 | 1026 |
void HWForm::NetGameEnter() |
1027 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1028 |
ui.pageNetGame->pChatWidget->clear(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1029 |
GoToPage(ID_PAGE_NETGAME); |
184 | 1030 |
} |
1031 |
||
339
7535ab6c3820
Run game message added, team and config info provided for net game
displacer
parents:
338
diff
changeset
|
1032 |
void HWForm::AddNetTeam(const HWTeam& team) |
184 | 1033 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1034 |
ui.pageNetGame->pNetTeamsWidget->addTeam(team); |
184 | 1035 |
} |
1036 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1037 |
void HWForm::RemoveNetTeam(const HWTeam& team) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1038 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1039 |
ui.pageNetGame->pNetTeamsWidget->removeNetTeam(team); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1040 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1041 |
|
184 | 1042 |
void HWForm::StartMPGame() |
1043 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1044 |
QString ammo; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1045 |
ammo = ui.pageMultiplayer->gameCFG->WeaponsName->itemData( |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1046 |
ui.pageMultiplayer->gameCFG->WeaponsName->currentIndex() |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1047 |
).toString(); |
696 | 1048 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1049 |
CreateGame(ui.pageMultiplayer->gameCFG, ui.pageMultiplayer->teamsSelect, ammo); |
306 | 1050 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1051 |
game->StartLocal(); |
184 | 1052 |
} |
306 | 1053 |
|
1054 |
void HWForm::GameStateChanged(GameState gameState) |
|
1055 |
{ |
|
4430
cacda05a053e
Try suppressing those annoying "incorrect state" messages without actually breaking net play. Alter prior checks on GoBack. NEEDS TESTING.
nemo
parents:
4429
diff
changeset
|
1056 |
quint8 id = ui.Pages->currentIndex(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1057 |
switch(gameState) { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1058 |
case gsStarted: { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1059 |
Music(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1060 |
if (wBackground) wBackground->stopAnimation(); |
4428
2bc3d3475edf
Try to kill off all teams if the player returns to the lobby in mid-game. Also leave game room open for admins to kick/restrict joins etc. NEEDS TESTING PROBABLY BROKE SOMETHING OR OTHER
nemo
parents:
4416
diff
changeset
|
1061 |
if (!hwnet || (!hwnet->isRoomChief() || !hwnet->isInRoom())) GoToPage(ID_PAGE_INGAME); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1062 |
ui.pageGameStats->clear(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1063 |
if (pRegisterServer) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1064 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1065 |
pRegisterServer->unregister(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1066 |
pRegisterServer = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1067 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1068 |
//setVisible(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1069 |
setFocusPolicy(Qt::NoFocus); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1070 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1071 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1072 |
case gsFinished: { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1073 |
//setVisible(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1074 |
setFocusPolicy(Qt::StrongFocus); |
4430
cacda05a053e
Try suppressing those annoying "incorrect state" messages without actually breaking net play. Alter prior checks on GoBack. NEEDS TESTING.
nemo
parents:
4429
diff
changeset
|
1075 |
if (id == ID_PAGE_INGAME) GoBack(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1076 |
Music(ui.pageOptions->CBEnableFrontendMusic->isChecked()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1077 |
if (wBackground) wBackground->startAnimation(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1078 |
GoToPage(ID_PAGE_GAMESTATS); |
4908
99d6797b7ff4
Frontend sends ROUNDFINISHED with information about whether the round was played till end (will be needed for stats)
unc0rr
parents:
4902
diff
changeset
|
1079 |
if (hwnet && (!game || !game->netSuspend)) hwnet->gameFinished(true); |
4430
cacda05a053e
Try suppressing those annoying "incorrect state" messages without actually breaking net play. Alter prior checks on GoBack. NEEDS TESTING.
nemo
parents:
4429
diff
changeset
|
1080 |
if (game) game->netSuspend = false; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1081 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1082 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1083 |
default: { |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1084 |
//setVisible(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1085 |
setFocusPolicy(Qt::StrongFocus); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1086 |
quint8 id = ui.Pages->currentIndex(); |
4428
2bc3d3475edf
Try to kill off all teams if the player returns to the lobby in mid-game. Also leave game room open for admins to kick/restrict joins etc. NEEDS TESTING PROBABLY BROKE SOMETHING OR OTHER
nemo
parents:
4416
diff
changeset
|
1087 |
if (id == ID_PAGE_INGAME || |
2bc3d3475edf
Try to kill off all teams if the player returns to the lobby in mid-game. Also leave game room open for admins to kick/restrict joins etc. NEEDS TESTING PROBABLY BROKE SOMETHING OR OTHER
nemo
parents:
4416
diff
changeset
|
1088 |
// was room chief and the game was aborted |
2bc3d3475edf
Try to kill off all teams if the player returns to the lobby in mid-game. Also leave game room open for admins to kick/restrict joins etc. NEEDS TESTING PROBABLY BROKE SOMETHING OR OTHER
nemo
parents:
4416
diff
changeset
|
1089 |
(hwnet && hwnet->isRoomChief() && hwnet->isInRoom() && |
4746
3ae448aebe7e
implemented actions for closing/enging program (needs testing over the net)
koda
parents:
4594
diff
changeset
|
1090 |
(gameState == gsInterrupted || gameState == gsStopped || gameState == gsDestroyed || gameState == gsHalted))) { |
4430
cacda05a053e
Try suppressing those annoying "incorrect state" messages without actually breaking net play. Alter prior checks on GoBack. NEEDS TESTING.
nemo
parents:
4429
diff
changeset
|
1091 |
if (id == ID_PAGE_INGAME) GoBack(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1092 |
Music(ui.pageOptions->CBEnableFrontendMusic->isChecked()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1093 |
if (wBackground) wBackground->startAnimation(); |
4908
99d6797b7ff4
Frontend sends ROUNDFINISHED with information about whether the round was played till end (will be needed for stats)
unc0rr
parents:
4902
diff
changeset
|
1094 |
if (hwnet) hwnet->gameFinished(false); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1095 |
} |
4845 | 1096 |
if (gameState == gsHalted) close(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1097 |
}; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1098 |
} |
307 | 1099 |
} |
1100 |
||
696 | 1101 |
void HWForm::CreateGame(GameCFGWidget * gamecfg, TeamSelWidget* pTeamSelWidget, QString ammo) |
306 | 1102 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1103 |
game = new HWGame(config, gamecfg, ammo, pTeamSelWidget); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1104 |
connect(game, SIGNAL(GameStateChanged(GameState)), this, SLOT(GameStateChanged(GameState))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1105 |
connect(game, SIGNAL(GameStats(char, const QString &)), ui.pageGameStats, SLOT(GameStats(char, const QString &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1106 |
connect(game, SIGNAL(ErrorMessage(const QString &)), this, SLOT(ShowErrorMessage(const QString &)), Qt::QueuedConnection); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1107 |
connect(game, SIGNAL(HaveRecord(bool, const QByteArray &)), this, SLOT(GetRecord(bool, const QByteArray &))); |
5734 | 1108 |
m_lastDemo = QByteArray(); |
306 | 1109 |
} |
425 | 1110 |
|
1111 |
void HWForm::ShowErrorMessage(const QString & msg) |
|
1112 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1113 |
QMessageBox::warning(this, |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1114 |
"Hedgewars", |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1115 |
msg); |
425 | 1116 |
} |
533 | 1117 |
|
1118 |
void HWForm::GetRecord(bool isDemo, const QByteArray & record) |
|
1119 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1120 |
QString filename; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1121 |
QByteArray demo = record; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1122 |
QString recordFileName = |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1123 |
config->appendDateTimeToRecordName() ? |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1124 |
QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm") : |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1125 |
"LastRound"; |
1487
b4cc59a6d50a
Add an option to name records with current date and time
unc0rr
parents:
1427
diff
changeset
|
1126 |
|
4902
45ec26ca9491
if on dev version append hg revision id to demos/saves' filenames
sheepluva
parents:
4897
diff
changeset
|
1127 |
QStringList versionParts = cVersionString->split('-'); |
45ec26ca9491
if on dev version append hg revision id to demos/saves' filenames
sheepluva
parents:
4897
diff
changeset
|
1128 |
if ( (versionParts.size() == 2) && (!versionParts[1].isEmpty()) && (versionParts[1].contains(':')) ) |
45ec26ca9491
if on dev version append hg revision id to demos/saves' filenames
sheepluva
parents:
4897
diff
changeset
|
1129 |
recordFileName = recordFileName + "_" + versionParts[1].replace(':','-'); |
45ec26ca9491
if on dev version append hg revision id to demos/saves' filenames
sheepluva
parents:
4897
diff
changeset
|
1130 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1131 |
if (isDemo) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1132 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1133 |
demo.replace(QByteArray("\x02TL"), QByteArray("\x02TD")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1134 |
demo.replace(QByteArray("\x02TN"), QByteArray("\x02TD")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1135 |
demo.replace(QByteArray("\x02TS"), QByteArray("\x02TD")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1136 |
filename = cfgdir->absolutePath() + "/Demos/" + recordFileName + "." + *cProtoVer + ".hwd"; |
5734 | 1137 |
m_lastDemo = demo; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1138 |
} else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1139 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1140 |
demo.replace(QByteArray("\x02TL"), QByteArray("\x02TS")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1141 |
demo.replace(QByteArray("\x02TN"), QByteArray("\x02TS")); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1142 |
filename = cfgdir->absolutePath() + "/Saves/" + recordFileName + "." + *cProtoVer + ".hws"; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1143 |
} |
533 | 1144 |
|
1145 |
||
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1146 |
QFile demofile(filename); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1147 |
if (!demofile.open(QIODevice::WriteOnly)) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1148 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1149 |
ShowErrorMessage(tr("Cannot save record to file %1").arg(filename)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1150 |
return ; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1151 |
} |
5734 | 1152 |
demofile.write(demo); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1153 |
demofile.close(); |
533 | 1154 |
} |
587 | 1155 |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
1156 |
void HWForm::startTraining(const QString & scriptName) |
587 | 1157 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1158 |
CreateGame(0, 0, 0); |
587 | 1159 |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
1160 |
game->StartTraining(scriptName); |
3760 | 1161 |
} |
1162 |
||
1163 |
void HWForm::StartCampaign() |
|
1164 |
{ |
|
1165 |
CreateGame(0, 0, 0); |
|
1166 |
||
1167 |
game->StartCampaign(ui.pageCampaign->CBSelect->itemData(ui.pageCampaign->CBSelect->currentIndex()).toString()); |
|
587 | 1168 |
} |
660 | 1169 |
|
1170 |
void HWForm::CreateNetGame() |
|
1171 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1172 |
QString ammo; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1173 |
ammo = ui.pageNetGame->pGameCFG->WeaponsName->itemData( |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1174 |
ui.pageNetGame->pGameCFG->WeaponsName->currentIndex() |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1175 |
).toString(); |
1517 | 1176 |
|
6225
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1177 |
CreateGame(ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget, ammo); |
660 | 1178 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1179 |
connect(game, SIGNAL(SendNet(const QByteArray &)), hwnet, SLOT(SendNet(const QByteArray &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1180 |
connect(game, SIGNAL(SendChat(const QString &)), hwnet, SLOT(chatLineToNet(const QString &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1181 |
connect(game, SIGNAL(SendTeamMessage(const QString &)), hwnet, SLOT(SendTeamMessage(const QString &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1182 |
connect(hwnet, SIGNAL(FromNet(const QByteArray &)), game, SLOT(FromNet(const QByteArray &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1183 |
connect(hwnet, SIGNAL(chatStringFromNet(const QString &)), game, SLOT(FromNetChat(const QString &))); |
660 | 1184 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1185 |
game->StartNet(); |
660 | 1186 |
} |
674 | 1187 |
|
1188 |
void HWForm::closeEvent(QCloseEvent *event) |
|
1189 |
{ |
|
2822 | 1190 |
#ifdef USE_XFIRE |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1191 |
xfire_free(); |
2822 | 1192 |
#endif |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1193 |
config->SaveOptions(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1194 |
event->accept(); |
674 | 1195 |
} |
1235 | 1196 |
|
1197 |
void HWForm::Music(bool checked) |
|
1198 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1199 |
if (checked) |
6165
6fe3e922246e
moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents:
6160
diff
changeset
|
1200 |
SDLInteraction::instance().startMusic(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1201 |
else |
6165
6fe3e922246e
moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents:
6160
diff
changeset
|
1202 |
SDLInteraction::instance().stopMusic(); |
1235 | 1203 |
} |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1204 |
|
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1205 |
void HWForm::NetGameChangeStatus(bool isMaster) |
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1206 |
{ |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1207 |
ui.pageNetGame->pGameCFG->setEnabled(isMaster); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1208 |
ui.pageNetGame->pNetTeamsWidget->setInteractivity(isMaster); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1209 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1210 |
if (isMaster) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1211 |
NetGameMaster(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1212 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1213 |
NetGameSlave(); |
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1214 |
} |
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1215 |
|
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1216 |
void HWForm::NetGameMaster() |
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1217 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1218 |
ui.pageNetGame->setMasterMode(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1219 |
ui.pageNetGame->restrictJoins->setChecked(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1220 |
ui.pageNetGame->restrictTeamAdds->setChecked(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1221 |
ui.pageNetGame->pGameCFG->GameSchemes->setModel(ammoSchemeModel); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1222 |
ui.pageNetGame->pGameCFG->setEnabled(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1223 |
ui.pageNetGame->pNetTeamsWidget->setInteractivity(true); |
2377 | 1224 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1225 |
if (hwnet) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1226 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1227 |
// disconnect connections first to ensure their inexistance and not to connect twice |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1228 |
ui.pageNetGame->BtnStart->disconnect(hwnet); |
5126 | 1229 |
ui.pageNetGame->BtnUpdate->disconnect(hwnet); |
6151
9fd5b70acb1a
give the room name edit box a history of previous room. however I hate that box from the bottom of my heart, it shall dieeeee... later...
sheepluva
parents:
6131
diff
changeset
|
1230 |
ui.pageNetGame->setRoomName(hwnet->getRoom()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1231 |
ui.pageNetGame->restrictJoins->disconnect(hwnet); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1232 |
ui.pageNetGame->restrictTeamAdds->disconnect(hwnet); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1233 |
connect(ui.pageNetGame->BtnStart, SIGNAL(clicked()), hwnet, SLOT(startGame())); |
5126 | 1234 |
connect(ui.pageNetGame, SIGNAL(askForUpdateRoomName(const QString &)), |
1235 |
hwnet, SLOT(updateRoomName(const QString &))); |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1236 |
connect(ui.pageNetGame->restrictJoins, SIGNAL(triggered()), hwnet, SLOT(toggleRestrictJoins())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1237 |
connect(ui.pageNetGame->restrictTeamAdds, SIGNAL(triggered()), hwnet, SLOT(toggleRestrictTeamAdds())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1238 |
connect(ui.pageNetGame->pGameCFG->GameSchemes->model(), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1239 |
SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1240 |
ui.pageNetGame->pGameCFG, |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1241 |
SLOT(resendSchemeData()) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1242 |
); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1243 |
} |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1244 |
} |
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1245 |
|
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1246 |
void HWForm::NetGameSlave() |
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1247 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1248 |
ui.pageNetGame->pGameCFG->setEnabled(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1249 |
ui.pageNetGame->pNetTeamsWidget->setInteractivity(false); |
2377 | 1250 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1251 |
if (hwnet) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1252 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1253 |
NetAmmoSchemeModel * netAmmo = new NetAmmoSchemeModel(hwnet); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1254 |
connect(hwnet, SIGNAL(netSchemeConfig(QStringList &)), netAmmo, SLOT(setNetSchemeConfig(QStringList &))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1255 |
ui.pageNetGame->pGameCFG->GameSchemes->setModel(netAmmo); |
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
1256 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1257 |
ui.pageNetGame->pGameCFG->GameSchemes->view()->disconnect(hwnet); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1258 |
connect(hwnet, SIGNAL(netSchemeConfig(QStringList &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1259 |
this, SLOT(selectFirstNetScheme())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1260 |
} |
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
1261 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1262 |
ui.pageNetGame->setMasterMode(false); |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1263 |
} |
1600 | 1264 |
|
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
1265 |
void HWForm::selectFirstNetScheme() |
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
1266 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1267 |
ui.pageNetGame->pGameCFG->GameSchemes->setCurrentIndex(0); |
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
1268 |
} |
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
1269 |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1270 |
void HWForm::NetLeftRoom(const QString & reason) |
1600 | 1271 |
{ |
4433 | 1272 |
if (ui.Pages->currentIndex() == ID_PAGE_NETGAME || ui.Pages->currentIndex() == ID_PAGE_INGAME) |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1273 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1274 |
GoBack(); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1275 |
if (!reason.isEmpty()) |
6180
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6167
diff
changeset
|
1276 |
ui.pageRoomsList->displayNotice(reason); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1277 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1278 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1279 |
qWarning("Left room while not in room"); |
1600 | 1280 |
} |
2012 | 1281 |
|
1282 |
void HWForm::resizeEvent(QResizeEvent * event) |
|
1283 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1284 |
int w = event->size().width(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1285 |
int h = event->size().height(); |
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
1286 |
if (wBackground) { |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
1287 |
wBackground->setFixedSize(w, h); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
1288 |
wBackground->move(0, 0); |
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
1289 |
} |
2012 | 1290 |
} |
3760 | 1291 |
|
1292 |
void HWForm::UpdateCampaignPage(int index) |
|
1293 |
{ |
|
4560
5d6c7f88db73
- Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents:
4536
diff
changeset
|
1294 |
Q_UNUSED(index); |
5d6c7f88db73
- Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents:
4536
diff
changeset
|
1295 |
|
3760 | 1296 |
HWTeam team(ui.pageCampaign->CBTeam->currentText()); |
1297 |
ui.pageCampaign->CBSelect->clear(); |
|
1298 |
||
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1299 |
QStringList entries = HWDataManager::instance().entryList( |
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1300 |
"Missions/Campaign", |
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1301 |
QDir::Files, |
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1302 |
QStringList("*#*.lua") |
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1303 |
); |
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1304 |
|
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6151
diff
changeset
|
1305 |
unsigned int n = entries.count(); |
6015
daffc14a518a
cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents:
6009
diff
changeset
|
1306 |
for(unsigned int i = 0; (i < n) && (i <= team.campaignProgress()); i++) { |
4594
5645462cc78f
removing all " " in filenames under share and replacing "_" with " " in missions
Henek
parents:
4592
diff
changeset
|
1307 |
ui.pageCampaign->CBSelect->addItem(QString(entries[i]).replace(QRegExp("^(\\d+)#(.+)\\.lua"), QComboBox::tr("Mission") + " \\1: \\2").replace("_", " "), QString(entries[i]).replace(QRegExp("^(.*)\\.lua"), "\\1")); |
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5222
diff
changeset
|
1308 |
} |
3760 | 1309 |
} |
3932 | 1310 |
|
5213
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1311 |
// used for --set-everything [screen width] [screen height] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen] [show FPS] [alternate damage] [timer value] [reduced quality] |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1312 |
QString HWForm::getDemoArguments() |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1313 |
{ |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1314 |
QRect resolution = config->vid_Resolution(); |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1315 |
return QString(QString::number(resolution.width()) + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1316 |
+ QString::number(resolution.height()) + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1317 |
+ QString::number(config->bitDepth()) + " " // bpp |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1318 |
+ QString::number(config->volume()) + " " // sound volume |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1319 |
+ (config->isMusicEnabled() ? "1" : "0") + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1320 |
+ (config->isSoundEnabled() ? "1" : "0") + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1321 |
+ config->language() + ".txt " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1322 |
+ (config->vid_Fullscreen() ? "1" : "0") + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1323 |
+ (config->isShowFPSEnabled() ? "1" : "0") + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1324 |
+ (config->isAltDamageEnabled() ? "1" : "0") + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1325 |
+ QString::number(config->timerInterval()) + " " |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1326 |
+ QString::number(config->translateQuality())); |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1327 |
} |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
1328 |
|
3932 | 1329 |
void HWForm::AssociateFiles() |
1330 |
{ |
|
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1331 |
bool success = true; |
5222 | 1332 |
QString arguments = getDemoArguments(); |
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1333 |
#ifdef _WIN32 |
3932 | 1334 |
QSettings registry_hkcr("HKEY_CLASSES_ROOT", QSettings::NativeFormat); |
1335 |
registry_hkcr.setValue(".hwd/Default", "Hedgewars.Demo"); |
|
1336 |
registry_hkcr.setValue(".hws/Default", "Hedgewars.Save"); |
|
1337 |
registry_hkcr.setValue("Hedgewars.Demo/Default", tr("Hedgewars Demo File", "File Types")); |
|
1338 |
registry_hkcr.setValue("Hedgewars.Save/Default", tr("Hedgewars Save File", "File Types")); |
|
1339 |
registry_hkcr.setValue("Hedgewars.Demo/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwdfile.ico\",0"); |
|
1340 |
registry_hkcr.setValue("Hedgewars.Save/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwsfile.ico\",0"); |
|
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5222
diff
changeset
|
1341 |
registry_hkcr.setValue("Hedgewars.Demo/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + cfgdir->absolutePath().replace("/","\\") + "\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\" --set-everything "+arguments); |
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5222
diff
changeset
|
1342 |
registry_hkcr.setValue("Hedgewars.Save/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + cfgdir->absolutePath().replace("/","\\") + "\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\" --set-everything "+arguments); |
4090 | 1343 |
#elif defined __APPLE__ |
5252 | 1344 |
// only useful when other apps have taken precedence over our file extensions and you want to reset it |
1345 |
system("defaults write com.apple.LaunchServices LSHandlers -array-add '<dict><key>LSHandlerContentTag</key><string>hwd</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key><string>org.hedgewars.desktop</string></dict>'"); |
|
1346 |
system("defaults write com.apple.LaunchServices LSHandlers -array-add '<dict><key>LSHandlerContentTag</key><string>hws</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key><string>org.hedgewars.desktop</string></dict>'"); |
|
1347 |
system("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user"); |
|
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1348 |
#else |
4091
f89b8d0afbe1
set as default type, add icon. going to assume the icon was installed already. should happen in most packaging out there.
nemo
parents:
4090
diff
changeset
|
1349 |
// this is a little silly due to all the system commands below anyway - just use mkdir -p ? Does have the advantage of the alert I guess |
4085 | 1350 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local"); |
1351 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share"); |
|
1352 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/mime"); |
|
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1353 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/mime/packages"); |
4085 | 1354 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local"); |
1355 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share"); |
|
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1356 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/applications"); |
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1357 |
if (success) success = system(("cp "+datadir->absolutePath()+"/misc/hedgewars-mimeinfo.xml "+QDir::home().absolutePath()+"/.local/share/mime/packages").toLocal8Bit().constData())==0; |
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1358 |
if (success) success = system(("cp "+datadir->absolutePath()+"/misc/hwengine.desktop "+QDir::home().absolutePath()+"/.local/share/applications").toLocal8Bit().constData())==0; |
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1359 |
if (success) success = system(("update-mime-database "+QDir::home().absolutePath()+"/.local/share/mime").toLocal8Bit().constData())==0; |
4091
f89b8d0afbe1
set as default type, add icon. going to assume the icon was installed already. should happen in most packaging out there.
nemo
parents:
4090
diff
changeset
|
1360 |
if (success) success = system("xdg-mime default hwengine.desktop application/x-hedgewars-demo")==0; |
f89b8d0afbe1
set as default type, add icon. going to assume the icon was installed already. should happen in most packaging out there.
nemo
parents:
4090
diff
changeset
|
1361 |
if (success) success = system("xdg-mime default hwengine.desktop application/x-hedgewars-save")==0; |
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5222
diff
changeset
|
1362 |
// hack to add user's settings to hwengine. might be better at this point to read in the file, append it, and write it out to its new home. This assumes no spaces in the data dir path |
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5222
diff
changeset
|
1363 |
if (success) success = system(("sed -i 's/^\\(Exec=.*\\) \\([^ ]* %f\\)/\\1 "+cfgdir->absolutePath().replace(" ","\\\\ ").replace("/","\\/")+" \\2 --set-everything "+arguments+"/' "+QDir::home().absolutePath()+"/.local/share/applications/hwengine.desktop").toLocal8Bit().constData())==0; |
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1364 |
#endif |
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1365 |
if (success) QMessageBox::information(0, "", QMessageBox::tr("All file associations have been set.")); |
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
1366 |
else QMessageBox::information(0, "", QMessageBox::tr("File association failed.")); |
3932 | 1367 |
} |
3937 | 1368 |
|
5734 | 1369 |
void HWForm::saveDemoWithCustomName() |
1370 |
{ |
|
1371 |
if(!m_lastDemo.isEmpty()) |
|
1372 |
{ |
|
1373 |
QString fileName; |
|
1374 |
bool ok = false; |
|
1375 |
do |
|
1376 |
{ |
|
1377 |
fileName = QInputDialog::getText(this, tr("Demo name"), tr("Demo name:")); |
|
1378 |
||
1379 |
if(!fileName.isEmpty()) |
|
1380 |
{ |
|
1381 |
QString filePath = cfgdir->absolutePath() + "/Demos/" + fileName + "." + *cProtoVer + ".hwd"; |
|
1382 |
QFile demofile(filePath); |
|
1383 |
ok = demofile.open(QIODevice::WriteOnly); |
|
1384 |
if (!ok) |
|
1385 |
ShowErrorMessage(tr("Cannot save record to file %1").arg(filePath)); |
|
1386 |
else |
|
1387 |
{ |
|
1388 |
ok = -1 != demofile.write(m_lastDemo); |
|
1389 |
demofile.close(); |
|
1390 |
} |
|
1391 |
} |
|
1392 |
} while(!fileName.isEmpty() && !ok); |
|
1393 |
} |
|
5746
fbc52bb92cad
Use QTextBrowser instead of WebKit for downloadable contents page (currently only shows the page itself)
unc0rr
parents:
5734
diff
changeset
|
1394 |
} |
fbc52bb92cad
Use QTextBrowser instead of WebKit for downloadable contents page (currently only shows the page itself)
unc0rr
parents:
5734
diff
changeset
|
1395 |