QTfrontend/ui/page/pagegamestats.cpp
author sheepluva
Mon, 05 Aug 2019 00:20:45 +0200
changeset 15295 f382ec6dba11
parent 15278 16f389fcd462
child 15463 a7d54832fad6
child 15779 dbed9069ed50
permissions -rw-r--r--
In hindsight my emscripten-ifdef (70d416a8f63f) is nonsense. As fpcrtl_glShaderSource() would not be defined and lead to compiling issues. So either it's 3 ifdefs (in pas2cRedo, pas2cSystem and misc.c), in order to toggle between fpcrtl_ and the native function, or alternatively have no ifdef for it at all. I'm going with none at all, which means emscripten will compile with the original (const) function prototype, being wrapped by the fpcrtl_ function, same as non-emscripten builds.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     1
/*
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
11046
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10393
diff changeset
     3
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     4
 *
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     8
 *
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    12
 * GNU General Public License for more details.
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    13
 *
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
d1ded2532d3f - svn maintenance
unc0rr
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: 10017
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    17
 */
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    18
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    19
#include <QLabel>
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    20
#include <QGridLayout>
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: 6015
diff changeset
    21
#include <QHBoxLayout>
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
    22
#include <QGraphicsScene>
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    23
#include <QGroupBox>
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    24
#include <QSizePolicy>
5205
78138ae93820 some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents: 5028
diff changeset
    25
78138ae93820 some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents: 5028
diff changeset
    26
#include "pagegamestats.h"
3381
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
    27
#include "team.h"
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    28
1636
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    29
FitGraphicsView::FitGraphicsView(QWidget* parent) : QGraphicsView(parent)
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    30
{
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    31
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    32
}
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    33
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    34
void FitGraphicsView::resizeEvent(QResizeEvent * event)
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    35
{
4560
5d6c7f88db73 - Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents: 4217
diff changeset
    36
    Q_UNUSED(event);
5d6c7f88db73 - Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents: 4217
diff changeset
    37
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    38
    fitInView(sceneRect());
1636
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    39
}
e528696f2177 Resize health graphic when form is resized
unc0rr
parents: 1625
diff changeset
    40
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: 6015
diff changeset
    41
