author | LocutusOfBorg |
Fri, 23 Sep 2022 12:47:47 -0400 | |
changeset 15877 | 6cb7330113d8 |
parent 15257 | 752b44ffa707 |
permissions | -rw-r--r-- |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
1 |
/* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
2 |
* Hedgewars, a free turn based strategy game |
11046 | 3 |
* Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
4 |
* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License as published by |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
7 |
* the Free Software Foundation; version 2 of the License |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
8 |
* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
13 |
* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
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:
9998
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
17 |
*/ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
18 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
19 |
#include <QGridLayout> |
6052 | 20 |
#include <QVBoxLayout> |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
21 |
#include <QLabel> |
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
22 |
#include <QListWidget> |
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
23 |
#include <QListWidgetItem> |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
24 |
#include <QPushButton> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
25 |
|
13087
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
26 |
#include <QTextStream> |
6059 | 27 |
#include <QFile> |
28 |
#include <QLocale> |
|
6058
ae8684864a6e
load mission caption and description from localization file (WIP)
sheepluva
parents:
6054
diff
changeset
|
29 |
#include <QSettings> |
ae8684864a6e
load mission caption and description from localization file (WIP)
sheepluva
parents:
6054
diff
changeset
|
30 |
|
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
31 |
#include "mission.h" |
6159
c780b8cf4d75
introduce HWDataManager util for transparent access to [user-]data files
sheepluva
parents:
6073
diff
changeset
|
32 |
#include "hwconsts.h" |
6930 | 33 |
#include "DataManager.h" |
6159
c780b8cf4d75
introduce HWDataManager util for transparent access to [user-]data files
sheepluva
parents:
6073
diff
changeset
|
34 |
|
5204 | 35 |
#include "pagetraining.h" |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
36 |
|
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:
6009
diff
changeset
|
37 |
QLayout * PageTraining::bodyLayoutDefinition() |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
38 |
{ |
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:
6009
diff
changeset
|
39 |
QGridLayout * pageLayout = new QGridLayout(); |
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:
6009
diff
changeset
|
40 |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
41 |
// declare start button, caption and description |
6052 | 42 |
btnPreview = formattedButton(":/res/Trainings.png", true); |
43 |
||
14471 | 44 |
// tweak widget spacing |
6052 | 45 |
pageLayout->setRowStretch(0, 1); |
46 |
pageLayout->setRowStretch(1, 1); |
|
14471 | 47 |
pageLayout->setRowStretch(2, 1); |
48 |
pageLayout->setColumnStretch(0, 5); |
|
49 |
pageLayout->setColumnStretch(1, 1); |
|
50 |
pageLayout->setColumnStretch(2, 9); |
|
51 |
pageLayout->setColumnStretch(3, 5); |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
52 |
|
14471 | 53 |
QWidget * infoWidget = new QWidget(); |
54 |
QHBoxLayout * infoLayout = new QHBoxLayout(); |
|
55 |
// add preview, caption and description |
|
56 |
infoWidget->setLayout(infoLayout); |
|
57 |
infoLayout->addWidget(btnPreview); |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
58 |
|
6052 | 59 |
// center preview |
14471 | 60 |
infoLayout->setAlignment(btnPreview, Qt::AlignRight | Qt::AlignVCenter); |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
61 |
|
6052 | 62 |
// info area (caption on top, description below) |
14471 | 63 |
QWidget * infoTextWidget = new QWidget(); |
64 |
QVBoxLayout * infoTextLayout = new QVBoxLayout(); |
|
65 |
infoTextWidget->setObjectName("trainingInfo"); |
|
66 |
infoTextWidget->setLayout(infoTextLayout); |
|
6052 | 67 |
|
68 |
lblCaption = new QLabel(); |
|
69 |
lblCaption->setMinimumWidth(360); |
|
70 |
lblCaption->setAlignment(Qt::AlignHCenter | Qt::AlignBottom); |
|
71 |
lblCaption->setWordWrap(true); |
|
72 |
lblDescription = new QLabel(); |
|
73 |
lblDescription->setMinimumWidth(360); |
|
74 |
lblDescription->setAlignment(Qt::AlignHCenter | Qt::AlignTop); |
|
75 |
lblDescription->setWordWrap(true); |
|
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
76 |
lblHighscores = new QLabel(); |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
77 |
lblHighscores->setMinimumWidth(360); |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
78 |
lblHighscores->setAlignment(Qt::AlignHCenter | Qt::AlignTop); |
6052 | 79 |
|
14471 | 80 |
infoTextLayout->addWidget(lblCaption); |
81 |
infoTextLayout->addWidget(lblDescription); |
|
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
82 |
infoTextLayout->addWidget(lblHighscores); |
6052 | 83 |
|
14471 | 84 |
infoLayout->addWidget(infoTextWidget); |
85 |
||
86 |
pageLayout->addWidget(infoWidget, 0, 1, 1, 2); // span 2 columns |
|
87 |
pageLayout->setAlignment(infoTextWidget, Qt::AlignLeft); |
|
6052 | 88 |
|
89 |
||
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
90 |
// tab widget containing all lists |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
91 |
tbw = new QTabWidget(this); |
14471 | 92 |
pageLayout->addWidget(tbw, 1, 0, 1, 4); // span 4 columns |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
93 |
// let's not make the tab widget use more space than needed |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
94 |
tbw->setFixedWidth(400); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
95 |
pageLayout->setAlignment(tbw, Qt::AlignHCenter); |
15248
7d957886170f
Pagetraining: Fix broken style sheet
Wuzzy <Wuzzy2@mail.ru>
parents:
14646
diff
changeset
|
96 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
97 |
// training/challenge/scenario lists |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
98 |
lstTrainings = new QListWidget(this); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
99 |
lstTrainings ->setWhatsThis(tr("Pick the training to play")); |
15257
752b44ffa707
Pagetraining: Move style sheet to CSS files
Wuzzy <Wuzzy2@mail.ru>
parents:
15248
diff
changeset
|
100 |
lstTrainings ->setObjectName("trainingList"); |
6052 | 101 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
102 |
lstChallenges = new QListWidget(this); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
103 |
lstChallenges ->setWhatsThis(tr("Pick the challenge to play")); |
15257
752b44ffa707
Pagetraining: Move style sheet to CSS files
Wuzzy <Wuzzy2@mail.ru>
parents:
15248
diff
changeset
|
104 |
lstChallenges ->setObjectName("trainingList"); |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
105 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
106 |
lstScenarios= new QListWidget(this); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
107 |
lstScenarios->setWhatsThis(tr("Pick the scenario to play")); |
15257
752b44ffa707
Pagetraining: Move style sheet to CSS files
Wuzzy <Wuzzy2@mail.ru>
parents:
15248
diff
changeset
|
108 |
lstScenarios->setObjectName("trainingList"); |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
109 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
110 |
tbw->addTab(lstTrainings, tr("Trainings")); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
111 |
tbw->addTab(lstChallenges, tr("Challenges")); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
112 |
tbw->addTab(lstScenarios, tr("Scenarios")); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
113 |
tbw->setCurrentWidget(lstTrainings); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
114 |
|
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13645
diff
changeset
|
115 |
QLabel* lblteam = new QLabel(tr("Team")); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13645
diff
changeset
|
116 |
CBTeam = new QComboBox(this); |
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13645
diff
changeset
|
117 |
CBTeam->setMaxVisibleItems(30); |
14471 | 118 |
pageLayout->addWidget(lblteam, 2, 1); |
119 |
pageLayout->addWidget(CBTeam, 2, 2); |
|
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13645
diff
changeset
|
120 |
|
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:
6009
diff
changeset
|
121 |
return pageLayout; |
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:
6009
diff
changeset
|
122 |
} |
6009 | 123 |
|
6052 | 124 |
QLayout * PageTraining::footerLayoutDefinition() |
125 |
{ |
|
126 |
QBoxLayout * bottomLayout = new QVBoxLayout(); |
|
127 |
||
11973
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
128 |
const QIcon& lp = QIcon(":/res/Start.png"); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
129 |
QSize sz = lp.actualSize(QSize(65535, 65535)); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
130 |
btnStart = new QPushButton(); |
12236
a0ed4caa6d35
Apply minimal padding to all text buttons in frontend
Wuzzy <almikes@aol.com>
parents:
11973
diff
changeset
|
131 |
btnStart->setStyleSheet("padding: 5px 10px"); |
11973
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
132 |
btnStart->setText(QPushButton::tr("Start")); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
133 |
btnStart->setWhatsThis(tr("Start fighting")); |
11973
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
134 |
btnStart->setMinimumWidth(sz.width() + 60); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
135 |
btnStart->setIcon(lp); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
136 |
btnStart->setFixedHeight(50); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
137 |
btnStart->setIconSize(sz); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
138 |
btnStart->setFlat(true); |
de1b616fd5e6
Use proper start button in training menu
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
139 |
btnStart->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); |
6052 | 140 |
|
141 |
bottomLayout->addWidget(btnStart); |
|
142 |
||
143 |
bottomLayout->setAlignment(btnStart, Qt::AlignRight | Qt::AlignVCenter); |
|
144 |
||
145 |
return bottomLayout; |
|
146 |
} |
|
147 |
||
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
148 |
|
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:
6009
diff
changeset
|
149 |
void PageTraining::connectSignals() |
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:
6009
diff
changeset
|
150 |
{ |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
151 |
connect(lstTrainings, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
152 |
connect(lstTrainings, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
153 |
connect(lstTrainings, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(startSelected())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
154 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
155 |
connect(lstChallenges, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
156 |
connect(lstChallenges, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
157 |
connect(lstChallenges, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(startSelected())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
158 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
159 |
connect(lstScenarios, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
160 |
connect(lstScenarios, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
161 |
connect(lstScenarios, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(startSelected())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
162 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
163 |
connect(tbw, SIGNAL(currentChanged(int)), this, SLOT(updateInfo())); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
164 |
|
6052 | 165 |
connect(btnPreview, SIGNAL(clicked()), this, SLOT(startSelected())); |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
166 |
connect(btnStart, SIGNAL(clicked()), this, SLOT(startSelected())); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
167 |
} |
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:
6009
diff
changeset
|
168 |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
169 |
|
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:
6009
diff
changeset
|
170 |
PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent) |
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:
6009
diff
changeset
|
171 |
{ |
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:
6009
diff
changeset
|
172 |
initPage(); |
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:
6009
diff
changeset
|
173 |
|
6930 | 174 |
DataManager & dataMgr = DataManager::instance(); |
6196 | 175 |
|
6059 | 176 |
// get locale |
8918
512753ea4b1b
Switch to 'settings.ini'. Copies old ini file if necessary on startup.
unc0rr
parents:
8098
diff
changeset
|
177 |
QSettings settings(dataMgr.settingsFileName(), |
6059 | 178 |
QSettings::IniFormat); |
179 |
||
13274
e381f5260b45
Change how locale is loaded in frontend, and fix some bugs
Wuzzy <Wuzzy2@mail.ru>
parents:
13087
diff
changeset
|
180 |
QString loc = QLocale().name(); |
6059 | 181 |
|
8049 | 182 |
QString infoFile = QString("physfs://Locale/missions_" + loc + ".txt"); |
6059 | 183 |
|
184 |
// if file is non-existant try with language only |
|
6167 | 185 |
if (!QFile::exists(infoFile)) |
8049 | 186 |
infoFile = QString("physfs://Locale/missions_" + loc.remove(QRegExp("_.*$")) + ".txt"); |
6059 | 187 |
|
188 |
// fallback if file for current locale is non-existant |
|
6167 | 189 |
if (!QFile::exists(infoFile)) |
8049 | 190 |
infoFile = QString("physfs://Locale/missions_en.txt"); |
6159
c780b8cf4d75
introduce HWDataManager util for transparent access to [user-]data files
sheepluva
parents:
6073
diff
changeset
|
191 |
|
6059 | 192 |
|
193 |
// preload mission info for current locale |
|
6167 | 194 |
m_info = new QSettings(infoFile, QSettings::IniFormat, this); |
6257 | 195 |
m_info->setIniCodec("UTF-8"); |
6058
ae8684864a6e
load mission caption and description from localization file (WIP)
sheepluva
parents:
6054
diff
changeset
|
196 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
197 |
QStringList m_list; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
198 |
QListWidget * m_widget; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
199 |
QString subFolder; |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
200 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
201 |
for(int i=1; i<=3; i++) { |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
202 |
switch(i) { |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
203 |
case 1: |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
204 |
subFolder = "Training"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
205 |
m_widget = lstTrainings; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
206 |
break; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
207 |
case 2: |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
208 |
subFolder = "Challenge"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
209 |
m_widget = lstChallenges; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
210 |
break; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
211 |
case 3: |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
212 |
subFolder = "Scenario"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
213 |
m_widget = lstScenarios; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
214 |
break; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
215 |
} |
13087
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
216 |
// scripts to load |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
217 |
// first, load scripts in order specified in order.cfg (if present) |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
218 |
QFile orderFile(QString("physfs://Missions/%1/order.cfg").arg(subFolder)); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
219 |
QStringList orderedMissions; |
14462
4c743ef80b1b
Add team selection in training page and basic check mark support
Wuzzy <Wuzzy2@mail.ru>
parents:
13645
diff
changeset
|
220 |
|
13087
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
221 |
if (orderFile.open(QFile::ReadOnly)) |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
222 |
{ |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
223 |
QString m_id; |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
224 |
QTextStream input(&orderFile); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
225 |
while(true) |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
226 |
{ |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
227 |
m_id = input.readLine(); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
228 |
if(m_id.isNull() || m_id.isEmpty()) |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
229 |
{ |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
230 |
break; |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
231 |
} |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
232 |
QListWidgetItem * item = new QListWidgetItem(m_id); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
233 |
QString name = item->text().replace("_", " "); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
234 |
name = m_info->value(m_id + ".name", name).toString(); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
235 |
item->setText(name); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
236 |
item->setData(Qt::UserRole, m_id); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
237 |
m_widget->addItem(item); |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
238 |
|
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
239 |
orderedMissions << m_id; |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
240 |
} |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
241 |
} |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
242 |
|
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
243 |
// then, just load anything else in no particular order |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
244 |
m_list = dataMgr.entryList( |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
245 |
"Missions/" + subFolder, |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
246 |
QDir::Files, QStringList("*.lua")). |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
247 |
replaceInStrings(QRegExp("\\.lua$"), ""); |
6059 | 248 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
249 |
foreach (const QString & m_id, m_list) |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
250 |
{ |
13087
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
251 |
// Disallow duplicates from order.cfg |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
252 |
if (orderedMissions.contains(m_id)) |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
253 |
{ |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
254 |
continue; |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
255 |
} |
b6df6283e2ba
Sort all core missions in training menu more logically
Wuzzy <Wuzzy2@mail.ru>
parents:
12240
diff
changeset
|
256 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
257 |
QListWidgetItem * item = new QListWidgetItem(m_id); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
258 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
259 |
// fallback name: replace underscores in mission name with spaces |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
260 |
QString name = item->text().replace("_", " "); |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
261 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
262 |
// see if we can get a prettier/translated name |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
263 |
name = m_info->value(m_id + ".name", name).toString(); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
264 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
265 |
item->setText(name); |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
266 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
267 |
// store original name in data |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
268 |
item->setData(Qt::UserRole, m_id); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
269 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
270 |
m_widget->addItem(item); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
271 |
} |
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:
6009
diff
changeset
|
272 |
} |
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:
6009
diff
changeset
|
273 |
|
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
274 |
updateInfo(); |
6052 | 275 |
|
276 |
// pre-select first mission |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
277 |
if (lstTrainings->count() > 0) |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
278 |
lstTrainings->setCurrentRow(0); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
279 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
280 |
if (lstChallenges->count() > 0) |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
281 |
lstChallenges->setCurrentRow(0); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
282 |
|
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
283 |
if (lstScenarios->count() > 0) |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
284 |
lstScenarios->setCurrentRow(0); |
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:
6009
diff
changeset
|
285 |
} |
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:
6009
diff
changeset
|
286 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
287 |
QString PageTraining::getSubFolderOfSelected() |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
288 |
{ |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
289 |
QString subFolder; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
290 |
if (tbw->currentWidget() == lstTrainings) { |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
291 |
subFolder = "Training"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
292 |
} else if (tbw->currentWidget() == lstChallenges) { |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
293 |
subFolder = "Challenge"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
294 |
} else if (tbw->currentWidget() == lstScenarios) { |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
295 |
subFolder = "Scenario"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
296 |
} else { |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
297 |
subFolder = "Training"; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
298 |
} |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
299 |
return subFolder; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
300 |
} |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
301 |
|
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
302 |
void PageTraining::startSelected() |
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
303 |
{ |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
304 |
QListWidget *list; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
305 |
list = (QListWidget*) tbw->currentWidget(); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
306 |
QListWidgetItem * curItem = list->currentItem(); |
6050
07561ade87ca
oops, I forgot I wanted to fix that before committing xD
sheepluva
parents:
6048
diff
changeset
|
307 |
|
14646
e3e6b0c6543f
Frontend: Gray out campaign/training start buttons when no human team available
Wuzzy <Wuzzy2@mail.ru>
parents:
14591
diff
changeset
|
308 |
if ((curItem != NULL) && (CBTeam->currentIndex() != -1)) |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
309 |
emit startMission(curItem->data(Qt::UserRole).toString(), getSubFolderOfSelected()); |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
310 |
} |
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
311 |
|
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
312 |
|
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
313 |
void PageTraining::updateInfo() |
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
314 |
{ |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
315 |
if (tbw->currentWidget()) |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
316 |
{ |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
317 |
QString subFolder; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
318 |
QListWidget *list; |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
319 |
subFolder = getSubFolderOfSelected(); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
320 |
list = (QListWidget*) tbw->currentWidget(); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
321 |
if (list->currentItem()) |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
322 |
{ |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
323 |
QString missionName = list->currentItem()->data(Qt::UserRole).toString(); |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
324 |
QString thumbFile = "physfs://Graphics/Missions/" + |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
325 |
subFolder + "/" + |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
326 |
missionName + |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
327 |
"@2x.png"; |
6058
ae8684864a6e
load mission caption and description from localization file (WIP)
sheepluva
parents:
6054
diff
changeset
|
328 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
329 |
if (QFile::exists(thumbFile)) |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
330 |
btnPreview->setIcon(QIcon(thumbFile)); |
14473 | 331 |
else if (tbw->currentWidget() == lstChallenges) |
332 |
btnPreview->setIcon(QIcon(":/res/Challenges.png")); |
|
14474
2c3fb87ad1c5
Add fallback preview image for scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14473
diff
changeset
|
333 |
else if (tbw->currentWidget() == lstScenarios) |
2c3fb87ad1c5
Add fallback preview image for scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14473
diff
changeset
|
334 |
// TODO: Prettier scenario fallback image |
2c3fb87ad1c5
Add fallback preview image for scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14473
diff
changeset
|
335 |
btnPreview->setIcon(QIcon(":/res/Scenarios.png")); |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
336 |
else |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
337 |
btnPreview->setIcon(QIcon(":/res/Trainings.png")); |
6058
ae8684864a6e
load mission caption and description from localization file (WIP)
sheepluva
parents:
6054
diff
changeset
|
338 |
|
12240
88b31fdc760b
Add a few WhatsThis texts in frontend, rename “Stereo rendering” to “Stereoscopy”
Wuzzy <almikes@aol.com>
parents:
12236
diff
changeset
|
339 |
btnPreview->setWhatsThis(tr("Start fighting")); |
88b31fdc760b
Add a few WhatsThis texts in frontend, rename “Stereo rendering” to “Stereoscopy”
Wuzzy <almikes@aol.com>
parents:
12236
diff
changeset
|
340 |
|
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
341 |
QString caption = m_info->value(missionName + ".name", |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
342 |
list->currentItem()->text()).toString(); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
343 |
|
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
344 |
QString description = m_info->value(missionName + ".desc", |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
345 |
tr("No description available")).toString(); |
6058
ae8684864a6e
load mission caption and description from localization file (WIP)
sheepluva
parents:
6054
diff
changeset
|
346 |
|
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
347 |
lblCaption->setText("<h2>" + caption +"</h2>"); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
348 |
lblDescription->setText(description); |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
349 |
|
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
350 |
// Challenge highscores |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
351 |
QString highscoreText = QString(""); |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
352 |
QString teamName = CBTeam->currentText(); |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
353 |
if (missionValueExists(missionName, teamName, "Highscore")) |
14527
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
354 |
highscoreText = highscoreText + |
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
355 |
//: Highest score of a team |
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
356 |
tr("Team highscore: %1") |
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
357 |
.arg(getMissionValue(missionName, teamName, "Highscore").toString()) + "\n"; |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
358 |
if (missionValueExists(missionName, teamName, "Lowscore")) |
14527
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
359 |
highscoreText = highscoreText + |
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
360 |
//: Lowest score of a team |
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
361 |
tr("Team lowscore: %1") |
0fc9560be9cc
Pagetraining: Make sure the translator comment will be collected
Wuzzy <Wuzzy2@mail.ru>
parents:
14525
diff
changeset
|
362 |
.arg(getMissionValue(missionName, teamName, "Lowscore").toString()) + "\n"; |
14591
b4089fa16b34
Keep track of accuracy record in target practice challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
363 |
if (missionValueExists(missionName, teamName, "AccuracyRecord")) |
b4089fa16b34
Keep track of accuracy record in target practice challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
364 |
highscoreText = highscoreText + |
b4089fa16b34
Keep track of accuracy record in target practice challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
365 |
//: Best accuracy of a team (in a challenge) |
b4089fa16b34
Keep track of accuracy record in target practice challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
366 |
tr("Team's top accuracy: %1%") |
b4089fa16b34
Keep track of accuracy record in target practice challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
14527
diff
changeset
|
367 |
.arg(getMissionValue(missionName, teamName, "AccuracyRecord").toString()) + "\n"; |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
368 |
if (missionValueExists(missionName, teamName, "TimeRecord")) |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
369 |
{ |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
370 |
double time = ((double) getMissionValue(missionName, teamName, "TimeRecord").toInt()) / 1000.0; |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
371 |
highscoreText = highscoreText + tr("Team's best time: %L1 s").arg(time, 0, 'f', 3) + "\n"; |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
372 |
} |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
373 |
if (missionValueExists(missionName, teamName, "TimeRecordHigh")) |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
374 |
{ |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
375 |
double time = ((double) getMissionValue(missionName, teamName, "TimeRecordHigh").toInt()) / 1000.0; |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
376 |
highscoreText = highscoreText + tr("Team's longest time: %L1 s").arg(time, 0, 'f', 3) + "\n"; |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
377 |
} |
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
378 |
|
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
379 |
lblHighscores->setText(highscoreText); |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
380 |
} |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
381 |
else |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
382 |
{ |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
383 |
btnPreview->setIcon(QIcon(":/res/Trainings.png")); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
384 |
lblCaption->setText(tr("Select a mission!")); |
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
385 |
lblDescription->setText(""); |
14525
029f40c609b4
Display team records in training menu
Wuzzy <Wuzzy2@mail.ru>
parents:
14474
diff
changeset
|
386 |
lblHighscores->setText(""); |
11968
1de4d6b35748
Mission recategorization into trainings, challenges and scenarios.
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
387 |
} |
6048
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
388 |
} |
ae213ef7030a
PIMP'ed up training screen. special thanks to mikade for supplying the pics <3
sheepluva
parents:
6042
diff
changeset
|
389 |
} |