QTfrontend/ui_hwform.cpp
author Wuzzy <Wuzzy2@mail.ru>
Thu, 15 Mar 2018 21:15:16 +0100
changeset 13221 02bf6902eeb0
parent 11046 47a8c19ecb60
permissions -rw-r--r--
Remove Qt SVG and Qt OpenGL as hard dependencies Qt SVG is not used in the frontend (no SVGs are rendered). Neither is Qt OpenGL used. Qt OpenGL is discouraged anyway.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 883
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>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     4
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     8
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    12
 * GNU General Public License for more details.
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    13
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    15
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 9998
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    17
 */
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    18
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    19
#include <QVBoxLayout>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    20
#include <QGridLayout>
471
e1eb64ba5e9c Small cleanup, faster compilation as a result
unc0rr
parents: 306
diff changeset
    21
#include <QMainWindow>
e1eb64ba5e9c Small cleanup, faster compilation as a result
unc0rr
parents: 306
diff changeset
    22
#include <QStackedLayout>
e1eb64ba5e9c Small cleanup, faster compilation as a result
unc0rr
parents: 306
diff changeset
    23
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    24
#include "ui_hwform.h"
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 1950
diff changeset
    25
#include "hwform.h"
5204
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    26
#include "pagenet.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    27
#include "pagetraining.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    28
#include "pagenetserver.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    29
#include "pageoptions.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    30
#include "pageingame.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    31
#include "pagescheme.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    32
#include "pageroomslist.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    33
#include "pageinfo.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    34
#include "pagenetgame.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    35
#include "pageeditteam.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    36
#include "pagedrawmap.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    37
#include "pageadmin.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    38
#include "pageconnecting.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    39
#include "pagemultiplayer.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    40
#include "pagesingleplayer.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    41
#include "pageselectweapon.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    42
#include "pagecampaign.h"
e1a5f4d5d86a split pages.h into several header files
koda
parents: 4976
diff changeset
    43
#include "pagemain.h"
5205
78138ae93820 some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents: 5204
diff changeset
    44
#include "pagegamestats.h"
78138ae93820 some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents: 5204
diff changeset
    45
#include "pageplayrecord.h"
5567
44c9a577b082 Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents: 5205
diff changeset
    46
#include "pagedata.h"
7235
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    47
#include "pagevideos.h"
1542
b755ddb0bae8 Show version info in caption
unc0rr
parents: 1311
diff changeset
    48
#include "hwconsts.h"
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    49
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 1950
diff changeset
    50
void Ui_HWForm::setupUi(HWForm *HWForm)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    51
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    52
    SetupFonts();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    53
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    54
    HWForm->setObjectName(QString::fromUtf8("HWForm"));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    55
    HWForm->resize(QSize(640, 480).expandedTo(HWForm->minimumSizeHint()));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    56
    HWForm->setMinimumSize(QSize(720, 450));
8635
c1c6b815691e convert HW_DEV in ifdef DEBUG clauses
koda
parents: 8613
diff changeset
    57
    QString title = QMainWindow::tr("Hedgewars %1").arg(*cVersionString);
9212
1d4e1469940b use QT_DEBUG which is always added
koda
parents: 9122
diff changeset
    58
#ifdef QT_DEBUG
9122
8f5f389184b5 sheepluva asked, one less gci task to do
koda
parents: 9080
diff changeset
    59
    title += QString("-r%1 (%2)").arg(*cRevisionString, *cHashString);
8635
c1c6b815691e convert HW_DEV in ifdef DEBUG clauses
koda
parents: 8613
diff changeset
    60
#endif
8613
82c649dfc7c3 split cVersionString into its three separate components (version, revision, hash) and apply the new values sensibly on the frontend (esp. title, info and feedback)
koda
parents: 8385
diff changeset
    61
    HWForm->setWindowTitle(title);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    62
    centralWidget = new QWidget(HWForm);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    63
    centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    64
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7235
diff changeset
    65
    SetupPages(centralWidget);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    66
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    67
    HWForm->setCentralWidget(centralWidget);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    68
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    69
    Pages->setCurrentIndex(0);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    70
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    71
    QMetaObject::connectSlotsByName(HWForm);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    72
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    73
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    74
void Ui_HWForm::SetupFonts()
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    75
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    76
    font14 = new QFont("MS Shell Dlg", 14);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    77
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    78
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7235
diff changeset
    79
void Ui_HWForm::SetupPages(QWidget *Parent)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    80
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    81
    Pages = new QStackedLayout(Parent);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    82
