QTfrontend/ui/page/pagemain.cpp
author nemo
Wed, 14 Mar 2018 11:36:43 -0400
changeset 13201 25502e6b3e08
parent 11818 b421923c2577
child 13274 e381f5260b45
permissions -rw-r--r--
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     1
/*
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
11046
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10108
diff changeset
     3
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     4
 *
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     8
 *
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    12
 * GNU General Public License for more details.
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    13
 *
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 10017
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    17
 */
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>
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
    24
#include <QSettings>
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    25
5204
e1a5f4d5d86a split pages.h into several header files
koda
parents: 5078
diff changeset
    26
#include "pagemain.h"
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    27
#include "hwconsts.h"
5205
78138ae93820 some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents: 5204
diff changeset
    28
#include "hwform.h"
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
    29
#include "DataManager.h"
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
QLayout * PageMain::bodyLayoutDefinition()
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    32
{
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
    33
    QGridLayout * pageLayout = new QGridLayout();
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    34
    //pageLayout->setColumnStretch(0, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    35
    //pageLayout->setColumnStretch(1, 2);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    36
    //pageLayout->setColumnStretch(2, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    37
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    38
    //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
    39
    //pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    40
    pageLayout->setRowStretch(0, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    41
    pageLayout->setRowStretch(1, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    42
    pageLayout->setRowStretch(2, 0);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    43
    pageLayout->setRowStretch(3, 1);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    44
    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
    45
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    46
    BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    47
    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
    48
    pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    49
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    50
    //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
    51
    BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
6478
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);
8434
4821897a0f10 big indentation/whitespaces cleanup
sheepluva
parents: 8382
diff changeset
    54
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    55
    originalNetworkIcon = BtnNet->icon();
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    56
    disabledNetworkIcon = QIcon(":/res/NetworkPlayDisabled.png");
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    57
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    58
    //QWidget *netLayoutWidget = new QWidget();
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    59
    QVBoxLayout *netLayout = new QVBoxLayout(BtnNet);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    60
    //pageLayout->addWidget(netLayoutWidget, 2, 2, 1, 2);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    61
    //netLayoutWidget->setStyleSheet("background: green;");
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    62
    //netLayoutWidget->setFixedSize(314, 260);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    63
    netLayout->setSpacing(20);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    64
    netLayout->setAlignment(Qt::AlignHCenter);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    65
8693
ab42f868b1c3 *sigh* hopefully there aren't any more of these. add missing tr() to button text
nemo
parents: 8676
diff changeset
    66
    BtnNetLocal = addButton(tr("Play local network game"), (QBoxLayout*)netLayout, 0, false);
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    67
    BtnNetLocal->setWhatsThis(tr("Play a game across a local area network"));
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    68
    BtnNetLocal->setFixedSize(BtnNet->width() - 50, 60);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    69
    BtnNetLocal->setVisible(false);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    70
8693
ab42f868b1c3 *sigh* hopefully there aren't any more of these. add missing tr() to button text
nemo
parents: 8676
diff changeset
    71
    BtnNetOfficial = addButton(tr("Play official network game"), (QBoxLayout*)netLayout, 0, false);
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    72
    BtnNetOfficial->setWhatsThis(tr("Play a game on an official server"));
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    73
    BtnNetOfficial->setFixedSize(BtnNet->width() - 50, 60);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
    74
    BtnNetOfficial->setVisible(false);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    75
6169
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    76
    // 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
    77
    BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    78
    BtnInfo->setStyleSheet("border: transparent;background: transparent;");
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    79
    BtnInfo->setWhatsThis(tr("Read about who is behind the Hedgewars Project"));
6169
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    80
    pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
582f9f61b972 fix overlapping issue in main menu
sheepluva
parents: 6060
diff changeset
    81
8676
c00f1df47cef Add missing feedback button translation
nemo
parents: 8635
diff changeset
    82
    BtnFeedback = addButton(tr("Feedback"), pageLayout, 4, 0, 1, 4, false);
8622
2045bdf1b11b Resolves issue 528. Fixed platform-specific order of buttons on seed prompt and new room prompt. Fixed height of back button on all pages -- now aligns to bottom. On pagemain, feedback and dlc buttons no longer fixed size.
dag10
parents: 8435
diff changeset
    83
    BtnFeedback->setStyleSheet("padding: 5px 10px");
6759
700504a608ff bug #370
nemo
parents: 6700
diff changeset
    84
    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
    85
    pageLayout->setAlignment(BtnFeedback, Qt::AlignHCenter);
d32b5fde9ea6 move the feedback button in a nicer position
koda
parents: 6561
diff changeset
    86
d32b5fde9ea6 move the feedback button in a nicer position
koda
parents: 6561
diff changeset
    87
    BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 5, 0, 1, 4, false);
8622
2045bdf1b11b Resolves issue 528. Fixed platform-specific order of buttons on seed prompt and new room prompt. Fixed height of back button on all pages -- now aligns to bottom. On pagemain, feedback and dlc buttons no longer fixed size.
dag10
parents: 8435
diff changeset
    88
    BtnDataDownload->setStyleSheet("padding: 5px 10px");
6478
752d4fb5e376 cleanup and example
koda
parents: 6477
diff changeset
    89
    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
    90
    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
    91
6583
4218782d8ca0 skip button sound when exiting
bovi
parents: 6582
diff changeset
    92
    // disable exit button sound
4218782d8ca0 skip button sound when exiting
bovi
parents: 6582
diff changeset
    93
    btnBack->isSoundEnabled = false;
4218782d8ca0 skip button sound when exiting
bovi
parents: 6582
diff changeset
    94
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
    95
    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
    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: 5763
diff changeset
    97
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
    98
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
    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: 5763
diff changeset
   100
    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
   101
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   102
    mainNote = new QLabel(this);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   103
    mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   104
    mainNote->setWordWrap(true);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6586
diff changeset
   105
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
   106
    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
   107
    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
   108
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   109
    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
   110
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7235
diff changeset
   111
#ifdef VIDEOREC
11818
b421923c2577 Neatly align all the bottom buttons on the same height
Wuzzy <almikes@aol.com>
parents: 11046
diff changeset
   112
    BtnVideos = addButton(":/res/Videos.png", bottomLayout, 1, true, Qt::AlignBottom);
7620
fa3bc79dc0b8 remove a redundant assignment; whitespace fixes
sheepluva
parents: 7617
diff changeset
   113
    BtnVideos->setWhatsThis(tr("Manage videos recorded from game"));
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7235
diff changeset
   114
#endif
7235
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   115
11818
b421923c2577 Neatly align all the bottom buttons on the same height
Wuzzy <almikes@aol.com>
parents: 11046
diff changeset
   116
    BtnSetup = addButton(":/res/Settings.png", bottomLayout, 2, true, Qt::AlignBottom);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   117
    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
   118
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
   119
    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
   120
}
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
   121
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
   122
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
   123
{
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   124
#ifndef QT_DEBUG
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   125
    connect(this, SIGNAL(pageEnter()), this, SLOT(updateTip()));
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   126
#endif
8435
a59368bd49e7 small cleanup
sheepluva
parents: 8434
diff changeset
   127
    connect(BtnNet, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
8977
d424c7f8b342 Change net button back on leaving main page.
nemo
parents: 8729
diff changeset
   128
    //connect(BtnNetLocal, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
d424c7f8b342 Change net button back on leaving main page.
nemo
parents: 8729
diff changeset
   129
    //connect(BtnNetOfficial, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
8435
a59368bd49e7 small cleanup
sheepluva
parents: 8434
diff changeset
   130
    // TODO: add signal-forwarding required by (currently missing) encapsulation
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
   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
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
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
   134
{
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
    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
   136
8635
c1c6b815691e convert HW_DEV in ifdef DEBUG clauses
koda
parents: 8622
diff changeset
   137
    if(frontendEffects)
c1c6b815691e convert HW_DEV in ifdef DEBUG clauses
koda
parents: 8622
diff changeset
   138
        setAttribute(Qt::WA_NoSystemBackground, true);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   139
    mainNote->setOpenExternalLinks(true);
9212
1d4e1469940b use QT_DEBUG which is always added
koda
parents: 9123
diff changeset
   140
#ifdef QT_DEBUG
8729
b19be476a2fa Call steps on focus instead. fix typo
nemo
parents: 8718
diff changeset
   141
    setDefaultDescription(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!"));
8635
c1c6b815691e convert HW_DEV in ifdef DEBUG clauses
koda
parents: 8622
diff changeset
   142
#else
9123
19c57656460f trying to appease almighty unC0Rr
koda
parents: 9080
diff changeset
   143
    setDefaultDescription(QLabel::tr("Tip: %1").arg(randomTip()));
8635
c1c6b815691e convert HW_DEV in ifdef DEBUG clauses
koda
parents: 8622
diff changeset
   144
#endif
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
   145
}
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
   146
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   147
void PageMain::updateTip()
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   148
{
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   149
    setDefaultDescription(QLabel::tr("Tip: %1").arg(randomTip()));
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   150
}
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   151
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   152
QString PageMain::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
   153
{
8361
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   154
#ifdef _WIN32
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   155
    int platform = 1;
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   156
#elif defined __APPLE__
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   157
    int platform = 2;
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   158
#else
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   159
    int platform = 3;
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   160
#endif
9852
0a5ec79af0a2 Prevent div by zero
unc0rr
parents: 9846
diff changeset
   161
    if(!Tips.length())
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   162
    {
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   163
        DataManager & dataMgr = DataManager::instance();
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
   164
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   165
        // get locale
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   166
        QSettings settings(dataMgr.settingsFileName(),
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   167
                           QSettings::IniFormat);
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
   168
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   169
        QString loc = settings.value("misc/locale", "").toString();
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   170
        if (loc.isEmpty())
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   171
            loc = QLocale::system().name();
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   172
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   173
        QString tipFile = QString("physfs://Locale/tips_" + loc + ".xml");
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
   174
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   175
        // if file is non-existant try with language only
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   176
        if (!QFile::exists(tipFile))
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   177
            tipFile = QString("physfs://Locale/tips_" + loc.remove(QRegExp("_.*$")) + ".xml");
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
   178
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   179
        // fallback if file for current locale is non-existant
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   180
        if (!QFile::exists(tipFile))
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   181
            tipFile = QString("physfs://Locale/tips_en.xml");
9832
b1038b4373cc Localise tips again. Including new german contribution from bug #738. We should look into the old .ts files and see if there are translations that can be recovered.
nemo
parents: 9212
diff changeset
   182
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   183
        QFile file(tipFile);
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   184
        file.open(QIODevice::ReadOnly);
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   185
        QTextStream in(&file);
9846
4dc7cb571e1d I hate windows. This probably fixes text.
nemo
parents: 9835
diff changeset
   186
        in.setCodec("UTF-8");
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   187
        QString line = in.readLine();
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   188
        int tip_platform = 0;
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   189
        while (!line.isNull()) {
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   190
            if(line.contains("<windows-only>", Qt::CaseSensitive))
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   191
                tip_platform = 1;
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   192
            if(line.contains("<mac-only>", Qt::CaseSensitive))
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   193
                tip_platform = 2;
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   194
            if(line.contains("<linux-only>", Qt::CaseSensitive))
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   195
                tip_platform = 3;
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   196
            if(line.contains("</windows-only>", Qt::CaseSensitive) ||
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   197
                    line.contains("</mac-only>", Qt::CaseSensitive) ||
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   198
                    line.contains("</linux-only>", Qt::CaseSensitive)) {
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   199
                tip_platform = 0;
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   200
            }
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   201
            QStringList split_string = line.split(QRegExp("</?tip>"));
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   202
            if((tip_platform == platform || tip_platform == 0) && split_string.size() != 1)
9835
e89b42c55047 Remove some wtfism that was breaking localisation
nemo
parents: 9833
diff changeset
   203
                Tips << split_string[1];
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   204
            line = in.readLine();
8361
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   205
        }
9833
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   206
        // The following tip will require links to app store entries first.
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   207
        //Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   208
        // the ios version is located here: http://itunes.apple.com/us/app/hedgewars/id391234866
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   209
1957c7f92460 Pick random tip from the tip file each time front page is viewed.
nemo
parents: 9832
diff changeset
   210
        file.close();
8361
2831c1403666 Tips are now loaded from an xml file.
martin_bede
parents: 8318
diff changeset
   211
    }
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 10015
diff changeset
   212
9852
0a5ec79af0a2 Prevent div by zero
unc0rr
parents: 9846
diff changeset
   213
    if(Tips.length())
0a5ec79af0a2 Prevent div by zero
unc0rr
parents: 9846
diff changeset
   214
        return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
0a5ec79af0a2 Prevent div by zero
unc0rr
parents: 9846
diff changeset
   215
    else
0a5ec79af0a2 Prevent div by zero
unc0rr
parents: 9846
diff changeset
   216
        return QString();
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   217
}
8318
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   218
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   219
void PageMain::toggleNetworkChoice()
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   220
{
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   221
    bool visible = BtnNetLocal->isVisible();
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   222
    BtnNetLocal->setVisible(!visible);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   223
    BtnNetOfficial->setVisible(!visible);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   224
    if (visible)    BtnNet->setIcon(originalNetworkIcon);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   225
    else            BtnNet->setIcon(disabledNetworkIcon);
e2c01fbf36c0 GCI2012: Beautify Network Page
dag10
parents: 8277
diff changeset
   226
}
8982
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   227
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   228
void PageMain::resetNetworkChoice()
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   229
{
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   230
    BtnNetLocal->setVisible(false);
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   231
    BtnNetOfficial->setVisible(false);
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   232
    BtnNet->setIcon(originalNetworkIcon);
0c0141cf851a Needs to reset net button, not toggle it.
nemo
parents: 8977
diff changeset
   233
}