QTfrontend/ui/page/pagetraining.cpp
author S.D.
Tue, 27 Sep 2022 14:59:03 +0300
changeset 15878 fc3cb23fd26f
parent 15257 752b44ffa707
permissions -rw-r--r--
Allow to see rooms of incompatible versions in the lobby For the new clients the room version is shown in a separate column. There is also a hack for previous versions clients: the room vesion specifier is prepended to the room names for rooms of incompatible versions, and the server shows 'incompatible version' error if the client tries to join them.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10108
diff changeset
     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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    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
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
    27
#include <QFile>
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
    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
d187ea93fc4f renaming HWDataManager -> DataManager
sheepluva
parents: 6700
diff changeset
    33
#include "DataManager.h"
6159
c780b8cf4d75 introduce HWDataManager util for transparent access to [user-]data files
sheepluva
parents: 6073
diff changeset
    34
5204
e1a5f4d5d86a split pages.h into several header files
koda
parents: 5078
diff changeset
    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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    42
    btnPreview = formattedButton(":/res/Trainings.png", true);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    43
14471
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    44
    // tweak widget spacing
6052
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    45
    pageLayout->setRowStretch(0, 1);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    46
    pageLayout->setRowStretch(1, 1);
14471
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    47
    pageLayout->setRowStretch(2, 1);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    48
    pageLayout->setColumnStretch(0, 5);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    49
    pageLayout->setColumnStretch(1, 1);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    50
    pageLayout->setColumnStretch(2, 9);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    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
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    53
    QWidget * infoWidget = new QWidget();
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    54
    QHBoxLayout * infoLayout = new QHBoxLayout();
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    55
    // add preview, caption and description
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    56
    infoWidget->setLayout(infoLayout);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    59
    // center preview
14471
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    62
    // info area (caption on top, description below)
14471
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    63
    QWidget * infoTextWidget = new QWidget();
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    64
    QVBoxLayout * infoTextLayout = new QVBoxLayout();
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    65
    infoTextWidget->setObjectName("trainingInfo");
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    66
    infoTextWidget->setLayout(infoTextLayout);
6052
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    67
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    68
    lblCaption = new QLabel();
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    69
    lblCaption->setMinimumWidth(360);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    70
    lblCaption->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    71
    lblCaption->setWordWrap(true);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    72
    lblDescription = new QLabel();
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    73
    lblDescription->setMinimumWidth(360);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    74
    lblDescription->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    79
14471
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    80
    infoTextLayout->addWidget(lblCaption);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    83
14471
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    84
    infoLayout->addWidget(infoTextWidget);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    85
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    86
    pageLayout->addWidget(infoWidget, 0, 1, 1, 2); // span 2 columns
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    87
    pageLayout->setAlignment(infoTextWidget, Qt::AlignLeft);
6052
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    88
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
    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
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
    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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   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
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
   118
    pageLayout->addWidget(lblteam, 2, 1);
c5033a95fd7b Tweak training menu spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14462
diff changeset
   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
14f6fc9869f2 code cleanup/etc
sheepluva
parents: 5238
diff changeset
   123
6052
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   124
QLayout * PageTraining::footerLayoutDefinition()
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   125
{
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   126
    QBoxLayout * bottomLayout = new QVBoxLayout();
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   140
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   141
    bottomLayout->addWidget(btnStart);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   142
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   143
    bottomLayout->setAlignment(btnStart, Qt::AlignRight | Qt::AlignVCenter);
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   144
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   145
    return bottomLayout;
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   146
}
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   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
d187ea93fc4f renaming HWDataManager -> DataManager
sheepluva
parents: 6700
diff changeset
   174
    DataManager & dataMgr = DataManager::instance();
6196
c16e84558f71 minor cleanups, mostly in own code
sheepluva
parents: 6183
diff changeset
   175
6059
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   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
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   178
                       QSettings::IniFormat);
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   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
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   181
8049
133e22b5c410 Get rid of DataManager::findFileForRead
unc0rr
parents: 6952
diff changeset
   182
    QString infoFile = QString("physfs://Locale/missions_" + loc + ".txt");
6059
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   183
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   184
    // if file is non-existant try with language only
6167
728cabee2c9f simplified some stuff I wrote
sheepluva
parents: 6160
diff changeset
   185
    if (!QFile::exists(infoFile))
8049
133e22b5c410 Get rid of DataManager::findFileForRead
unc0rr
parents: 6952
diff changeset
   186
        infoFile = QString("physfs://Locale/missions_" + loc.remove(QRegExp("_.*$")) + ".txt");
6059
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   187
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   188
    // fallback if file for current locale is non-existant
6167
728cabee2c9f simplified some stuff I wrote
sheepluva
parents: 6160
diff changeset
   189
    if (!QFile::exists(infoFile))
8049
133e22b5c410 Get rid of DataManager::findFileForRead
unc0rr
parents: 6952
diff changeset
   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
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   192
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   193
    // preload mission info for current locale
6167
728cabee2c9f simplified some stuff I wrote
sheepluva
parents: 6160
diff changeset
   194
    m_info = new QSettings(infoFile, QSettings::IniFormat, this);
6257
e6690d3a8a44 mission locale -> UTF-8
sheepluva
parents: 6196
diff changeset
   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
ddf020d0941a training screen localization works now
sheepluva
parents: 6058
diff changeset
   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
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   275
5e3e7d19bdb5 stuffToBeAvoidedInFuture->append("layouting");
sheepluva
parents: 6050
diff changeset
   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
afa4f2140252 Add image for challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 14471
diff changeset
   331
            else if (tbw->currentWidget() == lstChallenges)
afa4f2140252 Add image for challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 14471
diff changeset
   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
}