6165
6fe3e922246e moving and renaming SDLs.*, making it a singleton; cleaning up class responsibilties wrt SDLInteraction; some comments
sheepluva
parents: 5567
diff changeset
    83
    pageEditTeam = new PageEditTeam(Parent);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    84
    Pages->addWidget(pageEditTeam);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    85
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    86
    pageOptions = new PageOptions();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    87
    Pages->addWidget(pageOptions);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    88
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    89
    pageMultiplayer = new PageMultiplayer();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    90
    Pages->addWidget(pageMultiplayer);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    91
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    92
    pagePlayDemo = new PagePlayDemo();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    93
    Pages->addWidget(pagePlayDemo);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    94
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    95
    pageNet = new PageNet();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    96
    Pages->addWidget(pageNet);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    97
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7235
diff changeset
    98
    pageNetGame = new PageNetGame(Parent);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
    99
    Pages->addWidget(pageNetGame);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   100
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   101
    pageInfo = new PageInfo();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   102
    Pages->addWidget(pageInfo);
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   103
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   104
    pageMain = new PageMain();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   105
    Pages->addWidget(pageMain);
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 187
diff changeset
   106
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   107
    pageGameStats = new PageGameStats();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   108
    Pages->addWidget(pageGameStats);
586
ecb6347dfeca Prepare to new page 'Training'
unc0rr
parents: 585
diff changeset
   109
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   110
    pageSinglePlayer = new PageSinglePlayer();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   111
    Pages->addWidget(pageSinglePlayer);
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
   112
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   113
    pageTraining = new PageTraining();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   114
    Pages->addWidget(pageTraining);
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 587
diff changeset
   115
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   116
    pageSelectWeapon = new PageSelectWeapon();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   117
    Pages->addWidget(pageSelectWeapon);
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 600
diff changeset
   118
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   119
    pageNetServer = new PageNetServer();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   120
    Pages->addWidget(pageNetServer);
686
494b5880989a - Header cleanup in game.cpp
unc0rr
parents: 646
diff changeset
   121
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   122
    pageInGame = new PageInGame();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   123
    Pages->addWidget(pageInGame);
1311
49beb1221c0b - Add stub page for rooms list
unc0rr
parents: 1158
diff changeset
   124
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7235
diff changeset
   125
    pageRoomsList = new PageRoomsList(Parent);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   126
    Pages->addWidget(pageRoomsList);
1800
f1df2eb32a16 "connecting" page
unc0rr
parents: 1644
diff changeset
   127
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   128
    pageConnecting = new PageConnecting();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   129
    Pages->addWidget(pageConnecting);
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1800
diff changeset
   130
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   131
    pageScheme = new PageScheme();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   132
    Pages->addWidget(pageScheme);
1905
b1ec8db513f2 - Use QCryptographicHash for md5
unc0rr
parents: 1884
diff changeset
   133
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   134
    pageAdmin = new PageAdmin();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2773
diff changeset
   135
    Pages->addWidget(pageAdmin);
1950
09ad18a1be11 Implement two buttons
unc0rr
parents: 1905
diff changeset
   136
3760
d30f1ba768d7 Frontend:
smaxx
parents: 3236
diff changeset
   137
    pageCampaign = new PageCampaign();
d30f1ba768d7 Frontend:
smaxx
parents: 3236
diff changeset
   138
    Pages->addWidget(pageCampaign);
4500
22d06b4be225 Add a stub for draw map page
unc0rr
parents: 3760
diff changeset
   139
22d06b4be225 Add a stub for draw map page
unc0rr
parents: 3760
diff changeset
   140
    pageDrawMap = new PageDrawMap();
22d06b4be225 Add a stub for draw map page
unc0rr
parents: 3760
diff changeset
   141
    Pages->addWidget(pageDrawMap);
5567
44c9a577b082 Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents: 5205
diff changeset
   142
44c9a577b082 Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents: 5205
diff changeset
   143
    pageDataDownload = new PageDataDownload();
44c9a577b082 Tiny bit of progress on download page - hooked it up to "Info" button for now.
nemo
parents: 5205
diff changeset
   144
    Pages->addWidget(pageDataDownload);
6561
b2165583cdf5 GCI task: feedback is important
valnut
parents: 6165
diff changeset
   145
7235
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   146
    pageVideos = new PageVideos();
baa69bd025d9 1. Implement new page in frontend with options for video recording.
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
   147
    Pages->addWidget(pageVideos);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   148
}