QTfrontend/ui/page/pagegamestats.cpp
author dag10
Mon, 21 Jan 2013 21:52:49 -0500
changeset 8424 225ede46e3dc
parent 8384 a6e7a95f3b2e
child 8901 505307b9735d
permissions -rw-r--r--
On pagenetgame, when window is too small the map/game options becomes a tabbed interface to allow for a few lines of chat to always be visible. Restored HWForm's min height to 580. Fixed the 2px alignment issue with the map list and map previews' top edges that unC0Rr was whining about. <3
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
6952
7f70f37bbf08 license header year range adjustments
sheepluva
parents: 6700
diff changeset
     3
 * Copyright (c) 2004-2012 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
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
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
{
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
    43
    QGridLayout * pageLayout = new QGridLayout();
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    44
    pageLayout->setSpacing(20);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    45
    pageLayout->setColumnStretch(0, 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    46
    pageLayout->setColumnStretch(1, 1);
5916
c76212c34192 fix back button location in post-game stats screen
sheepluva
parents: 5734
diff changeset
    47
    pageLayout->setContentsMargins(7, 7, 7, 0);
c76212c34192 fix back button location in post-game stats screen
sheepluva
parents: 5734
diff changeset
    48
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    49
    QGroupBox * gb = new QGroupBox(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    50
    QVBoxLayout * gbl = new QVBoxLayout;
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
    51
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    52
    // details
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    53
    labelGameStats = new QLabel(this);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    54
    QLabel * l = new QLabel(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    55
    l->setTextFormat(Qt::RichText);
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
    56
    l->setText("<h1><img src=\":/res/StatsD.png\"> " + PageGameStats::tr("Details") + "</h1>");
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    57
    l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    58
    labelGameStats->setTextFormat(Qt::RichText);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    59
    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
    60
    labelGameStats->setWordWrap(true);
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    61
    gbl->addWidget(l);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    62
    gbl->addWidget(labelGameStats);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    63
    gb->setLayout(gbl);
5734
d710db47a1ef Implement save button on game statistics page.
unc0rr
parents: 5205
diff changeset
    64
    pageLayout->addWidget(gb, 1, 1, 1, 2);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    65
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    66
    // graph
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    67
    graphic = new FitGraphicsView(gb);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    68
    l = new QLabel(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    69
    l->setTextFormat(Qt::RichText);
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
    70
    l->setText("<br><h1><img src=\":/res/StatsH.png\"> " + PageGameStats::tr("Health graph") + "</h1>");
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    71
    l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    72
    gbl->addWidget(l);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    73
    gbl->addWidget(graphic);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    74
    graphic->scale(1.0, -1.0);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    75
    graphic->setBackgroundBrush(QBrush(Qt::black));
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    76
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    77
    labelGameWin = new QLabel(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    78
    labelGameWin->setTextFormat(Qt::RichText);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    79
    pageLayout->addWidget(labelGameWin, 0, 0, 1, 2);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    80
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    81
    // ranking box
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    82
    gb = new QGroupBox(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    83
    gbl = new QVBoxLayout;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    84
    labelGameRank = new QLabel(gb);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    85
    l = new QLabel(this);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    86
    l->setTextFormat(Qt::RichText);
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
    87
    l->setText("<h1><img src=\":/res/StatsR.png\"> " + PageGameStats::tr("Ranking") + "</h1>");
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    88
    l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    89
    gbl->addWidget(l);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    90
    gbl->addWidget(labelGameRank);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    91
    gb->setLayout(gbl);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    92
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    93
    labelGameRank->setTextFormat(Qt::RichText);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    94
    labelGameRank->setAlignment(Qt::AlignTop);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
    95
    pageLayout->addWidget(gb, 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
    96
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
    97
    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
    98
}
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
    99
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
   100
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
   101
{
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
    QHBoxLayout * bottomLayout = new QHBoxLayout();
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
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
    btnSave = addButton(":/res/Save.png", bottomLayout, 0, true);
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
    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
   106
    bottomLayout->setAlignment(btnSave, Qt::AlignRight | Qt::AlignBottom);
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
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
    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
   109
}
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
   110
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
   111
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
   112
{
8384
a6e7a95f3b2e GCI2012: Abstract Page Load
dag10
parents: 7842
diff changeset
   113
    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
   114
    connect(btnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
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
   115
}
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
   116
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
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
   118
{
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
   119
    initPage();
1621
d1ded2532d3f - svn maintenance
unc0rr
parents:
diff changeset
   120
}
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   121
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   122
void PageGameStats::AddStatText(const QString & msg)
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   123
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   124
    labelGameStats->setText(labelGameStats->text() + msg);
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   125
}
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   126
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   127
void PageGameStats::clear()
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   128
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   129
    labelGameStats->setText("");
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   130
    healthPoints.clear();
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   131
    labelGameRank->setText("");
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   132
    playerPosition = 0;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   133
    lastColor = 0;
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   134
}
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   135
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   136
void PageGameStats::renderStats()
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   137
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   138
    QGraphicsScene * scene = new QGraphicsScene();
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   139
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   140
    QMap<quint32, QVector<quint32> >::const_iterator i = healthPoints.constBegin();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   141
    while (i != healthPoints.constEnd())
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   142
    {
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   143
        quint32 c = i.key();
7842
d1c0e4341165 - Better fix than the one from rc7f5c3bd7f8c. Now just scrolling back till net/nettype/main page. Not tested aswell.
unc0rr
parents: 6952
diff changeset
   144
        //QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   145
        QVector<quint32> hps = i.value();
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   146
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   147
        QPainterPath path;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   148
        if (hps.size())
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   149
            path.moveTo(0, hps[0]);
2377
f3fab2b09e0c And in frontend
nemo
parents: 1904
diff changeset
   150
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   151
        for(int t = 1; t < hps.size(); ++t)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   152
            path.lineTo(t, hps[t]);
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   153
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   154
        scene->addPath(path, QPen(c));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   155
        ++i;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   156
    }
1625
37aae47943ce Initial health graphic implementation
unc0rr
parents: 1623
diff changeset
   157
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   158
    graphic->setScene(scene);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   159
    graphic->fitInView(graphic->sceneRect());
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   160
}
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   161
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   162
void PageGameStats::GameStats(char type, const QString & info)
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   163
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   164
    switch(type)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   165
    {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   166
        case 'r' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   167
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   168
            labelGameWin->setText(QString("<h1 align=\"center\">%1</h1>").arg(info));
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   169
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   170
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   171
        case 'D' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   172
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   173
            int i = info.indexOf(' ');
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
   174
            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.").arg(info.mid(i + 1), info.left(i)) + "</p>";
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   175
            AddStatText(message);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   176
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   177
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   178
        case 'k' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   179
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   180
            int i = info.indexOf(' ');
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   181
            int num = info.left(i).toInt();
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
   182
            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), info.left(i)) + "</p>";
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   183
            AddStatText(message);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   184
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   185
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   186
        case 'K' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   187
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   188
            int num = info.toInt();
3815
8754f7874395 Frontend: improve statsPage (clean up translation strings)
TheXception
parents: 3788
diff changeset
   189
            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
   190
            AddStatText(message);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   191
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   192
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   193
        case 'H' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   194
        {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   195
            int i = info.indexOf(' ');
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   196
            quint32 clan = info.left(i).toInt();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   197
            quint32 hp = info.mid(i + 1).toUInt();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   198
            healthPoints[clan].append(hp);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   199
            break;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   200
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   201
        case 'T':   // local team stats
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   202
        {
3381
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   203
            //AddStatText("<p>local team: " + info + "</p>");
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   204
            QStringList infol = info.split(":");
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   205
            HWTeam team(infol[0]);
6015
daffc14a518a cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents: 6009
diff changeset
   206
            if(team.fileExists()) // do some better test to avoid influence from scripted/predefined teams?
3381
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   207
            {
6015
daffc14a518a cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents: 6009
diff changeset
   208
                team.loadFromFile();
daffc14a518a cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents: 6009
diff changeset
   209
                team.incRounds();
3381
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   210
                if(infol[1].toInt() > 0) // might require some better test for winning condition (or changed flag) ... WIP!
6015
daffc14a518a cleaning up a little bit more, especially team class. we were leaking teams into heap memory on quick game starts btw
sheepluva
parents: 6009
diff changeset
   211
                    team.incWins(); // should draws count as wins?
3381
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   212
                //team.SaveToFile(); // don't save yet
f8800c44b3de Engine:
smxx
parents: 3236
diff changeset
   213
            }
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   214
            break;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   215
        }
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   216
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   217
        case 'P' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   218
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   219
            int i = info.indexOf(' ');
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   220
            playerPosition++;
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   221
            QString color = info.left(i);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   222
            quint32 c = color.toInt();
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   223
            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
   224
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   225
            QString playerinfo = info.mid(i + 1);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   226
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   227
            i = playerinfo.indexOf(' ');
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   228
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   229
            int kills = playerinfo.left(i).toInt();
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   230
            QString playername = playerinfo.mid(i + 1);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   231
            QString image;
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   232
4217
721bfa5f4f31 Fix wrong order in results screen when players team up
TheException
parents: 4192
diff changeset
   233
            if (lastColor == c) playerPosition--;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   234
            lastColor = c;
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   235
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   236
            switch (playerPosition)
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   237
            {
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   238
                case 1:
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   239
                    image = "<img src=\":/res/StatsMedal1.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   240
                    break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   241
                case 2:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   242
                    image = "<img src=\":/res/StatsMedal2.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   243
                    break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   244
                case 3:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   245
                    image = "<img src=\":/res/StatsMedal3.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   246
                    break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   247
                default:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   248
                    image = "<img src=\":/res/StatsMedal4.png\">";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   249
                    break;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   250
            }
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   251
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   252
            QString message;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   253
            QString killstring = PageGameStats::tr("(%1 kill)", "", kills).arg(kills);
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   254
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   255
            message = QString("<p><h2>%1 %2. <font color=\"%4\">%3</font> ").arg(image, QString::number(playerPosition), playername, clanColor.name()) + killstring + "</h2></p>";
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   256
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   257
            labelGameRank->setText(labelGameRank->text() + message);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   258
            break;
4176
4e3942f5827c Fix i18n of plural forms
unc0rr
parents: 3815
diff changeset
   259
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   260
        case 's' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   261
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   262
            int i = info.indexOf(' ');
4177
6acd599eee52 Fix some more messages
unc0rr
parents: 4176
diff changeset
   263
            int num = info.left(i).toInt();
4192
67e1a683e9b3 Fix stats messages
unc0rr
parents: 4177
diff changeset
   264
            QString message = "<p><img src=\":/res/StatsMostSelfDamage.png\"> " + PageGameStats::tr("<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   265
            AddStatText(message);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   266
            break;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   267
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   268
        case 'S' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   269
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   270
            int i = info.indexOf(' ');
4177
6acd599eee52 Fix some more messages
unc0rr
parents: 4176
diff changeset
   271
            int num = info.left(i).toInt();
4192
67e1a683e9b3 Fix stats messages
unc0rr
parents: 4177
diff changeset
   272
            QString message = "<p><img src=\":/res/StatsSelfKilled.png\"> " + PageGameStats::tr("<b>%1</b> killed <b>%2</b> of his own hedgehogs.", "", num).arg(info.mid(i + 1)).arg(num) + "</p>";
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   273
            AddStatText(message);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   274
            break;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   275
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   276
        case 'B' :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   277
        {
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   278
            int i = info.indexOf(' ');
4177
6acd599eee52 Fix some more messages
unc0rr
parents: 4176
diff changeset
   279
            int num = info.left(i).toInt();
4192
67e1a683e9b3 Fix stats messages
unc0rr
parents: 4177
diff changeset
   280
            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)).arg(num) + "</p>";
3788
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   281
            AddStatText(message);
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   282
            break;
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   283
        }
9aa8a832e296 adds prettier after-game statistics page with more stats
TheXception
parents: 3381
diff changeset
   284
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   285
    }
1622
8e0d62727f01 Fully separate statistics code from main form code
unc0rr
parents: 1621
diff changeset
   286
}