QTfrontend/ui/page/pagemain.cpp
author koda
Tue, 25 Dec 2012 04:45:22 +0100 (2012-12-25)
branchwebgl
changeset 8330 aaefa587e277
parent 8318 e2c01fbf36c0
child 8444 75db7bb8dce8
permissions -rw-r--r--
update branch with default
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     1
/*
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
6952
7f70f37bbf08 license header year range adjustments
sheepluva
parents: 6759
diff changeset
     3
 * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     4
 *
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     8
 *
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    12
 * GNU General Public License for more details.
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    13
 *
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    17
 */
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
    18
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    19
#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: 5763
diff changeset
    20
#include <QHBoxLayout>
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    21
#include <QPushButton>
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    22
#include <QLabel>
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    23
#include <QTime>
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    24
5204
e1a5f4d5d86a split pages.h into several header files
koda
parents: 5078
diff changeset
    25
#include "pagemain.h"
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    26
#include "hwconsts.h"
5205
78138ae93820 some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents: 5204
diff changeset
    27
#include "hwform.h"
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    28
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: 5763
diff changeset
    29
QLayout * PageMain::bodyLayoutDefinition()
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    30
{
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: 5763
diff changeset
    31
    QGridLayout * pageLayout = new QGridLayout();
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    32
    //pageLayout->setColumnStretch(0, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    33
    //pageLayout->setColumnStretch(1, 2);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    34
    //pageLayout->setColumnStretch(2, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    35
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    36
    //QPushButton* btnLogo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    37
    //pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    38
    pageLayout->setRowStretch(0, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    39
    pageLayout->setRowStretch(1, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    40
    pageLayout->setRowStretch(2, 0);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    41
    pageLayout->setRowStretch(3, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    42
    pageLayout->setRowStretch(4, 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: 5763
diff changeset
    43
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    44
    BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    45
    BtnSinglePlayer->setToolTip(tr("Local Game"));
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    46
    BtnSinglePlayer->setWhatsThis(tr("Play a game on a single computer"));
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    47
    pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    48
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    49
    //BtnNet = addButton(":/res/NetworkPlay.png", (QBoxLayout*)netLayout, 1, true);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    50
    BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    51
    BtnNet->setToolTip(tr("Network Game"));
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    52
    BtnNet->setWhatsThis(tr("Play a game across a network"));
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    53
    pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    54
    connect(BtnNet, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
8330
aaefa587e277 update branch with default
koda
parents: 8318
diff changeset
    55
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    56
    originalNetworkIcon = BtnNet->icon();
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    57
    disabledNetworkIcon = QIcon(":/res/NetworkPlayDisabled.png");
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    58
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    59
    //QWidget *netLayoutWidget = new QWidget();
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    60
    QVBoxLayout *netLayout = new QVBoxLayout(BtnNet);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    61
    //pageLayout->addWidget(netLayoutWidget, 2, 2, 1, 2);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    62
    //netLayoutWidget->setStyleSheet("background: green;");
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    63
    //netLayoutWidget->setFixedSize(314, 260);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    64
    netLayout->setSpacing(20);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    65
    netLayout->setAlignment(Qt::AlignHCenter);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    66
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    67
    BtnNetLocal = addButton("Play local network game", (QBoxLayout*)netLayout, 0, false);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    68
    BtnNetLocal->setToolTip(tr("Play a local network game"));
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    69
    BtnNetLocal->setWhatsThis(tr("Play a game across a local area network"));
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    70
    BtnNetLocal->setFixedSize(BtnNet->width() - 50, 60);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    71
    BtnNetLocal->setVisible(false);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    72
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    73
    BtnNetOfficial = addButton("Play official network game", (QBoxLayout*)netLayout, 0, false);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    74
    BtnNetOfficial->setToolTip(tr("Play a network game"));
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    75
    BtnNetOfficial->setWhatsThis(tr("Play a game on an official server"));
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    76
    BtnNetOfficial->setFixedSize(BtnNet->width() - 50, 60);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    77
    BtnNetOfficial->setVisible(false);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    78
6169
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    79
    // button order matters for overlapping (what's on top and what isn't)
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    80
    BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    81
    BtnInfo->setStyleSheet("border: transparent;background: transparent;");
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    82
    //BtnInfo->setToolTip(tr("Credits")); //tooltip looks horrible with transparent background buttons
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    83
    BtnInfo->setWhatsThis(tr("Read about who is behind the Hedgewars Project"));
6169
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    84
    pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    85
6582
d32b5fde9ea6 move the feedback button in a nicer position
koda
parents: 6561
diff changeset
    86
    BtnFeedback = addButton("Feedback", pageLayout, 4, 0, 1, 4, false);
8277
cd2bae15a9a3 hides the 'email' prompt on the feedback page (as that doesn't work, so it's a misleading/useless feature), makes the "please add your email" text a little nicer and more noticeable, and makes the "feedback" and "downloadable content" buttons on the main menu a little bit larger, and more clickable.
Drew Gottlieb
parents: 8176
diff changeset
    87
    BtnFeedback->setFixedSize(86, 27);
6759
700504a608ff bug #370
nemo
parents: 6700
diff changeset
    88
    BtnFeedback->setWhatsThis(tr("Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars"));
6582
d32b5fde9ea6 move the feedback button in a nicer position
koda
parents: 6561
diff changeset
    89
    pageLayout->setAlignment(BtnFeedback, Qt::AlignHCenter);
d32b5fde9ea6 move the feedback button in a nicer position
koda
parents: 6561
diff changeset
    90
d32b5fde9ea6 move the feedback button in a nicer position
koda
parents: 6561
diff changeset
    91
    BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 5, 0, 1, 4, false);
8277
cd2bae15a9a3 hides the 'email' prompt on the feedback page (as that doesn't work, so it's a misleading/useless feature), makes the "please add your email" text a little nicer and more noticeable, and makes the "feedback" and "downloadable content" buttons on the main menu a little bit larger, and more clickable.
Drew Gottlieb
parents: 8176
diff changeset
    92
    BtnDataDownload->setFixedSize(176, 27);
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    93
    //BtnDataDownload->setToolTip(tr(Downloadable Content"));
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    94
    BtnDataDownload->setWhatsThis(tr("Access the user created content downloadable from our website"));
5763
d7a887c7e2d0 Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents: 5646
diff changeset
    95
    pageLayout->setAlignment(BtnDataDownload, Qt::AlignHCenter);
d7a887c7e2d0 Add a crappy button to encourage artists to make another one. Restore Info page.
nemo
parents: 5646
diff changeset
    96
6583
4218782d8ca0 skip button sound when exiting
bovi
parents: 6582
diff changeset
    97
    // disable exit button sound
4218782d8ca0 skip button sound when exiting
bovi
parents: 6582
diff changeset
    98
    btnBack->isSoundEnabled = false;
4218782d8ca0 skip button sound when exiting
bovi
parents: 6582
diff changeset
    99
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: 5763
diff changeset
   100
    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: 5763
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: 5763
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: 5763
diff changeset
   103
QLayout * PageMain::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: 5763
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: 5763
diff changeset
   105
    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: 5763
diff changeset
   106
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   107
    mainNote = new QLabel(this);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   108
    mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   109
    mainNote->setWordWrap(true);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   110
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: 5763
diff changeset
   111
    bottomLayout->addWidget(mainNote, 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: 5763
diff changeset
   112
    bottomLayout->setStretch(0,1);
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: 5763
diff changeset
   113
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   114
    btnBack->setWhatsThis(tr("Exit game"));
7235
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   115
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7235
diff changeset
   116
#ifdef VIDEOREC
7643
97b98bcfd056 Differentiate videos from demos - navigating between them was too confusing. BTW, why is this on the front page, instead of next to the demos button?
nemo
parents: 7620
diff changeset
   117
    BtnVideos = addButton(":/res/Videos.png", bottomLayout, 1, true);
7620
fa3bc79dc0b8 remove a redundant assignment; whitespace fixes
sheepluva
parents: 7617
diff changeset
   118
    BtnVideos->setWhatsThis(tr("Manage videos recorded from game"));
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7235
diff changeset
   119
#endif
7235
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   120
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   121
    BtnSetup = addButton(":/res/Settings.png", bottomLayout, 2, true);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   122
    BtnSetup->setWhatsThis(tr("Edit game preferences"));
7235
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   123
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: 5763
diff changeset
   124
    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: 5763
diff changeset
   125
}
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: 5763
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: 5763
diff changeset
   127
void PageMain::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: 5763
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: 5763
diff changeset
   129
    //TODO
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: 5763
diff changeset
   130
}
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: 5763
diff changeset
   131
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: 5763
diff changeset
   132
PageMain::PageMain(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: 5763
diff changeset
   133
{
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: 5763
diff changeset
   134
    initPage();
8b5345758f62 some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents: 5763
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: 5763
diff changeset
   136
    if(frontendEffects) setAttribute(Qt::WA_NoSystemBackground, true);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   137
    mainNote->setOpenExternalLinks(true);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   138
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   139
    if(!isDevBuild)
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   140
    {
6477
ad5741c252b9 GCI task: describez
Oranger
parents: 6169
diff changeset
   141
        setDefautDescription(QLabel::tr("Tip: ") + randomTip());
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: 5763
diff changeset
   142
    }
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: 5763
diff changeset
   143
    else
6477
ad5741c252b9 GCI task: describez
Oranger
parents: 6169
diff changeset
   144
    {
8176
556e7027e9e1 shorten tip
koda
parents: 8048
diff changeset
   145
        setDefautDescription(QLabel::tr("This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!"));
6477
ad5741c252b9 GCI task: describez
Oranger
parents: 6169
diff changeset
   146
    }
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: 5763
diff changeset
   147
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: 5763
diff changeset
   148
}
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: 5763
diff changeset
   149
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: 5763
diff changeset
   150
QString PageMain::randomTip() const
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: 5763
diff changeset
   151
{
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: 5763
diff changeset
   152
    QStringList Tips;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   153
    Tips << tr("Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they'll win or lose together.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   154
    Tips << tr("Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   155
    Tips << tr("If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   156
    Tips << tr("Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   157
    Tips << tr("If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   158
    Tips << tr("You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   159
    Tips << tr("By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   160
    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If you've got problems, ask on our forums but please don't expect 24/7 support!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   161
    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   162
    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   163
    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   164
    Tips << tr("From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   165
    Tips << tr("Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   166
    Tips << tr("Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   167
    Tips << tr("Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   168
    Tips << tr("Connect one or more gamepads before starting the game to be able to assign their controls to your teams.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   169
    Tips << tr("Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.", "Tips").arg("<a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a>");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   170
    Tips << tr("While playing you should give yourself a short break at least once an hour.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   171
    Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   172
    Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   173
    Tips << tr("We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   174
    Tips << tr("Especially while playing online be polite and always remember there might be some minors playing with or against you as well!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   175
    Tips << tr("Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   176
    Tips << tr("The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   177
    Tips << tr("You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   178
    Tips << tr("Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   179
    Tips << tr("No hedgehogs were harmed in making this game.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   180
    Tips << tr("There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   181
    Tips << tr("Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   182
    Tips << tr("Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   183
    Tips << tr("Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   184
    Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   185
    Tips << tr("The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   186
    Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   187
    Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   188
    Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   189
    Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   190
    Tips << tr("The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   191
    Tips << tr("The Flame Thrower is a weapon but it can be used for tunnel digging as well.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   192
    Tips << tr("Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   193
    Tips << tr("Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   194
    Tips << tr("Like Hedgewars? Become a fan on %1 or follow us on %2!", "Tips").arg("<a href=\"http://www.facebook.com/Hedgewars\">Facebook</a>").arg("<a href=\"http://twitter.com/hedgewars\">Twitter</a>");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   195
    Tips << tr("Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   196
    Tips << tr("Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   197
    // The following tip will require links to app store entries first.
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   198
    //Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   199
    // the ios version is located here: http://itunes.apple.com/us/app/hedgewars/id391234866
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   200
    Tips << tr("Keep your video card drivers up to date to avoid issues playing the game.", "Tips");
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   201
    Tips << tr("You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.", "Tips");
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   202
#ifdef _WIN32
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   203
    Tips << tr("You can find your Hedgewars configuration files under \"My Documents\\Hedgewars\". Create backups or take the files with you, but don't edit them by hand.", "Tips");
5646
1d44c448cfa4 enable a tip on osx, remove trailing whitespaces
koda
parents: 5409
diff changeset
   204
#elif defined __APPLE__
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   205
    Tips << tr("You can find your Hedgewars configuration files under \"Library/Application Support/Hedgewars\" in your home directory. Create backups or take the files with you, but don't edit them by hand.", "Tips");
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: 5763
diff changeset
   206
#else
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   207
    Tips << tr("You can find your Hedgewars configuration files under \".hedgewars\" in your home directory. Create backups or take the files with you, but don't edit them by hand.", "Tips");
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   208
#endif
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   209
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   210
    return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   211
}
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   212
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   213
void PageMain::toggleNetworkChoice()
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   214
{
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   215
    bool visible = BtnNetLocal->isVisible();
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   216
    BtnNetLocal->setVisible(!visible);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   217
    BtnNetOfficial->setVisible(!visible);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   218
    if (visible)    BtnNet->setIcon(originalNetworkIcon);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   219
    else            BtnNet->setIcon(disabledNetworkIcon);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   220
}