author | Wuzzy <Wuzzy2@mail.ru> |
Thu, 18 Jul 2019 03:25:15 +0200 | |
changeset 15251 | 9be05ae1b726 |
parent 15193 | eaf65efbcd63 |
child 15276 | d111a0d9d499 |
permissions | -rw-r--r-- |
184 | 1 |
/* |
1066 | 2 |
* Hedgewars, a free turn based strategy game |
11046 | 3 |
* Copyright (c) 2004-2015 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 |
|
10108
c68cf030eded
update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents:
10017
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
184 | 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> |
8415
02acf6b92f52
Moved room name edit box from footer to top of page. Also shows room name when in slave mode.
dag10
parents:
8407
diff
changeset
|
24 |
#include <QSpinBox> |
502
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 <QListWidget> |
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 <QStackedLayout> |
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 <QLineEdit> |
bc178daca088
Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents:
496
diff
changeset
|
28 |
#include <QLabel> |
636 | 29 |
#include <QRadioButton> |
654 | 30 |
#include <QSpinBox> |
674 | 31 |
#include <QCloseEvent> |
1235 | 32 |
#include <QCheckBox> |
1377 | 33 |
#include <QTextBrowser> |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
34 |
#include <QAction> |
1418 | 35 |
#include <QTimer> |
1419 | 36 |
#include <QScrollBar> |
1885 | 37 |
#include <QDataWidgetMapper> |
1887 | 38 |
#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
|
39 |
#include <QCryptographicHash> |
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
40 |
#include <QSignalMapper> |
4759 | 41 |
#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
|
42 |
#include <QDesktopServices> |
8328 | 43 |
#include <QDesktopWidget> |
44 |
#include <QApplication> |
|
5734 | 45 |
#include <QInputDialog> |
6428 | 46 |
#include <QPropertyAnimation> |
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
47 |
#include <QSettings> |
8891
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
48 |
#include <QSortFilterProxyModel> |
11863 | 49 |
#include <QIcon> |
50 |
#include <QImage> |
|
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
51 |
|
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
52 |
#if (QT_VERSION >= 0x040600) |
6428 | 53 |
#include <QGraphicsEffect> |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
54 |
#include <QParallelAnimationGroup> |
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
55 |
#endif |
184 | 56 |
|
57 |
#include "hwform.h" |
|
58 |
#include "game.h" |
|
59 |
#include "team.h" |
|
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
60 |
#include "mission.h" |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
61 |
#include "campaign.h" |
184 | 62 |
#include "teamselect.h" |
681 | 63 |
#include "selectWeapon.h" |
184 | 64 |
#include "gameuiconfig.h" |
5204 | 65 |
#include "pageinfo.h" |
66 |
#include "pagetraining.h" |
|
67 |
#include "pagesingleplayer.h" |
|
68 |
#include "pageselectweapon.h" |
|
69 |
#include "pageadmin.h" |
|
70 |
#include "pagecampaign.h" |
|
71 |
#include "pagescheme.h" |
|
72 |
#include "pagenetgame.h" |
|
73 |
#include "pageroomslist.h" |
|
74 |
#include "pageconnecting.h" |
|
75 |
#include "pageoptions.h" |
|
76 |
#include "pageeditteam.h" |
|
77 |
#include "pagemultiplayer.h" |
|
78 |
#include "pagenet.h" |
|
79 |
#include "pagemain.h" |
|
80 |
#include "pagenetserver.h" |
|
81 |
#include "pagedrawmap.h" |
|
5205
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
82 |
#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
|
83 |
#include "pageplayrecord.h" |
44c9a577b082
Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents:
5255
diff
changeset
|
84 |
#include "pagedata.h" |
7235
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
85 |
#include "pagevideos.h" |
184 | 86 |
#include "hwconsts.h" |
314 | 87 |
#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
|
88 |
#include "gamecfgwidget.h" |
632
5e09ae25729f
Half implement possibility for different backends of servers list
unc0rr
parents:
625
diff
changeset
|
89 |
#include "netserverslist.h" |
634 | 90 |
#include "netudpserver.h" |
461 | 91 |
#include "chatwidget.h" |
653
4f44fc06ca45
Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents:
647
diff
changeset
|
92 |
#include "input_ip.h" |
6910
ea058558c68b
add a checkbox for the password field prompt (issue 316)
Stepan777
parents:
6907
diff
changeset
|
93 |
#include "input_password.h" |
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
94 |
#include "gameSchemeModel.h" |
2012 | 95 |
#include "bgwidget.h" |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
96 |
#include "drawmapwidget.h" |
6477 | 97 |
#include "mouseoverfilter.h" |
6732
c906dc78091f
Start switching to rooms list model. To be continued.
unc0rr
parents:
6720
diff
changeset
|
98 |
#include "roomslistmodel.h" |
7180 | 99 |
#include "recorder.h" |
7723 | 100 |
#include "playerslistmodel.h" |
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
101 |
#include "feedbackdialog.h" |
184 | 102 |
|
8383 | 103 |
#include "MessageDialog.h" |
6930 | 104 |
#include "DataManager.h" |
8284 | 105 |
#include "AutoUpdater.h" |
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
|
106 |
|
9163
67334acaaac7
port all Q_WS_* to Q_OS_* so that we are forward compatible with Qt5
koda
parents:
9100
diff
changeset
|
107 |
#ifdef Q_OS_WIN |
11803 | 108 |
#ifndef WINVER |
8328 | 109 |
#define WINVER 0x0500 |
11803 | 110 |
#endif |
8328 | 111 |
#include <windows.h> |
112 |
#else |
|
113 |
#include <unistd.h> |
|
114 |
#include <sys/types.h> |
|
115 |
#endif |
|
116 |
||
9163
67334acaaac7
port all Q_WS_* to Q_OS_* so that we are forward compatible with Qt5
koda
parents:
9100
diff
changeset
|
117 |
#ifdef Q_OS_MAC |
8328 | 118 |
#include <sys/sysctl.h> |
119 |
#endif |
|
120 |
||
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
121 |
#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
|
122 |
#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
|
123 |
#ifdef SPARKLE_ENABLED |
2261 | 124 |
#include "SparkleAutoUpdater.h" |
125 |
#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
|
126 |
#endif |
2261 | 127 |
|
6561 | 128 |
|
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
129 |
// 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
|
130 |
// 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
|
131 |
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
|
132 |
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
|
133 |
|
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
134 |
QIcon finishedIcon; |
11978
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
135 |
QIcon notFinishedIcon; |
6572 | 136 |
GameUIConfig* HWForm::config = NULL; |
137 |
||
5849 | 138 |
HWForm::HWForm(QWidget *parent, QString styleSheet) |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
139 |
: QMainWindow(parent) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
140 |
, game(0) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
141 |
, pnetserver(0) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
142 |
, pRegisterServer(0) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
143 |
, editedTeam(0) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
144 |
, hwnet(0) |
184 | 145 |
{ |
6166 | 146 |
// set music track |
8049 | 147 |
SDLInteraction::instance().setMusicTrack("/Music/main_theme.ogg"); |
6166 | 148 |
|
5849 | 149 |
this->setStyleSheet(styleSheet); |
11863 | 150 |
|
151 |
||
152 |
QIcon * hwIcon = new QIcon(); |
|
153 |
hwIcon->addFile(":/res/hh_small.png"); |
|
154 |
//hwIcon->addFile(":/res/hh25x25.png"); |
|
155 |
// crop-workaround for the fact that hh25x25.png is actually 25x35 |
|
156 |
QPixmap pm(":/res/hh25x25.png"); |
|
157 |
hwIcon->addPixmap(pm.copy(0,(pm.height()-25)/2,25,25)); |
|
158 |
hwIcon->addFile(":/res/teamicon.png"); |
|
159 |
hwIcon->addFile(":/res/teamicon2.png"); |
|
160 |
||
161 |
this->setWindowIcon(*hwIcon); |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
162 |
ui.setupUi(this); |
8424
225ede46e3dc
On pagenetgame, when window is too small the map/game options becomes a tabbed interface to allow for a few lines of chat to always be visible.
dag10
parents:
8416
diff
changeset
|
163 |
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
|
164 |
//setFocusPolicy(Qt::StrongFocus); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
165 |
CustomizePalettes(); |
3697 | 166 |
|
6165
6fe3e922246e
moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents:
6160
diff
changeset
|
167 |
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
|
168 |
|
8918
512753ea4b1b
Switch to 'settings.ini'. Copies old ini file if necessary on startup.
unc0rr
parents:
8901
diff
changeset
|
169 |
config = new GameUIConfig(this, DataManager::instance().settingsFileName()); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
170 |
frontendEffects = config->value("frontend/effects", true).toBool(); |
15090
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
171 |
bool frontendSounds = config->value("frontend/sound", true).toBool(); |
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
172 |
onFrontendSoundsToggled(frontendSounds); |
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
173 |
|
14740
7b2bd37d7503
Fix inconsistencies in guest nick name generation
Wuzzy <Wuzzy2@mail.ru>
parents:
14677
diff
changeset
|
174 |
playerHash = QString(QCryptographicHash::hash(config->value("net/nick", config->getRandomNick()).toString().toUtf8(), QCryptographicHash::Md5).toHex()); |
2377 | 175 |
|
11978
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
176 |
// Icons for finished missions |
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
177 |
finishedIcon.addFile(":/res/missionFinished.png", QSize(), QIcon::Normal, QIcon::On); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
178 |
finishedIcon.addFile(":/res/missionFinishedSelected.png", QSize(), QIcon::Selected, QIcon::On); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
179 |
|
11978
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
180 |
// A transparent icon, used to nicely align the unfinished missions with the finished ones |
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
181 |
QPixmap emptySpace = QPixmap(15, 15); |
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
182 |
emptySpace.fill(QColor(0, 0, 0, 0)); |
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
183 |
notFinishedIcon = QIcon(emptySpace); |
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
184 |
|
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
185 |
ui.pageRoomsList->setSettings(config); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8451
diff
changeset
|
186 |
ui.pageNetGame->setSettings(config); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
187 |
ui.pageNetGame->chatWidget->setSettings(config); |
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
188 |
ui.pageRoomsList->chatWidget->setSettings(config); |
8346 | 189 |
ui.pageOptions->setConfig(config); |
8151
25b95d6224fc
Google Code-in: Move video preferences in settings tab
Mitchell Kember <mk12360@gmail.com>
parents:
8140
diff
changeset
|
190 |
#ifdef VIDEOREC |
8196
ed5001115265
Fixed crash that occured after recording a video (pagevideos' config wasn't set).
Mitchell Kember <mk12360@gmail.com>
parents:
8183
diff
changeset
|
191 |
ui.pageVideos->init(config); |
8151
25b95d6224fc
Google Code-in: Move video preferences in settings tab
Mitchell Kember <mk12360@gmail.com>
parents:
8140
diff
changeset
|
192 |
#endif |
7235
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
193 |
|
10971 | 194 |
#if defined(__APPLE__) && defined(SPARKLE_ENABLED) |
8284 | 195 |
if (config->isAutoUpdateEnabled()) |
196 |
{ |
|
9393 | 197 |
AutoUpdater* updater = NULL; |
198 |
||
8284 | 199 |
updater = new SparkleAutoUpdater(); |
200 |
if (updater) |
|
201 |
{ |
|
202 |
updater->checkForUpdates(); |
|
203 |
delete updater; |
|
204 |
} |
|
205 |
} |
|
8287
e2a5dece221f
Fix non-osx build broken in ra874d00df4a4. Dudes... :(
unc0rr
parents:
8284
diff
changeset
|
206 |
#endif |
8284 | 207 |
|
2400
2422ea85d100
added a utility that warns the user to install hedgewars when it's run from the diskimage
koda
parents:
2399
diff
changeset
|
208 |
#ifdef __APPLE__ |
3937 | 209 |
panel = new M3Panel; |
5087
d3af455a868e
cmd+m should minimize the app as per apple human guidelines
koda
parents:
5061
diff
changeset
|
210 |
|
d3af455a868e
cmd+m should minimize the app as per apple human guidelines
koda
parents:
5061
diff
changeset
|
211 |
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
|
212 |
connect (hideFrontend, SIGNAL(activated()), this, SLOT(showMinimized())); |
4759 | 213 |
#else |
214 |
// ctrl+q closes frontend for consistency |
|
6960
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6952
diff
changeset
|
215 |
QShortcut * closeFrontend = new QShortcut(QKeySequence("Ctrl+Q"), this); |
4759 | 216 |
connect (closeFrontend, SIGNAL(activated()), this, SLOT(close())); |
7824 | 217 |
//QShortcut * updateData = new QShortcut(QKeySequence("F5"), this); |
218 |
//connect (updateData, SIGNAL(activated()), &DataManager::instance(), SLOT(reload())); |
|
2261 | 219 |
#endif |
2377 | 220 |
|
9219 | 221 |
previousCampaignName = ""; |
222 |
previousTeamName = ""; |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
223 |
UpdateTeamsLists(); |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
224 |
InitCampaignPage(); |
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
225 |
RestoreSingleplayerTeamSelection(); |
3760 | 226 |
UpdateCampaignPage(0); |
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
227 |
UpdateCampaignPageTeam(0); |
9286
c89b992ff5fe
fixed bug about starting campaign page with not descriptions/images and with wrong description/image mathcing
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9284
diff
changeset
|
228 |
UpdateCampaignPageMission(0); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
229 |
UpdateWeapons(); |
184 | 230 |
|
6009 | 231 |
// connect all goBack signals |
232 |
int nPages = ui.Pages->count(); |
|
233 |
||
234 |
for (int i = 0; i < nPages; i++) |
|
235 |
connect(ui.Pages->widget(i), SIGNAL(goBack()), this, SLOT(GoBack())); |
|
236 |
||
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
237 |
pageSwitchMapper = new QSignalMapper(this); |
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
238 |
connect(pageSwitchMapper, SIGNAL(mapped(int)), this, SLOT(GoToPage(int))); |
13330 | 239 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
240 |
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
|
241 |
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
|
242 |
|
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
243 |
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
|
244 |
pageSwitchMapper->setMapping(ui.pageMain->BtnSetup, ID_PAGE_SETUP); |
6561 | 245 |
|
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
246 |
connect(ui.pageMain->BtnFeedback, SIGNAL(clicked()), this, SLOT(showFeedbackDialog())); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
247 |
|
14804
d7b40d61729f
Add extra button in main menu for opening credits page
Wuzzy <Wuzzy2@mail.ru>
parents:
14740
diff
changeset
|
248 |
connect(ui.pageMain->BtnTitle, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
d7b40d61729f
Add extra button in main menu for opening credits page
Wuzzy <Wuzzy2@mail.ru>
parents:
14740
diff
changeset
|
249 |
pageSwitchMapper->setMapping(ui.pageMain->BtnTitle, ID_PAGE_INFO); |
d7b40d61729f
Add extra button in main menu for opening credits page
Wuzzy <Wuzzy2@mail.ru>
parents:
14740
diff
changeset
|
250 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
251 |
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
|
252 |
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
|
253 |
|
d7a887c7e2d0
Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents:
5746
diff
changeset
|
254 |
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
|
255 |
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
|
256 |
|
13818
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
257 |
connect(ui.pageMain->BtnHelp, SIGNAL(clicked()), this, SLOT(GoToHelp())); |
7015 | 258 |
|
7617 | 259 |
#ifdef VIDEOREC |
7235
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
260 |
connect(ui.pageMain->BtnVideos, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
261 |
pageSwitchMapper->setMapping(ui.pageMain->BtnVideos, ID_PAGE_VIDEOS); |
7617 | 262 |
#endif |
7235
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
263 |
|
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
|
264 |
//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
|
265 |
//connect(ui.pageMain->BtnExit, SIGNAL(clicked()), this, SLOT(btnExitClicked())); |
184 | 266 |
|
7553 | 267 |
connect(ui.pageEditTeam, SIGNAL(goBack()), this, SLOT(AfterTeamEdit())); |
1840 | 268 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
269 |
connect(ui.pageMultiplayer->BtnStartMPGame, SIGNAL(clicked()), this, SLOT(StartMPGame())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
270 |
connect(ui.pageMultiplayer->teamsSelect, SIGNAL(setEnabledGameStart(bool)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
271 |
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
|
272 |
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
|
273 |
connect(ui.pageMultiplayer->gameCFG, SIGNAL(goToSchemes(int)), this, SLOT(GoToScheme(int))); |
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
274 |
connect(ui.pageMultiplayer->gameCFG, SIGNAL(goToWeapons(int)), this, SLOT(GoToWeapons(int))); |
4511 | 275 |
connect(ui.pageMultiplayer->gameCFG, SIGNAL(goToDrawMap()), pageSwitchMapper, SLOT(map())); |
276 |
pageSwitchMapper->setMapping(ui.pageMultiplayer->gameCFG, ID_PAGE_DRAWMAP); |
|
184 | 277 |
|
6009 | 278 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
279 |
connect(ui.pagePlayDemo->BtnPlayDemo, SIGNAL(clicked()), this, SLOT(PlayDemo())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
280 |
connect(ui.pagePlayDemo->DemosList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(PlayDemo())); |
184 | 281 |
|
6024 | 282 |
connect(ui.pageOptions, SIGNAL(newTeamRequested()), this, SLOT(NewTeam())); |
283 |
connect(ui.pageOptions, SIGNAL(editTeamRequested(const QString&)), this, SLOT(EditTeam(const QString&))); |
|
284 |
connect(ui.pageOptions, SIGNAL(deleteTeamRequested(const QString&)), this, SLOT(DeleteTeam(const QString&))); |
|
6525
6c97379c584b
[GCI] backz task: unify the back button functionality, avoid using the save button
m4tx
parents:
6477
diff
changeset
|
285 |
connect(ui.pageOptions, SIGNAL(goBack()), config, SLOT(SaveOptions())); |
3932 | 286 |
connect(ui.pageOptions->BtnAssociateFiles, SIGNAL(clicked()), this, SLOT(AssociateFiles())); |
695 | 287 |
|
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
288 |
connect(ui.pageOptions->WeaponEdit, SIGNAL(clicked()), this, SLOT(GoToEditWeapons())); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
289 |
connect(ui.pageOptions->WeaponNew, SIGNAL(clicked()), this, SLOT(GoToNewWeapons())); |
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
|
290 |
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
|
291 |
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
|
292 |
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
|
293 |
connect(ui.pageOptions->SchemeDelete, SIGNAL(clicked()), this, SLOT(DeleteScheme())); |
6574 | 294 |
connect(ui.pageOptions->CBFrontendEffects, SIGNAL(toggled(bool)), this, SLOT(onFrontendEffects(bool)) ); |
15090
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
295 |
connect(ui.pageOptions->CBFrontendSound, SIGNAL(toggled(bool)), this, SLOT(onFrontendSoundsToggled(bool))); |
184 | 296 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
297 |
connect(ui.pageNet->BtnSpecifyServer, SIGNAL(clicked()), this, SLOT(NetConnect())); |
4518 | 298 |
connect(ui.pageNet->BtnNetSvrStart, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
299 |
pageSwitchMapper->setMapping(ui.pageNet->BtnNetSvrStart, ID_PAGE_NETSERVER); |
|
300 |
||
14865 | 301 |
connect(ui.pageNet, SIGNAL(connectClicked(const QString &, quint16, bool)), this, SLOT(NetConnectServer(const QString &, quint16, bool))); |
2377 | 302 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
303 |
connect(ui.pageNetServer->BtnStart, SIGNAL(clicked()), this, SLOT(NetStartServer())); |
184 | 304 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
305 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(setEnabledGameStart(bool)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
306 |
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
|
307 |
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
|
308 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(goToSchemes(int)), this, SLOT(GoToScheme(int))); |
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
309 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(goToWeapons(int)), this, SLOT(GoToWeapons(int))); |
4511 | 310 |
connect(ui.pageNetGame->pGameCFG, SIGNAL(goToDrawMap()), pageSwitchMapper, SLOT(map())); |
311 |
pageSwitchMapper->setMapping(ui.pageNetGame->pGameCFG, ID_PAGE_DRAWMAP); |
|
184 | 312 |
|
4518 | 313 |
connect(ui.pageRoomsList->BtnAdmin, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
314 |
pageSwitchMapper->setMapping(ui.pageRoomsList->BtnAdmin, ID_PAGE_ADMIN); |
|
187 | 315 |
|
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
|
316 |
connect(ui.pageInfo->BtnSnapshots, SIGNAL(clicked()), this, SLOT(OpenSnapshotFolder())); |
1312 | 317 |
|
5734 | 318 |
connect(ui.pageGameStats, SIGNAL(saveDemoRequested()), this, SLOT(saveDemoWithCustomName())); |
8901
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
319 |
connect(ui.pageGameStats, SIGNAL(restartGameRequested()), this, SLOT(restartGame())); |
306 | 320 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
321 |
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
|
322 |
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
|
323 |
pageSwitchMapper->setMapping(ui.pageSinglePlayer->BtnTrainPage, ID_PAGE_TRAINING); |
4518 | 324 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
325 |
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
|
326 |
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
|
327 |
|
4518 | 328 |
connect(ui.pageSinglePlayer->BtnMultiplayer, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); |
329 |
pageSwitchMapper->setMapping(ui.pageSinglePlayer->BtnMultiplayer, ID_PAGE_MULTIPLAYER); |
|
330 |
||
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
331 |
connect(ui.pageSinglePlayer->BtnLoad, SIGNAL(clicked()), this, SLOT(GoToSaves())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
332 |
connect(ui.pageSinglePlayer->BtnDemos, SIGNAL(clicked()), this, SLOT(GoToDemos())); |
311 | 333 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11959
diff
changeset
|
334 |
connect(ui.pageTraining, SIGNAL(startMission(const QString&, const QString&)), this, SLOT(startTraining(const QString&, const QString&))); |
587 | 335 |
|
3760 | 336 |
connect(ui.pageCampaign->BtnStartCampaign, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
9324
98368198a75d
added slot for starting campaign by clicking the image and some events in moon mission
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9308
diff
changeset
|
337 |
connect(ui.pageCampaign->btnPreview, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
3760 | 338 |
connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
339 |
connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPageTeam(int))); |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
340 |
connect(ui.pageCampaign->CBCampaign, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
9182
f92e205bc167
issue 562, image and description for the campaign page
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9163
diff
changeset
|
341 |
connect(ui.pageCampaign->CBMission, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPageMission(int))); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
342 |
connect(ui.pageTraining->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateTrainingPageTeam(int))); |
14469
bfacce4ff920
Sync team comboboxes in campaign and training page
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
343 |
connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), ui.pageTraining->CBTeam, SLOT(setCurrentIndex(int))); |
bfacce4ff920
Sync team comboboxes in campaign and training page
Wuzzy <Wuzzy2@mail.ru>
parents:
14468
diff
changeset
|
344 |
connect(ui.pageTraining->CBTeam, SIGNAL(currentIndexChanged(int)), ui.pageCampaign->CBTeam, SLOT(setCurrentIndex(int))); |
600 | 345 |
|
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
346 |
connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsDeleted(QString)), |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
347 |
this, SLOT(DeleteWeapons(QString))); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
348 |
connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsAdded(QString, QString)), |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
349 |
this, SLOT(AddWeapons(QString, QString))); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
350 |
connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsEdited(QString, QString, QString)), |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
351 |
this, SLOT(EditWeapons(QString, QString, QString))); |
12811
de3cbbb09915
Fix host not re-sending ammo scheme after editing an existing ammo scheme
Wuzzy <Wuzzy2@mail.ru>
parents:
12799
diff
changeset
|
352 |
connect(ui.pageSelectWeapon->pWeapons, SIGNAL(weaponsEdited(QString, QString, QString)), |
de3cbbb09915
Fix host not re-sending ammo scheme after editing an existing ammo scheme
Wuzzy <Wuzzy2@mail.ru>
parents:
12799
diff
changeset
|
353 |
ui.pageNetGame->pGameCFG, SLOT(resendAmmoData())); |
1887 | 354 |
|
8318 | 355 |
connect(ui.pageMain->BtnNetLocal, SIGNAL(clicked()), this, SLOT(GoToNet())); |
356 |
connect(ui.pageMain->BtnNetOfficial, SIGNAL(clicked()), this, SLOT(NetConnectOfficialServer())); |
|
1950 | 357 |
|
7235
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
358 |
connect(ui.pageVideos, SIGNAL(goBack()), config, SLOT(SaveVideosOptions())); |
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
359 |
|
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
360 |
gameSchemeModel = new GameSchemeModel(this, cfgdir->absolutePath() + "/Schemes/Game"); |
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
361 |
ui.pageScheme->setModel(gameSchemeModel); |
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
362 |
ui.pageMultiplayer->gameCFG->GameSchemes->setModel(gameSchemeModel); |
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
363 |
ui.pageOptions->SchemesName->setModel(gameSchemeModel); |
1885 | 364 |
|
6574 | 365 |
wBackground = new BGWidget(this); |
366 |
wBackground->setFixedSize(this->width(), this->height()); |
|
367 |
wBackground->lower(); |
|
368 |
wBackground->init(); |
|
369 |
wBackground->enabled = config->isFrontendEffects(); |
|
370 |
wBackground->startAnimation(); |
|
2012 | 371 |
|
6477 | 372 |
//Install all eventFilters : |
373 |
||
374 |
MouseOverFilter *filter = new MouseOverFilter(); |
|
375 |
filter->setUi(&ui); |
|
376 |
||
377 |
QList<QWidget *> widgets; |
|
378 |
||
379 |
for (int i=0; i < ui.Pages->count(); i++) |
|
380 |
{ |
|
381 |
widgets = ui.Pages->widget(i)->findChildren<QWidget *>(); |
|
382 |
||
383 |
for (int i=0; i < widgets.size(); i++) |
|
384 |
{ |
|
385 |
widgets.at(i)->installEventFilter(filter); |
|
386 |
} |
|
387 |
} |
|
388 |
||
8569 | 389 |
ui.Pages->setCurrentIndex(ID_PAGE_INFO); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
390 |
PagesStack.push(ID_PAGE_MAIN); |
8384 | 391 |
((AbstractPage*)ui.Pages->widget(ID_PAGE_MAIN))->triggerPageEnter(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
392 |
GoBack(); |
13330 | 393 |
|
394 |
connect(config, SIGNAL(frontendFullscreen(bool)), this, SLOT(onFrontendFullscreen(bool))); |
|
395 |
onFrontendFullscreen(config->isFrontendFullscreen()); |
|
184 | 396 |
} |
397 |
||
1162 | 398 |
void HWForm::onFrontendFullscreen(bool value) |
399 |
{ |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
400 |
if (value) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
401 |
setWindowState(windowState() | Qt::WindowFullScreen); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
402 |
else |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
403 |
{ |
12725
1a393a59a594
Fix GCC warnings: -Wimplicit-fallthrough and -Wint-in-bool-context
Wuzzy <Wuzzy2@mail.ru>
parents:
12674
diff
changeset
|
404 |
setWindowState(windowState() & ~Qt::WindowFullScreen); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
405 |
} |
1162 | 406 |
} |
407 |
||
6574 | 408 |
void HWForm::onFrontendEffects(bool value) |
409 |
{ |
|
410 |
wBackground->enabled = value; |
|
411 |
if (value) |
|
412 |
wBackground->startAnimation(); |
|
413 |
else |
|
414 |
wBackground->stopAnimation(); |
|
415 |
} |
|
416 |
||
15090
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
417 |
void HWForm::onFrontendSoundsToggled(bool value) |
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
418 |
{ |
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
419 |
ui.pageEditTeam->frontendSoundsToggled(value); |
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
420 |
} |
33eca3f0a9aa
PageEditTeam: Disable sound test button when frontend sounds are disabled
Wuzzy <Wuzzy2@mail.ru>
parents:
14934
diff
changeset
|
421 |
|
4592
b1fe47b11b99
disable fix for issue 24 in order to fix issue 123, as suggested by koda
sheepluva
parents:
4576
diff
changeset
|
422 |
/* |
3937 | 423 |
void HWForm::keyReleaseEvent(QKeyEvent *event) |
424 |
{ |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
425 |
if (event->key() == Qt::Key_Escape) |
3937 | 426 |
this->GoBack(); |
427 |
} |
|
4592
b1fe47b11b99
disable fix for issue 24 in order to fix issue 123, as suggested by koda
sheepluva
parents:
4576
diff
changeset
|
428 |
*/ |
3937 | 429 |
|
1419 | 430 |
void HWForm::CustomizePalettes() |
431 |
{ |
|
12220
a7c08e4748ff
Use the same link color consistently in frontend
Wuzzy <almikes@aol.com>
parents:
12217
diff
changeset
|
432 |
// Scroll bar widget palette |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
433 |
QList<QScrollBar *> allSBars = findChildren<QScrollBar *>(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
434 |
QPalette pal = palette(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
435 |
pal.setColor(QPalette::WindowText, QColor(0xff, 0xcc, 0x00)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
436 |
pal.setColor(QPalette::Button, QColor(0x00, 0x35, 0x1d)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
437 |
pal.setColor(QPalette::Base, QColor(0x00, 0x35, 0x1d)); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
438 |
pal.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00)); |
1419 | 439 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
440 |
for (int i = 0; i < allSBars.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
441 |
allSBars.at(i)->setPalette(pal); |
12220
a7c08e4748ff
Use the same link color consistently in frontend
Wuzzy <almikes@aol.com>
parents:
12217
diff
changeset
|
442 |
|
a7c08e4748ff
Use the same link color consistently in frontend
Wuzzy <almikes@aol.com>
parents:
12217
diff
changeset
|
443 |
// Set default hyperlink color |
a7c08e4748ff
Use the same link color consistently in frontend
Wuzzy <almikes@aol.com>
parents:
12217
diff
changeset
|
444 |
QPalette appPal = qApp->palette(); |
a7c08e4748ff
Use the same link color consistently in frontend
Wuzzy <almikes@aol.com>
parents:
12217
diff
changeset
|
445 |
appPal.setColor(QPalette::Link, QColor(0xff, 0xff, 0x6e)); |
a7c08e4748ff
Use the same link color consistently in frontend
Wuzzy <almikes@aol.com>
parents:
12217
diff
changeset
|
446 |
qApp->setPalette(appPal); |
1419 | 447 |
} |
448 |
||
695 | 449 |
void HWForm::UpdateWeapons() |
450 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
451 |
QVector<QComboBox*> combos; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
452 |
combos.push_back(ui.pageOptions->WeaponsName); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
453 |
combos.push_back(ui.pageMultiplayer->gameCFG->WeaponsName); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
454 |
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
|
455 |
combos.push_back(ui.pageSelectWeapon->selectWeaponSet); |
696 | 456 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
457 |
QStringList names = ui.pageSelectWeapon->pWeapons->getWeaponNames(); |
1517 | 458 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
459 |
for(QVector<QComboBox*>::iterator it = combos.begin(); it != combos.end(); ++it) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
460 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
461 |
(*it)->clear(); |
1517 | 462 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
463 |
for(int i = 0; i < names.size(); ++i) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
464 |
(*it)->addItem(names[i], ui.pageSelectWeapon->pWeapons->getWeaponsString(names[i])); |
2377 | 465 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
466 |
int pos = (*it)->findText("Default"); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
467 |
if (pos != -1) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
468 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
469 |
(*it)->setCurrentIndex(pos); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
470 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
471 |
} |
695 | 472 |
} |
473 |
||
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
474 |
void HWForm::AddWeapons(QString weaponsName, QString ammo) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
475 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
476 |
QVector<QComboBox*> combos; |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
477 |
combos.push_back(ui.pageOptions->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
478 |
combos.push_back(ui.pageMultiplayer->gameCFG->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
479 |
combos.push_back(ui.pageNetGame->pGameCFG->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
480 |
combos.push_back(ui.pageSelectWeapon->selectWeaponSet); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
481 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
482 |
QStringList names = ui.pageSelectWeapon->pWeapons->getWeaponNames(); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
483 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
484 |
for(QVector<QComboBox*>::iterator it = combos.begin(); it != combos.end(); ++it) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
485 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
486 |
(*it)->addItem(weaponsName, QVariant(ammo)); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
487 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
488 |
ui.pageSelectWeapon->selectWeaponSet->setCurrentIndex(ui.pageSelectWeapon->selectWeaponSet->count()-1); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
489 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
490 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
491 |
void HWForm::DeleteWeapons(QString weaponsName) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
492 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
493 |
QVector<QComboBox*> combos; |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
494 |
combos.push_back(ui.pageOptions->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
495 |
combos.push_back(ui.pageMultiplayer->gameCFG->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
496 |
combos.push_back(ui.pageNetGame->pGameCFG->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
497 |
combos.push_back(ui.pageSelectWeapon->selectWeaponSet); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
498 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
499 |
QStringList names = ui.pageSelectWeapon->pWeapons->getWeaponNames(); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
500 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
501 |
for(QVector<QComboBox*>::iterator it = combos.begin(); it != combos.end(); ++it) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
502 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
503 |
int pos = (*it)->findText(weaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
504 |
if (pos != -1) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
505 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
506 |
(*it)->removeItem(pos); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
507 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
508 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
509 |
ui.pageSelectWeapon->pWeapons->deletionDone(); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
510 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
511 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
512 |
void HWForm::EditWeapons(QString oldWeaponsName, QString newWeaponsName, QString ammo) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
513 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
514 |
QVector<QComboBox*> combos; |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
515 |
combos.push_back(ui.pageOptions->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
516 |
combos.push_back(ui.pageMultiplayer->gameCFG->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
517 |
combos.push_back(ui.pageNetGame->pGameCFG->WeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
518 |
combos.push_back(ui.pageSelectWeapon->selectWeaponSet); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
519 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
520 |
QStringList names = ui.pageSelectWeapon->pWeapons->getWeaponNames(); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
521 |
|
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
522 |
for(QVector<QComboBox*>::iterator it = combos.begin(); it != combos.end(); ++it) |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
523 |
{ |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
524 |
int pos = (*it)->findText(oldWeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
525 |
(*it)->setItemText(pos, newWeaponsName); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
526 |
(*it)->setItemData(pos, ammo); |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
527 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
528 |
} |
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
529 |
|
8140 | 530 |
void HWForm::UpdateTeamsLists() |
245 | 531 |
{ |
8140 | 532 |
QStringList teamslist = config->GetTeamsList(); |
245 | 533 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
534 |
if(teamslist.empty()) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
535 |
{ |
14740
7b2bd37d7503
Fix inconsistencies in guest nick name generation
Wuzzy <Wuzzy2@mail.ru>
parents:
14677
diff
changeset
|
536 |
QString currentNickName = config->value("net/nick", config->getRandomNick()).toString(); |
8136 | 537 |
QString teamName; |
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
538 |
int firstHumanTeam = 1; |
12635 | 539 |
int lastHumanTeam = 2; |
8140 | 540 |
|
12241
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
541 |
// Default team |
8140 | 542 |
if (currentNickName.isEmpty()) |
8136 | 543 |
{ |
12241
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
544 |
teamName = tr("Team 1"); |
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
545 |
firstHumanTeam++; |
8136 | 546 |
} |
547 |
else |
|
548 |
{ |
|
549 |
teamName = tr("%1's Team").arg(currentNickName); |
|
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
550 |
lastHumanTeam--; |
8136 | 551 |
} |
8140 | 552 |
|
8136 | 553 |
HWTeam defaultTeam(teamName); |
12296
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
554 |
// Randomize fort and grave for greater variety by default. |
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
555 |
// But we exclude DLC graves and forts to not have desyncing teams by default |
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
556 |
// TODO: Remove DLC filtering when it isn't neccessary anymore |
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
557 |
HWNamegen::teamRandomGrave(defaultTeam, false); |
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
558 |
HWNamegen::teamRandomFort(defaultTeam, false); |
14934
0ec0ed2d9045
Frontend: Select appropriate localized Default voicepack for new teams
Wuzzy <Wuzzy2@mail.ru>
parents:
14903
diff
changeset
|
559 |
HWNamegen::teamLocalizedDefaultVoice(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
|
560 |
defaultTeam.saveToFile(); |
8136 | 561 |
teamslist.push_back(teamName); |
12241
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
562 |
|
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
563 |
// Add additional default teams |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
564 |
|
12634
91e55ce06ffc
Reduce number of initial teams: 4 human, 2 AI teams
Wuzzy <almikes@aol.com>
parents:
12633
diff
changeset
|
565 |
// More human teams to allow local multiplayer instantly |
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
566 |
for(int i=firstHumanTeam; i<=lastHumanTeam; i++) |
12241
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
567 |
{ |
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
568 |
//: Default team name |
12241
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
569 |
teamName = tr("Team %1").arg(i); |
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
570 |
HWTeam numberTeam(teamName); |
12296
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
571 |
HWNamegen::teamRandomGrave(numberTeam, false); |
62975c0a89c6
Only select from default graves and forts for new themes
Wuzzy <almikes@aol.com>
parents:
12244
diff
changeset
|
572 |
HWNamegen::teamRandomFort(numberTeam, false); |
14934
0ec0ed2d9045
Frontend: Select appropriate localized Default voicepack for new teams
Wuzzy <Wuzzy2@mail.ru>
parents:
14903
diff
changeset
|
573 |
HWNamegen::teamLocalizedDefaultVoice(numberTeam); |
12241
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
574 |
numberTeam.saveToFile(); |
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
575 |
teamslist.push_back(teamName); |
0b5aa545e058
Add 4 teams on first start of Hedgewars
Wuzzy <almikes@aol.com>
parents:
12220
diff
changeset
|
576 |
} |
12634
91e55ce06ffc
Reduce number of initial teams: 4 human, 2 AI teams
Wuzzy <almikes@aol.com>
parents:
12633
diff
changeset
|
577 |
// Add 2 default CPU teams |
12635 | 578 |
for(int i=1; i<=5; i=i+2) |
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
579 |
{ |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
580 |
//: Default computer team name |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
581 |
teamName = tr("Computer %1").arg(i); |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
582 |
HWTeam numberTeam(teamName); |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
583 |
HWNamegen::teamRandomGrave(numberTeam, false); |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
584 |
HWNamegen::teamRandomFort(numberTeam, false); |
14934
0ec0ed2d9045
Frontend: Select appropriate localized Default voicepack for new teams
Wuzzy <Wuzzy2@mail.ru>
parents:
14903
diff
changeset
|
585 |
HWNamegen::teamLocalizedDefaultVoice(numberTeam); |
12633
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
586 |
numberTeam.setDifficulty(6-i); |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
587 |
numberTeam.saveToFile(); |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
588 |
teamslist.push_back(teamName); |
a791a08062d6
Create 5 human teams + 5 AI teams on first start
Wuzzy <almikes@aol.com>
parents:
12305
diff
changeset
|
589 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
590 |
} |
245 | 591 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
592 |
ui.pageOptions->CBTeamName->clear(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
593 |
ui.pageOptions->CBTeamName->addItems(teamslist); |
3760 | 594 |
ui.pageCampaign->CBTeam->clear(); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
595 |
ui.pageTraining->CBTeam->clear(); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
596 |
/* Only show human teams in campaign/training page */ |
14646
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14602
diff
changeset
|
597 |
bool playable = false; |
11959
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
598 |
for(int i=0; i<teamslist.length(); i++) |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
599 |
{ |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
600 |
HWTeam testTeam = HWTeam(teamslist[i]); |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
601 |
testTeam.loadFromFile(); |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
602 |
if(testTeam.difficulty() == 0) |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
603 |
{ |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
604 |
ui.pageCampaign->CBTeam->addItem(teamslist[i]); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
605 |
ui.pageTraining->CBTeam->addItem(teamslist[i]); |
14646
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14602
diff
changeset
|
606 |
playable = true; |
11959
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
607 |
} |
3c15903256a7
Don't show AI-controlled teams in campaigns page
Wuzzy <almikes@aol.com>
parents:
11958
diff
changeset
|
608 |
} |
14646
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14602
diff
changeset
|
609 |
ui.pageCampaign->BtnStartCampaign->setEnabled(playable); |
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14602
diff
changeset
|
610 |
ui.pageCampaign->btnPreview->setEnabled(playable); |
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14602
diff
changeset
|
611 |
ui.pageTraining->btnStart->setEnabled(playable); |
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14602
diff
changeset
|
612 |
ui.pageTraining->btnPreview->setEnabled(playable); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
613 |
UpdateTrainingPageTeam(0); |
245 | 614 |
} |
615 |
||
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
616 |
void HWForm::GoToNewWeapons() |
694 | 617 |
{ |
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
|
618 |
ui.pageSelectWeapon->pWeapons->newWeaponsName(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
619 |
GoToPage(ID_PAGE_SELECTWEAPON); |
694 | 620 |
} |
621 |
||
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
622 |
void HWForm::GoToEditWeapons() |
600 | 623 |
{ |
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
|
624 |
ui.pageSelectWeapon->selectWeaponSet->setCurrentIndex(ui.pageOptions->WeaponsName->currentIndex()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
625 |
GoToPage(ID_PAGE_SELECTWEAPON); |
600 | 626 |
} |
627 |
||
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
628 |
void HWForm::GoToWeapons(int index) |
2009 | 629 |
{ |
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
|
630 |
ui.pageSelectWeapon->selectWeaponSet->setCurrentIndex(index); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
631 |
GoToPage(ID_PAGE_SELECTWEAPON); |
2009 | 632 |
} |
633 |
||
12665
5664ec82aed7
Rework weapon scheme handling in frontend and fix a couple of bugs
Wuzzy <almikes@aol.com>
parents:
12635
diff
changeset
|
634 |
|
579 | 635 |
void HWForm::GoToSaves() |
636 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
637 |
ui.pagePlayDemo->FillFromDir(PagePlayDemo::RT_Save); |
579 | 638 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
639 |
GoToPage(ID_PAGE_DEMOS); |
579 | 640 |
} |
641 |
||
184 | 642 |
void HWForm::GoToDemos() |
643 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
644 |
ui.pagePlayDemo->FillFromDir(PagePlayDemo::RT_Demo); |
579 | 645 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
646 |
GoToPage(ID_PAGE_DEMOS); |
184 | 647 |
} |
648 |
||
649 |
void HWForm::GoToNet() |
|
650 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
651 |
ui.pageNet->updateServersList(); |
632
5e09ae25729f
Half implement possibility for different backends of servers list
unc0rr
parents:
625
diff
changeset
|
652 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
653 |
GoToPage(ID_PAGE_NET); |
184 | 654 |
} |
655 |
||
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
|
656 |
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
|
657 |
{ |
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
|
658 |
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
|
659 |
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
|
660 |
} |
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
|
661 |
|
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
|
662 |
void HWForm::GoToNewScheme() |
1885 | 663 |
{ |
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
|
664 |
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
|
665 |
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
|
666 |
} |
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
|
667 |
|
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
|
668 |
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
|
669 |
{ |
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
|
670 |
ui.pageScheme->selectScheme->setCurrentIndex(ui.pageOptions->SchemesName->currentIndex()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
671 |
GoToPage(ID_PAGE_SCHEME); |
1885 | 672 |
} |
673 |
||
13818
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
674 |
void HWForm::GoToHelp() |
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
675 |
{ |
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
676 |
// For now just opens the Hedgewars Wiki in external browser. |
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
677 |
// TODO: Replace this with an offline help someday (bug 660). |
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
678 |
QDesktopServices::openUrl(QUrl("https://hedgewars.org/wiki")); |
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
679 |
} |
a8fd5490932f
Add help button in main menu (opens Hedgewars Wiki in browser)
Wuzzy <Wuzzy2@mail.ru>
parents:
13689
diff
changeset
|
680 |
|
7353
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
681 |
void HWForm::GoToVideos() |
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
682 |
{ |
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
683 |
GoToPage(ID_PAGE_VIDEOS); |
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
684 |
} |
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
685 |
|
13086
8d569c7b36a2
Frontend: Lead first-time player to training page on start
Wuzzy <Wuzzy2@mail.ru>
parents:
12924
diff
changeset
|
686 |
void HWForm::GoToTraining() |
8d569c7b36a2
Frontend: Lead first-time player to training page on start
Wuzzy <Wuzzy2@mail.ru>
parents:
12924
diff
changeset
|
687 |
{ |
8d569c7b36a2
Frontend: Lead first-time player to training page on start
Wuzzy <Wuzzy2@mail.ru>
parents:
12924
diff
changeset
|
688 |
GoToPage(ID_PAGE_TRAINING); |
8d569c7b36a2
Frontend: Lead first-time player to training page on start
Wuzzy <Wuzzy2@mail.ru>
parents:
12924
diff
changeset
|
689 |
} |
8d569c7b36a2
Frontend: Lead first-time player to training page on start
Wuzzy <Wuzzy2@mail.ru>
parents:
12924
diff
changeset
|
690 |
|
8353 | 691 |
//TODO: maybe find a better place for this? |
692 |
QString HWForm::stringifyPageId(quint32 id) |
|
693 |
{ |
|
694 |
QString pageName; |
|
695 |
switch (id) |
|
696 |
{ |
|
697 |
case ID_PAGE_SETUP_TEAM : pageName = "PAGE_SETUP_TEAM"; break; |
|
698 |
case ID_PAGE_SETUP : pageName = "PAGE_SETUP"; break; |
|
699 |
case ID_PAGE_MULTIPLAYER : pageName = "PAGE_MULTIPLAYER"; break; |
|
700 |
case ID_PAGE_DEMOS : pageName = "PAGE_DEMOS"; break; |
|
701 |
case ID_PAGE_NET : pageName = "PAGE_NET"; break; |
|
702 |
case ID_PAGE_NETGAME : pageName = "PAGE_NETGAME"; break; |
|
703 |
case ID_PAGE_INFO : pageName = "PAGE_INFO"; break; |
|
704 |
case ID_PAGE_MAIN : pageName = "PAGE_MAIN"; break; |
|
705 |
case ID_PAGE_GAMESTATS : pageName = "PAGE_GAMESTATS"; break; |
|
706 |
case ID_PAGE_SINGLEPLAYER : pageName = "PAGE_SINGLEPLAYER"; break; |
|
707 |
case ID_PAGE_TRAINING : pageName = "PAGE_TRAINING"; break; |
|
708 |
case ID_PAGE_SELECTWEAPON : pageName = "PAGE_SELECTWEAPON"; break; |
|
709 |
case ID_PAGE_NETSERVER : pageName = "PAGE_NETSERVER"; break; |
|
710 |
case ID_PAGE_INGAME : pageName = "PAGE_INGAME"; break; |
|
711 |
case ID_PAGE_ROOMSLIST : pageName = "PAGE_ROOMSLIST"; break; |
|
712 |
case ID_PAGE_CONNECTING : pageName = "PAGE_CONNECTING"; break; |
|
713 |
case ID_PAGE_SCHEME : pageName = "PAGE_SCHEME"; break; |
|
714 |
case ID_PAGE_ADMIN : pageName = "PAGE_ADMIN"; break; |
|
715 |
case ID_PAGE_CAMPAIGN : pageName = "PAGE_CAMPAIGN"; break; |
|
716 |
case ID_PAGE_DRAWMAP : pageName = "PAGE_DRAWMAP"; break; |
|
717 |
case ID_PAGE_DATADOWNLOAD : pageName = "PAGE_DATADOWNLOAD"; break; |
|
718 |
case ID_PAGE_VIDEOS : pageName = "PAGE_VIDEOS"; break; |
|
719 |
case MAX_PAGE : pageName = "MAX_PAGE"; break; |
|
720 |
default : pageName = "UNKNOWN_PAGE"; break; |
|
721 |
} |
|
722 |
return pageName; |
|
723 |
} |
|
724 |
||
496 | 725 |
void HWForm::OnPageShown(quint8 id, quint8 lastid) |
311 | 726 |
{ |
9235 | 727 |
#ifdef QT_DEBUG |
8353 | 728 |
qDebug("Leaving %s, entering %s", qPrintable(stringifyPageId(lastid)), qPrintable(stringifyPageId(id))); |
9235 | 729 |
#endif |
8977 | 730 |
if (lastid == ID_PAGE_MAIN) |
731 |
{ |
|
8982 | 732 |
ui.pageMain->resetNetworkChoice(); |
8977 | 733 |
} |
8353 | 734 |
|
8384 | 735 |
// pageEnter and pageLeave events |
8434 | 736 |
((AbstractPage*)ui.Pages->widget(lastid))->triggerPageLeave(); |
8384 | 737 |
((AbstractPage*)ui.Pages->widget(id))->triggerPageEnter(); |
738 |
||
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
|
739 |
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
|
740 |
{ |
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
|
741 |
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
|
742 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
743 |
if (id == ID_PAGE_DRAWMAP) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
744 |
{ |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
745 |
DrawMapScene * scene; |
4535 | 746 |
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
|
747 |
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
|
748 |
else |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
749 |
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
|
750 |
|
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
751 |
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
|
752 |
} |
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
|
753 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
754 |
if (lastid == ID_PAGE_DRAWMAP) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
755 |
{ |
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
|
756 |
if (id == ID_PAGE_MULTIPLAYER) |
4525 | 757 |
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
|
758 |
else |
4525 | 759 |
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
|
760 |
} |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4518
diff
changeset
|
761 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
762 |
if (id == ID_PAGE_ROOMSLIST) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
763 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
764 |
if (hwnet && game && game->gameState == gsStarted) // abnormal exit - kick or room destruction - send kills. |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
765 |
{ |
6190
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
766 |
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
|
767 |
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
|
768 |
game->abort(); |
6190
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
769 |
} |
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
770 |
} |
1db2486e45f4
potential fix for issue #217 (SigSegV while in game room in KillAllTeams - team list change?)
sheepluva
parents:
6180
diff
changeset
|
771 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
772 |
if (id == ID_PAGE_MULTIPLAYER || id == ID_PAGE_NETGAME) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
773 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
774 |
QStringList tmNames = config->GetTeamsList(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
775 |
TeamSelWidget* curTeamSelWidget; |
6024 | 776 |
ui.pageOptions->setTeamOptionsEnabled(false); |
2377 | 777 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
778 |
if (id == ID_PAGE_MULTIPLAYER) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
779 |
{ |
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
|
780 |
curTeamSelWidget = ui.pageMultiplayer->teamsSelect; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
781 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
782 |
else |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
783 |
{ |
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
|
784 |
curTeamSelWidget = ui.pageNetGame->pNetTeamsWidget; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
785 |
} |
2377 | 786 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
787 |
QList<HWTeam> teamsList; |
9393 | 788 |
for (QStringList::iterator it = tmNames.begin(); it != tmNames.end(); ++it) |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
789 |
{ |
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
|
790 |
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
|
791 |
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
|
792 |
teamsList.push_back(team); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
793 |
} |
2377 | 794 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
795 |
if (lastid == ID_PAGE_SETUP || lastid == ID_PAGE_DRAWMAP) // _TEAM |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
796 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
797 |
if (editedTeam) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
798 |
{ |
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
|
799 |
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
|
800 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
801 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
802 |
else if (lastid != ID_PAGE_GAMESTATS |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
803 |
&& lastid != ID_PAGE_INGAME |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
804 |
&& lastid != ID_PAGE_SCHEME |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
805 |
&& lastid != ID_PAGE_SELECTWEAPON) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
806 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
807 |
curTeamSelWidget->resetPlayingTeams(teamsList); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
808 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
809 |
} |
2845 | 810 |
|
8901
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
811 |
if (id == ID_PAGE_GAMESTATS) |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
812 |
{ |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
813 |
switch(lastGameType) { |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
814 |
case gtLocal: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
815 |
case gtQLocal: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
816 |
case gtTraining: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
817 |
case gtCampaign: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
818 |
ui.pageGameStats->restartBtnVisible(true); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
819 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
820 |
default: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
821 |
ui.pageGameStats->restartBtnVisible(false); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
822 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
823 |
} |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
824 |
} |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
825 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
826 |
if (id == ID_PAGE_MAIN) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
827 |
{ |
6024 | 828 |
ui.pageOptions->setTeamOptionsEnabled(true); |
3159 | 829 |
} |
311 | 830 |
} |
831 |
||
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
832 |
void HWForm::GoToPage(int id) |
289 | 833 |
{ |
9393 | 834 |
//bool stopAnim = false; |
6428 | 835 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
836 |
int lastid = ui.Pages->currentIndex(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
837 |
PagesStack.push(ui.Pages->currentIndex()); |
6428 | 838 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
839 |
OnPageShown(id, lastid); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
840 |
ui.Pages->setCurrentIndex(id); |
6428 | 841 |
|
7004 | 842 |
|
843 |
/* if (id == ID_PAGE_DRAWMAP || id == ID_PAGE_GAMESTATS) |
|
6428 | 844 |
stopAnim = true; |
8098 | 845 |
This were disabled due to broken flake animations. I believe the more general problems w/ opacity that forced its disable makes blocking these |
846 |
unnecessary. |
|
7004 | 847 |
*/ |
6428 | 848 |
|
8384 | 849 |
|
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
850 |
#if (QT_VERSION >= 0x040600) |
9393 | 851 |
//if (!stopAnim) |
6428 | 852 |
{ |
853 |
/**Start animation :**/ |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
854 |
int coeff = 1; |
6630
f8bbfa9a1a36
Disable opacity across the board. It is screwed up in OSX and apparently also Linux. Bad artifacts and overall performance.
nemo
parents:
6616
diff
changeset
|
855 |
#ifdef false |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
856 |
coeff = 2; |
6428 | 857 |
QGraphicsOpacityEffect *effectNew = new QGraphicsOpacityEffect(ui.Pages->widget(id)); |
858 |
ui.Pages->widget(id)->setGraphicsEffect(effectNew); |
|
859 |
||
860 |
QGraphicsOpacityEffect *effectLast = new QGraphicsOpacityEffect(ui.Pages->widget(lastid)); |
|
861 |
ui.Pages->widget(lastid)->setGraphicsEffect(effectLast); |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
862 |
#endif |
6574 | 863 |
// no effects, means 0 effect duration :D |
864 |
int duration = config->isFrontendEffects() ? 500 : 0; |
|
6428 | 865 |
|
866 |
//New page animation |
|
867 |
animationNewSlide = new QPropertyAnimation(ui.Pages->widget(id), "pos"); |
|
6574 | 868 |
animationNewSlide->setDuration(duration); |
7004 | 869 |
animationNewSlide->setStartValue(QPoint(width()/coeff, 0)); |
6428 | 870 |
animationNewSlide->setEndValue(QPoint(0, 0)); |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
871 |
animationNewSlide->setEasingCurve(QEasingCurve::OutExpo); |
6428 | 872 |
|
6630
f8bbfa9a1a36
Disable opacity across the board. It is screwed up in OSX and apparently also Linux. Bad artifacts and overall performance.
nemo
parents:
6616
diff
changeset
|
873 |
#ifdef false |
6428 | 874 |
animationNewOpacity = new QPropertyAnimation(effectNew, "opacity"); |
6574 | 875 |
animationNewOpacity->setDuration(duration); |
6428 | 876 |
animationNewOpacity->setStartValue(0.01); |
877 |
animationNewOpacity->setEndValue(1); |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
878 |
animationNewOpacity->setEasingCurve(QEasingCurve::OutExpo); |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
879 |
#endif |
6428 | 880 |
|
881 |
//Last page animation |
|
882 |
ui.Pages->widget(lastid)->setHidden(false); |
|
883 |
||
884 |
animationOldSlide = new QPropertyAnimation(ui.Pages->widget(lastid), "pos"); |
|
6574 | 885 |
animationOldSlide->setDuration(duration); |
6428 | 886 |
animationOldSlide->setStartValue(QPoint(0, 0)); |
7004 | 887 |
animationOldSlide->setEndValue(QPoint(-width()/coeff, 0)); |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
888 |
animationOldSlide->setEasingCurve(QEasingCurve::OutExpo); |
6428 | 889 |
|
6630
f8bbfa9a1a36
Disable opacity across the board. It is screwed up in OSX and apparently also Linux. Bad artifacts and overall performance.
nemo
parents:
6616
diff
changeset
|
890 |
#ifdef false |
6428 | 891 |
animationOldOpacity = new QPropertyAnimation(effectLast, "opacity"); |
6574 | 892 |
animationOldOpacity->setDuration(duration); |
6428 | 893 |
animationOldOpacity->setStartValue(1); |
894 |
animationOldOpacity->setEndValue(0.01); |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
895 |
animationOldOpacity->setEasingCurve(QEasingCurve::OutExpo); |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
896 |
#endif |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
897 |
|
7860
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
898 |
// let's hide the old slide after its animation has finished |
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
899 |
connect(animationOldSlide, SIGNAL(finished()), ui.Pages->widget(lastid), SLOT(hide())); |
7826
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
900 |
|
7860
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
901 |
// start animations |
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
902 |
animationOldSlide->start(QAbstractAnimation::DeleteWhenStopped); |
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
903 |
animationNewSlide->start(QAbstractAnimation::DeleteWhenStopped); |
6428 | 904 |
|
8098 | 905 |
/* this is for the situation when the animation below is interrupted by a new animation. For some reason, finished is not being fired */ |
906 |
for(int i=0;i<MAX_PAGE;i++) if (i!=id && i!=lastid) ui.Pages->widget(i)->hide(); |
|
6428 | 907 |
} |
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
908 |
#endif |
289 | 909 |
} |
910 |
||
911 |
void HWForm::GoBack() |
|
912 |
{ |
|
6428 | 913 |
bool stopAnim = false; |
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
|
914 |
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
|
915 |
if (curid == ID_PAGE_MAIN) |
6428 | 916 |
{ |
8384 | 917 |
((AbstractPage*)ui.Pages->widget(ID_PAGE_MAIN))->triggerPageLeave(); |
7353
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
918 |
if (!ui.pageVideos->tryQuit(this)) |
0e55228e1303
When there are videos that are being encoded and user tries to quit display dialog with warning.
Stepan777 <stepik-777@mail.ru>
parents:
7347
diff
changeset
|
919 |
return; |
6428 | 920 |
stopAnim = true; |
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
|
921 |
exit(); |
6428 | 922 |
} |
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
|
923 |
|
4509
816a0bff5019
Use QSignalMapper instead of GoToPage*() functions (not all calls converted yet)
unc0rr
parents:
4433
diff
changeset
|
924 |
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
|
925 |
ui.Pages->setCurrentIndex(id); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
926 |
OnPageShown(id, curid); |
2377 | 927 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
928 |
if (id == ID_PAGE_CONNECTING) |
6428 | 929 |
{ |
930 |
stopAnim = true; |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
931 |
GoBack(); |
6428 | 932 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
933 |
if (id == ID_PAGE_NETSERVER) |
6428 | 934 |
{ |
935 |
stopAnim = true; |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
936 |
GoBack(); |
6428 | 937 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
938 |
if ((!hwnet) && (id == ID_PAGE_ROOMSLIST)) |
6428 | 939 |
{ |
940 |
stopAnim = true; |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
941 |
GoBack(); |
6428 | 942 |
} |
7004 | 943 |
/*if (curid == ID_PAGE_DRAWMAP) |
944 |
stopAnim = true; */ |
|
2377 | 945 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
946 |
if ((!hwnet) || (!hwnet->isInRoom())) |
9393 | 947 |
if (id == ID_PAGE_NETGAME) |
6428 | 948 |
{ |
949 |
stopAnim = true; |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
950 |
GoBack(); |
6428 | 951 |
} |
1672
6a451649558c
Properly handle room deletion in respect of pages switching
unc0rr
parents:
1671
diff
changeset
|
952 |
|
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
953 |
if (curid == ID_PAGE_CAMPAIGN) |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
954 |
config->setValue("frontend/lastSingleplayerTeam", ui.pageCampaign->CBTeam->currentText()); |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
955 |
if (curid == ID_PAGE_TRAINING) |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
956 |
config->setValue("frontend/lastSingleplayerTeam", ui.pageTraining->CBTeam->currentText()); |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
957 |
|
5147 | 958 |
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
|
959 |
if (curid == ID_PAGE_NETGAME && hwnet && hwnet->isInRoom()) hwnet->partRoom(); |
4432 | 960 |
// need to work on this, can cause invalid state for admin quit trying to prevent bad state message on kick |
961 |
//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
|
962 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
963 |
if (curid == ID_PAGE_SCHEME) |
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
964 |
gameSchemeModel->Save(); |
6428 | 965 |
|
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
966 |
#if (QT_VERSION >= 0x040600) |
6428 | 967 |
/**Start animation :**/ |
6574 | 968 |
if (curid != 0 && !stopAnim) |
6428 | 969 |
{ |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
970 |
int coeff = 1; |
6630
f8bbfa9a1a36
Disable opacity across the board. It is screwed up in OSX and apparently also Linux. Bad artifacts and overall performance.
nemo
parents:
6616
diff
changeset
|
971 |
#ifdef false |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
972 |
coeff = 2; |
6428 | 973 |
QGraphicsOpacityEffect *effectNew = new QGraphicsOpacityEffect(ui.Pages->widget(id)); |
974 |
effectNew->setOpacity(1); |
|
975 |
ui.Pages->widget(id)->setGraphicsEffect(effectNew); |
|
976 |
||
977 |
QGraphicsOpacityEffect *effectLast = new QGraphicsOpacityEffect(ui.Pages->widget(curid)); |
|
978 |
ui.Pages->widget(curid)->setGraphicsEffect(effectLast); |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
979 |
#endif |
6574 | 980 |
// no effects, means 0 effect duration :D |
981 |
int duration = config->isFrontendEffects() ? 500 : 0; |
|
6428 | 982 |
|
983 |
//Last page animation |
|
984 |
animationOldSlide = new QPropertyAnimation(ui.Pages->widget(id), "pos"); |
|
6574 | 985 |
animationOldSlide->setDuration(duration); |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
986 |
animationOldSlide->setStartValue(QPoint(-width()/coeff, 0)); |
6428 | 987 |
animationOldSlide->setEndValue(QPoint(0, 0)); |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
988 |
animationOldSlide->setEasingCurve(QEasingCurve::OutExpo); |
6428 | 989 |
|
6630
f8bbfa9a1a36
Disable opacity across the board. It is screwed up in OSX and apparently also Linux. Bad artifacts and overall performance.
nemo
parents:
6616
diff
changeset
|
990 |
#ifdef false |
6428 | 991 |
animationOldOpacity = new QPropertyAnimation(effectLast, "opacity"); |
6574 | 992 |
animationOldOpacity->setDuration(duration); |
6428 | 993 |
animationOldOpacity->setStartValue(1); |
994 |
animationOldOpacity->setEndValue(0.01); |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
995 |
animationOldOpacity->setEasingCurve(QEasingCurve::OutExpo); |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
996 |
#endif |
6428 | 997 |
//New page animation |
998 |
ui.Pages->widget(curid)->setHidden(false); |
|
999 |
||
1000 |
animationNewSlide = new QPropertyAnimation(ui.Pages->widget(curid), "pos"); |
|
6574 | 1001 |
animationNewSlide->setDuration(duration); |
6428 | 1002 |
animationNewSlide->setStartValue(QPoint(0, 0)); |
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
1003 |
animationNewSlide->setEndValue(QPoint(width()/coeff, 0)); |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
1004 |
animationNewSlide->setEasingCurve(QEasingCurve::OutExpo); |
6428 | 1005 |
|
6630
f8bbfa9a1a36
Disable opacity across the board. It is screwed up in OSX and apparently also Linux. Bad artifacts and overall performance.
nemo
parents:
6616
diff
changeset
|
1006 |
#ifdef false |
6428 | 1007 |
animationNewOpacity = new QPropertyAnimation(effectNew, "opacity"); |
6574 | 1008 |
animationNewOpacity->setDuration(duration); |
6428 | 1009 |
animationNewOpacity->setStartValue(0.01); |
1010 |
animationNewOpacity->setEndValue(1); |
|
6440
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
1011 |
animationNewOpacity->setEasingCurve(QEasingCurve::OutExpo); |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
1012 |
#endif |
1fa9dc94c93f
disable opacity effect for non-linux as it is working only there, fix a glitch that would print the page for a frame and then animate it from another position, change the animation curve to something a little more speedy
koda
parents:
6428
diff
changeset
|
1013 |
|
7860
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
1014 |
// let's hide the old slide after its animation has finished |
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
1015 |
connect(animationNewSlide, SIGNAL(finished()), ui.Pages->widget(curid), SLOT(hide())); |
6428 | 1016 |
|
7860
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
1017 |
// start animations |
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
1018 |
animationOldSlide->start(QAbstractAnimation::DeleteWhenStopped); |
a90936219ffa
let animation objects delete themselves after they are not being used anymore
sheepluva
parents:
7842
diff
changeset
|
1019 |
animationNewSlide->start(QAbstractAnimation::DeleteWhenStopped); |
6428 | 1020 |
} |
6604
9cc612a24b43
this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents:
6574
diff
changeset
|
1021 |
#endif |
7826
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1022 |
|
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1023 |
if (stopAnim) |
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1024 |
ui.Pages->widget(curid)->hide(); |
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1025 |
|
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1026 |
// TODO the whole pages shown and effects stuff should be moved |
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1027 |
// out of hwform.cpp and into a subclass of QStackedLayout |
9f529722d61e
fix for the root cause of issue 434 (previous pages being visible in the background)
sheepluva
parents:
7824
diff
changeset
|
1028 |
|
184 | 1029 |
} |
1030 |
||
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
|
1031 |
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
|
1032 |
{ |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
1033 |
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
|
1034 |
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
|
1035 |
} |
a7de68f4f87f
allow accessing the snapshot folder from the about page in the frontend (button could use a nicer icon)
koda
parents:
5567
diff
changeset
|
1036 |
|
530 | 1037 |
void HWForm::btnExitPressed() |
1038 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1039 |
eggTimer.start(); |
530 | 1040 |
} |
1041 |
||
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
|
1042 |
void HWForm::exit() |
530 | 1043 |
{ |
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
|
1044 |
// 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
|
1045 |
#ifdef __APPLE__ |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1046 |
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
|
1047 |
#endif |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1048 |
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
|
1049 |
// TODO reactivate egg |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1050 |
/* } |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1051 |
else |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1052 |
{ |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1053 |
QPushButton * btn = findChild<QPushButton *>("imageButt"); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1054 |
if (btn) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1055 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1056 |
btn->setIcon(QIcon(":/res/bonus.png")); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1057 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1058 |
} */ |
530 | 1059 |
} |
1060 |
||
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
1061 |
void HWForm::IntermediateSetup() |
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
1062 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1063 |
quint8 id=ui.Pages->currentIndex(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1064 |
TeamSelWidget* curTeamSelWidget; |
2377 | 1065 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1066 |
if(id == ID_PAGE_MULTIPLAYER) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1067 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1068 |
curTeamSelWidget = ui.pageMultiplayer->teamsSelect; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1069 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1070 |
else |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1071 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1072 |
curTeamSelWidget = ui.pageNetGame->pNetTeamsWidget; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1073 |
} |
2377 | 1074 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1075 |
QStringList tmnames; |
5772
c09c50efe8b5
Replace iterators with simple declarative foreach (not tested if it works)
unc0rr
parents:
5763
diff
changeset
|
1076 |
|
5773 | 1077 |
foreach(HWTeam team, curTeamSelWidget->getNotPlayingTeams()) |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1078 |
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
|
1079 |
|
3757 | 1080 |
//UpdateTeamsLists(&tmnames); // FIXME: still need more work if teamname is updated while configuring |
1081 |
UpdateTeamsLists(); |
|
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
1082 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1083 |
GoToPage(ID_PAGE_SETUP); |
535
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
1084 |
} |
a14eaf35cf4b
"Setup" button instead of "New team", exclude playing teams from setup
displacer
parents:
533
diff
changeset
|
1085 |
|
184 | 1086 |
void HWForm::NewTeam() |
1087 |
{ |
|
12667
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1088 |
QString teamName = QLineEdit::tr("unnamed"); |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1089 |
QStringList teamslist = config->GetTeamsList(); |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1090 |
if(teamslist.contains(teamName)) |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1091 |
{ |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1092 |
//name already used -> look for an appropriate name: |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1093 |
int i=2; |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1094 |
while(teamslist.contains(teamName = QLineEdit::tr("unnamed (%1)").arg(i++))); |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1095 |
} |
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1096 |
|
2e0a38566178
Make sure new teams start with an unique name
Wuzzy <almikes@aol.com>
parents:
12665
diff
changeset
|
1097 |
ui.pageEditTeam->createTeam(teamName, playerHash); |
6024 | 1098 |
UpdateTeamsLists(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1099 |
GoToPage(ID_PAGE_SETUP_TEAM); |
184 | 1100 |
} |
1101 |
||
6024 | 1102 |
void HWForm::EditTeam(const QString & teamName) |
3159 | 1103 |
{ |
6024 | 1104 |
ui.pageEditTeam->editTeam(teamName, playerHash); |
1105 |
GoToPage(ID_PAGE_SETUP_TEAM); |
|
3159 | 1106 |
} |
1107 |
||
6024 | 1108 |
void HWForm::AfterTeamEdit() |
1840 | 1109 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1110 |
UpdateTeamsLists(); |
7551 | 1111 |
//GoBack(); |
184 | 1112 |
} |
1113 |
||
6024 | 1114 |
|
1115 |
void HWForm::DeleteTeam(const QString & teamName) |
|
184 | 1116 |
{ |
8346 | 1117 |
ui.pageEditTeam->deleteTeam(teamName); |
1118 |
UpdateTeamsLists(); |
|
184 | 1119 |
} |
1120 |
||
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
|
1121 |
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
|
1122 |
{ |
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
|
1123 |
ui.pageScheme->selectScheme->setCurrentIndex(ui.pageOptions->SchemesName->currentIndex()); |
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
1124 |
if (ui.pageOptions->SchemesName->currentIndex() < gameSchemeModel->numberOfDefaultSchemes) |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1125 |
{ |
8383 | 1126 |
MessageDialog::ShowErrorMessage(QMessageBox::tr("Cannot delete default scheme '%1'!").arg(ui.pageOptions->SchemesName->currentText()), this); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1127 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1128 |
else |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1129 |
{ |
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
|
1130 |
ui.pageScheme->deleteRow(); |
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
1131 |
gameSchemeModel->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
|
1132 |
} |
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
|
1133 |
} |
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
|
1134 |
|
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
|
1135 |
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
|
1136 |
{ |
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
|
1137 |
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
|
1138 |
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
|
1139 |
} |
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
|
1140 |
|
184 | 1141 |
void HWForm::SimpleGame() |
1142 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1143 |
CreateGame(0, 0, *cDefaultAmmoStore); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1144 |
game->StartQuick(); |
184 | 1145 |
} |
1146 |
||
1147 |
void HWForm::PlayDemo() |
|
1148 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1149 |
QListWidgetItem * curritem = ui.pagePlayDemo->DemosList->currentItem(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1150 |
if (!curritem) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1151 |
{ |
8383 | 1152 |
MessageDialog::ShowErrorMessage(QMessageBox::tr("Please select a record from the list"), this); |
5252 | 1153 |
return; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1154 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1155 |
CreateGame(0, 0, 0); |
5865 | 1156 |
game->PlayDemo(curritem->data(Qt::UserRole).toString(), ui.pagePlayDemo->isSave()); |
184 | 1157 |
} |
1158 |
||
5252 | 1159 |
void HWForm::PlayDemoQuick(const QString & demofilename) |
1160 |
{ |
|
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
|
1161 |
GoToPage(ID_PAGE_MAIN); |
8709
191bd86f97a1
fix loading files on osx too, the cause was different than other systems
koda
parents:
8643
diff
changeset
|
1162 |
//GoBack() <- don't or you'll close the socket |
5252 | 1163 |
CreateGame(0, 0, 0); |
5865 | 1164 |
game->PlayDemo(demofilename, false); |
5252 | 1165 |
} |
1166 |
||
8716
e09633d10f16
hit hwplay://server:port and automatically join an unofficial server (on osx right now)
koda
parents:
8709
diff
changeset
|
1167 |
void HWForm::NetConnectQuick(const QString & host, quint16 port) |
e09633d10f16
hit hwplay://server:port and automatically join an unofficial server (on osx right now)
koda
parents:
8709
diff
changeset
|
1168 |
{ |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1169 |
GoToPage(ID_PAGE_MAIN); |
14865 | 1170 |
NetConnectServer(host, port, false); |
8716
e09633d10f16
hit hwplay://server:port and automatically join an unofficial server (on osx right now)
koda
parents:
8709
diff
changeset
|
1171 |
} |
e09633d10f16
hit hwplay://server:port and automatically join an unofficial server (on osx right now)
koda
parents:
8709
diff
changeset
|
1172 |
|
14865 | 1173 |
void HWForm::NetConnectServer(const QString & host, quint16 port, bool useTls) |
416 | 1174 |
{ |
8716
e09633d10f16
hit hwplay://server:port and automatically join an unofficial server (on osx right now)
koda
parents:
8709
diff
changeset
|
1175 |
qDebug("connecting to %s:%d", qPrintable(host), port); |
14865 | 1176 |
_NetConnect(host, port, useTls, ui.pageOptions->editNetNick->text().trimmed()); |
1395 | 1177 |
} |
1178 |
||
1179 |
void HWForm::NetConnectOfficialServer() |
|
1180 |
{ |
|
14865 | 1181 |
NetConnectServer(NETGAME_DEFAULT_SERVER, NETGAME_DEFAULT_PORT, false); |
416 | 1182 |
} |
1183 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1184 |
void HWForm::NetPassword(const QString & nick) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1185 |
{ |
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
1186 |
Q_UNUSED(nick); |
8181 | 1187 |
//Get hashes |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1188 |
QString hash = config->passwordHash(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1189 |
QString temphash = config->tempHash(); |
8181 | 1190 |
|
1191 |
//Check them |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1192 |
|
8181 | 1193 |
if (temphash.isEmpty() && hash.isEmpty()) { //If the user enters a registered nick with no password, sends a bogus hash |
1194 |
hwnet->SendPasswordHash("THISISNOHASH"); |
|
1195 |
} |
|
1196 |
else if (temphash.isEmpty()) { //Send saved hash as default |
|
1197 |
hwnet->SendPasswordHash(hash); |
|
1198 |
} |
|
1199 |
else { //Send the hash |
|
1200 |
hwnet->SendPasswordHash(temphash); |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1201 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1202 |
|
8181 | 1203 |
//Remove temporary hash from config |
8295
6ef114ea2298
fixed minor problem with saving hash
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8294
diff
changeset
|
1204 |
config->clearTempHash(); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1205 |
} |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1206 |
|
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1207 |
void HWForm::NetNickRegistered(const QString & nick) |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1208 |
{ |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1209 |
//Get hashes |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1210 |
QString hash = config->passwordHash(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1211 |
QString temphash = config->tempHash(); |
8295
6ef114ea2298
fixed minor problem with saving hash
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8294
diff
changeset
|
1212 |
|
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1213 |
if (hash.isEmpty()) { |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1214 |
if (temphash.isEmpty()) { //If the user enters a registered nick with no password |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1215 |
QString suppliedpass; |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1216 |
while (suppliedpass.isEmpty()) { |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1217 |
QInputDialog nickRegedDialog(this); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1218 |
nickRegedDialog.setWindowModality(Qt::WindowModal); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1219 |
nickRegedDialog.setInputMode(QInputDialog::TextInput); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1220 |
nickRegedDialog.setWindowTitle(tr("Hedgewars - Nick registered")); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1221 |
nickRegedDialog.setLabelText(tr("This nick is registered, and you haven't specified a password.\n\nIf this nick isn't yours, please register your own nick at www.hedgewars.org\n\nPassword:")); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1222 |
nickRegedDialog.setTextEchoMode(QLineEdit::Password); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1223 |
nickRegedDialog.exec(); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1224 |
|
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1225 |
suppliedpass = nickRegedDialog.textValue(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1226 |
|
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1227 |
if (nickRegedDialog.result() == QDialog::Rejected) { |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1228 |
config->clearPasswordHash(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1229 |
config->clearTempHash(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1230 |
GoBack(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1231 |
return; |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1232 |
} |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1233 |
temphash = QCryptographicHash::hash(suppliedpass.toUtf8(), QCryptographicHash::Md5).toHex(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1234 |
config->setTempHash(temphash); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1235 |
} |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1236 |
} |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1237 |
} |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1238 |
NetPassword(nick); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1239 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1240 |
|
8299
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1241 |
void HWForm::NetNickNotRegistered(const QString & nick) |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1242 |
{ |
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
1243 |
Q_UNUSED(nick); |
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
1244 |
|
8299
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1245 |
QMessageBox noRegMsg(this); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1246 |
noRegMsg.setIcon(QMessageBox::Information); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1247 |
noRegMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Nick not registered")); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1248 |
noRegMsg.setWindowModality(Qt::WindowModal); |
15193
eaf65efbcd63
Backed out changeset a5fb73335a87 - This violated the string freeze declared on June 20, 2019
Wuzzy <Wuzzy2@mail.ru>
parents:
15192
diff
changeset
|
1249 |
noRegMsg.setText(tr("Your nickname is not registered.\nTo prevent someone else from using it,\nplease register it at www.hedgewars.org")); |
8299
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1250 |
|
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1251 |
if (!config->passwordHash().isEmpty()) |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1252 |
{ |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1253 |
config->clearPasswordHash(); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1254 |
noRegMsg.setText(noRegMsg.text()+tr("\n\nYour password wasn't saved either.")); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1255 |
} |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1256 |
if (!config->tempHash().isEmpty()) |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1257 |
{ |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1258 |
config->clearTempHash(); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1259 |
} |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1260 |
noRegMsg.exec(); |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1261 |
} |
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1262 |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1263 |
void HWForm::NetNickTaken(const QString & nick) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1264 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1265 |
bool ok = false; |
7795
ba32d3f9e567
set window modality also for custom dialogs, small text changes
koda
parents:
7794
diff
changeset
|
1266 |
QString newNick = QInputDialog::getText(this, tr("Nickname"), tr("Someone already uses your nickname %1 on the server.\nPlease pick another nickname:").arg(nick), QLineEdit::Normal, nick, &ok); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1267 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1268 |
if (!ok || newNick.isEmpty()) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1269 |
{ |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1270 |
//ForcedDisconnect(tr("No nickname supplied.")); |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1271 |
bool retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied.")); |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1272 |
GoBack(); |
9549 | 1273 |
if (retry && hwnet) { |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1274 |
if (hwnet->m_private_game) { |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1275 |
QStringList list = hwnet->getHost().split(":"); |
14865 | 1276 |
NetConnectServer(list.at(0), list.at(1).toShort(), false); |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1277 |
} else |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1278 |
NetConnectOfficialServer(); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1279 |
} |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1280 |
return; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1281 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1282 |
|
9549 | 1283 |
if(hwnet) |
1284 |
hwnet->NewNick(newNick); |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1285 |
config->setValue("net/nick", newNick); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1286 |
config->updNetNick(); |
6227
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
1287 |
|
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
1288 |
ui.pageRoomsList->setUser(nick); |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6225
diff
changeset
|
1289 |
ui.pageNetGame->setUser(nick); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1290 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1291 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1292 |
void HWForm::NetAuthFailed() |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1293 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1294 |
// Set the password blank if case the user tries to join and enter his password again |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1295 |
config->clearTempHash(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1296 |
|
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1297 |
//Try to login again |
8296
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1298 |
bool retry = RetryDialog(tr("Hedgewars - Wrong password"), tr("You entered a wrong password.")); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1299 |
GoBack(); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1300 |
|
8297
b236e3afed0d
Reverted password loading in PAGE_SETUP, changed the value of passwordlength to save, added clearing of hashes after a 'Wrong password' RetryDialog
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8296
diff
changeset
|
1301 |
config->clearPasswordHash(); |
b236e3afed0d
Reverted password loading in PAGE_SETUP, changed the value of passwordlength to save, added clearing of hashes after a 'Wrong password' RetryDialog
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8296
diff
changeset
|
1302 |
config->clearTempHash(); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1303 |
if (retry) { |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1304 |
NetConnectOfficialServer(); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1305 |
} |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1306 |
} |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1307 |
|
9549 | 1308 |
void HWForm::askRoomPassword() |
1309 |
{ |
|
1310 |
QString password = QInputDialog::getText(this, tr("Room password"), tr("The room is protected with password.\nPlease, enter the password:")); |
|
1311 |
if(hwnet && !password.isEmpty()) |
|
1312 |
hwnet->roomPasswordEntered(password); |
|
1313 |
} |
|
1314 |
||
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1315 |
bool HWForm::RetryDialog(const QString & title, const QString & label) |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1316 |
{ |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1317 |
QMessageBox retryMsg(this); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1318 |
retryMsg.setIcon(QMessageBox::Warning); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1319 |
retryMsg.setWindowTitle(title); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1320 |
retryMsg.setText(label); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1321 |
retryMsg.setWindowModality(Qt::WindowModal); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1322 |
|
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1323 |
retryMsg.addButton(QMessageBox::Cancel); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1324 |
|
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1325 |
QPushButton *retryButton = retryMsg.addButton(QMessageBox::Ok); |
8296
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1326 |
retryButton->setText(tr("Try Again")); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1327 |
retryButton->setFocus(); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1328 |
|
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1329 |
retryMsg.exec(); |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1330 |
|
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1331 |
if (retryMsg.clickedButton() == retryButton) { |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1332 |
return true; |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1333 |
} |
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1334 |
return false; |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1335 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1336 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1337 |
void HWForm::NetTeamAccepted(const QString & team) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1338 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1339 |
ui.pageNetGame->pNetTeamsWidget->changeTeamStatus(team); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1340 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1341 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1342 |
void HWForm::NetError(const QString & errmsg) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1343 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1344 |
switch (ui.Pages->currentIndex()) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1345 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1346 |
case ID_PAGE_INGAME: |
8383 | 1347 |
MessageDialog::ShowErrorMessage(errmsg, this); |
12725
1a393a59a594
Fix GCC warnings: -Wimplicit-fallthrough and -Wint-in-bool-context
Wuzzy <Wuzzy2@mail.ru>
parents:
12674
diff
changeset
|
1348 |
/* fallthrough */ |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1349 |
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
|
1350 |
ui.pageNetGame->displayError(errmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1351 |
break; |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1352 |
default: |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1353 |
ui.pageRoomsList->displayError(errmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1354 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1355 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1356 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1357 |
void HWForm::NetWarning(const QString & wrnmsg) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1358 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1359 |
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
|
1360 |
ui.pageNetGame->displayWarning(wrnmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1361 |
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
|
1362 |
ui.pageRoomsList->displayWarning(wrnmsg); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1363 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1364 |
|
14865 | 1365 |
void HWForm::_NetConnect(const QString & hostName, quint16 port, bool useTls, QString nick) |
184 | 1366 |
{ |
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
1367 |
Q_UNUSED(nick); |
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
1368 |
|
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1369 |
if (hwnet) { |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1370 |
// destroy old connection |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1371 |
hwnet->Disconnect(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1372 |
delete hwnet; |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1373 |
hwnet = NULL; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1374 |
} |
2377 | 1375 |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1376 |
hwnet = new HWNewNet(); |
637
8fa7ed5e13bd
Fix bad behavior when quickly click Connect button more than once
unc0rr
parents:
636
diff
changeset
|
1377 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1378 |
GoToPage(ID_PAGE_CONNECTING); |
1800 | 1379 |
|
8504
9ff55b527d1b
Ehm... probably this will improve situation with desyncs
unc0rr
parents:
8489
diff
changeset
|
1380 |
connect(hwnet, SIGNAL(AskForRunGame()), this, SLOT(CreateNetGame()), Qt::QueuedConnection); |
14903
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1381 |
connect(hwnet, SIGNAL(AskForOfficialServerDemo()), this, SLOT(PlayOfficialServerDemo()), Qt::QueuedConnection); |
14838 | 1382 |
connect(hwnet, SIGNAL(redirected(quint16)), this, SLOT(NetRedirected(quint16)), Qt::QueuedConnection); |
6697
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1383 |
connect(hwnet, SIGNAL(connected()), this, SLOT(NetConnected()), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1384 |
connect(hwnet, SIGNAL(Error(const QString&)), this, SLOT(NetError(const QString&)), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1385 |
connect(hwnet, SIGNAL(Warning(const QString&)), this, SLOT(NetWarning(const QString&)), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1386 |
connect(hwnet, SIGNAL(EnteredGame()), this, SLOT(NetGameEnter()), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1387 |
connect(hwnet, SIGNAL(LeftRoom(const QString&)), this, SLOT(NetLeftRoom(const QString&)), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1388 |
connect(hwnet, SIGNAL(AddNetTeam(const HWTeam&)), this, SLOT(AddNetTeam(const HWTeam&)), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1389 |
connect(hwnet, SIGNAL(RemoveNetTeam(const HWTeam&)), this, SLOT(RemoveNetTeam(const HWTeam&)), Qt::QueuedConnection); |
8534
92da587691c9
Workaround queued signals problem in netclient instead. Should fix everything.
unc0rr
parents:
8529
diff
changeset
|
1390 |
connect(hwnet, SIGNAL(TeamAccepted(const QString&)), this, SLOT(NetTeamAccepted(const QString&)), Qt::QueuedConnection); |
8291
e4a0d980d1e2
Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8287
diff
changeset
|
1391 |
connect(hwnet, SIGNAL(NickRegistered(const QString&)), this, SLOT(NetNickRegistered(const QString&)), Qt::QueuedConnection); |
8299
ef2e284255cd
Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8297
diff
changeset
|
1392 |
connect(hwnet, SIGNAL(NickNotRegistered(const QString&)), this, SLOT(NetNickNotRegistered(const QString&)), Qt::QueuedConnection); |
6697
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1393 |
connect(hwnet, SIGNAL(NickTaken(const QString&)), this, SLOT(NetNickTaken(const QString&)), Qt::QueuedConnection); |
4a04c02bc8c3
Use queued signal-slot connections with HWNet class
unc0rr
parents:
6677
diff
changeset
|
1394 |
connect(hwnet, SIGNAL(AuthFailed()), this, SLOT(NetAuthFailed()), Qt::QueuedConnection); |
4392
95e27e12d0e9
Fix koda's esc key binding so leaving rooms works correctly with it
nemo
parents:
4232
diff
changeset
|
1395 |
//connect(ui.pageNetGame->BtnBack, SIGNAL(clicked()), hwnet, SLOT(partRoom())); |
9549 | 1396 |
connect(hwnet, SIGNAL(askForRoomPassword()), this, SLOT(askRoomPassword()), Qt::QueuedConnection); |
329
4c3aad46baa5
Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents:
328
diff
changeset
|
1397 |
|
7723 | 1398 |
ui.pageRoomsList->chatWidget->setUsersModel(hwnet->lobbyPlayersModel()); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1399 |
ui.pageNetGame->chatWidget->setUsersModel(hwnet->roomPlayersModel()); |
7723 | 1400 |
|
1874 | 1401 |
// rooms list page stuff |
6735 | 1402 |
ui.pageRoomsList->setModel(hwnet->roomsListModel()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1403 |
connect(hwnet, SIGNAL(adminAccess(bool)), |
6720
84261c3408a6
Make all signals from HWNet queued, this should fix issues with teams and chat widgets
unc0rr
parents:
6700
diff
changeset
|
1404 |
ui.pageRoomsList, SLOT(setAdmin(bool)), Qt::QueuedConnection); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1405 |
connect(hwnet, SIGNAL(adminAccess(bool)), |
6720
84261c3408a6
Make all signals from HWNet queued, this should fix issues with teams and chat widgets
unc0rr
parents:
6700
diff
changeset
|
1406 |
ui.pageRoomsList->chatWidget, SLOT(adminAccess(bool)), Qt::QueuedConnection); |
2377 | 1407 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1408 |
connect(hwnet, SIGNAL(serverMessage(const QString&)), |
6720
84261c3408a6
Make all signals from HWNet queued, this should fix issues with teams and chat widgets
unc0rr
parents:
6700
diff
changeset
|
1409 |
ui.pageRoomsList->chatWidget, SLOT(onServerMessage(const QString&)), Qt::QueuedConnection); |
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
|
1410 |
|
9541
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9393
diff
changeset
|
1411 |
connect(ui.pageRoomsList, SIGNAL(askForCreateRoom(const QString &, const QString &)), |
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9393
diff
changeset
|
1412 |
hwnet, SLOT(CreateRoom(const QString&, const QString &))); |
9549 | 1413 |
connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &, const QString &)), |
1414 |
hwnet, SLOT(JoinRoom(const QString&, const QString &))); |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1415 |
// connect(ui.pageRoomsList, SIGNAL(askForCreateRoom(const QString &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1416 |
// this, SLOT(NetGameMaster())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1417 |
// connect(ui.pageRoomsList, SIGNAL(askForJoinRoom(const QString &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1418 |
// this, SLOT(NetGameSlave())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1419 |
connect(ui.pageRoomsList, SIGNAL(askForRoomList()), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1420 |
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
|
1421 |
|
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1422 |
// room status stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1423 |
connect(hwnet, SIGNAL(roomMaster(bool)), |
8893
8f92e94d0b32
Don't set Default scheme/ammo when switching script if not room admin. Prevents game config desync.
unc0rr
parents:
8891
diff
changeset
|
1424 |
this, SLOT(NetGameChangeStatus(bool))); |
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1425 |
|
1874 | 1426 |
// net page stuff |
8489
25cb6f4a1d1b
Implements protocol message JOINING on frontend, so client in a room always displays correct room name, even when room name changes. Fixes issue 522.
dag10
parents:
8453
diff
changeset
|
1427 |
connect(hwnet, SIGNAL(roomNameUpdated(const QString &)), |
8534
92da587691c9
Workaround queued signals problem in netclient instead. Should fix everything.
unc0rr
parents:
8529
diff
changeset
|
1428 |
ui.pageNetGame, SLOT(setRoomName(const QString &)), Qt::QueuedConnection); |
8759 | 1429 |
connect(hwnet, SIGNAL(roomChatAction(const QString&, const QString&)), |
1430 |
ui.pageNetGame->chatWidget, SLOT(onChatAction(const QString&, const QString&)), Qt::QueuedConnection); |
|
1431 |
connect(hwnet, SIGNAL(roomChatMessage(const QString&, const QString&)), |
|
1432 |
ui.pageNetGame->chatWidget, SLOT(onChatMessage(const QString&, const QString&)), Qt::QueuedConnection); |
|
7720 | 1433 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1434 |
connect(hwnet, SIGNAL(roomMaster(bool)), |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1435 |
ui.pageNetGame->chatWidget, SLOT(adminAccess(bool)), Qt::QueuedConnection); |
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1436 |
connect(ui.pageNetGame->chatWidget, SIGNAL(chatLine(const QString&)), |
8765
688062f1db59
fix/hack so that (own) messages sent in frontend are also visible in the game chat
sheepluva
parents:
8762
diff
changeset
|
1437 |
hwnet, SLOT(chatLineToNetWithEcho(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1438 |
connect(ui.pageNetGame->BtnGo, SIGNAL(clicked()), hwnet, SLOT(ToggleReady())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1439 |
connect(hwnet, SIGNAL(setMyReadyStatus(bool)), |
6720
84261c3408a6
Make all signals from HWNet queued, this should fix issues with teams and chat widgets
unc0rr
parents:
6700
diff
changeset
|
1440 |
ui.pageNetGame, SLOT(setReadyStatus(bool)), Qt::QueuedConnection); |
1577 | 1441 |
|
1874 | 1442 |
// chat widget actions |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1443 |
connect(ui.pageNetGame->chatWidget, SIGNAL(kick(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1444 |
hwnet, SLOT(kickPlayer(const QString&))); |
11865
047be82b6f67
fix for Bug 91 - Make DELEGATE action available in frontend
sheepluva
parents:
11863
diff
changeset
|
1445 |
connect(ui.pageNetGame->chatWidget, SIGNAL(delegate(const QString&)), |
047be82b6f67
fix for Bug 91 - Make DELEGATE action available in frontend
sheepluva
parents:
11863
diff
changeset
|
1446 |
hwnet, SLOT(delegateToPlayer(const QString&))); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1447 |
connect(ui.pageNetGame->chatWidget, SIGNAL(ban(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1448 |
hwnet, SLOT(banPlayer(const QString&))); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1449 |
connect(ui.pageNetGame->chatWidget, SIGNAL(info(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1450 |
hwnet, SLOT(infoPlayer(const QString&))); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1451 |
connect(ui.pageNetGame->chatWidget, SIGNAL(follow(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1452 |
hwnet, SLOT(followPlayer(const QString&))); |
8436
b89aacebb9db
- Also pass unknown cmds to the server when in room
unc0rr
parents:
8434
diff
changeset
|
1453 |
connect(ui.pageNetGame->chatWidget, SIGNAL(consoleCommand(const QString&)), |
b89aacebb9db
- Also pass unknown cmds to the server when in room
unc0rr
parents:
8434
diff
changeset
|
1454 |
hwnet, SLOT(consoleCommand(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1455 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(kick(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1456 |
hwnet, SLOT(kickPlayer(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1457 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(ban(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1458 |
hwnet, SLOT(banPlayer(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1459 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(info(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1460 |
hwnet, SLOT(infoPlayer(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1461 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(follow(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1462 |
hwnet, SLOT(followPlayer(const QString&))); |
8396 | 1463 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(consoleCommand(const QString&)), |
1464 |
hwnet, SLOT(consoleCommand(const QString&))); |
|
1566
6b63c75fdc68
Start work on lobby: add/remove nick from the list on join/quit
unc0rr
parents:
1531
diff
changeset
|
1465 |
|
8762 | 1466 |
// player info |
1467 |
connect(hwnet, SIGNAL(playerInfo(const QString&, const QString&, const QString&, const QString&)), |
|
1468 |
ui.pageRoomsList->chatWidget, SLOT(onPlayerInfo(const QString&, const QString&, const QString&, const QString&)), Qt::QueuedConnection); |
|
1469 |
connect(hwnet, SIGNAL(playerInfo(const QString&, const QString&, const QString&, const QString&)), |
|
1470 |
ui.pageNetGame->chatWidget, SLOT(onPlayerInfo(const QString&, const QString&, const QString&, const QString&)), Qt::QueuedConnection); |
|
1471 |
||
1874 | 1472 |
// chatting |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1473 |
connect(ui.pageRoomsList->chatWidget, SIGNAL(chatLine(const QString&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1474 |
hwnet, SLOT(chatLineToLobby(const QString&))); |
8759 | 1475 |
connect(hwnet, SIGNAL(lobbyChatAction(const QString&,const QString&)), |
1476 |
ui.pageRoomsList->chatWidget, SLOT(onChatAction(const QString&,const QString&)), Qt::QueuedConnection); |
|
1477 |
connect(hwnet, SIGNAL(lobbyChatMessage(const QString&, const QString&)), |
|
1478 |
ui.pageRoomsList->chatWidget, SLOT(onChatMessage(const QString&, const QString&)), Qt::QueuedConnection); |
|
1568 | 1479 |
|
1874 | 1480 |
// nick list stuff |
8891
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1481 |
{ |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1482 |
QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(hwnet->lobbyPlayersModel()); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1483 |
if(playersSortFilterModel) |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1484 |
{ |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1485 |
PlayersListModel * players = qobject_cast<PlayersListModel *>(playersSortFilterModel->sourceModel()); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1486 |
connect(players, SIGNAL(nickAdded(const QString&, bool)), |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1487 |
ui.pageNetGame->chatWidget, SLOT(nickAdded(const QString&, bool))); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1488 |
connect(players, SIGNAL(nickRemoved(const QString&)), |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1489 |
ui.pageNetGame->chatWidget, SLOT(nickRemoved(const QString&))); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1490 |
connect(players, SIGNAL(nickAddedLobby(const QString&, bool)), |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1491 |
ui.pageRoomsList->chatWidget, SLOT(nickAdded(const QString&, bool))); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1492 |
connect(players, SIGNAL(nickRemovedLobby(const QString&)), |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1493 |
ui.pageRoomsList->chatWidget, SLOT(nickRemoved(const QString&))); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1494 |
connect(players, SIGNAL(nickRemovedLobby(const QString&, const QString&)), |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1495 |
ui.pageRoomsList->chatWidget, SLOT(nickRemoved(const QString&, const QString&))); |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1496 |
} |
bf67b4d7d7b4
- Better fix to friends joins/quits highlighting problem
unc0rr
parents:
8887
diff
changeset
|
1497 |
} |
461 | 1498 |
|
1874 | 1499 |
// teams selecting stuff |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1500 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(hhogsNumChanged(const HWTeam&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1501 |
hwnet, SLOT(onHedgehogsNumChanged(const HWTeam&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1502 |
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(teamColorChanged(const HWTeam&)), |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1503 |
hwnet, SLOT(onTeamColorChanged(const HWTeam&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1504 |
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
|
1505 |
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
|
1506 |
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
|
1507 |
connect(hwnet, SIGNAL(hhnumChanged(const HWTeam&)), |
6720
84261c3408a6
Make all signals from HWNet queued, this should fix issues with teams and chat widgets
unc0rr
parents:
6700
diff
changeset
|
1508 |
ui.pageNetGame->pNetTeamsWidget, SLOT(changeHHNum(const HWTeam&)), Qt::QueuedConnection); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1509 |
connect(hwnet, SIGNAL(teamColorChanged(const HWTeam&)), |
6720
84261c3408a6
Make all signals from HWNet queued, this should fix issues with teams and chat widgets
unc0rr
parents:
6700
diff
changeset
|
1510 |
ui.pageNetGame->pNetTeamsWidget, SLOT(changeTeamColor(const HWTeam&)), Qt::QueuedConnection); |
1874 | 1511 |
|
1924 | 1512 |
// admin stuff |
3283 | 1513 |
connect(hwnet, SIGNAL(serverMessageNew(const QString&)), ui.pageAdmin, SLOT(serverMessageNew(const QString &))); |
1514 |
connect(hwnet, SIGNAL(serverMessageOld(const QString&)), ui.pageAdmin, SLOT(serverMessageOld(const QString &))); |
|
1515 |
connect(hwnet, SIGNAL(latestProtocolVar(int)), ui.pageAdmin, SLOT(protocol(int))); |
|
8157 | 1516 |
connect(hwnet, SIGNAL(bansList(const QStringList &)), ui.pageAdmin, SLOT(setBansList(const QStringList &))); |
3283 | 1517 |
connect(ui.pageAdmin, SIGNAL(setServerMessageNew(const QString&)), hwnet, SLOT(setServerMessageNew(const QString &))); |
1518 |
connect(ui.pageAdmin, SIGNAL(setServerMessageOld(const QString&)), hwnet, SLOT(setServerMessageOld(const QString &))); |
|
1519 |
connect(ui.pageAdmin, SIGNAL(setProtocol(int)), hwnet, SLOT(setLatestProtocolVar(int))); |
|
1520 |
connect(ui.pageAdmin, SIGNAL(askServerVars()), hwnet, SLOT(askServerVars())); |
|
6009 | 1521 |
connect(ui.pageAdmin, SIGNAL(clearAccountsCache()), hwnet, SLOT(clearAccountsCache())); |
8157 | 1522 |
connect(ui.pageAdmin, SIGNAL(bansListRequest()), hwnet, SLOT(getBanList())); |
1523 |
connect(ui.pageAdmin, SIGNAL(removeBan(QString)), hwnet, SLOT(removeBan(QString))); |
|
1524 |
connect(ui.pageAdmin, SIGNAL(banIP(QString,QString,int)), hwnet, SLOT(banIP(QString,QString,int))); |
|
1525 |
connect(ui.pageAdmin, SIGNAL(banNick(QString,QString,int)), hwnet, SLOT(banNick(QString,QString,int))); |
|
1924 | 1526 |
|
1898
f0ab0c77946d
Send scheme data over net (but recieving part isn't implemented yet)
unc0rr
parents:
1897
diff
changeset
|
1527 |
// disconnect |
6036 | 1528 |
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
|
1529 |
|
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1530 |
// config stuff |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1531 |
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
|
1532 |
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
|
1533 |
connect(hwnet, SIGNAL(configAsked()), ui.pageNetGame->pGameCFG, SLOT(fullNetConfig())); |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1534 |
|
9100 | 1535 |
// using proxy slot to prevent loss of game messages when they're sent to not yet connected slot of game object |
1536 |
connect(hwnet, SIGNAL(FromNet(const QByteArray &)), this, SLOT(FromNetProxySlot(const QByteArray &)), Qt::QueuedConnection); |
|
1537 |
||
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1538 |
//nick and pass stuff |
8986 | 1539 |
hwnet->m_private_game = !(hostName == NETGAME_DEFAULT_SERVER && port == NETGAME_DEFAULT_PORT); |
1540 |
if (hwnet->m_private_game == false && AskForNickAndPwd() != 0) |
|
1541 |
return; |
|
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1542 |
|
14740
7b2bd37d7503
Fix inconsistencies in guest nick name generation
Wuzzy <Wuzzy2@mail.ru>
parents:
14677
diff
changeset
|
1543 |
QString nickname = config->value("net/nick", config->getRandomNick()).toString(); |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1544 |
ui.pageRoomsList->setUser(nickname); |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1545 |
ui.pageNetGame->setUser(nickname); |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1546 |
|
14865 | 1547 |
hwnet->Connect(hostName, port, useTls, nickname); |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1548 |
} |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1549 |
|
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1550 |
int HWForm::AskForNickAndPwd(void) |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1551 |
{ |
8181 | 1552 |
//remove temppasswordhash just in case |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1553 |
config->clearTempHash(); |
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1554 |
|
8181 | 1555 |
//initialize |
8986 | 1556 |
QString hash; |
1557 |
QString temphash; |
|
1558 |
QString nickname; |
|
8181 | 1559 |
QString password; |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1560 |
|
8986 | 1561 |
do { |
14740
7b2bd37d7503
Fix inconsistencies in guest nick name generation
Wuzzy <Wuzzy2@mail.ru>
parents:
14677
diff
changeset
|
1562 |
nickname = config->value("net/nick", config->getRandomNick()).toString(); |
8986 | 1563 |
hash = config->passwordHash(); |
1564 |
temphash = config->tempHash(); |
|
1565 |
||
1566 |
//if something from login is missing, start dialog loop |
|
1567 |
if (nickname.isEmpty() || hash.isEmpty()) { |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1568 |
//open dialog |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1569 |
HWPasswordDialog * pwDialog = new HWPasswordDialog(this); |
8364
fbc9bcc6c39d
Added "New account" button when connectiong to the official server
vitiv <nikita.utiu@gmail.com>
parents:
8357
diff
changeset
|
1570 |
// make the "new account" button dialog open a browser with the registration page |
fbc9bcc6c39d
Added "New account" button when connectiong to the official server
vitiv <nikita.utiu@gmail.com>
parents:
8357
diff
changeset
|
1571 |
connect(pwDialog->pbNewAccount, SIGNAL(clicked()), this, SLOT(openRegistrationPage())); |
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1572 |
pwDialog->cbSave->setChecked(config->value("net/savepassword", true).toBool()); |
8181 | 1573 |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1574 |
//if nickname is present, put it into the field |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1575 |
if (!nickname.isEmpty()) { |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1576 |
pwDialog->leNickname->setText(nickname); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1577 |
pwDialog->lePassword->setFocus(); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1578 |
} |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1579 |
|
12799
e6af1eb9e8ce
Fix broken cancel button on the login window (bug 373)
Wuzzy <Wuzzy2@mail.ru>
parents:
12756
diff
changeset
|
1580 |
//if dialog aborted, return failure |
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1581 |
if (pwDialog->exec() != QDialog::Accepted) { |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1582 |
delete pwDialog; |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1583 |
GoBack(); |
12799
e6af1eb9e8ce
Fix broken cancel button on the login window (bug 373)
Wuzzy <Wuzzy2@mail.ru>
parents:
12756
diff
changeset
|
1584 |
return 1; |
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1585 |
} |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1586 |
|
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1587 |
//set nick and pass from the dialog |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1588 |
nickname = pwDialog->leNickname->text(); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1589 |
password = pwDialog->lePassword->text(); |
8986 | 1590 |
bool save = pwDialog->cbSave->isChecked(); |
1591 |
//clean up |
|
1592 |
delete pwDialog; |
|
8181 | 1593 |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1594 |
//check the nickname variable |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1595 |
if (nickname.isEmpty()) { |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1596 |
int retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied.")); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1597 |
GoBack(); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1598 |
if (retry) { |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1599 |
if (hwnet->m_private_game) { |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1600 |
QStringList list = hwnet->getHost().split(":"); |
14865 | 1601 |
NetConnectServer(list.at(0), list.at(1).toShort(), false); |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1602 |
} else |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1603 |
NetConnectOfficialServer(); |
8986 | 1604 |
} |
1605 |
break; //loop restart |
|
1606 |
} else { |
|
1607 |
//update nickname if it's fine |
|
1608 |
config->setValue("net/nick", nickname); |
|
1609 |
config->updNetNick(); |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1610 |
} |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1611 |
|
8986 | 1612 |
//check the password variable |
1613 |
if (password.isEmpty()) { |
|
1614 |
config->clearPasswordHash(); |
|
1615 |
break; |
|
1616 |
} else { |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1617 |
//calculate temphash and set it into config |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1618 |
temphash = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5).toHex(); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1619 |
config->setTempHash(temphash); |
8181 | 1620 |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1621 |
//if user wants to save password |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1622 |
config->setValue("net/savepassword", save); |
8986 | 1623 |
if (save) { |
1624 |
// user wants to save password |
|
8407
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1625 |
ui.pageOptions->CBSavePassword->setChecked(true); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1626 |
config->setPasswordHash(temphash); |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1627 |
} |
686f2e716c97
Fixes password not actually saving when "save password" is checked in the HWPasswordDialog called by HWForm.
dag10 <gottlieb.drew@gmail.com>
parents:
8396
diff
changeset
|
1628 |
} |
8986 | 1629 |
} |
1630 |
} while (nickname.isEmpty() || (hash.isEmpty() && temphash.isEmpty())); //while a nickname, or both hashes are missing |
|
8294
0e5782b0dd54
Removed whitespaces, refactored hash setting getting and clearing
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8293
diff
changeset
|
1631 |
|
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1632 |
return 0; |
184 | 1633 |
} |
1634 |
||
314 | 1635 |
void HWForm::NetConnect() |
1636 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1637 |
HWHostPortDialog * hpd = new HWHostPortDialog(this); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1638 |
hpd->leHost->setText(*netHost); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1639 |
hpd->sbPort->setValue(netPort); |
653
4f44fc06ca45
Class to ask host/port to connect to ('Specify' button on PageNet)
unc0rr
parents:
647
diff
changeset
|
1640 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1641 |
if (hpd->exec() == QDialog::Accepted) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1642 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1643 |
config->SaveOptions(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1644 |
delete netHost; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1645 |
netHost = new QString(hpd->leHost->text()); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1646 |
netPort = hpd->sbPort->value(); |
14865 | 1647 |
NetConnectServer(*netHost, netPort, false); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1648 |
} |
6907 | 1649 |
delete hpd; |
314 | 1650 |
} |
1651 |
||
1652 |
void HWForm::NetStartServer() |
|
1653 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1654 |
config->SaveOptions(); |
636 | 1655 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1656 |
pnetserver = new HWNetServer; |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
1657 |
if (!pnetserver->StartServer(ui.pageNetServer->sbPort->value())) |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1658 |
{ |
8383 | 1659 |
MessageDialog::ShowErrorMessage(QMessageBox::tr("Unable to start server"), this); |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
1660 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1661 |
delete pnetserver; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1662 |
pnetserver = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1663 |
return; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1664 |
} |
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
|
1665 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1666 |
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
|
1667 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1668 |
pRegisterServer = new HWNetUdpServer(0, |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1669 |
ui.pageNetServer->leServerDescr->text(), |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1670 |
ui.pageNetServer->sbPort->value()); |
1418 | 1671 |
} |
1672 |
||
1673 |
void HWForm::AsyncNetServerStart() |
|
1674 |
{ |
|
14865 | 1675 |
NetConnectServer("localhost", pnetserver->getRunningPort(), false); |
314 | 1676 |
} |
1677 |
||
184 | 1678 |
void HWForm::NetDisconnect() |
1679 |
{ |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1680 |
if(pnetserver) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1681 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1682 |
if (pRegisterServer) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1683 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1684 |
pRegisterServer->unregister(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1685 |
pRegisterServer = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1686 |
} |
659 | 1687 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1688 |
pnetserver->StopServer(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1689 |
delete pnetserver; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1690 |
pnetserver = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1691 |
} |
6225
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1692 |
|
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1693 |
if(hwnet) |
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1694 |
hwnet->Disconnect(); |
184 | 1695 |
} |
1696 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1697 |
void HWForm::ForcedDisconnect(const QString & reason) |
383 | 1698 |
{ |
8296
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1699 |
if (reason == "Reconnected too fast") { //TODO: this is a hack, which should be remade |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1700 |
bool retry = RetryDialog(tr("Hedgewars - Connection error"), tr("You reconnected too fast.\nPlease wait a few seconds and try again.")); |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1701 |
if (retry) { |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1702 |
if (hwnet->m_private_game) { |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1703 |
QStringList list = hwnet->getHost().split(":"); |
14865 | 1704 |
NetConnectServer(list.at(0), list.at(1).toUInt(), false); |
8720
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1705 |
} else |
5603527f9803
this should prevent the password prompt from appearing on local games (issue 548)
koda
parents:
8716
diff
changeset
|
1706 |
NetConnectOfficialServer(); |
8296
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1707 |
} |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1708 |
else { |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1709 |
while (ui.Pages->currentIndex() != ID_PAGE_NET |
8434 | 1710 |
&& ui.Pages->currentIndex() != ID_PAGE_MAIN) |
8296
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1711 |
{ |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1712 |
GoBack(); |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1713 |
} |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1714 |
} |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1715 |
return; |
455da122c0ad
Added a hack that activates a RetryDialog in case the user is banned for 'Reconnect too fast'. Set all string used in RetryDialog to be translated
Ondrej Skopek <skopekondrej@gmail.com>
parents:
8295
diff
changeset
|
1716 |
} |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
1717 |
if (pnetserver) |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
1718 |
return; // we have server - let it care of all things |
13846 | 1719 |
if (hwnet && (reason != "bye")) |
13673
1aa5e884326a
Fix some string/translation inconsistencies in strings related to leaving
Wuzzy <Wuzzy2@mail.ru>
parents:
13657
diff
changeset
|
1720 |
{ |
13657
2d38dc2d3414
Tweak some connection failure messages
Wuzzy <Wuzzy2@mail.ru>
parents:
13628
diff
changeset
|
1721 |
QString errorStr = QMessageBox::tr("The connection to the server is lost.") + (reason.isEmpty()?"":("\n\n" + HWNewNet::tr("Reason:") + "\n" + reason)); |
8383 | 1722 |
MessageDialog::ShowErrorMessage(errorStr, this); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1723 |
} |
7842
d1c0e4341165
- Better fix than the one from rc7f5c3bd7f8c. Now just scrolling back till net/nettype/main page. Not tested aswell.
unc0rr
parents:
7826
diff
changeset
|
1724 |
|
d1c0e4341165
- Better fix than the one from rc7f5c3bd7f8c. Now just scrolling back till net/nettype/main page. Not tested aswell.
unc0rr
parents:
7826
diff
changeset
|
1725 |
while (ui.Pages->currentIndex() != ID_PAGE_NET |
d1c0e4341165
- Better fix than the one from rc7f5c3bd7f8c. Now just scrolling back till net/nettype/main page. Not tested aswell.
unc0rr
parents:
7826
diff
changeset
|
1726 |
&& ui.Pages->currentIndex() != ID_PAGE_MAIN) |
7803 | 1727 |
{ |
7842
d1c0e4341165
- Better fix than the one from rc7f5c3bd7f8c. Now just scrolling back till net/nettype/main page. Not tested aswell.
unc0rr
parents:
7826
diff
changeset
|
1728 |
GoBack(); |
7803 | 1729 |
} |
383 | 1730 |
} |
1731 |
||
14838 | 1732 |
void HWForm::NetRedirected(quint16 port) |
1733 |
{ |
|
1734 |
QMessageBox questionMsg(this); |
|
1735 |
questionMsg.setIcon(QMessageBox::Question); |
|
1736 |
questionMsg.setWindowTitle(QMessageBox::tr("Server redirection")); |
|
1737 |
questionMsg.setText(QMessageBox::tr("This server supports secure connections on port %1.\nWould you like to reconnect securely?").arg(port)); |
|
1738 |
questionMsg.setTextFormat(Qt::PlainText); |
|
1739 |
questionMsg.setWindowModality(Qt::WindowModal); |
|
1740 |
questionMsg.addButton(QMessageBox::Yes); |
|
1741 |
questionMsg.addButton(QMessageBox::No); |
|
1742 |
||
1743 |
if (questionMsg.exec() == QMessageBox::Yes) |
|
14865 | 1744 |
{ |
1745 |
QString host = hwnet->getHost().split(":").at(0); |
|
1746 |
NetConnectServer(host, port, true); |
|
1747 |
} |
|
1748 |
else if (hwnet) |
|
14838 | 1749 |
{ |
14865 | 1750 |
hwnet->ContinueConnection(); |
14838 | 1751 |
} |
1752 |
} |
|
1753 |
||
1311 | 1754 |
void HWForm::NetConnected() |
1755 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1756 |
GoToPage(ID_PAGE_ROOMSLIST); |
1311 | 1757 |
} |
1758 |
||
184 | 1759 |
void HWForm::NetGameEnter() |
1760 |
{ |
|
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
8157
diff
changeset
|
1761 |
ui.pageNetGame->chatWidget->clear(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1762 |
GoToPage(ID_PAGE_NETGAME); |
184 | 1763 |
} |
1764 |
||
339
7535ab6c3820
Run game message added, team and config info provided for net game
displacer
parents:
338
diff
changeset
|
1765 |
void HWForm::AddNetTeam(const HWTeam& team) |
184 | 1766 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1767 |
ui.pageNetGame->pNetTeamsWidget->addTeam(team); |
184 | 1768 |
} |
1769 |
||
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1770 |
void HWForm::RemoveNetTeam(const HWTeam& team) |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1771 |
{ |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1772 |
ui.pageNetGame->pNetTeamsWidget->removeNetTeam(team); |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1773 |
} |
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
1774 |
|
184 | 1775 |
void HWForm::StartMPGame() |
1776 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1777 |
QString ammo; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1778 |
ammo = ui.pageMultiplayer->gameCFG->WeaponsName->itemData( |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1779 |
ui.pageMultiplayer->gameCFG->WeaponsName->currentIndex() |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1780 |
).toString(); |
696 | 1781 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1782 |
CreateGame(ui.pageMultiplayer->gameCFG, ui.pageMultiplayer->teamsSelect, ammo); |
306 | 1783 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1784 |
game->StartLocal(); |
184 | 1785 |
} |
306 | 1786 |
|
1787 |
void HWForm::GameStateChanged(GameState gameState) |
|
1788 |
{ |
|
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
|
1789 |
quint8 id = ui.Pages->currentIndex(); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1790 |
switch(gameState) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1791 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1792 |
case gsStarted: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1793 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1794 |
Music(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1795 |
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
|
1796 |
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
|
1797 |
ui.pageGameStats->clear(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1798 |
if (pRegisterServer) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1799 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1800 |
pRegisterServer->unregister(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1801 |
pRegisterServer = 0; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1802 |
} |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1803 |
//setVisible(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1804 |
setFocusPolicy(Qt::NoFocus); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1805 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1806 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1807 |
case gsFinished: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1808 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1809 |
//setVisible(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1810 |
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
|
1811 |
if (id == ID_PAGE_INGAME) GoBack(); |
8226
67f07ff5b593
Removed redundant "enable"s on checkboxes and variable names.
Mitchell Kember <mk12360@gmail.com>
parents:
8205
diff
changeset
|
1812 |
Music(ui.pageOptions->CBFrontendMusic->isChecked()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1813 |
if (wBackground) wBackground->startAnimation(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1814 |
GoToPage(ID_PAGE_GAMESTATS); |
13689
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1815 |
if (hwnet) |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1816 |
{ |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1817 |
if (!game || !game->netSuspend) |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1818 |
hwnet->gameFinished(true); |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1819 |
// After a game, the local player might have pseudo-teams left |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1820 |
// when rejoining a previously left game. This makes sure the |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1821 |
// teams list is in a consistent state. |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1822 |
ui.pageNetGame->cleanupFakeNetTeams(); |
27e5e311c7a3
Fix critical failure to cleanup teams list after rejoining game after a force-quit. Fixes bug 597
Wuzzy <Wuzzy2@mail.ru>
parents:
13673
diff
changeset
|
1823 |
} |
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
|
1824 |
if (game) game->netSuspend = false; |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1825 |
break; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1826 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1827 |
default: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1828 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1829 |
//setVisible(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1830 |
setFocusPolicy(Qt::StrongFocus); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1831 |
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
|
1832 |
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
|
1833 |
// was room chief and the game was aborted |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1834 |
(hwnet && hwnet->isRoomChief() && hwnet->isInRoom() && |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1835 |
(gameState == gsInterrupted || gameState == gsStopped || gameState == gsDestroyed || gameState == gsHalted))) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1836 |
{ |
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
|
1837 |
if (id == ID_PAGE_INGAME) GoBack(); |
8226
67f07ff5b593
Removed redundant "enable"s on checkboxes and variable names.
Mitchell Kember <mk12360@gmail.com>
parents:
8205
diff
changeset
|
1838 |
Music(ui.pageOptions->CBFrontendMusic->isChecked()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1839 |
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
|
1840 |
if (hwnet) hwnet->gameFinished(false); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1841 |
} |
4845 | 1842 |
if (gameState == gsHalted) close(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1843 |
}; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1844 |
} |
307 | 1845 |
} |
1846 |
||
696 | 1847 |
void HWForm::CreateGame(GameCFGWidget * gamecfg, TeamSelWidget* pTeamSelWidget, QString ammo) |
306 | 1848 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1849 |
game = new HWGame(config, gamecfg, ammo, pTeamSelWidget); |
7245
53f73f4ae203
Modified frontend so that updating campaogn progress no longer changes current index of the mission combo box
belphegorr <szabibibi@gmail.com>
parents:
7207
diff
changeset
|
1850 |
connect(game, SIGNAL(CampStateChanged(int)), this, SLOT(UpdateCampaignPageProgress(int))); |
14467
4edcb655dc5a
Update training page after completing a training
Wuzzy <Wuzzy2@mail.ru>
parents:
14462
diff
changeset
|
1851 |
connect(game, SIGNAL(TrainingStateChanged(int)), this, SLOT(UpdateTrainingPageTeam(int))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1852 |
connect(game, SIGNAL(GameStateChanged(GameState)), this, SLOT(GameStateChanged(GameState))); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1853 |
connect(game, SIGNAL(GameStats(char, const QString &)), ui.pageGameStats, SLOT(GameStats(char, const QString &))); |
10307
e13d3147f15b
do not get stuck on "in game..." page just because of game crash. output a message instead. could still need some tweaking, but a man gotta sleep. and sheep too...
sheepluva
parents:
10108
diff
changeset
|
1854 |
connect(game, SIGNAL(ErrorMessage(const QString &)), this, SLOT(ShowFatalErrorMessage(const QString &)), Qt::QueuedConnection); |
7180 | 1855 |
connect(game, SIGNAL(HaveRecord(RecordType, const QByteArray &)), this, SLOT(GetRecord(RecordType, const QByteArray &))); |
5734 | 1856 |
m_lastDemo = QByteArray(); |
306 | 1857 |
} |
425 | 1858 |
|
7180 | 1859 |
void HWForm::GetRecord(RecordType type, const QByteArray & record) |
533 | 1860 |
{ |
7180 | 1861 |
if (type != rtNeither) |
1862 |
{ |
|
1863 |
QString filename; |
|
1864 |
QByteArray demo = record; |
|
1865 |
QString recordFileName = |
|
1866 |
config->appendDateTimeToRecordName() ? |
|
1867 |
QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm") : |
|
1868 |
"LastRound"; |
|
1487
b4cc59a6d50a
Add an option to name records with current date and time
unc0rr
parents:
1427
diff
changeset
|
1869 |
|
8613
82c649dfc7c3
split cVersionString into its three separate components (version, revision, hash) and apply the new values sensibly on the frontend (esp. title, info and feedback)
koda
parents:
8609
diff
changeset
|
1870 |
recordFileName += "_" + *cRevisionString + "-" + *cHashString; |
4902
45ec26ca9491
if on dev version append hg revision id to demos/saves' filenames
sheepluva
parents:
4897
diff
changeset
|
1871 |
|
7180 | 1872 |
if (type == rtDemo) |
1873 |
{ |
|
1874 |
demo.replace(QByteArray("\x02TL"), QByteArray("\x02TD")); |
|
1875 |
demo.replace(QByteArray("\x02TN"), QByteArray("\x02TD")); |
|
1876 |
demo.replace(QByteArray("\x02TS"), QByteArray("\x02TD")); |
|
1877 |
filename = cfgdir->absolutePath() + "/Demos/" + recordFileName + "." + *cProtoVer + ".hwd"; |
|
1878 |
m_lastDemo = demo; |
|
1879 |
} |
|
1880 |
else |
|
1881 |
{ |
|
1882 |
demo.replace(QByteArray("\x02TL"), QByteArray("\x02TS")); |
|
1883 |
demo.replace(QByteArray("\x02TN"), QByteArray("\x02TS")); |
|
1884 |
filename = cfgdir->absolutePath() + "/Saves/" + recordFileName + "." + *cProtoVer + ".hws"; |
|
1885 |
} |
|
1886 |
||
1887 |
QFile demofile(filename); |
|
1888 |
if (!demofile.open(QIODevice::WriteOnly)) |
|
8383 | 1889 |
MessageDialog::ShowErrorMessage(tr("Cannot save record to file %1").arg(filename), this); |
7180 | 1890 |
else |
1891 |
{ |
|
1892 |
demofile.write(demo); |
|
1893 |
demofile.close(); |
|
1894 |
} |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1895 |
} |
533 | 1896 |
|
7392
bc3306c59a08
Correctly distinguish between game and real ticks while recording video,
Stepan777 <stepik-777@mail.ru>
parents:
7376
diff
changeset
|
1897 |
ui.pageVideos->startEncoding(record); |
533 | 1898 |
} |
587 | 1899 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11959
diff
changeset
|
1900 |
void HWForm::startTraining(const QString & scriptName, const QString & subFolder) |
587 | 1901 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1902 |
CreateGame(0, 0, 0); |
587 | 1903 |
|
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
1904 |
QString trainTeam = ui.pageTraining->CBTeam->currentText(); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
1905 |
game->StartTraining(scriptName, subFolder, trainTeam); |
3760 | 1906 |
} |
1907 |
||
1908 |
void HWForm::StartCampaign() |
|
1909 |
{ |
|
1910 |
CreateGame(0, 0, 0); |
|
11957 | 1911 |
QString camp = ui.pageCampaign->CBCampaign->itemData(ui.pageCampaign->CBCampaign->currentIndex()).toString(); |
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9288
diff
changeset
|
1912 |
QString miss = campaignMissionInfo[ui.pageCampaign->CBMission->currentIndex()].script; |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
1913 |
QString campTeam = ui.pageCampaign->CBTeam->currentText(); |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
1914 |
game->StartCampaign(camp, miss, campTeam); |
587 | 1915 |
} |
660 | 1916 |
|
1917 |
void HWForm::CreateNetGame() |
|
1918 |
{ |
|
9100 | 1919 |
// go back in pages to prevent user from being stuck on certain pages |
1920 |
if(ui.Pages->currentIndex() == ID_PAGE_GAMESTATS || |
|
1921 |
ui.Pages->currentIndex() == ID_PAGE_INGAME) |
|
1922 |
GoBack(); |
|
1923 |
||
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1924 |
QString ammo; |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1925 |
ammo = ui.pageNetGame->pGameCFG->WeaponsName->itemData( |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1926 |
ui.pageNetGame->pGameCFG->WeaponsName->currentIndex() |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
1927 |
).toString(); |
1517 | 1928 |
|
6225
505643d4c23d
disconnect when going back from lobby page (regression fix)
sheepluva
parents:
6223
diff
changeset
|
1929 |
CreateGame(ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget, ammo); |
660 | 1930 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1931 |
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
|
1932 |
connect(game, SIGNAL(SendChat(const QString &)), hwnet, SLOT(chatLineToNet(const QString &))); |
10392 | 1933 |
connect(game, SIGNAL(SendConsoleCommand(const QString&)), hwnet, SLOT(consoleCommand(const QString&))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1934 |
connect(game, SIGNAL(SendTeamMessage(const QString &)), hwnet, SLOT(SendTeamMessage(const QString &))); |
7916 | 1935 |
connect(hwnet, SIGNAL(chatStringFromNet(const QString &)), game, SLOT(FromNetChat(const QString &)), Qt::QueuedConnection); |
13823
d012948b1eda
Make frontend forward server error and warning messages to engine
Wuzzy <Wuzzy2@mail.ru>
parents:
13818
diff
changeset
|
1936 |
connect(hwnet, SIGNAL(Warning(const QString&)), game, SLOT(FromNetWarning(const QString&)), Qt::QueuedConnection); |
d012948b1eda
Make frontend forward server error and warning messages to engine
Wuzzy <Wuzzy2@mail.ru>
parents:
13818
diff
changeset
|
1937 |
connect(hwnet, SIGNAL(Error(const QString&)), game, SLOT(FromNetError(const QString&)), Qt::QueuedConnection); |
660 | 1938 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1939 |
game->StartNet(); |
660 | 1940 |
} |
674 | 1941 |
|
14903
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1942 |
void HWForm::PlayOfficialServerDemo() |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1943 |
{ |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1944 |
// go back in pages to prevent user from being stuck on certain pages |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1945 |
if(ui.Pages->currentIndex() == ID_PAGE_GAMESTATS || |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1946 |
ui.Pages->currentIndex() == ID_PAGE_INGAME) |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1947 |
GoBack(); |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1948 |
|
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1949 |
QString ammo; |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1950 |
ammo = ui.pageNetGame->pGameCFG->WeaponsName->itemData( |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1951 |
ui.pageNetGame->pGameCFG->WeaponsName->currentIndex() |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1952 |
).toString(); |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1953 |
|
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1954 |
CreateGame(ui.pageNetGame->pGameCFG, ui.pageNetGame->pNetTeamsWidget, ammo); |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1955 |
|
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1956 |
game->PlayOfficialServerDemo(); |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1957 |
} |
5119203470f3
Teach frontend how to deal with official server replays (/watch)
Wuzzy <Wuzzy2@mail.ru>
parents:
14865
diff
changeset
|
1958 |
|
674 | 1959 |
void HWForm::closeEvent(QCloseEvent *event) |
1960 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1961 |
config->SaveOptions(); |
11852 | 1962 |
#ifdef VIDEOREC |
7235
baa69bd025d9
1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents:
7180
diff
changeset
|
1963 |
config->SaveVideosOptions(); |
8266
927da572bcdc
will fix this http://code.google.com/p/hedgewars/source/detail?r=9f0e79ab51f00f3b1e133ae70cdd63f6963439c0 and will allow hedgewars to build without video recording enabled, for the time being although i want to talk to koda or someone to understand what should be #ifdef'd and if i've done too much or too little.. but at least that will let it build
mk12
parents:
8226
diff
changeset
|
1964 |
#endif |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1965 |
event->accept(); |
674 | 1966 |
} |
1235 | 1967 |
|
1968 |
void HWForm::Music(bool checked) |
|
1969 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1970 |
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
|
1971 |
SDLInteraction::instance().startMusic(); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1972 |
else |
6165
6fe3e922246e
moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents:
6160
diff
changeset
|
1973 |
SDLInteraction::instance().stopMusic(); |
1235 | 1974 |
} |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1975 |
|
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1976 |
void HWForm::NetGameChangeStatus(bool isMaster) |
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1977 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1978 |
if (isMaster) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1979 |
NetGameMaster(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1980 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1981 |
NetGameSlave(); |
2345
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1982 |
} |
daf1785f2337
- Frontend: reorganize code controlling widgets state, fix problems getting room admin status
unc0rr
parents:
2261
diff
changeset
|
1983 |
|
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1984 |
void HWForm::NetGameMaster() |
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
1985 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1986 |
ui.pageNetGame->setMasterMode(true); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1987 |
ui.pageNetGame->restrictJoins->setChecked(false); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1988 |
ui.pageNetGame->restrictTeamAdds->setChecked(false); |
8559 | 1989 |
ui.pageNetGame->restrictUnregistered->setChecked(false); |
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
1990 |
ui.pageNetGame->pGameCFG->GameSchemes->setModel(gameSchemeModel); |
8377 | 1991 |
ui.pageNetGame->pGameCFG->setMaster(true); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1992 |
ui.pageNetGame->pNetTeamsWidget->setInteractivity(true); |
14810
583d8b96fb30
Select appropriate schemes when taking room control (bug 461)
Wuzzy <Wuzzy2@mail.ru>
parents:
14804
diff
changeset
|
1993 |
ui.pageNetGame->pGameCFG->resetSchemeStates(); |
2377 | 1994 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1995 |
if (hwnet) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1996 |
{ |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
1997 |
// disconnect connections first to ensure their inexistance and not to connect twice |
8416
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
1998 |
ui.pageNetGame->BtnStart->disconnect(this); |
5126 | 1999 |
ui.pageNetGame->BtnUpdate->disconnect(hwnet); |
8415
02acf6b92f52
Moved room name edit box from footer to top of page. Also shows room name when in slave mode.
dag10
parents:
8407
diff
changeset
|
2000 |
ui.pageNetGame->leRoomName->disconnect(hwnet); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2001 |
ui.pageNetGame->restrictJoins->disconnect(hwnet); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2002 |
ui.pageNetGame->restrictTeamAdds->disconnect(hwnet); |
8559 | 2003 |
ui.pageNetGame->restrictUnregistered->disconnect(hwnet); |
7122
fa2d09868ac6
Fix reported in bug #327, comment #3 - untested but seems reasonable/safe.
nemo
parents:
7015
diff
changeset
|
2004 |
ui.pageNetGame->disconnect(hwnet, SLOT(updateRoomName(const QString&))); |
7710
fd5bcbd698a5
- Keep track of room name so correct name is displayed when you become room admin
unc0rr
parents:
7679
diff
changeset
|
2005 |
|
fd5bcbd698a5
- Keep track of room name so correct name is displayed when you become room admin
unc0rr
parents:
7679
diff
changeset
|
2006 |
ui.pageNetGame->setRoomName(hwnet->getRoom()); |
fd5bcbd698a5
- Keep track of room name so correct name is displayed when you become room admin
unc0rr
parents:
7679
diff
changeset
|
2007 |
|
8416
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2008 |
connect(ui.pageNetGame->BtnStart, SIGNAL(clicked()), this, SLOT(startGame())); |
7122
fa2d09868ac6
Fix reported in bug #327, comment #3 - untested but seems reasonable/safe.
nemo
parents:
7015
diff
changeset
|
2009 |
connect(ui.pageNetGame, SIGNAL(askForUpdateRoomName(const QString &)), hwnet, SLOT(updateRoomName(const QString &))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2010 |
connect(ui.pageNetGame->restrictJoins, SIGNAL(triggered()), hwnet, SLOT(toggleRestrictJoins())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2011 |
connect(ui.pageNetGame->restrictTeamAdds, SIGNAL(triggered()), hwnet, SLOT(toggleRestrictTeamAdds())); |
8559 | 2012 |
connect(ui.pageNetGame->restrictUnregistered, SIGNAL(triggered()), hwnet, SLOT(toggleRegisteredOnly())); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2013 |
connect(ui.pageNetGame->pGameCFG->GameSchemes->model(), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2014 |
SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2015 |
ui.pageNetGame->pGameCFG, |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2016 |
SLOT(resendSchemeData()) |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2017 |
); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2018 |
} |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
2019 |
} |
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
2020 |
|
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
2021 |
void HWForm::NetGameSlave() |
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
2022 |
{ |
8377 | 2023 |
ui.pageNetGame->pGameCFG->setMaster(false); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2024 |
ui.pageNetGame->pNetTeamsWidget->setInteractivity(false); |
2377 | 2025 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2026 |
if (hwnet) |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2027 |
{ |
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
13086
diff
changeset
|
2028 |
NetGameSchemeModel * netAmmo = new NetGameSchemeModel(hwnet); |
10721
9b789de8e5df
Workaround bug (each time losing room master status, even when joining mutliple rooms, new instance of NetAmmoSchemeModel created, receiving schemeConfig and modifying its 43rd member, thus the last model which accepts this signal has the string cut down several times, workaround creates copy of qstringlist to avoid modifying shared message instance. Proper fix would delete unneeded instances of NetAmmoSchemeModel, but who cares)
unc0rr
parents:
10392
diff
changeset
|
2029 |
connect(hwnet, SIGNAL(netSchemeConfig(QStringList)), netAmmo, SLOT(setNetSchemeConfig(QStringList))); |
8893
8f92e94d0b32
Don't set Default scheme/ammo when switching script if not room admin. Prevents game config desync.
unc0rr
parents:
8891
diff
changeset
|
2030 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2031 |
ui.pageNetGame->pGameCFG->GameSchemes->setModel(netAmmo); |
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
2032 |
|
8415
02acf6b92f52
Moved room name edit box from footer to top of page. Also shows room name when in slave mode.
dag10
parents:
8407
diff
changeset
|
2033 |
ui.pageNetGame->setRoomName(hwnet->getRoom()); |
02acf6b92f52
Moved room name edit box from footer to top of page. Also shows room name when in slave mode.
dag10
parents:
8407
diff
changeset
|
2034 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2035 |
ui.pageNetGame->pGameCFG->GameSchemes->view()->disconnect(hwnet); |
10801 | 2036 |
connect(hwnet, SIGNAL(netSchemeConfig(QStringList)), |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2037 |
this, SLOT(selectFirstNetScheme())); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2038 |
} |
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
2039 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2040 |
ui.pageNetGame->setMasterMode(false); |
1409
d1cbe4a57ebf
Add button for controlling room options (no usefull yet)
unc0rr
parents:
1405
diff
changeset
|
2041 |
} |
1600 | 2042 |
|
9100 | 2043 |
void HWForm::FromNetProxySlot(const QByteArray & msg) |
2044 |
{ |
|
2045 |
if(game) |
|
2046 |
game->FromNet(msg); |
|
2047 |
||
2048 |
} |
|
2049 |
||
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
2050 |
void HWForm::selectFirstNetScheme() |
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
2051 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2052 |
ui.pageNetGame->pGameCFG->GameSchemes->setCurrentIndex(0); |
1899
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
2053 |
} |
5763f46d7486
Sync schemes config over net should work now (untested)
unc0rr
parents:
1898
diff
changeset
|
2054 |
|
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
2055 |
void HWForm::NetLeftRoom(const QString & reason) |
1600 | 2056 |
{ |
4433 | 2057 |
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
|
2058 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2059 |
GoBack(); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
2060 |
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
|
2061 |
ui.pageRoomsList->displayNotice(reason); |
5998
e8f44e9433f0
many many netclient/frondent changes (just the beginning though):
sheepluva
parents:
5907
diff
changeset
|
2062 |
} |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2063 |
else |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2064 |
qWarning("Left room while not in room"); |
1600 | 2065 |
} |
2012 | 2066 |
|
2067 |
void HWForm::resizeEvent(QResizeEvent * event) |
|
2068 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2069 |
int w = event->size().width(); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2874
diff
changeset
|
2070 |
int h = event->size().height(); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2071 |
if (wBackground) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2072 |
{ |
2098
c977d7f2aa09
Toggle for stars ("frontend effects") - also turns off optimisations for stars that were causing problems onone machine
nemo
parents:
2080
diff
changeset
|
2073 |
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
|
2074 |
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
|
2075 |
} |
2012 | 2076 |
} |
3760 | 2077 |
|
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2078 |
void HWForm::UpdateTrainingPageTeam(int index) |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2079 |
{ |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2080 |
Q_UNUSED(index); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2081 |
HWTeam team(ui.pageTraining->CBTeam->currentText()); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2082 |
QString tName = team.name(); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2083 |
|
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2084 |
QListWidget* listWidget; |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2085 |
for(int w = 0; w < 3; w++) |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2086 |
{ |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2087 |
switch(w) { |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2088 |
case 0: listWidget = ui.pageTraining->lstTrainings; break; |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2089 |
case 1: listWidget = ui.pageTraining->lstChallenges; break; |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2090 |
case 2: listWidget = ui.pageTraining->lstScenarios; break; |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2091 |
default: listWidget = ui.pageTraining->lstTrainings; break; |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2092 |
} |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2093 |
unsigned int n = listWidget->count(); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2094 |
|
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2095 |
for(unsigned int i = 0; i < n; i++) |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2096 |
{ |
14468
41f1b611cdd2
Training page: Don't change selection after changing team or playing
Wuzzy <Wuzzy2@mail.ru>
parents:
14467
diff
changeset
|
2097 |
QListWidgetItem* item = listWidget->item(i); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2098 |
QString missionName = QString(item->data(Qt::UserRole).toString()).replace(QString(" "),QString("_")); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2099 |
if(isMissionWon(missionName, tName)) |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2100 |
item->setIcon(finishedIcon); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2101 |
else |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2102 |
item->setIcon(notFinishedIcon); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2103 |
} |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2104 |
} |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14509
diff
changeset
|
2105 |
ui.pageTraining->updateInfo(); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2106 |
} |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2107 |
|
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2108 |
void HWForm::InitCampaignPage() |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2109 |
{ |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2110 |
ui.pageCampaign->CBCampaign->clear(); |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2111 |
HWTeam team(ui.pageCampaign->CBTeam->currentText()); |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2112 |
|
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2113 |
QStringList entries = DataManager::instance().entryList( |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2114 |
"Missions/Campaign", |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2115 |
QDir::Dirs, |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2116 |
QStringList("[^\\.]*") |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2117 |
); |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2118 |
|
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2119 |
unsigned int n = entries.count(); |
11948
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11865
diff
changeset
|
2120 |
|
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2121 |
for(unsigned int i = 0; i < n; i++) |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2122 |
{ |
12305 | 2123 |
const QString & campaignName = entries[i]; |
11948
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11865
diff
changeset
|
2124 |
QString tName = team.name(); |
11957 | 2125 |
ui.pageCampaign->CBCampaign->addItem(getRealCampName(campaignName), campaignName); |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2126 |
} |
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2127 |
|
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2128 |
} |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2129 |
|
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2130 |
void HWForm::RestoreSingleplayerTeamSelection() |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2131 |
{ |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2132 |
QString lastTeam = config->value("frontend/lastSingleplayerTeam", QString()).toString(); |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2133 |
if (!lastTeam.isNull() && !lastTeam.isEmpty()) |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2134 |
{ |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2135 |
int index = ui.pageCampaign->CBTeam->findData(lastTeam, Qt::DisplayRole); |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2136 |
if(index != -1) |
14509
64d73515abba
Initialize mission completion status on frontend load
Wuzzy <Wuzzy2@mail.ru>
parents:
14470
diff
changeset
|
2137 |
{ |
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2138 |
ui.pageCampaign->CBTeam->setCurrentIndex(index); |
14509
64d73515abba
Initialize mission completion status on frontend load
Wuzzy <Wuzzy2@mail.ru>
parents:
14470
diff
changeset
|
2139 |
UpdateCampaignPageTeam(index); |
64d73515abba
Initialize mission completion status on frontend load
Wuzzy <Wuzzy2@mail.ru>
parents:
14470
diff
changeset
|
2140 |
} |
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2141 |
index = ui.pageTraining->CBTeam->findData(lastTeam, Qt::DisplayRole); |
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2142 |
if(index != -1) |
14509
64d73515abba
Initialize mission completion status on frontend load
Wuzzy <Wuzzy2@mail.ru>
parents:
14470
diff
changeset
|
2143 |
{ |
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2144 |
ui.pageTraining->CBTeam->setCurrentIndex(index); |
14509
64d73515abba
Initialize mission completion status on frontend load
Wuzzy <Wuzzy2@mail.ru>
parents:
14470
diff
changeset
|
2145 |
UpdateTrainingPageTeam(index); |
64d73515abba
Initialize mission completion status on frontend load
Wuzzy <Wuzzy2@mail.ru>
parents:
14470
diff
changeset
|
2146 |
} |
14470
6ab8335fe0a6
Save and restore last campaign/training team selection in settings.ini
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
2147 |
} |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2148 |
} |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
7122
diff
changeset
|
2149 |
|
3760 | 2150 |
void HWForm::UpdateCampaignPage(int index) |
2151 |
{ |
|
4560
5d6c7f88db73
- Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents:
4536
diff
changeset
|
2152 |
Q_UNUSED(index); |
3760 | 2153 |
HWTeam team(ui.pageCampaign->CBTeam->currentText()); |
14602
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2154 |
QString campaignName = ui.pageCampaign->CBCampaign->currentData().toString(); |
10017 | 2155 |
QString tName = team.name(); |
2156 |
||
2157 |
campaignMissionInfo = getCampMissionList(campaignName,tName); |
|
2158 |
ui.pageCampaign->CBMission->clear(); |
|
2159 |
||
14602
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2160 |
// Populate mission list |
9292
187ce630dddc
y! code clean up :)
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9290
diff
changeset
|
2161 |
for(int i=0;i<campaignMissionInfo.size();i++) |
9182
f92e205bc167
issue 562, image and description for the campaign page
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9163
diff
changeset
|
2162 |
{ |
11958
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11957
diff
changeset
|
2163 |
ui.pageCampaign->CBMission->addItem(QString(campaignMissionInfo[i].realName), QString(campaignMissionInfo[i].name)); |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2164 |
if(isCampMissionWon(campaignName, i, tName)) |
11951
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11950
diff
changeset
|
2165 |
ui.pageCampaign->CBMission->setItemIcon(i, finishedIcon); |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11950
diff
changeset
|
2166 |
else |
11978
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
2167 |
ui.pageCampaign->CBMission->setItemIcon(i, notFinishedIcon); |
10017 | 2168 |
} |
14602
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2169 |
|
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2170 |
// Select first open mission |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2171 |
int missionIndex = ui.pageCampaign->CBMission->currentIndex(); |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2172 |
if(isCampMissionWon(campaignName, missionIndex, tName)) |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2173 |
{ |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2174 |
for(int m = 0; m < ui.pageCampaign->CBMission->count(); m++) |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2175 |
{ |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2176 |
if(!isCampMissionWon(campaignName, m, tName)) |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2177 |
{ |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2178 |
ui.pageCampaign->CBMission->setCurrentIndex(m); |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2179 |
break; |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2180 |
} |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2181 |
} |
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2182 |
} |
9182
f92e205bc167
issue 562, image and description for the campaign page
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9163
diff
changeset
|
2183 |
} |
f92e205bc167
issue 562, image and description for the campaign page
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9163
diff
changeset
|
2184 |
|
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2185 |
void HWForm::UpdateCampaignPageTeam(int index) |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2186 |
{ |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2187 |
Q_UNUSED(index); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2188 |
HWTeam team(ui.pageCampaign->CBTeam->currentText()); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2189 |
QString tName = team.name(); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2190 |
|
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2191 |
QStringList entries = DataManager::instance().entryList( |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2192 |
"Missions/Campaign", |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2193 |
QDir::Dirs, |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2194 |
QStringList("[^\\.]*") |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2195 |
); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2196 |
|
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2197 |
unsigned int n = entries.count(); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2198 |
|
14602
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2199 |
// Update campaign status |
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2200 |
for(unsigned int i = 0; i < n; i++) |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2201 |
{ |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2202 |
QString campaignName = QString(entries[i]).replace(QString(" "),QString("_")); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2203 |
if(isCampWon(campaignName, tName)) |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2204 |
ui.pageCampaign->CBCampaign->setItemIcon(i, finishedIcon); |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2205 |
else |
11978
4a2da00bbedc
Align drop-down text of unfinished campaign missions with finished icons
Wuzzy <almikes@aol.com>
parents:
11968
diff
changeset
|
2206 |
ui.pageCampaign->CBCampaign->setItemIcon(i, notFinishedIcon); |
11950
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2207 |
} |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2208 |
} |
3792a9f9fa9c
Update campaign victory status when changing selection
Wuzzy <almikes@aol.com>
parents:
11948
diff
changeset
|
2209 |
|
9219 | 2210 |
void HWForm::UpdateCampaignPageMission(int index) |
2211 |
{ |
|
9292
187ce630dddc
y! code clean up :)
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9290
diff
changeset
|
2212 |
// update thumbnail and description |
14602
14b295892fb7
Campaign: Try to auto-select an open mission after selecting team or campaign
Wuzzy <Wuzzy2@mail.ru>
parents:
14601
diff
changeset
|
2213 |
QString campaignName = ui.pageCampaign->CBCampaign->currentData().toString(); |
9182
f92e205bc167
issue 562, image and description for the campaign page
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9163
diff
changeset
|
2214 |
// when campaign changes the UpdateCampaignPageMission is triggered with wrong values |
f92e205bc167
issue 562, image and description for the campaign page
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9163
diff
changeset
|
2215 |
// this will cause segfault. This check prevents illegal memory reads |
9292
187ce630dddc
y! code clean up :)
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9290
diff
changeset
|
2216 |
if(index > -1 && index < campaignMissionInfo.count()) { |
9219 | 2217 |
ui.pageCampaign->lbltitle->setText("<h2>"+ui.pageCampaign->CBMission->currentText()+"</h2>"); |
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9288
diff
changeset
|
2218 |
ui.pageCampaign->lbldescription->setText(campaignMissionInfo[index].description); |
10017 | 2219 |
ui.pageCampaign->btnPreview->setIcon(QIcon(campaignMissionInfo[index].image)); |
9219 | 2220 |
} |
3760 | 2221 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2222 |
|
7490
c422845b8d1f
Fixed a typo, frontend is now working properly
belphegorr <szabibibi@gmail.com>
parents:
7411
diff
changeset
|
2223 |
void HWForm::UpdateCampaignPageProgress(int index) |
7245
53f73f4ae203
Modified frontend so that updating campaogn progress no longer changes current index of the mission combo box
belphegorr <szabibibi@gmail.com>
parents:
7207
diff
changeset
|
2224 |
{ |
14600
13b22e2f2010
Frontend: Don't reset campaign mission selection to top of list after each play
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
2225 |
QString missionTitle = ui.pageCampaign->CBMission->currentData().toString(); |
7679 | 2226 |
UpdateCampaignPage(0); |
14601
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2227 |
int missionIndex = 0; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2228 |
// Restore selected mission (because UpdateCampaignPage repopulated the list) |
9641
b08c8bde57e3
fixes bug that doesn't display mission name in drop down list
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9482
diff
changeset
|
2229 |
for(int i=0;i<ui.pageCampaign->CBMission->count();i++) |
b08c8bde57e3
fixes bug that doesn't display mission name in drop down list
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9482
diff
changeset
|
2230 |
{ |
14600
13b22e2f2010
Frontend: Don't reset campaign mission selection to top of list after each play
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
2231 |
if (ui.pageCampaign->CBMission->itemData(i).toString() == missionTitle) |
10017 | 2232 |
{ |
14601
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2233 |
missionIndex = i; |
10017 | 2234 |
break; |
2235 |
} |
|
2236 |
} |
|
14601
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2237 |
|
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2238 |
// Get metadata |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2239 |
int c = ui.pageCampaign->CBCampaign->currentIndex(); |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2240 |
QString campaignName = ui.pageCampaign->CBCampaign->itemData(c).toString(); |
11955
d72a177dbaea
Update campaign drop-down list after campaign victory
Wuzzy <almikes@aol.com>
parents:
11951
diff
changeset
|
2241 |
HWTeam team(ui.pageCampaign->CBTeam->currentText()); |
d72a177dbaea
Update campaign drop-down list after campaign victory
Wuzzy <almikes@aol.com>
parents:
11951
diff
changeset
|
2242 |
QString tName = team.name(); |
14601
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2243 |
|
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2244 |
if(index == gsFinished) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2245 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2246 |
// Select new mission when current mission went from |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2247 |
// unfinished to finished. |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2248 |
if(ui.pageCampaign->currentMissionWon == false && |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2249 |
isCampMissionWon(campaignName, missionIndex, tName)) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2250 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2251 |
// Traverse all missions and pick first mission that |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2252 |
// has not been won. |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2253 |
bool selected = false; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2254 |
// start from mission that comes after the selected one |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2255 |
for(int m = missionIndex-1; m >= 0;m--) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2256 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2257 |
if(!isCampMissionWon(campaignName, m, tName)) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2258 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2259 |
missionIndex = m; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2260 |
selected = true; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2261 |
break; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2262 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2263 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2264 |
// No mission selected? Let's try again from the end of the list |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2265 |
if(!selected) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2266 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2267 |
for(int m = ui.pageCampaign->CBMission->count()-1; m > missionIndex-1; m--) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2268 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2269 |
if(!isCampMissionWon(campaignName, m, tName)) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2270 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2271 |
missionIndex = m; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2272 |
break; |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2273 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2274 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2275 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2276 |
// If no mission was selected, the old selection remains unchanged. |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2277 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2278 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2279 |
else if(index == gsStarted) |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2280 |
{ |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2281 |
// Remember the "won" state of current mission before we start it. |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2282 |
// We'll need it when the game has finished. |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2283 |
ui.pageCampaign->currentMissionWon = isCampMissionWon(campaignName, missionIndex, tName); |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2284 |
} |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2285 |
|
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2286 |
ui.pageCampaign->CBMission->setCurrentIndex(missionIndex); |
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2287 |
|
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2288 |
// Update campaign victory status |
11955
d72a177dbaea
Update campaign drop-down list after campaign victory
Wuzzy <almikes@aol.com>
parents:
11951
diff
changeset
|
2289 |
if(isCampWon(campaignName, tName)) |
14601
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2290 |
ui.pageCampaign->CBCampaign->setItemIcon(c, finishedIcon); |
11955
d72a177dbaea
Update campaign drop-down list after campaign victory
Wuzzy <almikes@aol.com>
parents:
11951
diff
changeset
|
2291 |
else |
14601
1d3f8cf48831
Campaign: Select next unfinished mission after completing one
Wuzzy <Wuzzy2@mail.ru>
parents:
14600
diff
changeset
|
2292 |
ui.pageCampaign->CBCampaign->setItemIcon(c, notFinishedIcon); |
3760 | 2293 |
} |
3932 | 2294 |
|
5213
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
2295 |
// 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
|
2296 |
QString HWForm::getDemoArguments() |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
2297 |
{ |
8307 | 2298 |
|
8643 | 2299 |
QString prefix = "\"" + datadir->absolutePath() + "\""; |
2300 |
QString userPrefix = "\"" + cfgdir->absolutePath() + "\""; |
|
9163
67334acaaac7
port all Q_WS_* to Q_OS_* so that we are forward compatible with Qt5
koda
parents:
9100
diff
changeset
|
2301 |
#ifdef Q_OS_WIN |
8307 | 2302 |
prefix = prefix.replace("/","\\"); |
2303 |
userPrefix = userPrefix.replace("/","\\"); |
|
8302
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2304 |
#endif |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2305 |
|
8354
c25bee85d6f8
Separated fullscreen and windowed hwengine resolution parameters.
vitiv <nikita.utiu@gmail.com>
parents:
8346
diff
changeset
|
2306 |
std::pair<QRect, QRect> resolutions = config->vid_ResolutionPair(); |
8307 | 2307 |
return QString("--prefix " + prefix |
2308 |
+ " --user-prefix " + userPrefix |
|
8354
c25bee85d6f8
Separated fullscreen and windowed hwengine resolution parameters.
vitiv <nikita.utiu@gmail.com>
parents:
8346
diff
changeset
|
2309 |
+ " --fullscreen-width " + QString::number(resolutions.first.width()) |
c25bee85d6f8
Separated fullscreen and windowed hwengine resolution parameters.
vitiv <nikita.utiu@gmail.com>
parents:
8346
diff
changeset
|
2310 |
+ " --fullscreen-height " + QString::number(resolutions.first.height()) |
c25bee85d6f8
Separated fullscreen and windowed hwengine resolution parameters.
vitiv <nikita.utiu@gmail.com>
parents:
8346
diff
changeset
|
2311 |
+ " --width " + QString::number(resolutions.second.width()) |
c25bee85d6f8
Separated fullscreen and windowed hwengine resolution parameters.
vitiv <nikita.utiu@gmail.com>
parents:
8346
diff
changeset
|
2312 |
+ " --height " + QString::number(resolutions.second.height()) |
14677
93429d8f6b3f
Add setting to set default/initial zoom
Wuzzy <Wuzzy2@mail.ru>
parents:
14670
diff
changeset
|
2313 |
+ (config->zoom() == 100 ? "" : " --zoom " + QString::number(config->zoom())) |
8302
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2314 |
+ " --volume " + QString::number(config->volume()) |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2315 |
+ (config->isMusicEnabled() ? "" : " --nomusic") |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2316 |
+ (config->isSoundEnabled() ? "" : " --nosound") |
13628
d5e029b84e16
Add setting to disable audio dampening if losing window focus
Wuzzy <Wuzzy2@mail.ru>
parents:
13505
diff
changeset
|
2317 |
+ (config->isAudioDampenEnabled() ? "" : " --nodampen") |
8302
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2318 |
+ " --locale " + config->language() + ".txt" |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2319 |
+ (config->vid_Fullscreen() ? " --fullscreen" : "") |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2320 |
+ (config->isShowFPSEnabled() ? " --showfps" : "") |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2321 |
+ (config->isAltDamageEnabled() ? " --altdmg" : "") |
a7934cd12469
improve engine cmd line parsing and its documentation
RowanD
parents:
8299
diff
changeset
|
2322 |
+ " --frame-interval " + QString::number(config->timerInterval()) |
9249 | 2323 |
+ " --raw-quality " + QString::number(config->translateQuality())) |
2324 |
+ (!config->Form->ui.pageOptions->CBTeamTag->isChecked() ? " --no-teamtag" : "") |
|
2325 |
+ (!config->Form->ui.pageOptions->CBHogTag->isChecked() ? " --no-hogtag" : "") |
|
2326 |
+ (!config->Form->ui.pageOptions->CBHealthTag->isChecked() ? " --no-healthtag" : "") |
|
14670
56831f466d1d
Add settings.ini setting and hwengine param to disable holiday silliness (hat changes, etc.)
Wuzzy <Wuzzy2@mail.ru>
parents:
14646
diff
changeset
|
2327 |
+ (config->Form->ui.pageOptions->CBTagOpacity->isChecked() ? " --translucent-tags" : "") |
56831f466d1d
Add settings.ini setting and hwengine param to disable holiday silliness (hat changes, etc.)
Wuzzy <Wuzzy2@mail.ru>
parents:
14646
diff
changeset
|
2328 |
+ (!config->isHolidaySillinessEnabled() ? " --no-holiday-silliness" : ""); |
5213
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
2329 |
} |
a86768368309
make the associate button use the user's settings for loading demos/saves
nemo
parents:
5205
diff
changeset
|
2330 |
|
3932 | 2331 |
void HWForm::AssociateFiles() |
2332 |
{ |
|
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
2333 |
bool success = true; |
5222 | 2334 |
QString arguments = getDemoArguments(); |
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
2335 |
#ifdef _WIN32 |
3932 | 2336 |
QSettings registry_hkcr("HKEY_CLASSES_ROOT", QSettings::NativeFormat); |
8722
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2337 |
|
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2338 |
// file extension(s) |
3932 | 2339 |
registry_hkcr.setValue(".hwd/Default", "Hedgewars.Demo"); |
2340 |
registry_hkcr.setValue(".hws/Default", "Hedgewars.Save"); |
|
2341 |
registry_hkcr.setValue("Hedgewars.Demo/Default", tr("Hedgewars Demo File", "File Types")); |
|
2342 |
registry_hkcr.setValue("Hedgewars.Save/Default", tr("Hedgewars Save File", "File Types")); |
|
2343 |
registry_hkcr.setValue("Hedgewars.Demo/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwdfile.ico\",0"); |
|
2344 |
registry_hkcr.setValue("Hedgewars.Save/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwsfile.ico\",0"); |
|
8643 | 2345 |
registry_hkcr.setValue("Hedgewars.Demo/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" " + arguments + " %1"); |
2346 |
registry_hkcr.setValue("Hedgewars.Save/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" " + arguments + " %1"); |
|
8722
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2347 |
|
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2348 |
// custom url scheme(s) |
8766
ce153d705fff
scheme association for linux (although it stops during connection)
koda
parents:
8722
diff
changeset
|
2349 |
registry_hkcr.setValue("hwplay/Default", "\"URL:Hedgewars ServerAccess Scheme\""); |
8722
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2350 |
registry_hkcr.setValue("hwplay/URL Protocol", ""); |
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2351 |
registry_hkcr.setValue("hwplay/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hedgewars.exe\",0"); |
2dead6b84bca
this should supposedly add hwplay:// schemes to windows, after user presses file association
koda
parents:
8720
diff
changeset
|
2352 |
registry_hkcr.setValue("hwplay/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hedgewars.exe\" %1"); |
4090 | 2353 |
#elif defined __APPLE__ |
5252 | 2354 |
// only useful when other apps have taken precedence over our file extensions and you want to reset it |
2355 |
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>'"); |
|
2356 |
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>'"); |
|
2357 |
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
|
2358 |
#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
|
2359 |
// 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 | 2360 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local"); |
2361 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share"); |
|
2362 |
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
|
2363 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/mime/packages"); |
4085 | 2364 |
if (success) success = checkForDir(QDir::home().absolutePath() + "/.local"); |
2365 |
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
|
2366 |
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
|
2367 |
if (success) success = system(("cp "+datadir->absolutePath()+"/misc/hedgewars-mimeinfo.xml "+QDir::home().absolutePath()+"/.local/share/mime/packages").toLocal8Bit().constData())==0; |
8766
ce153d705fff
scheme association for linux (although it stops during connection)
koda
parents:
8722
diff
changeset
|
2368 |
if (success) success = system(("cp "+datadir->absolutePath()+"/misc/hedgewars.desktop "+QDir::home().absolutePath()+"/.local/share/applications").toLocal8Bit().constData())==0; |
4084
0d0bf0533eee
Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents:
3940
diff
changeset
|
2369 |
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
|
2370 |
if (success) success = system(("update-mime-database "+QDir::home().absolutePath()+"/.local/share/mime").toLocal8Bit().constData())==0; |
8766
ce153d705fff
scheme association for linux (although it stops during connection)
koda
parents:
8722
diff
changeset
|
2371 |
if (success) success = system("xdg-mime default hedgewars.desktop x-scheme-handler/hwplay")==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
|
2372 |
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
|
2373 |
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
|
2374 |
// 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 |
8639 | 2375 |
if (success) success = system(("sed -i 's|^\\(Exec=.*\\) \\(%f\\)|\\1 \\2 "+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
|
2376 |
#endif |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2377 |
if (success) |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2378 |
{ |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2379 |
QMessageBox infoMsg(this); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2380 |
infoMsg.setIcon(QMessageBox::Information); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2381 |
infoMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Success")); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2382 |
infoMsg.setText(QMessageBox::tr("All file associations have been set")); |
14836
b9437746bffb
Frontend: Force plain text mode for many message windows
Wuzzy <Wuzzy2@mail.ru>
parents:
14810
diff
changeset
|
2383 |
infoMsg.setTextFormat(Qt::PlainText); |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2384 |
infoMsg.setWindowModality(Qt::WindowModal); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2385 |
infoMsg.exec(); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2386 |
} |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7792
diff
changeset
|
2387 |
else |
8383 | 2388 |
MessageDialog::ShowErrorMessage(QMessageBox::tr("File association failed."), this); |
3932 | 2389 |
} |
3937 | 2390 |
|
8434 | 2391 |
void HWForm::openRegistrationPage() |
8364
fbc9bcc6c39d
Added "New account" button when connectiong to the official server
vitiv <nikita.utiu@gmail.com>
parents:
8357
diff
changeset
|
2392 |
{ |
11830 | 2393 |
QDesktopServices::openUrl(QUrl("https://www.hedgewars.org/user/register")); |
8434 | 2394 |
} |
8364
fbc9bcc6c39d
Added "New account" button when connectiong to the official server
vitiv <nikita.utiu@gmail.com>
parents:
8357
diff
changeset
|
2395 |
|
5734 | 2396 |
void HWForm::saveDemoWithCustomName() |
2397 |
{ |
|
2398 |
if(!m_lastDemo.isEmpty()) |
|
2399 |
{ |
|
2400 |
QString fileName; |
|
2401 |
bool ok = false; |
|
2402 |
do |
|
2403 |
{ |
|
2404 |
fileName = QInputDialog::getText(this, tr("Demo name"), tr("Demo name:")); |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2405 |
|
5734 | 2406 |
if(!fileName.isEmpty()) |
2407 |
{ |
|
2408 |
QString filePath = cfgdir->absolutePath() + "/Demos/" + fileName + "." + *cProtoVer + ".hwd"; |
|
2409 |
QFile demofile(filePath); |
|
2410 |
ok = demofile.open(QIODevice::WriteOnly); |
|
2411 |
if (!ok) |
|
8383 | 2412 |
MessageDialog::ShowErrorMessage(tr("Cannot save record to file %1").arg(filePath), this); |
5734 | 2413 |
else |
2414 |
{ |
|
2415 |
ok = -1 != demofile.write(m_lastDemo); |
|
2416 |
demofile.close(); |
|
2417 |
} |
|
2418 |
} |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2419 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6604
diff
changeset
|
2420 |
while(!fileName.isEmpty() && !ok); |
5734 | 2421 |
} |
5746
fbc52bb92cad
Use QTextBrowser instead of WebKit for downloadable contents page (currently only shows the page itself)
unc0rr
parents:
5734
diff
changeset
|
2422 |
} |
fbc52bb92cad
Use QTextBrowser instead of WebKit for downloadable contents page (currently only shows the page itself)
unc0rr
parents:
5734
diff
changeset
|
2423 |
|
8901
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2424 |
void HWForm::restartGame() |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2425 |
{ |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2426 |
// get rid off old game stats page |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2427 |
if(ui.Pages->currentIndex() == ID_PAGE_GAMESTATS) |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2428 |
GoBack(); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2429 |
|
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2430 |
CreateGame(lastGameCfg, lastGameTeamSel, lastGameAmmo); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2431 |
|
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2432 |
switch(lastGameType) { |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2433 |
case gtTraining: |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13846
diff
changeset
|
2434 |
game->StartTraining(lastGameStartArgs.at(0).toString(), lastGameStartArgs.at(1).toString(), lastGameStartArgs.at(2).toString()); |
8901
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2435 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2436 |
case gtQLocal: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2437 |
game->StartQuick(); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2438 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2439 |
case gtCampaign: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2440 |
game->StartCampaign(lastGameStartArgs.at(0).toString(), lastGameStartArgs.at(1).toString(), lastGameStartArgs.at(2).toString()); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2441 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2442 |
case gtLocal: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2443 |
game->StartLocal(); |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2444 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2445 |
default: |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2446 |
break; |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2447 |
} |
505307b9735d
implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents:
8893
diff
changeset
|
2448 |
} |
6561 | 2449 |
|
10307
e13d3147f15b
do not get stuck on "in game..." page just because of game crash. output a message instead. could still need some tweaking, but a man gotta sleep. and sheep too...
sheepluva
parents:
10108
diff
changeset
|
2450 |
void HWForm::ShowFatalErrorMessage(const QString & msg) |
8383 | 2451 |
{ |
10307
e13d3147f15b
do not get stuck on "in game..." page just because of game crash. output a message instead. could still need some tweaking, but a man gotta sleep. and sheep too...
sheepluva
parents:
10108
diff
changeset
|
2452 |
MessageDialog::ShowFatalMessage(msg, this); |
8383 | 2453 |
} |
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
2454 |
|
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
2455 |
void HWForm::showFeedbackDialog() |
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
2456 |
{ |
11830 | 2457 |
QNetworkRequest newRequest(QUrl("https://www.hedgewars.org")); |
8878 | 2458 |
|
2459 |
QNetworkAccessManager *manager = new QNetworkAccessManager(this); |
|
2460 |
QNetworkReply *reply = manager->get(newRequest); |
|
2461 |
connect(reply, SIGNAL(finished()), this, SLOT(showFeedbackDialogNetChecked())); |
|
2462 |
} |
|
2463 |
||
2464 |
void HWForm::showFeedbackDialogNetChecked() |
|
2465 |
{ |
|
2466 |
QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); |
|
2467 |
||
12674
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2468 |
if (reply) { |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2469 |
switch (reply->error()) { |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2470 |
case QNetworkReply::NoError: |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2471 |
{ |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2472 |
FeedbackDialog dialog(this); |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2473 |
dialog.exec(); |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2474 |
} |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2475 |
break; |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2476 |
case QNetworkReply::UnknownNetworkError: |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2477 |
MessageDialog::ShowFatalMessage( |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2478 |
tr("Unknown network error (possibly missing SSL library)."), this); |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2479 |
break; |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2480 |
default: |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2481 |
MessageDialog::ShowFatalMessage( |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2482 |
QString(tr("This feature requires an Internet connection, but you don't appear to be online (error code: %1).")).arg(reply->error()), this); |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2483 |
break; |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2484 |
} |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2485 |
} |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2486 |
else { |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2487 |
MessageDialog::ShowFatalMessage(tr("Internal error: Reply object is invalid."), this); |
8d266b2d0f9c
Improve error messages when feedback or DLC fail to reach Internet
alfadur
parents:
12667
diff
changeset
|
2488 |
} |
8385
9e8924ff9813
Convert feedback page to dialog (+some fixes from unC0Rr)
dag10
parents:
8384
diff
changeset
|
2489 |
} |
8416
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2490 |
|
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2491 |
void HWForm::startGame() |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2492 |
{ |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2493 |
QMessageBox questionMsg(this); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2494 |
questionMsg.setIcon(QMessageBox::Question); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2495 |
questionMsg.setWindowTitle(QMessageBox::tr("Not all players are ready")); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2496 |
questionMsg.setText(QMessageBox::tr("Are you sure you want to start this game?\nNot all players are ready.")); |
14836
b9437746bffb
Frontend: Force plain text mode for many message windows
Wuzzy <Wuzzy2@mail.ru>
parents:
14810
diff
changeset
|
2497 |
questionMsg.setTextFormat(Qt::PlainText); |
8416
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2498 |
questionMsg.setWindowModality(Qt::WindowModal); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2499 |
questionMsg.addButton(QMessageBox::Yes); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2500 |
questionMsg.addButton(QMessageBox::Cancel); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2501 |
|
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2502 |
if (hwnet->allPlayersReady() || questionMsg.exec() == QMessageBox::Yes) |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2503 |
hwnet->startGame(); |
e691acd778f5
It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents:
8415
diff
changeset
|
2504 |
} |