QLayout * PageGameStats::bodyLayoutDefinition()
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    42
{
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
    43
    kindOfPoints = QString("");
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
    44
    defaultGraphTitle = true;
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    45
    pageLayout = new QGridLayout();
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
    46
    pageLayout->setRowStretch(0, 1);
9175
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
    47
    pageLayout->setRowStretch(1, 20);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    48
    pageLayout->setVerticalSpacing(20);
5916
c76212c34192 fix back button location in post-game stats screen
sheepluva
parents: 5734
diff changeset
    49
    pageLayout->setContentsMargins(7, 7, 7, 0);
c76212c34192 fix back button location in post-game stats screen
sheepluva
parents: 5734
diff changeset
    50
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    51
    gbDetails = new QGroupBox(this);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    52
    gbDetails->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    53
    QVBoxLayout * gbl = new QVBoxLayout;
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    54
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    55
    // details
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    56
    labelGameStats = new QLabel(this);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    57
    labelDetails = new QLabel(this);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    58
    labelDetails->setTextFormat(Qt::RichText);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    59
    labelDetails->setText("<h1><img src=\":/res/StatsD.png\"> " + PageGameStats::tr("Details").toHtmlEscaped() + "</h1>");
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    60
    labelDetails->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    61
    labelGameStats->setTextFormat(Qt::RichText);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    62
    labelGameStats->setAlignment(Qt::AlignTop);
5028
3c43f00b0743 This should fix http://code.google.com/p/hedgewars/issues/detail?id=153
shreyasbp@gmail.com
parents: 4976
diff changeset
    63
    labelGameStats->setWordWrap(true);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    64
    gbl->addWidget(labelDetails);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    65
    gbl->addWidget(labelGameStats);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    66
    gbDetails->setLayout(gbl);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    67
    pageLayout->addWidget(gbDetails, 1, 1);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    68
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    69
    // graph
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    70
    graphic = new FitGraphicsView(gbDetails);
13231
6193503c4727 Various minor frontend CSS tweaks
Wuzzy <Wuzzy2@mail.ru>
parents: 13218
diff changeset
    71
    graphic->setObjectName("gameStatsView");
9175
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
    72
    labelGraphTitle = new QLabel(this);
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
    73
    labelGraphTitle->setTextFormat(Qt::RichText);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    74
    labelGraphTitle->setText("<h1><img src=\":/res/StatsH.png\"> " + PageGameStats::tr("Health graph").toHtmlEscaped() + "</h1>");
9175
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
    75
    labelGraphTitle->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
    76
    gbl->addWidget(labelGraphTitle);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    77
    gbl->addWidget(graphic);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    78
    graphic->scale(1.0, -1.0);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    79
    graphic->setBackgroundBrush(QBrush(Qt::black));
13158
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
    80
    graphic->setRenderHint(QPainter::Antialiasing, true);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    81
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    82
    labelGameWin = new QLabel(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    83
    labelGameWin->setTextFormat(Qt::RichText);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    84
    pageLayout->addWidget(labelGameWin, 0, 0, 1, 2);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    85
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    86
    // ranking box
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    87
    gbRanks = new QGroupBox(this);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    88
    gbRanks->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    89
    gbl = new QVBoxLayout;
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    90
    labelGameRank = new QLabel(gbRanks);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    91
    QLabel* l = new QLabel(this);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    92
    l->setTextFormat(Qt::RichText);
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
    93
    l->setText("<h1><img src=\":/res/StatsR.png\"> " + PageGameStats::tr("Ranking").toHtmlEscaped() + "</h1>");
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    94
    l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    95
    gbl->addWidget(l);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    96
    gbl->addWidget(labelGameRank);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
    97
    gbRanks->setLayout(gbl);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    98
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    99
    labelGameRank->setTextFormat(Qt::RichText);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   100
    labelGameRank->setAlignment(Qt::AlignTop);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   101
    pageLayout->addWidget(gbRanks, 1, 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: 6015
diff changeset
   102
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: 6015
diff changeset
   103
    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: 6015
diff changeset
   104
}
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: 6015
diff changeset
   105
8901
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   106
//TODO button placement, image etc
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: 6015
diff changeset
   107
QLayout * PageGameStats::footerLayoutDefinition()
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: 6015
diff changeset
   108
{
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: 6015
diff changeset
   109
    QHBoxLayout * bottomLayout = new QHBoxLayout();
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   110
9039
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   111
    mainNote = new QLabel(this);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   112
    mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   113
    mainNote->setWordWrap(true);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   114
9039
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   115
    bottomLayout->addWidget(mainNote, 0);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   116
    bottomLayout->setStretch(0,1);
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: 6015
diff changeset
   117
9039
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   118
    btnRestart = addButton(":/res/Start.png", bottomLayout, 1, true);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   119
    btnRestart->setWhatsThis(tr("Play again"));
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   120
    btnRestart->setFixedWidth(58);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   121
    btnRestart->setFixedHeight(81);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   122
    btnRestart->setStyleSheet("QPushButton{margin-top:24px}");
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   123
    btnSave = addButton(":/res/Save.png", bottomLayout, 2, true);
24e1ccd9326f place better the current replay button
Periklis Ntanasis <pntanasis@gmail.com>
parents: 8901
diff changeset
   124
    btnSave->setWhatsThis(tr("Save"));
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: 6015
diff changeset
   125
    btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
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: 6015
diff changeset
   126
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: 6015
diff changeset
   127
    return bottomLayout;
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: 6015
diff changeset
   128
}
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: 6015
diff changeset
   129
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: 6015
diff changeset
   130
void PageGameStats::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: 6015
diff changeset
   131
{
8384
a6e7a95f3b2e GCI2012: Abstract Page Load
dag10
parents: 7842
diff changeset
   132
    connect(this, SIGNAL(pageEnter()), this, SLOT(renderStats()));
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: 6015
diff changeset
   133
    connect(btnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
8901
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   134
    connect(btnRestart, SIGNAL(clicked()), this, SIGNAL(restartGameRequested()));
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: 6015
diff changeset
   135
}
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: 6015
diff changeset
   136
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: 6015
diff changeset
   137
PageGameStats::PageGameStats(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: 6015
diff changeset
   138
{
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: 6015
diff changeset
   139
    initPage();
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
   140
}
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   141
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   142
void PageGameStats::AddStatText(const QString & msg)
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   143
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   144
    labelGameStats->setText(labelGameStats->text() + msg);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   145
    labelDetails->show();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   146
    labelGameStats->show();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   147
    gbDetails->show();
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   148
}
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   149
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   150
void PageGameStats::clear()
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   151
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   152
    labelGameStats->setText("");
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   153
    healthPoints.clear();
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   154
    labelGameRank->setText("");
12331
6707ee1d2430 Fix caption of stats screen not being reset on clear()
Wuzzy <almikes@aol.com>
parents: 11046
diff changeset
   155
    labelGameWin->setText("");
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   156
    playerPosition = 0;
13757
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   157
    scriptPlayerPosition = 0;
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   158
    lastColor = 0;
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   159
    graphic->hide();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   160
    labelDetails->hide();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   161
    labelGameStats->hide();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   162
    gbDetails->hide();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   163
    gbRanks->hide();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   164
    pageLayout->setColumnStretch(0, 0);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   165
    pageLayout->setColumnStretch(1, 0);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   166
    pageLayout->setHorizontalSpacing(0);
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   167
}
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   168
8901
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   169
void PageGameStats::restartBtnVisible(bool visible)
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   170
{
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   171
    btnRestart->setVisible(visible);
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   172
}
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8384
diff changeset
   173
15278
16f389fcd462 Prevent saving of demo after /lua command was used
Wuzzy <Wuzzy2@mail.ru>
parents: 15071
diff changeset
   174
void PageGameStats::saveDemoBtnEnabled(bool enabled)
16f389fcd462 Prevent saving of demo after /lua command was used
Wuzzy <Wuzzy2@mail.ru>
parents: 15071
diff changeset
   175
{
16f389fcd462 Prevent saving of demo after /lua command was used
Wuzzy <Wuzzy2@mail.ru>
parents: 15071
diff changeset
   176
    btnSave->setEnabled(enabled);
16f389fcd462 Prevent saving of demo after /lua command was used
Wuzzy <Wuzzy2@mail.ru>
parents: 15071
diff changeset
   177
}
16f389fcd462 Prevent saving of demo after /lua command was used
Wuzzy <Wuzzy2@mail.ru>
parents: 15071
diff changeset
   178
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   179
void PageGameStats::renderStats()
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   180
{
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   181
    if(defaultGraphTitle) {
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   182
        labelGraphTitle->setText("<h1><img src=\":/res/StatsH.png\"> " + PageGameStats::tr("Health graph").toHtmlEscaped() + "</h1>");
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   183
    } else {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   184
        defaultGraphTitle = true;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   185
    }
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   186
    // if not health data sent
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   187
    if(healthPoints.size() == 0) {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   188
        labelGraphTitle->hide();
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   189
        graphic->hide();
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   190
    } else {
13158
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
   191
        graphic->setScene(Q_NULLPTR);
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   192
        gbDetails->show();
13158
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
   193
        m_scene.reset(new QGraphicsScene(this));
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   194
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   195
        // min and max value across the entire chart
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   196
        qint32 minValue = 0;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   197
        qint32 maxValue = 0;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   198
        bool minMaxValuesInitialized = false;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   199
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   200
        // max data points per clan
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   201
        int maxDataPoints = 0;
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   202
        for(QMap<qint32, QVector<qint32> >::const_iterator i = healthPoints.constBegin(); i != healthPoints.constEnd(); ++i)
13186
07c93d864bc2 Workaround for the weird new qgraphicsview/qgraphicsscene fitInView behavior
unc0rr
parents: 13158
diff changeset
   203
        {
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   204
            maxDataPoints = qMax(maxDataPoints, i.value().size());
13186
07c93d864bc2 Workaround for the weird new qgraphicsview/qgraphicsscene fitInView behavior
unc0rr
parents: 13158
diff changeset
   205
        }
07c93d864bc2 Workaround for the weird new qgraphicsview/qgraphicsscene fitInView behavior
unc0rr
parents: 13158
diff changeset
   206
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   207
        /* There must be at least 2 data points for any clan,
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   208
           otherwise there's not much to look at. ;-) */
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   209
        if(maxDataPoints < 2) {
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   210
            labelGraphTitle->hide();
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   211
            graphic->hide();
15071
dc236bcd7309 Fix stats screen group boxes sometimes having no spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14950
diff changeset
   212
            applySpacing();
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   213
            return;
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   214
        }
13186
07c93d864bc2 Workaround for the weird new qgraphicsview/qgraphicsscene fitInView behavior
unc0rr
parents: 13158
diff changeset
   215
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   216
        QMap<qint32, QVector<qint32> >::const_iterator i = healthPoints.constBegin();
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   217
        while (i != healthPoints.constEnd())
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   218
        {
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   219
            qint32 c = i.key();
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   220
            const QVector<qint32>& hps = i.value();
2377
f3fab2b09e0c And in frontend
nemo
parents: 1904
diff changeset
   221
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   222
            QPainterPath path;
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   223
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   224
            if (hps.size()) {
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   225
                path.moveTo(0, hps[0]);
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   226
                if(minMaxValuesInitialized) {
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   227
                    minValue = qMin(minValue, hps[0]);
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   228
                    maxValue = qMax(maxValue, hps[0]);
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   229
                } else {
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   230
                    minValue = hps[0];
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   231
                    maxValue = hps[0];
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   232
                    minMaxValuesInitialized = true;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   233
                }
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   234
            }
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   235
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   236
            for(int t = 0; t < hps.size(); ++t) {
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   237
                path.lineTo(t, hps[t]);
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   238
                maxValue = qMax(maxValue, hps[t]);
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   239
                minValue = qMin(minValue, hps[t]);
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   240
            }
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   241
14737
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   242
            // Draw clan health/score graph lines
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   243
            QColor col = QColor(c);
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   244
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   245
            // Special pen for very dark clan colors
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   246
            if (!(col.red() >= cInvertTextColorAt || col.green() >= cInvertTextColorAt || col.blue() >= cInvertTextColorAt))
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   247
            {
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   248
                QPen pen_marker(QColor(255, 255, 255));
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   249
                pen_marker.setWidth(3);
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   250
                pen_marker.setStyle(Qt::DotLine);
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   251
                pen_marker.setCosmetic(true);
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   252
                m_scene->addPath(path, pen_marker);
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   253
            }
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   254
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   255
            // Regular pen
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   256
            QPen pen(col);
13158
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
   257
            pen.setWidth(2);
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
   258
            pen.setCosmetic(true);
14737
123aaa2bf4b5 Make dark clan colors visible in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14610
diff changeset
   259
            m_scene->addPath(path, pen);
13158
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
   260
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   261
            ++i;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   262
        }
9175
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
   263
13158
99dd144f0a54 - Fix insane width of lines in health graphic
unc0rr
parents: 12474
diff changeset
   264
        graphic->setScene(m_scene.data());
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   265
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   266
        // Calculate the bounding box of the final chart
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   267
        qint32 sceneMinY = minValue;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   268
        qint32 sceneMaxY = maxValue;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   269
        // If all values are 0 or greater, make sure to include 0 at the bottom.
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   270
        if(sceneMinY >= 0 && sceneMaxY >= 0)
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   271
            sceneMinY = 0;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   272
        // If all values are equal, we must increase sceneMaxY, otherwise the scene rect
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   273
        // would have a height of 0 and will screw up
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   274
        if(sceneMinY == sceneMaxY)
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   275
            sceneMaxY++;
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   276
        graphic->setSceneRect(0, sceneMinY, maxDataPoints-1, sceneMaxY - sceneMinY);
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   277
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   278
        graphic->fitInView(graphic->sceneRect());
13217
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   279
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   280
        graphic->show();
1357dfbfa29c Fix broken stats chart bounding box
Wuzzy <Wuzzy2@mail.ru>
parents: 13186
diff changeset
   281
        labelGraphTitle->show();
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   282
        gbDetails->show();
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   283
    }
15071
dc236bcd7309 Fix stats screen group boxes sometimes having no spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14950
diff changeset
   284
    applySpacing();
dc236bcd7309 Fix stats screen group boxes sometimes having no spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14950
diff changeset
   285
}
dc236bcd7309 Fix stats screen group boxes sometimes having no spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14950
diff changeset
   286
dc236bcd7309 Fix stats screen group boxes sometimes having no spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14950
diff changeset
   287
void PageGameStats::applySpacing()
dc236bcd7309 Fix stats screen group boxes sometimes having no spacing
Wuzzy <Wuzzy2@mail.ru>
parents: 14950
diff changeset
   288
{
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   289
    if (!labelGameStats->isHidden())
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   290
    {
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   291
        labelGraphTitle->setText("<br>" + labelGraphTitle->text());
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   292
    }
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   293
    if ((!gbDetails->isHidden()) && (!gbRanks->isHidden()))
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   294
    {
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   295
        pageLayout->setColumnStretch(0, 1);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   296
        pageLayout->setColumnStretch(1, 1);
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   297
        pageLayout->setHorizontalSpacing(20);
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   298
    }
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   299
}
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   300
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   301
void PageGameStats::GameStats(char type, const QString & info)
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   302
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   303
    switch(type)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   304
    {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   305
        case 'r' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   306
        {
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   307
            labelGameWin->setText(QString("<h1 align=\"center\">%1</h1>").arg(info.toHtmlEscaped()));
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   308
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   309
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   310
        case 'D' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   311
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   312
            int i = info.indexOf(' ');
10393
c3daae6fd723 Fix issue 813
unc0rr
parents: 10108
diff changeset
   313
            int num = info.left(i).toInt();
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   314
            QString message = "<p><img src=\":/res/StatsBestShot.png\"> " + PageGameStats::tr("The best shot award was won by <b>%1</b> with <b>%2</b> pts.", "", num).arg(info.mid(i + 1).toHtmlEscaped(), info.left(i)) + "</p>";
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   315
            AddStatText(message);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   316
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   317
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   318
        case 'k' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   319
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   320
            int i = info.indexOf(' ');
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   321
            int num = info.left(i).toInt();
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   322
            QString message = "<p><img src=\":/res/StatsBestKiller.png\"> " + PageGameStats::tr("The best killer is <b>%1</b> with <b>%2</b> kills in a turn.", "", num).arg(info.mid(i + 1).toHtmlEscaped(), info.left(i)) + "</p>";
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   323
            AddStatText(message);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   324
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   325
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   326
        case 'K' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   327
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   328
            int num = info.toInt();
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
   329
            QString message = "<p><img src=\":/res/StatsHedgehogsKilled.png\"> " +  PageGameStats::tr("A total of <b>%1</b> hedgehog(s) were killed during this round.", "", num).arg(num) + "</p>";
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   330
            AddStatText(message);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   331
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   332
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   333
        case 'H' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   334
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   335
            int i = info.indexOf(' ');
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   336
            quint32 clan = info.left(i).toInt();
13218
d0647647a697 Make chart in stats screen support negative numbers. Fixes e.g. Mutant
Wuzzy <Wuzzy2@mail.ru>
parents: 13217
diff changeset
   337
            qint32 hp = info.mid(i + 1).toInt();
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   338
            healthPoints[clan].append(hp);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   339
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   340
        }
9175
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
   341
        case 'g' :
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
   342
        {
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   343
            // TODO: change default picture or add change pic capability
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   344
            defaultGraphTitle = false;
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   345
            labelGraphTitle->setText("<h1><img src=\":/res/StatsR.png\"> " + info.toHtmlEscaped() + "</h1>");
9175
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
   346
            break;
dc3c0e44f7f3 added option to change stats graph title
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9172
diff changeset
   347
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   348
        case 'T':   // local team stats
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   349
        {
13708
3264a26bbf8b Remove frontend code dealing with unused team variables
Wuzzy <Wuzzy2@mail.ru>
parents: 13231
diff changeset
   350
            // unused
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   351
            break;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   352
        }
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   353
        case 'p' :
9178
c0902317c823 created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9177
diff changeset
   354
        {
c0902317c823 created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9177
diff changeset
   355
            kindOfPoints = info;
c0902317c823 created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9177
diff changeset
   356
            break;
c0902317c823 created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9177
diff changeset
   357
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   358
        case 'P' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   359
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   360
            int i = info.indexOf(' ');
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   361
            playerPosition++;
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   362
            QString color = info.left(i);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   363
            quint32 c = color.toInt();
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   364
            QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   365
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   366
            QString playerinfo = info.mid(i + 1);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   367
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   368
            i = playerinfo.indexOf(' ');
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   369
14578
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   370
            QString killsString = playerinfo.left(i);
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   371
            int kills = killsString.toInt();
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   372
            QString playername = playerinfo.mid(i + 1);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   373
            QString image;
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   374
4217
721bfa5f4f31 Fix wrong order in results screen when players team up
TheException
parents: 4192
diff changeset
   375
            if (lastColor == c) playerPosition--;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   376
            lastColor = c;
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   377
13757
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   378
            unsigned int realPlayerPosition;
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   379
            if(scriptPlayerPosition == 0)
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   380
                realPlayerPosition = playerPosition;
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   381
            else
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   382
                realPlayerPosition = scriptPlayerPosition;
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   383
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   384
            switch (realPlayerPosition)
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   385
            {
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   386
                case 1:
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   387
                    image = "<img src=\":/res/StatsMedal1.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   388
                    break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   389
                case 2:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   390
                    image = "<img src=\":/res/StatsMedal2.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   391
                    break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   392
                case 3:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   393
                    image = "<img src=\":/res/StatsMedal3.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   394
                    break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   395
                default:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   396
                    image = "<img src=\":/res/StatsMedal4.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   397
                    break;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   398
            }
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   399
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   400
            QString message;
9178
c0902317c823 created a new sendstat type for changing the kills label
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9177
diff changeset
   401
            QString killstring;
14578
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   402
            if(kindOfPoints.isEmpty()) {
12474
42da9d8d82ab Provide translator context for a few less obvious engine strings
Wuzzy <almikes@aol.com>
parents: 12444
diff changeset
   403
                //: Number of kills in stats screen, written after the team name
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   404
                killstring = PageGameStats::tr("(%1 kill)", "", kills).arg(kills);
14578
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   405
            } else if (kindOfPoints == "!POINTS") {
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   406
                //: Number of points in stats screen, written after the team name
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   407
                killstring = PageGameStats::tr("(%1 point(s))", "", kills).arg(kills);
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   408
            } else if (kindOfPoints == "!TIME") {
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   409
                //: Time in seconds
14610
de34abf040ed pagegamestats: Fix time number rendering
Wuzzy <Wuzzy2@mail.ru>
parents: 14578
diff changeset
   410
                killstring = PageGameStats::tr("(%L1 second(s))", "", kills).arg((double) kills/1000, 0, 'f', 3);
14578
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   411
            } else if (kindOfPoints.startsWith("!TIME") && kindOfPoints.length() == 6) {
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   412
                int len = kindOfPoints.at(6).digitValue();
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   413
                if(len != -1)
14610
de34abf040ed pagegamestats: Fix time number rendering
Wuzzy <Wuzzy2@mail.ru>
parents: 14578
diff changeset
   414
                    killstring = PageGameStats::tr("(%L1 second(s))", "", kills).arg((double) kills/1000, 0, 'f', len);
14578
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   415
                else
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   416
                    qWarning("SendStat: siPointType received with !TIME and invalid number length!");
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   417
            } else if (kindOfPoints == "!CRATES") {
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   418
                killstring = PageGameStats::tr("(%1 crate(s))", "", kills).arg(kills);
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   419
            } else if (kindOfPoints == "!EMPTY") {
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   420
                killstring = QString("");
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   421
            } else {
12474
42da9d8d82ab Provide translator context for a few less obvious engine strings
Wuzzy <almikes@aol.com>
parents: 12444
diff changeset
   422
                //: For custom number of points in the stats screen, written after the team name. %1 is the number, %2 is the word. Example: “4 points”
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   423
                killstring = PageGameStats::tr("(%1 %2)", "", kills).arg(kills).arg(kindOfPoints);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 9998
diff changeset
   424
            }
14578
50f511588635 Outsource commonly used words in siPointType to QTfrontend
Wuzzy <Wuzzy2@mail.ru>
parents: 13768
diff changeset
   425
            kindOfPoints = QString("");
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   426
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   427
            message = QString("<p><h2>%1 %2. <font color=\"%4\">%3</font> ").arg(image, QString::number(realPlayerPosition), playername.toHtmlEscaped(), clanColor.name().toHtmlEscaped()) + killstring.toHtmlEscaped() + "</h2></p>";
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   428
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   429
            labelGameRank->setText(labelGameRank->text() + message);
13757
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   430
            scriptPlayerPosition = 0;
14950
ef3352839616 Stats screen: Automatically hide empty sections
Wuzzy <Wuzzy2@mail.ru>
parents: 14837
diff changeset
   431
            gbRanks->show();
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   432
            break;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   433
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   434
        case 's' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   435
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   436
            int i = info.indexOf(' ');
4177
6acd599eee52 Fix some more messages
unc0rr
parents: 4176
diff changeset
   437
            int num = info.left(i).toInt();
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   438
            QString message = "<p><img src=\":/res/StatsMostSelfDamage.png\"> " + PageGameStats::tr("<b>%1</b> thought it's good to shoot their own hedgehogs for <b>%2</b> pts.", "", num).arg(info.mid(i + 1).toHtmlEscaped()).arg(num) + "</p>";
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   439
            AddStatText(message);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   440
            break;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   441
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   442
        case 'S' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   443
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   444
            int i = info.indexOf(' ');
4177
6acd599eee52 Fix some more messages
unc0rr
parents: 4176
diff changeset
   445
            int num = info.left(i).toInt();
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   446
            QString message = "<p><img src=\":/res/StatsSelfKilled.png\"> " + PageGameStats::tr("<b>%1</b> killed <b>%2</b> of their own hedgehogs.", "", num).arg(info.mid(i + 1).toHtmlEscaped()).arg(num) + "</p>";
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   447
            AddStatText(message);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   448
            break;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   449
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   450
        case 'B' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   451
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   452
            int i = info.indexOf(' ');
4177
6acd599eee52 Fix some more messages
unc0rr
parents: 4176
diff changeset
   453
            int num = info.left(i).toInt();
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   454
            QString message = "<p><img src=\":/res/StatsSkipped.png\"> " + PageGameStats::tr("<b>%1</b> was scared and skipped turn <b>%2</b> times.", "", num).arg(info.mid(i + 1).toHtmlEscaped()).arg(num) + "</p>";
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   455
            AddStatText(message);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   456
            break;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   457
        }
9172
72bfa6a3e8e2 added custom stats message
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9080
diff changeset
   458
        case 'c' :
72bfa6a3e8e2 added custom stats message
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9080
diff changeset
   459
        {
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   460
            QString message = "<p><img src=\":/res/StatsCustomAchievement.png\"> "+info.toHtmlEscaped()+" </p>";
9172
72bfa6a3e8e2 added custom stats message
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9080
diff changeset
   461
            AddStatText(message);
72bfa6a3e8e2 added custom stats message
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9080
diff changeset
   462
            break;
72bfa6a3e8e2 added custom stats message
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9080
diff changeset
   463
        }
13757
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   464
        case 'R' :
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   465
        {
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   466
            scriptPlayerPosition = info.toInt();
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   467
            break;
f0cb47f0bfaf Fix player rankings on round draw: Clans that die in the same turn now have the same rank
Wuzzy <Wuzzy2@mail.ru>
parents: 13708
diff changeset
   468
        }
13768
c084bd440009 Add funny message in stats screen when everyone wins
Wuzzy <Wuzzy2@mail.ru>
parents: 13757
diff changeset
   469
        case 'h' :
c084bd440009 Add funny message in stats screen when everyone wins
Wuzzy <Wuzzy2@mail.ru>
parents: 13757
diff changeset
   470
        {
14837
5443e5e0faa3 Escape HTML chars in stats screen
Wuzzy <Wuzzy2@mail.ru>
parents: 14737
diff changeset
   471
            QString message = "<p><img src=\":/res/StatsEverAfter.png\"> " + PageGameStats::tr("With everyone having the same clan color, there was no reason to fight. And so the hedgehogs happily lived in peace ever after.").toHtmlEscaped() + "</p>";
13768
c084bd440009 Add funny message in stats screen when everyone wins
Wuzzy <Wuzzy2@mail.ru>
parents: 13757
diff changeset
   472
            AddStatText(message);
c084bd440009 Add funny message in stats screen when everyone wins
Wuzzy <Wuzzy2@mail.ru>
parents: 13757
diff changeset
   473
            break;
c084bd440009 Add funny message in stats screen when everyone wins
Wuzzy <Wuzzy2@mail.ru>
parents: 13757
diff changeset
   474
        }
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   475
    }
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   476
}