author | Wuzzy <Wuzzy2@mail.ru> |
Mon, 19 Mar 2018 15:44:39 +0100 | |
changeset 13255 | 7f8f2c77a9cc |
parent 13254 | 1381ce67a781 |
child 13256 | 0cfa8f6a4e80 |
permissions | -rw-r--r-- |
184 | 1 |
/* |
1066 | 2 |
* Hedgewars, a free turn based strategy game |
6700 | 3 |
* Copyright (c) 2006-2012 Igor Ulyanov <iulyanov@gmail.com> |
184 | 4 |
* |
5 |
* This program is free software; you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU General Public License as published by |
|
7 |
* the Free Software Foundation; version 2 of the License |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
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:
9745
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
184 | 17 |
*/ |
18 |
||
10462
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
19 |
#include <QBitmap> |
184 | 20 |
#include <QBuffer> |
21 |
#include <QColor> |
|
8377 | 22 |
#include <QDebug> |
23 |
#include <QFile> |
|
24 |
#include <QFileDialog> |
|
10462
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
25 |
#include <QIcon> |
8377 | 26 |
#include <QInputDialog> |
10462
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
27 |
#include <QLabel> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
28 |
#include <QLinearGradient> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
29 |
#include <QLineEdit> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
30 |
#include <QListView> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
31 |
#include <QListWidget> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
32 |
#include <QListWidgetItem> |
8377 | 33 |
#include <QMessageBox> |
10462
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
34 |
#include <QPainter> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
35 |
#include <QPushButton> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
36 |
#include <QSlider> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
37 |
#include <QStringListModel> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
38 |
#include <QTextStream> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
39 |
#include <QUuid> |
dd3cf0c91cc9
A slider for controlling things like bumpiness of map and tunnel sizes.
nemo
parents:
10394
diff
changeset
|
40 |
#include <QVBoxLayout> |
249 | 41 |
|
42 |
#include "hwconsts.h" |
|
788
00720357601f
- Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents:
682
diff
changeset
|
43 |
#include "mapContainer.h" |
8377 | 44 |
#include "themeprompt.h" |
45 |
#include "seedprompt.h" |
|
1209 | 46 |
#include "igbox.h" |
5252 | 47 |
#include "HWApplication.h" |
7258 | 48 |
#include "ThemeModel.h" |
184 | 49 |
|
8377 | 50 |
|
51 |
||
184 | 52 |
HWMapContainer::HWMapContainer(QWidget * parent) : |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
53 |
QWidget(parent), |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
54 |
mainLayout(this), |
3133 | 55 |
pMap(0), |
7017
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
56 |
mapgen(MAPGEN_REGULAR), |
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
57 |
m_previewSize(256, 128) |
184 | 58 |
{ |
9739
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
59 |
// don't show preview anything until first show event |
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
60 |
m_previewEnabled = false; |
9744 | 61 |
m_missionsViewSetup = false; |
62 |
m_staticViewSetup = false; |
|
10159 | 63 |
m_script = QString(); |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
64 |
m_prevMapFeatureSize = 12; |
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
65 |
m_mapFeatureSize = 12; |
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
66 |
m_withoutDLC = false; |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
67 |
m_missingMap = false; |
9739
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
68 |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
69 |
hhSmall.load(":/res/hh_small.png"); |
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
70 |
hhLimit = 18; |
1797 | 71 |
templateFilter = 0; |
8377 | 72 |
m_master = true; |
2377 | 73 |
|
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
74 |
linearGradNormal = QLinearGradient(QPoint(128, 0), QPoint(128, 128)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
75 |
linearGradNormal.setColorAt(1, QColor(0, 0, 192)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
76 |
linearGradNormal.setColorAt(0, QColor(66, 115, 225)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
77 |
|
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
78 |
linearGradLoading = QLinearGradient(QPoint(128, 0), QPoint(128, 128)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
79 |
linearGradLoading.setColorAt(1, QColor(58, 58, 137)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
80 |
linearGradLoading.setColorAt(0, QColor(90, 109, 153)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
81 |
|
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
82 |
linearGradMapError = QLinearGradient(QPoint(128, 0), QPoint(128, 128)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
83 |
linearGradMapError.setColorAt(1, QColor(255, 1, 0)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
84 |
linearGradMapError.setColorAt(0, QColor(255, 119, 0)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
85 |
|
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
86 |
linearGradNoPreview = QLinearGradient(QPoint(128, 0), QPoint(128, 128)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
87 |
linearGradNoPreview.setColorAt(1, QColor(15, 9, 72)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
88 |
linearGradNoPreview.setColorAt(0, QColor(15, 9, 72)); |
7017
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
89 |
|
5252 | 90 |
mainLayout.setContentsMargins(HWApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin), |
8424
225ede46e3dc
On pagenetgame, when window is too small the map/game options becomes a tabbed interface to allow for a few lines of chat to always be visible.
dag10
parents:
8401
diff
changeset
|
91 |
10, |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
92 |
HWApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin), |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
93 |
HWApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin)); |
2377 | 94 |
|
8377 | 95 |
m_staticMapModel = DataManager::instance().staticMapModel(); |
96 |
m_missionMapModel = DataManager::instance().missionMapModel(); |
|
97 |
m_themeModel = DataManager::instance().themeModel(); |
|
4557
4004bef2aa9d
fix layout in game config widget as per nemo's request
Henek
parents:
4550
diff
changeset
|
98 |
|
8377 | 99 |
/* Layouts */ |
249 | 100 |
|
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
101 |
QWidget * topWidget = new QWidget(); |
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
102 |
QHBoxLayout * topLayout = new QHBoxLayout(topWidget); |
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
103 |
topWidget->setContentsMargins(0, 0, 0, 0); |
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
104 |
topLayout->setContentsMargins(0, 0, 0, 0); |
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
105 |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
106 |
twoColumnLayout = new QHBoxLayout(); |
8377 | 107 |
QVBoxLayout * leftLayout = new QVBoxLayout(); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
108 |
leftLayout->setAlignment(Qt::AlignLeft); |
8377 | 109 |
QVBoxLayout * rightLayout = new QVBoxLayout(); |
110 |
twoColumnLayout->addLayout(leftLayout, 0); |
|
111 |
twoColumnLayout->addLayout(rightLayout, 0); |
|
112 |
QVBoxLayout * drawnControls = new QVBoxLayout(); |
|
113 |
||
13228
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
114 |
/* Map type label */ |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
115 |
|
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
116 |
QLabel* lblMapType = new QLabel(tr("Map type:")); |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
117 |
topLayout->setSpacing(10); |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
118 |
topLayout->addWidget(lblMapType, 0); |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
119 |
m_childWidgets << lblMapType; |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
120 |
|
8377 | 121 |
/* Map type combobox */ |
4487 | 122 |
|
8377 | 123 |
cType = new QComboBox(this); |
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
124 |
topLayout->addWidget(cType, 1); |
8377 | 125 |
cType->insertItem(0, tr("Image map"), MapModel::StaticMap); |
126 |
cType->insertItem(1, tr("Mission map"), MapModel::MissionMap); |
|
127 |
cType->insertItem(2, tr("Hand-drawn"), MapModel::HandDrawnMap); |
|
128 |
cType->insertItem(3, tr("Randomly generated"), MapModel::GeneratedMap); |
|
129 |
cType->insertItem(4, tr("Random maze"), MapModel::GeneratedMaze); |
|
10391 | 130 |
cType->insertItem(5, tr("Random perlin"), MapModel::GeneratedPerlin); |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
131 |
cType->insertItem(6, tr("Forts"), MapModel::FortsMap); |
8377 | 132 |
connect(cType, SIGNAL(currentIndexChanged(int)), this, SLOT(mapTypeChanged(int))); |
133 |
m_childWidgets << cType; |
|
249 | 134 |
|
8377 | 135 |
/* Randomize button */ |
1802 | 136 |
|
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
137 |
topLayout->addStretch(1); |
8377 | 138 |
const QIcon& lp = QIcon(":/res/dice.png"); |
139 |
QSize sz = lp.actualSize(QSize(65535, 65535)); |
|
140 |
btnRandomize = new QPushButton(); |
|
141 |
btnRandomize->setText(tr("Random")); |
|
142 |
btnRandomize->setIcon(lp); |
|
143 |
btnRandomize->setFixedHeight(30); |
|
144 |
btnRandomize->setIconSize(sz); |
|
145 |
btnRandomize->setFlat(true); |
|
146 |
btnRandomize->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); |
|
147 |
connect(btnRandomize, SIGNAL(clicked()), this, SLOT(setRandomMap())); |
|
11785 | 148 |
|
8377 | 149 |
m_childWidgets << btnRandomize; |
150 |
btnRandomize->setStyleSheet("padding: 5px;"); |
|
151 |
btnRandomize->setFixedHeight(cType->height()); |
|
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
152 |
topLayout->addWidget(btnRandomize, 1); |
1802 | 153 |
|
8377 | 154 |
/* Seed button */ |
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
155 |
|
8377 | 156 |
btnSeed = new QPushButton(parentWidget()->parentWidget()); |
157 |
btnSeed->setText(tr("Seed")); |
|
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
158 |
btnSeed->setWhatsThis(tr("View and edit the seed, the source of randomness in the game")); |
8377 | 159 |
btnSeed->setStyleSheet("padding: 5px;"); |
160 |
btnSeed->setFixedHeight(cType->height()); |
|
161 |
connect(btnSeed, SIGNAL(clicked()), this, SLOT(showSeedPrompt())); |
|
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
162 |
topLayout->addWidget(btnSeed, 0); |
1802 | 163 |
|
8377 | 164 |
/* Map preview label */ |
165 |
||
166 |
QLabel * lblMapPreviewText = new QLabel(this); |
|
167 |
lblMapPreviewText->setText(tr("Map preview:")); |
|
8424
225ede46e3dc
On pagenetgame, when window is too small the map/game options becomes a tabbed interface to allow for a few lines of chat to always be visible.
dag10
parents:
8401
diff
changeset
|
168 |
leftLayout->addWidget(lblMapPreviewText, 0); |
13228
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
169 |
m_childWidgets << lblMapPreviewText; |
8377 | 170 |
|
171 |
/* Map Preview */ |
|
4562 | 172 |
|
8467 | 173 |
mapPreview = new QPushButton(this); |
8377 | 174 |
mapPreview->setObjectName("mapPreview"); |
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
175 |
mapPreview->setFlat(true); |
10161 | 176 |
mapPreview->setFixedSize(256 + 6, 128 + 6); |
8467 | 177 |
mapPreview->setContentsMargins(0, 0, 0, 0); |
8377 | 178 |
leftLayout->addWidget(mapPreview, 0); |
8467 | 179 |
connect(mapPreview, SIGNAL(clicked()), this, SLOT(previewClicked())); |
13228
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
180 |
m_childWidgets << mapPreview; |
8377 | 181 |
|
182 |
/* Bottom-Left layout */ |
|
3133 | 183 |
|
8377 | 184 |
QVBoxLayout * bottomLeftLayout = new QVBoxLayout(); |
185 |
leftLayout->addLayout(bottomLeftLayout, 1); |
|
186 |
||
187 |
/* Map list label */ |
|
188 |
||
10394 | 189 |
lblMapList = new QLabel(this); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
190 |
lblMapList->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
191 |
lblMapList->setAlignment(Qt::AlignTop | Qt::AlignLeft); |
8377 | 192 |
rightLayout->addWidget(lblMapList, 0); |
13228
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
193 |
m_childWidgets << lblMapList; |
8377 | 194 |
|
195 |
/* Static maps list */ |
|
1248 | 196 |
|
10394 | 197 |
staticMapList = new QListView(this); |
8377 | 198 |
rightLayout->addWidget(staticMapList, 1); |
199 |
m_childWidgets << staticMapList; |
|
5289
9d18b61bd3eb
- Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5252
diff
changeset
|
200 |
|
8377 | 201 |
/* Mission maps list */ |
1802 | 202 |
|
9744 | 203 |
missionMapList = new QListView(this); |
8377 | 204 |
rightLayout->addWidget(missionMapList, 1); |
205 |
m_childWidgets << missionMapList; |
|
206 |
||
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
207 |
/* Map name (when not room master) */ |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
208 |
/* We use a QTextEdit instead of QLabel because it is able |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
209 |
to wrap at any character. */ |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
210 |
teMapName = new QTextEdit(this); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
211 |
teMapName->setObjectName("mapName"); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
212 |
teMapName->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
213 |
teMapName->setAlignment(Qt::AlignTop | Qt::AlignLeft); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
214 |
|
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
215 |
/* Boilerplate to emulate a QLabel */ |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
216 |
teMapName->setReadOnly(true); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
217 |
teMapName->setAcceptRichText(false); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
218 |
teMapName->setFrameStyle(QFrame::NoFrame); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
219 |
QPalette pal = QPalette(qApp->palette()); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
220 |
pal.setColor(QPalette::Base, Qt::transparent); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
221 |
teMapName->setPalette(pal); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
222 |
|
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
223 |
teMapName->setLineWrapMode(QTextEdit::WidgetWidth); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
224 |
teMapName->setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
225 |
|
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
226 |
rightLayout->addWidget(teMapName, 1); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
227 |
m_childWidgets << teMapName; |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
228 |
|
8377 | 229 |
/* Map load and edit buttons */ |
230 |
||
231 |
drawnControls->addStretch(1); |
|
2377 | 232 |
|
8377 | 233 |
btnLoadMap = new QPushButton(tr("Load map drawing")); |
234 |
btnLoadMap->setStyleSheet("padding: 20px;"); |
|
235 |
drawnControls->addWidget(btnLoadMap, 0); |
|
236 |
m_childWidgets << btnLoadMap; |
|
237 |
connect(btnLoadMap, SIGNAL(clicked()), this, SLOT(loadDrawing())); |
|
238 |
||
239 |
btnEditMap = new QPushButton(tr("Edit map drawing")); |
|
240 |
btnEditMap->setStyleSheet("padding: 20px;"); |
|
241 |
drawnControls->addWidget(btnEditMap, 0); |
|
242 |
m_childWidgets << btnEditMap; |
|
243 |
connect(btnEditMap, SIGNAL(clicked()), this, SIGNAL(drawMapRequested())); |
|
244 |
||
245 |
drawnControls->addStretch(1); |
|
246 |
||
247 |
rightLayout->addLayout(drawnControls); |
|
248 |
||
249 |
/* Generator style list */ |
|
2377 | 250 |
|
10394 | 251 |
generationStyles = new QListWidget(this); |
8377 | 252 |
new QListWidgetItem(tr("All"), generationStyles); |
253 |
new QListWidgetItem(tr("Small"), generationStyles); |
|
254 |
new QListWidgetItem(tr("Medium"), generationStyles); |
|
255 |
new QListWidgetItem(tr("Large"), generationStyles); |
|
256 |
new QListWidgetItem(tr("Cavern"), generationStyles); |
|
257 |
new QListWidgetItem(tr("Wacky"), generationStyles); |
|
258 |
connect(generationStyles, SIGNAL(currentRowChanged(int)), this, SLOT(setTemplateFilter(int))); |
|
259 |
m_childWidgets << generationStyles; |
|
260 |
rightLayout->addWidget(generationStyles, 1); |
|
261 |
||
262 |
/* Maze style list */ |
|
4557
4004bef2aa9d
fix layout in game config widget as per nemo's request
Henek
parents:
4550
diff
changeset
|
263 |
|
10394 | 264 |
mazeStyles = new QListWidget(this); |
8377 | 265 |
new QListWidgetItem(tr("Small tunnels"), mazeStyles); |
266 |
new QListWidgetItem(tr("Medium tunnels"), mazeStyles); |
|
8695 | 267 |
new QListWidgetItem(tr("Large tunnels"), mazeStyles); |
8377 | 268 |
new QListWidgetItem(tr("Small islands"), mazeStyles); |
269 |
new QListWidgetItem(tr("Medium islands"), mazeStyles); |
|
270 |
new QListWidgetItem(tr("Large islands"), mazeStyles); |
|
271 |
connect(mazeStyles, SIGNAL(currentRowChanged(int)), this, SLOT(setMazeSize(int))); |
|
272 |
m_childWidgets << mazeStyles; |
|
273 |
rightLayout->addWidget(mazeStyles, 1); |
|
4557
4004bef2aa9d
fix layout in game config widget as per nemo's request
Henek
parents:
4550
diff
changeset
|
274 |
|
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
275 |
mapFeatureSize = new QSlider(Qt::Horizontal, this); |
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
276 |
mapFeatureSize->setObjectName("mapFeatureSize"); |
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
277 |
//mapFeatureSize->setTickPosition(QSlider::TicksBelow); |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
278 |
mapFeatureSize->setMaximum(25); |
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
279 |
mapFeatureSize->setMinimum(1); |
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
280 |
//mapFeatureSize->setFixedWidth(259); |
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
281 |
mapFeatureSize->setValue(m_mapFeatureSize); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
282 |
mapFeatureSize->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); |
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
283 |
bottomLeftLayout->addWidget(mapFeatureSize, 0); |
10480 | 284 |
connect(mapFeatureSize, SIGNAL(valueChanged(int)), this, SLOT(setFeatureSize(int))); |
10521 | 285 |
m_childWidgets << mapFeatureSize; |
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
286 |
|
8377 | 287 |
/* Mission description */ |
4557
4004bef2aa9d
fix layout in game config widget as per nemo's request
Henek
parents:
4550
diff
changeset
|
288 |
|
8377 | 289 |
lblDesc = new QLabel(); |
290 |
lblDesc->setWordWrap(true); |
|
291 |
lblDesc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
292 |
lblDesc->setAlignment(Qt::AlignBottom | Qt::AlignLeft); |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
293 |
lblDesc->setStyleSheet("font: 10px;"); |
8467 | 294 |
bottomLeftLayout->addWidget(lblDesc, 100); |
8377 | 295 |
|
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
296 |
/* Add stretch above theme button */ |
8377 | 297 |
|
298 |
bottomLeftLayout->addStretch(1); |
|
299 |
||
300 |
/* Theme chooser */ |
|
11910
245163aa3674
Fix Qt warnings about QLayout (Fixes #127)
Wuzzy <almikes@aol.com>
parents:
11864
diff
changeset
|
301 |
QHBoxLayout * themeHBox = new QHBoxLayout(); |
11785 | 302 |
|
303 |
btnRandTheme = new QPushButton(); |
|
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
304 |
btnRandTheme->setWhatsThis(tr("Randomize the theme")); |
11785 | 305 |
btnRandTheme->setIcon(lp); |
306 |
btnRandTheme->setIconSize(QSize(24, 24)); |
|
307 |
btnRandTheme->setFixedHeight(30); |
|
308 |
btnRandTheme->setFixedWidth(30); |
|
309 |
connect(btnRandTheme, SIGNAL(clicked()), this, SLOT(setRandomTheme())); |
|
11864
bff919afc63f
fix a typo back from may that apparently completely broke online-multiplayer due to causing a frontend crash on joining somebody else's room
sheepluva
parents:
11811
diff
changeset
|
310 |
m_childWidgets << btnRandTheme; |
11785 | 311 |
themeHBox->addWidget(btnRandTheme, 0); |
1215 | 312 |
|
10394 | 313 |
btnTheme = new QPushButton(this); |
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
314 |
btnTheme->setWhatsThis(tr("Choose a theme")); |
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
315 |
btnTheme->setFlat(true); |
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
316 |
btnTheme->setIconSize(QSize(30, 30)); |
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
317 |
btnTheme->setFixedHeight(30); |
11785 | 318 |
btnTheme->setMaximumWidth(222); |
8377 | 319 |
connect(btnTheme, SIGNAL(clicked()), this, SLOT(showThemePrompt())); |
320 |
m_childWidgets << btnTheme; |
|
11785 | 321 |
themeHBox->addWidget(btnTheme, 1); |
322 |
||
323 |
bottomLeftLayout->addLayout(themeHBox); |
|
4699 | 324 |
|
8377 | 325 |
/* Add everything to main layout */ |
326 |
||
8886
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
327 |
mainLayout.addWidget(topWidget, 0); |
5c521d1fdd63
Fixed map preview overlap on certain locales (Fixes issue 549).
dag10
parents:
8695
diff
changeset
|
328 |
mainLayout.addLayout(twoColumnLayout, 1); |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
329 |
|
8377 | 330 |
/* Set defaults */ |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
331 |
|
8377 | 332 |
setRandomSeed(); |
333 |
setMazeSize(0); |
|
334 |
setTemplateFilter(0); |
|
335 |
staticMapChanged(m_staticMapModel->index(0, 0)); |
|
336 |
missionMapChanged(m_missionMapModel->index(0, 0)); |
|
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
337 |
changeMapType(MapModel::GeneratedMap); |
184 | 338 |
} |
339 |
||
10161 | 340 |
void HWMapContainer::setImage(const QPixmap &newImage) |
184 | 341 |
{ |
10161 | 342 |
addInfoToPreview(newImage); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
343 |
pMap = 0; |
8377 | 344 |
|
345 |
cType->setEnabled(isMaster()); |
|
249 | 346 |
} |
347 |
||
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
348 |
void HWMapContainer::setImage(const QPixmap &newImage, const QLinearGradient &linearGrad, bool showHHLimit) |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
349 |
{ |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
350 |
addInfoToPreview(newImage, linearGrad, showHHLimit); |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
351 |
|
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
352 |
pMap = 0; |
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
353 |
|
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
354 |
cType->setEnabled(isMaster()); |
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
355 |
} |
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
356 |
|
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
357 |
|
1790 | 358 |
void HWMapContainer::setHHLimit(int newHHLimit) |
359 |
{ |
|
360 |
hhLimit = newHHLimit; |
|
361 |
} |
|
362 |
||
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
363 |
void HWMapContainer::addInfoToPreview(const QPixmap &image) |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
364 |
{ |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
365 |
addInfoToPreview(image, linearGradNormal, true); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
366 |
} |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
367 |
|
1790 | 368 |
// Should this add text to identify map size? |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
369 |
void HWMapContainer::addInfoToPreview(const QPixmap &image, const QLinearGradient &linearGrad, bool drawHHLimit) |
1790 | 370 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
371 |
QPixmap finalImage = QPixmap(image.size()); |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
372 |
QPainter p(&finalImage); |
2377 | 373 |
|
10161 | 374 |
p.fillRect(finalImage.rect(), linearGrad); |
375 |
p.drawPixmap(finalImage.rect(), image); |
|
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
376 |
|
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
377 |
if (drawHHLimit) |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
378 |
{ |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
379 |
p.setPen(QColor(0xff,0xcc,0x00)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
380 |
p.setBrush(QColor(0, 0, 0)); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
381 |
p.setFont(QFont("MS Shell Dlg", 10)); |
1790 | 382 |
|
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
383 |
p.drawRect(finalImage.rect().width() - hhSmall.rect().width() - 28, 3, 40, 20); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
384 |
|
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
385 |
QString text = (hhLimit > 0) ? QString::number(hhLimit) : "?"; |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
386 |
p.drawText(finalImage.rect().width() - hhSmall.rect().width() - 14 - (hhLimit > 9 ? 10 : 0), 18, text); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
387 |
p.drawPixmap(finalImage.rect().width() - hhSmall.rect().width() - 5, 5, hhSmall.rect().width(), hhSmall.rect().height(), hhSmall); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
388 |
} |
8467 | 389 |
|
13228
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
390 |
// Set the map preview image. Make sure it is always colored the same, |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
391 |
// no matter if disabled or not. |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
392 |
QIcon mapPreviewIcon = QIcon(); |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
393 |
mapPreviewIcon.addPixmap(finalImage, QIcon::Normal); |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
394 |
mapPreviewIcon.addPixmap(finalImage, QIcon::Disabled); |
d23742ccf92b
Frontend: Properly “gray out” most disabled widgets (a lot of them weren't)
Wuzzy <Wuzzy2@mail.ru>
parents:
13212
diff
changeset
|
395 |
mapPreview->setIcon(mapPreviewIcon); |
10161 | 396 |
mapPreview->setIconSize(finalImage.size()); |
184 | 397 |
} |
398 |
||
4562 | 399 |
void HWMapContainer::askForGeneratedPreview() |
184 | 400 |
{ |
8070
66bc20d089fc
Okay, remove previous request only if it has same parent
unc0rr
parents:
8049
diff
changeset
|
401 |
pMap = new HWMap(this); |
10161 | 402 |
connect(pMap, SIGNAL(ImageReceived(QPixmap)), this, SLOT(setImage(QPixmap))); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
403 |
connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int))); |
7008
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
404 |
connect(pMap, SIGNAL(destroyed(QObject *)), this, SLOT(onPreviewMapDestroyed(QObject *))); |
4562 | 405 |
pMap->getImage(m_seed, |
406 |
getTemplateFilter(), |
|
407 |
get_mapgen(), |
|
4941 | 408 |
getMazeSize(), |
10150
fa5c83fd0ad9
Allow lua drawn maps (shoppamap, tunnels, diagonal maze etc) to generate previews.
nemo
parents:
10108
diff
changeset
|
409 |
getDrawnMapData(), |
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
410 |
m_script, |
10959
1225f42f61e2
Pass ScriptParams to preview to support techracer. Proof of concept for techracer, generate a preview for m=4
nemo
parents:
10521
diff
changeset
|
411 |
m_scriptparam, |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
412 |
m_mapFeatureSize |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
413 |
); |
7017
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
414 |
|
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
415 |
setHHLimit(0); |
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
416 |
|
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
417 |
QPixmap waitImage(m_previewSize); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
418 |
waitImage.fill(Qt::transparent); |
7017
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
419 |
|
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
420 |
QPainter p(&waitImage); |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
421 |
const QPixmap waitIcon(":/res/iconTime.png"); |
7017
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
422 |
int x = (waitImage.width() - waitIcon.width()) / 2; |
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
423 |
int y = (waitImage.height() - waitIcon.height()) / 2; |
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
424 |
p.drawPixmap(QPoint(x, y), waitIcon); |
19a434fc91fc
visually indicate when map preview generation is in progress.
sheepluva
parents:
7014
diff
changeset
|
425 |
|
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
426 |
setImage(waitImage, linearGradLoading, false); |
184 | 427 |
|
8377 | 428 |
cType->setEnabled(false); |
1215 | 429 |
} |
430 |
||
8467 | 431 |
void HWMapContainer::previewClicked() |
432 |
{ |
|
9452 | 433 |
if (isMaster()) // should only perform these if master, but disabling the button when not, causes an unattractive preview. |
434 |
switch (m_mapInfo.type) |
|
435 |
{ |
|
436 |
case MapModel::HandDrawnMap: |
|
437 |
emit drawMapRequested(); |
|
438 |
break; |
|
439 |
default: |
|
440 |
setRandomMap(); |
|
441 |
break; |
|
442 |
} |
|
8467 | 443 |
} |
444 |
||
184 | 445 |
QString HWMapContainer::getCurrentSeed() const |
446 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
447 |
return m_seed; |
184 | 448 |
} |
449 |
||
249 | 450 |
QString HWMapContainer::getCurrentMap() const |
451 |
{ |
|
8377 | 452 |
switch (m_mapInfo.type) |
453 |
{ |
|
454 |
case MapModel::StaticMap: |
|
455 |
case MapModel::MissionMap: |
|
456 |
return m_curMap; |
|
457 |
default: |
|
458 |
return QString(); |
|
459 |
} |
|
249 | 460 |
} |
461 |
||
462 |
QString HWMapContainer::getCurrentTheme() const |
|
463 |
{ |
|
6940
211aca8c1f4f
decouple current theme from map theme (fixes theme confusion bugs of last commit)
sheepluva
parents:
6939
diff
changeset
|
464 |
return(m_theme); |
3008 | 465 |
} |
466 |
||
467 |
bool HWMapContainer::getCurrentIsMission() const |
|
468 |
{ |
|
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
469 |
return(m_mapInfo.type == MapModel::MissionMap); |
1790 | 470 |
} |
471 |
||
472 |
int HWMapContainer::getCurrentHHLimit() const |
|
473 |
{ |
|
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
474 |
return hhLimit; |
249 | 475 |
} |
476 |
||
4513
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
477 |
QString HWMapContainer::getCurrentScheme() const |
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
478 |
{ |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
479 |
return(m_mapInfo.scheme); |
4513
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
480 |
} |
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
481 |
|
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
482 |
QString HWMapContainer::getCurrentWeapons() const |
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
483 |
{ |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
484 |
return(m_mapInfo.weapons); |
4513
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
485 |
} |
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
486 |
|
1802 | 487 |
quint32 HWMapContainer::getTemplateFilter() const |
488 |
{ |
|
8377 | 489 |
return generationStyles->currentRow(); |
1802 | 490 |
} |
491 |
||
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
492 |
quint32 HWMapContainer::getFeatureSize() const |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
493 |
{ |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
494 |
return m_mapFeatureSize; |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
495 |
} |
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
496 |
|
184 | 497 |
void HWMapContainer::resizeEvent ( QResizeEvent * event ) |
498 |
{ |
|
4560
5d6c7f88db73
- Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents:
4557
diff
changeset
|
499 |
Q_UNUSED(event); |
184 | 500 |
} |
320 | 501 |
|
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
502 |
void HWMapContainer::intSetSeed(const QString & seed) |
320 | 503 |
{ |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
504 |
m_seed = seed; |
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
505 |
} |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
506 |
|
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
507 |
void HWMapContainer::setSeed(const QString & seed) |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
508 |
{ |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
509 |
intSetSeed(seed); |
10391 | 510 |
if ((m_mapInfo.type == MapModel::GeneratedMap) |
511 |
|| (m_mapInfo.type == MapModel::GeneratedMaze) |
|
512 |
|| (m_mapInfo.type == MapModel::GeneratedPerlin)) |
|
4562 | 513 |
updatePreview(); |
320 | 514 |
} |
515 |
||
10959
1225f42f61e2
Pass ScriptParams to preview to support techracer. Proof of concept for techracer, generate a preview for m=4
nemo
parents:
10521
diff
changeset
|
516 |
void HWMapContainer::setScript(const QString & script, const QString & scriptparam) |
10150
fa5c83fd0ad9
Allow lua drawn maps (shoppamap, tunnels, diagonal maze etc) to generate previews.
nemo
parents:
10108
diff
changeset
|
517 |
{ |
fa5c83fd0ad9
Allow lua drawn maps (shoppamap, tunnels, diagonal maze etc) to generate previews.
nemo
parents:
10108
diff
changeset
|
518 |
m_script = script; |
10959
1225f42f61e2
Pass ScriptParams to preview to support techracer. Proof of concept for techracer, generate a preview for m=4
nemo
parents:
10521
diff
changeset
|
519 |
m_scriptparam = scriptparam; |
10391 | 520 |
if ((m_mapInfo.type == MapModel::GeneratedMap) |
521 |
|| (m_mapInfo.type == MapModel::GeneratedMaze) |
|
522 |
|| (m_mapInfo.type == MapModel::GeneratedPerlin) |
|
523 |
|| (m_mapInfo.type == MapModel::HandDrawnMap)) |
|
10171
00f41ff0bf2d
Script might well override a static map, but can't risk it not doing it, and preview completely failing. Better to just not try it for static maps. Some script cfg might help. Could also avoid unnnecessary preview regenerations even if the script was doing nothing at all.
nemo
parents:
10169
diff
changeset
|
524 |
updatePreview(); |
10150
fa5c83fd0ad9
Allow lua drawn maps (shoppamap, tunnels, diagonal maze etc) to generate previews.
nemo
parents:
10108
diff
changeset
|
525 |
} |
fa5c83fd0ad9
Allow lua drawn maps (shoppamap, tunnels, diagonal maze etc) to generate previews.
nemo
parents:
10108
diff
changeset
|
526 |
|
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
527 |
void HWMapContainer::intSetMap(const QString & map) |
320 | 528 |
{ |
8377 | 529 |
if (map == "+rnd+") |
530 |
{ |
|
10336 | 531 |
//changeMapType(MapModel::GeneratedMap); |
8377 | 532 |
} |
533 |
else if (map == "+maze+") |
|
534 |
{ |
|
10336 | 535 |
//changeMapType(MapModel::GeneratedMaze); |
8377 | 536 |
} |
10391 | 537 |
else if (map == "+perlin+") |
538 |
{ |
|
539 |
//changeMapType(MapModel::GeneratedPerlin); |
|
540 |
} |
|
8377 | 541 |
else if (map == "+drawn+") |
542 |
{ |
|
10336 | 543 |
//changeMapType(MapModel::HandDrawnMap); |
8377 | 544 |
} |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
545 |
else if (map == "+forts+") |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
546 |
{ |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
547 |
//nuffin |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
548 |
} |
8377 | 549 |
else if (m_staticMapModel->mapExists(map)) |
550 |
{ |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
551 |
m_missingMap = false; |
8377 | 552 |
changeMapType(MapModel::StaticMap, m_staticMapModel->index(m_staticMapModel->findMap(map), 0)); |
553 |
} |
|
554 |
else if (m_missionMapModel->mapExists(map)) |
|
555 |
{ |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
556 |
m_missingMap = false; |
8377 | 557 |
changeMapType(MapModel::MissionMap, m_missionMapModel->index(m_missionMapModel->findMap(map), 0)); |
558 |
} else |
|
559 |
{ |
|
560 |
qDebug() << "HWMapContainer::intSetMap: Map doesn't exist: " << map; |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
561 |
m_missingMap = true; |
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
562 |
setMapNameLabel(map); |
13250
0cc068e8a391
Fix some map preview properly problems when host switches to image map mode w/ you missing the map
Wuzzy <Wuzzy2@mail.ru>
parents:
13249
diff
changeset
|
563 |
if (m_mapInfo.type != MapModel::StaticMap && m_mapInfo.type != MapModel::MissionMap) |
0cc068e8a391
Fix some map preview properly problems when host switches to image map mode w/ you missing the map
Wuzzy <Wuzzy2@mail.ru>
parents:
13249
diff
changeset
|
564 |
{ |
0cc068e8a391
Fix some map preview properly problems when host switches to image map mode w/ you missing the map
Wuzzy <Wuzzy2@mail.ru>
parents:
13249
diff
changeset
|
565 |
m_mapInfo.type = MapModel::StaticMap; |
0cc068e8a391
Fix some map preview properly problems when host switches to image map mode w/ you missing the map
Wuzzy <Wuzzy2@mail.ru>
parents:
13249
diff
changeset
|
566 |
changeMapType(MapModel::StaticMap, QModelIndex()); |
0cc068e8a391
Fix some map preview properly problems when host switches to image map mode w/ you missing the map
Wuzzy <Wuzzy2@mail.ru>
parents:
13249
diff
changeset
|
567 |
} |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
568 |
updatePreview(); |
8377 | 569 |
} |
320 | 570 |
} |
571 |
||
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
572 |
void HWMapContainer::setMap(const QString & map) |
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
573 |
{ |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
574 |
if ((m_mapInfo.type == MapModel::Invalid) || (map != m_mapInfo.name) || m_missingMap) |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
575 |
intSetMap(map); |
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
576 |
} |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
577 |
|
320 | 578 |
void HWMapContainer::setTheme(const QString & theme) |
579 |
{ |
|
8475
f605bc59c603
Initial theme selection is now random. Theme prompt now has a search input and no longer uses FlowLayout. (Resolves issue 520)
dag10
parents:
8467
diff
changeset
|
580 |
QModelIndexList mdl = m_themeModel->match(m_themeModel->index(0), ThemeModel::ActualNameRole, theme); |
5289
9d18b61bd3eb
- Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5252
diff
changeset
|
581 |
|
9d18b61bd3eb
- Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5252
diff
changeset
|
582 |
if(mdl.size()) |
8377 | 583 |
updateTheme(mdl.at(0)); |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
584 |
else |
13249
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
585 |
setMissingTheme(theme); |
320 | 586 |
} |
4562 | 587 |
|
4337 | 588 |
void HWMapContainer::setRandomMap() |
589 |
{ |
|
8619
253750e192e7
Made pressing the button in mapContainer only randomize things if client is master. Fixes issue 545. Also synchronized themes. Fixes issue 547.
dag10
parents:
8475
diff
changeset
|
590 |
if (!m_master) return; |
8924 | 591 |
|
4419 | 592 |
setRandomSeed(); |
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
593 |
|
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
594 |
QSortFilterProxyModel * mmodel = NULL; |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
595 |
|
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
596 |
switch(m_mapInfo.type) |
4337 | 597 |
{ |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
598 |
case MapModel::GeneratedMap: |
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
599 |
case MapModel::GeneratedMaze: |
10391 | 600 |
case MapModel::GeneratedPerlin: |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
601 |
case MapModel::FortsMap: |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
602 |
setRandomTheme(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
603 |
break; |
8377 | 604 |
case MapModel::MissionMap: |
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
605 |
if (m_withoutDLC) |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
606 |
{ |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
607 |
mmodel = m_missionMapModel->withoutDLC(); |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
608 |
missionMapChanged(mmodel->mapToSource(mmodel->index(rand() % mmodel->rowCount(),0))); |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
609 |
} |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
610 |
else |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
611 |
missionMapChanged(m_missionMapModel->index(rand() % m_missionMapModel->rowCount(),0)); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
612 |
break; |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
613 |
case MapModel::StaticMap: |
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
614 |
if (m_withoutDLC) |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
615 |
{ |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
616 |
mmodel = m_staticMapModel->withoutDLC(); |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
617 |
staticMapChanged(mmodel->mapToSource(mmodel->index(rand() % mmodel->rowCount(),0))); |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
618 |
} |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
619 |
else |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
620 |
staticMapChanged(m_staticMapModel->index(rand() % m_staticMapModel->rowCount(),0)); |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
621 |
break; |
8377 | 622 |
default: |
623 |
break; |
|
4337 | 624 |
} |
625 |
} |
|
626 |
||
320 | 627 |
void HWMapContainer::setRandomSeed() |
628 |
{ |
|
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
629 |
setSeed(QUuid::createUuid().toString()); |
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents:
2377
diff
changeset
|
630 |
emit seedChanged(m_seed); |
320 | 631 |
} |
1318 | 632 |
|
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
633 |
void HWMapContainer::setRandomWithoutDLC(bool withoutDLC) |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
634 |
{ |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
635 |
m_withoutDLC = withoutDLC; |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
636 |
} |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
637 |
|
1318 | 638 |
void HWMapContainer::setRandomTheme() |
639 |
{ |
|
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
640 |
QAbstractItemModel * tmodel; |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
641 |
|
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
642 |
if (m_withoutDLC) |
13248
b0022324fb4e
Add IsHiddenRole to ThemeModel for hidden themes
Wuzzy <Wuzzy2@mail.ru>
parents:
13246
diff
changeset
|
643 |
tmodel = m_themeModel->withoutDLCOrHidden(); |
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
644 |
else |
13248
b0022324fb4e
Add IsHiddenRole to ThemeModel for hidden themes
Wuzzy <Wuzzy2@mail.ru>
parents:
13246
diff
changeset
|
645 |
tmodel = m_themeModel->withoutHidden(); |
11757
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
646 |
|
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
647 |
if(!tmodel->rowCount()) return; |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
648 |
quint32 themeNum = rand() % tmodel->rowCount(); |
6874644a2d00
in non-local games, don't include DLC-themes/maps/missions during random selection. thanks to unC0Rr for helping me realize that I was stupid in a different way than I thought :P
sheepluva
parents:
11754
diff
changeset
|
649 |
updateTheme(tmodel->index(themeNum,0)); |
8619
253750e192e7
Made pressing the button in mapContainer only randomize things if client is master. Fixes issue 545. Also synchronized themes. Fixes issue 547.
dag10
parents:
8475
diff
changeset
|
650 |
emit themeChanged(m_theme); |
1318 | 651 |
} |
1797 | 652 |
|
4941 | 653 |
void HWMapContainer::intSetTemplateFilter(int filter) |
654 |
{ |
|
8377 | 655 |
generationStyles->setCurrentRow(filter); |
4941 | 656 |
emit newTemplateFilter(filter); |
657 |
} |
|
658 |
||
1797 | 659 |
void HWMapContainer::setTemplateFilter(int filter) |
660 |
{ |
|
4941 | 661 |
intSetTemplateFilter(filter); |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
662 |
if (m_mapInfo.type == MapModel::GeneratedMap) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
663 |
updatePreview(); |
1802 | 664 |
} |
665 |
||
3133 | 666 |
MapGenerator HWMapContainer::get_mapgen(void) const |
667 |
{ |
|
668 |
return mapgen; |
|
669 |
} |
|
670 |
||
4941 | 671 |
int HWMapContainer::getMazeSize(void) const |
3133 | 672 |
{ |
8377 | 673 |
return mazeStyles->currentRow(); |
3133 | 674 |
} |
675 |
||
4941 | 676 |
void HWMapContainer::intSetMazeSize(int size) |
3133 | 677 |
{ |
8377 | 678 |
mazeStyles->setCurrentRow(size); |
4941 | 679 |
emit mazeSizeChanged(size); |
680 |
} |
|
681 |
||
682 |
void HWMapContainer::setMazeSize(int size) |
|
683 |
{ |
|
684 |
intSetMazeSize(size); |
|
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
685 |
if (m_mapInfo.type == MapModel::GeneratedMaze) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
686 |
updatePreview(); |
3133 | 687 |
} |
688 |
||
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
689 |
void HWMapContainer::intSetMapgen(MapGenerator m) |
3133 | 690 |
{ |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
691 |
if (mapgen != m) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
692 |
{ |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
693 |
mapgen = m; |
5793
401ab167bd9f
This should be a real fix (7643cbb88f09 reverted). Not tested.
unc0rr
parents:
5789
diff
changeset
|
694 |
|
10463 | 695 |
bool f = false; |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
696 |
switch (m) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
697 |
{ |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
698 |
case MAPGEN_REGULAR: |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
699 |
m_mapInfo.type = MapModel::GeneratedMap; |
10463 | 700 |
f = true; |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
701 |
break; |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
702 |
case MAPGEN_MAZE: |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
703 |
m_mapInfo.type = MapModel::GeneratedMaze; |
10463 | 704 |
f = true; |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
705 |
break; |
10391 | 706 |
case MAPGEN_PERLIN: |
707 |
m_mapInfo.type = MapModel::GeneratedPerlin; |
|
10463 | 708 |
f = true; |
10391 | 709 |
break; |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
710 |
case MAPGEN_DRAWN: |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
711 |
m_mapInfo.type = MapModel::HandDrawnMap; |
10463 | 712 |
f = true; |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
713 |
break; |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
714 |
case MAPGEN_FORTS: |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
715 |
m_mapInfo.type = MapModel::FortsMap; |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
716 |
f = true; |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
717 |
break; |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
718 |
case MAPGEN_MAP: |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
719 |
switch (m_mapInfo.type) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
720 |
{ |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
721 |
case MapModel::GeneratedMap: |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
722 |
case MapModel::GeneratedMaze: |
10391 | 723 |
case MapModel::GeneratedPerlin: |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
724 |
case MapModel::HandDrawnMap: |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
725 |
case MapModel::FortsMap: |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
726 |
m_mapInfo.type = MapModel::Invalid; |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
727 |
default: |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
728 |
break; |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
729 |
} |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
730 |
break; |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
731 |
} |
5793
401ab167bd9f
This should be a real fix (7643cbb88f09 reverted). Not tested.
unc0rr
parents:
5789
diff
changeset
|
732 |
|
10463 | 733 |
if(f) |
734 |
changeMapType(m_mapInfo.type, QModelIndex()); |
|
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
735 |
} |
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
736 |
} |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
737 |
|
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
738 |
void HWMapContainer::setMapgen(MapGenerator m) |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
739 |
{ |
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
740 |
intSetMapgen(m); |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
741 |
if(m != MAPGEN_MAP) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
742 |
updatePreview(); |
3133 | 743 |
} |
4489 | 744 |
|
4537 | 745 |
void HWMapContainer::setDrawnMapData(const QByteArray & ar) |
746 |
{ |
|
747 |
drawMapScene.decode(ar); |
|
4562 | 748 |
updatePreview(); |
4537 | 749 |
} |
750 |
||
4489 | 751 |
QByteArray HWMapContainer::getDrawnMapData() |
752 |
{ |
|
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4519
diff
changeset
|
753 |
return drawMapScene.encode(); |
4513
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
4511
diff
changeset
|
754 |
} |
4519 | 755 |
|
8377 | 756 |
void HWMapContainer::setNewSeed(const QString & newSeed) |
4519 | 757 |
{ |
8377 | 758 |
setSeed(newSeed); |
759 |
emit seedChanged(newSeed); |
|
4519 | 760 |
} |
4520
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4519
diff
changeset
|
761 |
|
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4519
diff
changeset
|
762 |
DrawMapScene * HWMapContainer::getDrawMapScene() |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4519
diff
changeset
|
763 |
{ |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4519
diff
changeset
|
764 |
return &drawMapScene; |
e7882bd1a894
Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents:
4519
diff
changeset
|
765 |
} |
4525 | 766 |
|
767 |
void HWMapContainer::mapDrawingFinished() |
|
768 |
{ |
|
4526 | 769 |
emit drawnMapChanged(getDrawnMapData()); |
4525 | 770 |
|
4562 | 771 |
updatePreview(); |
4550
d300ea498486
added set button to seed edit so maps won't regenerate as often
Henek
parents:
4537
diff
changeset
|
772 |
} |
4562 | 773 |
|
9739
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
774 |
void HWMapContainer::showEvent(QShowEvent * event) |
9735
6312152d92ad
don't generate any map previews until they are actually visible. this should improve hedgewars startup performance on weak machines
sheepluva
parents:
9452
diff
changeset
|
775 |
{ |
9739
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
776 |
if (!m_previewEnabled) { |
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
777 |
m_previewEnabled = true; |
9745 | 778 |
setRandomTheme(); |
9735
6312152d92ad
don't generate any map previews until they are actually visible. this should improve hedgewars startup performance on weak machines
sheepluva
parents:
9452
diff
changeset
|
779 |
updatePreview(); |
9739
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
780 |
} |
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
781 |
QWidget::showEvent(event); |
9735
6312152d92ad
don't generate any map previews until they are actually visible. this should improve hedgewars startup performance on weak machines
sheepluva
parents:
9452
diff
changeset
|
782 |
} |
6312152d92ad
don't generate any map previews until they are actually visible. this should improve hedgewars startup performance on weak machines
sheepluva
parents:
9452
diff
changeset
|
783 |
|
4562 | 784 |
void HWMapContainer::updatePreview() |
785 |
{ |
|
9739
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
786 |
// abort if the widget isn't supposed to show anything yet |
c2c9dd2544b8
make lazy loading of map preview a little bit less of a hack
sheepluva
parents:
9735
diff
changeset
|
787 |
if (!m_previewEnabled) |
9735
6312152d92ad
don't generate any map previews until they are actually visible. this should improve hedgewars startup performance on weak machines
sheepluva
parents:
9452
diff
changeset
|
788 |
return; |
6312152d92ad
don't generate any map previews until they are actually visible. this should improve hedgewars startup performance on weak machines
sheepluva
parents:
9452
diff
changeset
|
789 |
|
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
790 |
if (pMap) |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
791 |
{ |
10175
c92668840ea8
Remove game/preview functions split in library mode, just let normal procedure run instead:
unc0rr
parents:
10171
diff
changeset
|
792 |
disconnect(pMap, 0, this, SLOT(setImage(const QPixmap))); |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
793 |
disconnect(pMap, 0, this, SLOT(setHHLimit(int))); |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
794 |
pMap = 0; |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
795 |
} |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
796 |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
797 |
QPixmap failPixmap; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
798 |
QIcon failIcon; |
7014
c0b32404ef74
+ display lack of map in a nice way, don't generate bogus preview in the background
sheepluva
parents:
7008
diff
changeset
|
799 |
|
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
800 |
switch(m_mapInfo.type) |
4562 | 801 |
{ |
7014
c0b32404ef74
+ display lack of map in a nice way, don't generate bogus preview in the background
sheepluva
parents:
7008
diff
changeset
|
802 |
case MapModel::Invalid: |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
803 |
// Map error image |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
804 |
failPixmap = QPixmap(":/res/missingMap.png"); |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
805 |
setImage(failPixmap, linearGradMapError, false); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
806 |
lblDesc->clear(); |
7014
c0b32404ef74
+ display lack of map in a nice way, don't generate bogus preview in the background
sheepluva
parents:
7008
diff
changeset
|
807 |
break; |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
808 |
case MapModel::GeneratedMap: |
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
809 |
case MapModel::GeneratedMaze: |
10391 | 810 |
case MapModel::GeneratedPerlin: |
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
811 |
case MapModel::HandDrawnMap: |
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
812 |
case MapModel::FortsMap: |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
813 |
askForGeneratedPreview(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
814 |
break; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
815 |
default: |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
816 |
// For maps loaded from image |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
817 |
if(m_missingMap) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
818 |
{ |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
819 |
// Map error image due to missing map |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
820 |
failPixmap = QPixmap(":/res/missingMap.png"); |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
821 |
setImage(failPixmap, linearGradMapError, false); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
822 |
lblDesc->clear(); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
823 |
break; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
824 |
} |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
825 |
else |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
826 |
{ |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
827 |
// Draw map preview |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
828 |
QPixmap mapImage; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
829 |
bool success = mapImage.load("physfs://Maps/" + m_mapInfo.name + "/preview.png"); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
830 |
|
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
831 |
setHHLimit(m_mapInfo.limit); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
832 |
if(!success) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
833 |
{ |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
834 |
// Missing preview image |
13254
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
835 |
QPixmap empty = QPixmap(m_previewSize); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
836 |
empty.fill(Qt::transparent); |
1381ce67a781
Tweak map preview background colors
Wuzzy <Wuzzy2@mail.ru>
parents:
13253
diff
changeset
|
837 |
setImage(empty, linearGradNoPreview, true); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
838 |
return; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
839 |
} |
13253
dd054edd56df
Fix map type combo box being disabled for good when you select image or mission map
Wuzzy <Wuzzy2@mail.ru>
parents:
13251
diff
changeset
|
840 |
setImage(mapImage); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6157
diff
changeset
|
841 |
} |
4562 | 842 |
} |
843 |
} |
|
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
844 |
|
10480 | 845 |
void HWMapContainer::setAllMapParameters(const QString &map, MapGenerator m, int mazesize, const QString &seed, int tmpl, int featureSize) |
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
846 |
{ |
5793
401ab167bd9f
This should be a real fix (7643cbb88f09 reverted). Not tested.
unc0rr
parents:
5789
diff
changeset
|
847 |
intSetMapgen(m); |
4941 | 848 |
intSetMazeSize(mazesize); |
849 |
intSetSeed(seed); |
|
850 |
intSetTemplateFilter(tmpl); |
|
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
851 |
// this one last because it will refresh the preview |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
852 |
intSetMap(map); |
10480 | 853 |
intSetMazeSize(mazesize); |
854 |
intSetFeatureSize(featureSize); |
|
4936
d65d438acd23
Merge MAP, MAPGEN and SEED params into one on room join, so engine isn't spawned three times for a preview. Not tested as I'm unable to see my rooms (why?)
unc0rr
parents:
4701
diff
changeset
|
855 |
} |
6933
78d194a30520
mapContainer: use DataManager, reload maps after data update (e.g. by DLC)
sheepluva
parents:
6700
diff
changeset
|
856 |
|
6938
217ed62e872c
MapModel, various cleanups. TODO/FIXME: QComboBox separator not working with custom models
sheepluva
parents:
6937
diff
changeset
|
857 |
void HWMapContainer::updateModelViews() |
6933
78d194a30520
mapContainer: use DataManager, reload maps after data update (e.g. by DLC)
sheepluva
parents:
6700
diff
changeset
|
858 |
{ |
6960
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
859 |
// restore theme selection |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
860 |
// do this before map selection restore, because map may overwrite theme |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
861 |
if (!m_theme.isEmpty()) |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
862 |
{ |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
863 |
QModelIndexList mdl = m_themeModel->match(m_themeModel->index(0), Qt::DisplayRole, m_theme); |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
864 |
if (mdl.size() > 0) |
8377 | 865 |
updateTheme(mdl.at(0)); |
6960
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
866 |
else |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
867 |
setRandomTheme(); |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
868 |
} |
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
869 |
|
822f8269e13f
map, theme & style selection won't be lost on data updata now (except the selected map/theme/style is deleted ofc). enabling F5 key to reload data :>
sheepluva
parents:
6947
diff
changeset
|
870 |
// restore map selection |
8377 | 871 |
if (!m_curMap.isEmpty()) |
7018
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
872 |
intSetMap(m_curMap); |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
873 |
else |
6a1f46c026bf
some tweaks/fixes/etc to the map preview and reload stuff
sheepluva
parents:
7017
diff
changeset
|
874 |
updatePreview(); |
6933
78d194a30520
mapContainer: use DataManager, reload maps after data update (e.g. by DLC)
sheepluva
parents:
6700
diff
changeset
|
875 |
} |
7008
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
876 |
|
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
877 |
|
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
878 |
void HWMapContainer::onPreviewMapDestroyed(QObject * map) |
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
879 |
{ |
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
880 |
if (map == pMap) |
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
881 |
pMap = 0; |
25563f054ef3
fix a previewmap-related QObject::disconnect segfault
sheepluva
parents:
6983
diff
changeset
|
882 |
} |
8377 | 883 |
|
884 |
void HWMapContainer::mapTypeChanged(int index) |
|
885 |
{ |
|
886 |
changeMapType((MapModel::MapType)cType->itemData(index).toInt()); |
|
887 |
} |
|
888 |
||
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
889 |
void HWMapContainer::updateHelpTexts(MapModel::MapType type) |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
890 |
{ |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
891 |
QString randomAll = tr("Randomize the map, theme and seed"); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
892 |
QString randomNoMap = tr("Randomize the theme and seed"); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
893 |
QString randomSeed = tr("Randomize the seed"); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
894 |
QString randomAllPrev = tr("Click to randomize the map, theme and seed"); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
895 |
QString randomNoMapPrev = tr("Click to randomize the theme and seed"); |
11811
f9a4f4d11c3a
Fix problems with dynamic whats this texts
Wuzzy <almikes@aol.com>
parents:
11809
diff
changeset
|
896 |
QString mfsComplex = QString(tr("Adjust the complexity of the generated map")); |
f9a4f4d11c3a
Fix problems with dynamic whats this texts
Wuzzy <almikes@aol.com>
parents:
11809
diff
changeset
|
897 |
QString mfsFortsDistance = QString(tr("Adjust the distance between forts")); |
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
898 |
switch (type) |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
899 |
{ |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
900 |
case MapModel::GeneratedMap: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
901 |
case MapModel::GeneratedPerlin: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
902 |
case MapModel::GeneratedMaze: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
903 |
mapPreview->setWhatsThis(randomAllPrev); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
904 |
mapFeatureSize->setWhatsThis(mfsComplex); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
905 |
btnRandomize->setWhatsThis(randomAll); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
906 |
break; |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
907 |
case MapModel::MissionMap: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
908 |
case MapModel::StaticMap: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
909 |
mapPreview->setWhatsThis(randomAllPrev); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
910 |
btnRandomize->setWhatsThis(randomAll); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
911 |
break; |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
912 |
case MapModel::HandDrawnMap: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
913 |
mapPreview->setWhatsThis(tr("Click to edit")); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
914 |
btnRandomize->setWhatsThis(randomSeed); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
915 |
break; |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
916 |
case MapModel::FortsMap: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
917 |
mapPreview->setWhatsThis(randomNoMapPrev); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
918 |
mapFeatureSize->setWhatsThis(mfsFortsDistance); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
919 |
btnRandomize->setWhatsThis(randomNoMap); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
920 |
break; |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
921 |
default: |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
922 |
break; |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
923 |
} |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
924 |
} |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
925 |
|
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
926 |
|
8377 | 927 |
void HWMapContainer::changeMapType(MapModel::MapType type, const QModelIndex & newMap) |
928 |
{ |
|
929 |
staticMapList->hide(); |
|
930 |
missionMapList->hide(); |
|
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
931 |
teMapName->hide(); |
8377 | 932 |
lblMapList->hide(); |
933 |
generationStyles->hide(); |
|
934 |
mazeStyles->hide(); |
|
935 |
lblDesc->hide(); |
|
936 |
btnLoadMap->hide(); |
|
937 |
btnEditMap->hide(); |
|
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
938 |
mapFeatureSize->show(); |
8377 | 939 |
|
940 |
switch (type) |
|
941 |
{ |
|
942 |
case MapModel::GeneratedMap: |
|
943 |
mapgen = MAPGEN_REGULAR; |
|
944 |
setMapInfo(MapModel::MapInfoRandom); |
|
945 |
lblMapList->setText(tr("Map size:")); |
|
946 |
lblMapList->show(); |
|
947 |
generationStyles->show(); |
|
948 |
break; |
|
949 |
case MapModel::GeneratedMaze: |
|
950 |
mapgen = MAPGEN_MAZE; |
|
951 |
setMapInfo(MapModel::MapInfoMaze); |
|
952 |
lblMapList->setText(tr("Maze style:")); |
|
953 |
lblMapList->show(); |
|
954 |
mazeStyles->show(); |
|
955 |
break; |
|
10391 | 956 |
case MapModel::GeneratedPerlin: |
957 |
mapgen = MAPGEN_PERLIN; |
|
958 |
setMapInfo(MapModel::MapInfoPerlin); |
|
959 |
lblMapList->setText(tr("Style:")); |
|
960 |
lblMapList->show(); |
|
961 |
mazeStyles->show(); |
|
962 |
break; |
|
8377 | 963 |
case MapModel::HandDrawnMap: |
964 |
mapgen = MAPGEN_DRAWN; |
|
965 |
setMapInfo(MapModel::MapInfoDrawn); |
|
966 |
btnLoadMap->show(); |
|
10480 | 967 |
mapFeatureSize->hide(); |
8377 | 968 |
btnEditMap->show(); |
969 |
break; |
|
970 |
case MapModel::MissionMap: |
|
9744 | 971 |
setupMissionMapsView(); |
8377 | 972 |
mapgen = MAPGEN_MAP; |
973 |
missionMapChanged(newMap.isValid() ? newMap : missionMapList->currentIndex()); |
|
974 |
lblMapList->setText(tr("Mission:")); |
|
975 |
lblMapList->show(); |
|
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
976 |
setMapNameLabel(m_curMap); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
977 |
if(m_master) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
978 |
{ |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
979 |
missionMapList->show(); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
980 |
} |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
981 |
else |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
982 |
{ |
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
983 |
teMapName->show(); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
984 |
} |
10480 | 985 |
mapFeatureSize->hide(); |
8377 | 986 |
lblDesc->setText(m_mapInfo.desc); |
987 |
lblDesc->show(); |
|
988 |
emit mapChanged(m_curMap); |
|
989 |
break; |
|
990 |
case MapModel::StaticMap: |
|
9744 | 991 |
setupStaticMapsView(); |
8377 | 992 |
mapgen = MAPGEN_MAP; |
993 |
staticMapChanged(newMap.isValid() ? newMap : staticMapList->currentIndex()); |
|
994 |
lblMapList->setText(tr("Map:")); |
|
995 |
lblMapList->show(); |
|
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
996 |
setMapNameLabel(m_curMap); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
997 |
if(m_master) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
998 |
{ |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
999 |
staticMapList->show(); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1000 |
} |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1001 |
else |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1002 |
{ |
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1003 |
teMapName->show(); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1004 |
} |
10480 | 1005 |
mapFeatureSize->hide(); |
8377 | 1006 |
emit mapChanged(m_curMap); |
1007 |
break; |
|
11744
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
1008 |
case MapModel::FortsMap: |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
1009 |
mapgen = MAPGEN_FORTS; |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
1010 |
setMapInfo(MapModel::MapInfoForts); |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
1011 |
lblMapList->hide(); |
ac58a063d26a
Added "Forts" to map type selection. This makes the mode easier selectable/discoverable. Also the slider can be used to adjust the distance between forts.
sheepluva
parents:
10959
diff
changeset
|
1012 |
break; |
8377 | 1013 |
default: |
1014 |
break; |
|
1015 |
} |
|
1016 |
||
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1017 |
// Update theme button size |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1018 |
updateThemeButtonSize(); |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1019 |
|
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
1020 |
// Update “What's This?” help texts |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
1021 |
updateHelpTexts(type); |
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
1022 |
|
8377 | 1023 |
// Update cType combobox |
1024 |
for (int i = 0; i < cType->count(); i++) |
|
1025 |
{ |
|
1026 |
if ((MapModel::MapType)cType->itemData(i).toInt() == type) |
|
1027 |
{ |
|
1028 |
cType->setCurrentIndex(i); |
|
1029 |
break; |
|
1030 |
} |
|
1031 |
} |
|
1032 |
||
8467 | 1033 |
repaint(); |
1034 |
||
8377 | 1035 |
emit mapgenChanged(mapgen); |
1036 |
} |
|
1037 |
||
10480 | 1038 |
void HWMapContainer::intSetFeatureSize(int val) |
1039 |
{ |
|
1040 |
mapFeatureSize->setValue(val); |
|
11809
f412d539284e
Add various “What's This?” texts to multiplayer, net and team editor frontend pages
Wuzzy <almikes@aol.com>
parents:
11785
diff
changeset
|
1041 |
updateHelpTexts((MapModel::MapType)cType->itemData(cType->currentIndex()).toInt()); |
10480 | 1042 |
emit mapFeatureSizeChanged(val); |
1043 |
} |
|
1044 |
void HWMapContainer::setFeatureSize(int val) |
|
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
1045 |
{ |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1046 |
m_mapFeatureSize = val; |
10480 | 1047 |
intSetFeatureSize(val); |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1048 |
//m_mapFeatureSize = val>>2<<2; |
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1049 |
//if (qAbs(m_prevMapFeatureSize-m_mapFeatureSize) > 4) |
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
1050 |
{ |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1051 |
m_prevMapFeatureSize = m_mapFeatureSize; |
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1052 |
updatePreview(); |
10472
8d04cebedb16
Partially hook up feature size so horrorcat has something to test.
nemo
parents:
10471
diff
changeset
|
1053 |
} |
10471
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
1054 |
} |
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
1055 |
|
d968b1ac130c
sheepluva and unc0rr didn't like the idea of slider over preview.
nemo
parents:
10465
diff
changeset
|
1056 |
// unused because I needed the space for the slider |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1057 |
void HWMapContainer::updateThemeButtonSize() |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1058 |
{ |
10480 | 1059 |
if (m_mapInfo.type != MapModel::StaticMap && m_mapInfo.type != MapModel::HandDrawnMap) |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1060 |
{ |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1061 |
btnTheme->setIconSize(QSize(30, 30)); |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1062 |
btnTheme->setFixedHeight(30); |
11785 | 1063 |
btnRandTheme->setFixedHeight(30); |
1064 |
btnRandTheme->setIconSize(QSize(24, 24)); |
|
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1065 |
} |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1066 |
else |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1067 |
{ |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1068 |
QSize iconSize = btnTheme->icon().actualSize(QSize(65535, 65535)); |
11785 | 1069 |
btnRandTheme->setFixedHeight(64); |
8430
5a5c34a75e1a
Aesthetic improvements to chat widget. Also fixed the ghosting issue in a few areas by using repaint().
dag10
parents:
8424
diff
changeset
|
1070 |
btnTheme->setFixedHeight(64); |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1071 |
btnTheme->setIconSize(iconSize); |
11785 | 1072 |
btnRandTheme->setIconSize(QSize(32, 32)); |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1073 |
} |
8430
5a5c34a75e1a
Aesthetic improvements to chat widget. Also fixed the ghosting issue in a few areas by using repaint().
dag10
parents:
8424
diff
changeset
|
1074 |
|
5a5c34a75e1a
Aesthetic improvements to chat widget. Also fixed the ghosting issue in a few areas by using repaint().
dag10
parents:
8424
diff
changeset
|
1075 |
repaint(); |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1076 |
} |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1077 |
|
8377 | 1078 |
void HWMapContainer::showThemePrompt() |
1079 |
{ |
|
8475
f605bc59c603
Initial theme selection is now random. Theme prompt now has a search input and no longer uses FlowLayout. (Resolves issue 520)
dag10
parents:
8467
diff
changeset
|
1080 |
ThemePrompt prompt(m_themeID, this); |
8377 | 1081 |
int theme = prompt.exec() - 1; // Since 0 means canceled, so all indexes are +1'd |
1082 |
if (theme < 0) return; |
|
1083 |
||
1084 |
QModelIndex current = m_themeModel->index(theme, 0); |
|
1085 |
updateTheme(current); |
|
1086 |
emit themeChanged(m_theme); |
|
1087 |
} |
|
1088 |
||
1089 |
void HWMapContainer::updateTheme(const QModelIndex & current) |
|
1090 |
{ |
|
8475
f605bc59c603
Initial theme selection is now random. Theme prompt now has a search input and no longer uses FlowLayout. (Resolves issue 520)
dag10
parents:
8467
diff
changeset
|
1091 |
m_theme = selectedTheme = current.data(ThemeModel::ActualNameRole).toString(); |
f605bc59c603
Initial theme selection is now random. Theme prompt now has a search input and no longer uses FlowLayout. (Resolves issue 520)
dag10
parents:
8467
diff
changeset
|
1092 |
m_themeID = current.row(); |
12897
fc47fc4af6bd
Finish porting. Seems to work, but no thorough testing has been performed
unc0rr
parents:
11910
diff
changeset
|
1093 |
QIcon icon = current.data(Qt::DecorationRole).value<QIcon>(); |
8377 | 1094 |
btnTheme->setIcon(icon); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1095 |
QString themeLabel = tr("Theme: %1").arg(current.data(Qt::DisplayRole).toString()); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1096 |
btnTheme->setText(themeLabel); |
10477
b219c5a2317f
Fiddling with slider, unbreak maze. Next to mess around w/ perlin params.
nemo
parents:
10472
diff
changeset
|
1097 |
updateThemeButtonSize(); |
8377 | 1098 |
} |
1099 |
||
1100 |
void HWMapContainer::staticMapChanged(const QModelIndex & map, const QModelIndex & old) |
|
1101 |
{ |
|
1102 |
mapChanged(map, 0, old); |
|
1103 |
} |
|
1104 |
||
1105 |
void HWMapContainer::missionMapChanged(const QModelIndex & map, const QModelIndex & old) |
|
1106 |
{ |
|
1107 |
mapChanged(map, 1, old); |
|
1108 |
} |
|
1109 |
||
1110 |
// Type: 0 = static, 1 = mission |
|
1111 |
void HWMapContainer::mapChanged(const QModelIndex & map, int type, const QModelIndex & old) |
|
1112 |
{ |
|
1113 |
QListView * mapList; |
|
1114 |
||
1115 |
if (type == 0) mapList = staticMapList; |
|
1116 |
else if (type == 1) mapList = missionMapList; |
|
1117 |
else return; |
|
1118 |
||
1119 |
// Make sure it is a valid index |
|
1120 |
if (!map.isValid()) |
|
1121 |
{ |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1122 |
// Make sure there's always a valid selection in the map list |
8377 | 1123 |
if (old.isValid()) |
1124 |
{ |
|
1125 |
mapList->setCurrentIndex(old); |
|
1126 |
mapList->scrollTo(old); |
|
1127 |
} |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1128 |
m_mapInfo.type = MapModel::Invalid; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1129 |
m_missingMap = true; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1130 |
updatePreview(); |
8377 | 1131 |
return; |
1132 |
} |
|
1133 |
||
1134 |
// If map changed, update list selection |
|
1135 |
if (mapList->currentIndex() != map) |
|
1136 |
{ |
|
1137 |
mapList->setCurrentIndex(map); |
|
1138 |
mapList->scrollTo(map); |
|
1139 |
} |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1140 |
if (m_missingMap) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1141 |
{ |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1142 |
m_missingMap = false; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1143 |
updatePreview(); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1144 |
} |
8377 | 1145 |
|
10463 | 1146 |
Q_ASSERT(map.data(Qt::UserRole + 1).canConvert<MapModel::MapInfo>()); // Houston, we have a problem. |
1147 |
setMapInfo(map.data(Qt::UserRole + 1).value<MapModel::MapInfo>()); |
|
8377 | 1148 |
} |
1149 |
||
1150 |
void HWMapContainer::setMapInfo(MapModel::MapInfo mapInfo) |
|
1151 |
{ |
|
1152 |
m_mapInfo = mapInfo; |
|
1153 |
m_curMap = m_mapInfo.name; |
|
1154 |
||
1155 |
// the map has no pre-defined theme, so let's use the selected one |
|
1156 |
if (m_mapInfo.theme.isEmpty()) |
|
1157 |
{ |
|
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1158 |
if (!selectedTheme.isEmpty()) |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1159 |
{ |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1160 |
setTheme(selectedTheme); |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1161 |
emit themeChanged(selectedTheme); |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1162 |
} |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1163 |
} |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1164 |
else |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1165 |
{ |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1166 |
setTheme(m_mapInfo.theme); |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1167 |
emit themeChanged(m_mapInfo.theme); |
8377 | 1168 |
} |
1169 |
||
1170 |
lblDesc->setText(mapInfo.desc); |
|
1171 |
||
1172 |
updatePreview(); |
|
1173 |
emit mapChanged(m_curMap); |
|
1174 |
} |
|
1175 |
||
1176 |
void HWMapContainer::loadDrawing() |
|
1177 |
{ |
|
13212
e9e4cc867b6e
Add default directory DrawnMaps to put hand-drawn maps into
Wuzzy <Wuzzy2@mail.ru>
parents:
12897
diff
changeset
|
1178 |
QString loadDir = QDir(cfgdir->absolutePath() + "/DrawnMaps").absolutePath(); |
e9e4cc867b6e
Add default directory DrawnMaps to put hand-drawn maps into
Wuzzy <Wuzzy2@mail.ru>
parents:
12897
diff
changeset
|
1179 |
QString fileName = QFileDialog::getOpenFileName(this, tr("Load drawn map"), loadDir, tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)"); |
8377 | 1180 |
|
1181 |
if(fileName.isEmpty()) return; |
|
1182 |
||
1183 |
QFile f(fileName); |
|
1184 |
||
1185 |
if(!f.open(QIODevice::ReadOnly)) |
|
1186 |
{ |
|
1187 |
QMessageBox errorMsg(parentWidget()); |
|
1188 |
errorMsg.setIcon(QMessageBox::Warning); |
|
1189 |
errorMsg.setWindowTitle(QMessageBox::tr("File error")); |
|
1190 |
errorMsg.setText(QMessageBox::tr("Cannot open '%1' for reading").arg(fileName)); |
|
1191 |
errorMsg.setWindowModality(Qt::WindowModal); |
|
1192 |
errorMsg.exec(); |
|
1193 |
} |
|
1194 |
else |
|
1195 |
{ |
|
1196 |
drawMapScene.decode(qUncompress(QByteArray::fromBase64(f.readAll()))); |
|
1197 |
mapDrawingFinished(); |
|
1198 |
} |
|
1199 |
} |
|
1200 |
||
1201 |
void HWMapContainer::showSeedPrompt() |
|
1202 |
{ |
|
1203 |
SeedPrompt prompt(parentWidget()->parentWidget(), getCurrentSeed(), isMaster()); |
|
1204 |
connect(&prompt, SIGNAL(seedSelected(const QString &)), this, SLOT(setNewSeed(const QString &))); |
|
1205 |
prompt.exec(); |
|
1206 |
} |
|
1207 |
||
1208 |
bool HWMapContainer::isMaster() |
|
1209 |
{ |
|
1210 |
return m_master; |
|
1211 |
} |
|
1212 |
||
1213 |
void HWMapContainer::setMaster(bool master) |
|
1214 |
{ |
|
8467 | 1215 |
if (master == m_master) return; |
8377 | 1216 |
m_master = master; |
8434 | 1217 |
|
8377 | 1218 |
foreach (QWidget *widget, m_childWidgets) |
1219 |
widget->setEnabled(master); |
|
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1220 |
|
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1221 |
if(m_mapInfo.type == MapModel::StaticMap) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1222 |
{ |
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1223 |
teMapName->setHidden(master); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1224 |
staticMapList->setVisible(master); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1225 |
} |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1226 |
else if(m_mapInfo.type == MapModel::MissionMap) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1227 |
{ |
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1228 |
teMapName->setHidden(master); |
13246
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1229 |
missionMapList->setVisible(master); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1230 |
} |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1231 |
|
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1232 |
if(m_missingMap) |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1233 |
{ |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1234 |
// Force map type reset if host provided missing map |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1235 |
m_missingMap = false; |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1236 |
changeMapType(MapModel::GeneratedMap); |
0c98d3b249f7
Online room: Display error image in preview when host selects a map you don't have
Wuzzy <Wuzzy2@mail.ru>
parents:
13228
diff
changeset
|
1237 |
} |
8377 | 1238 |
} |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1239 |
|
13249
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1240 |
void HWMapContainer::setMissingTheme(const QString & name) |
8393
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1241 |
{ |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1242 |
if (name.isEmpty()) return; |
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1243 |
|
85bd6c7b2641
Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents:
8377
diff
changeset
|
1244 |
m_theme = name; |
13249
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1245 |
QPixmap pixMissing = QPixmap(":/res/missingTheme@2x.png"); |
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1246 |
QIcon iconMissing = QIcon(); |
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1247 |
iconMissing.addPixmap(pixMissing, QIcon::Normal); |
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1248 |
iconMissing.addPixmap(pixMissing, QIcon::Disabled); |
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1249 |
btnTheme->setIcon(iconMissing); |
13255
7f8f2c77a9cc
Map container: Add question mark in front of missing theme name
Wuzzy <Wuzzy2@mail.ru>
parents:
13254
diff
changeset
|
1250 |
// Question mark in front of theme name denotes it's missing |
7f8f2c77a9cc
Map container: Add question mark in front of missing theme name
Wuzzy <Wuzzy2@mail.ru>
parents:
13254
diff
changeset
|
1251 |
btnTheme->setText(tr("Theme: %1").arg("?" + name)); |
13249
d2b58cf339fe
Show error icon when selected theme is missing
Wuzzy <Wuzzy2@mail.ru>
parents:
13248
diff
changeset
|
1252 |
updateThemeButtonSize(); |
8401
87410ae372f6
Server messages localization using Qt's l10n subsystem:
unc0rr
parents:
8393
diff
changeset
|
1253 |
} |
9744 | 1254 |
|
1255 |
void HWMapContainer::setupMissionMapsView() |
|
1256 |
{ |
|
1257 |
if(m_missionsViewSetup) return; |
|
1258 |
m_missionsViewSetup = true; |
|
1259 |
||
1260 |
m_missionMapModel->loadMaps(); |
|
1261 |
missionMapList->setModel(m_missionMapModel); |
|
1262 |
missionMapList->setEditTriggers(QAbstractItemView::NoEditTriggers); |
|
1263 |
QItemSelectionModel * missionSelectionModel = missionMapList->selectionModel(); |
|
1264 |
connect(missionSelectionModel, |
|
1265 |
SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), |
|
1266 |
this, |
|
1267 |
SLOT(missionMapChanged(const QModelIndex &, const QModelIndex &))); |
|
1268 |
missionSelectionModel->setCurrentIndex(m_missionMapModel->index(0, 0), QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent); |
|
1269 |
} |
|
1270 |
||
1271 |
void HWMapContainer::setupStaticMapsView() |
|
1272 |
{ |
|
1273 |
if(m_staticViewSetup) return; |
|
1274 |
m_staticViewSetup = true; |
|
1275 |
||
1276 |
m_staticMapModel->loadMaps(); |
|
1277 |
staticMapList->setModel(m_staticMapModel); |
|
1278 |
staticMapList->setEditTriggers(QAbstractItemView::NoEditTriggers); |
|
1279 |
QItemSelectionModel * staticSelectionModel = staticMapList->selectionModel(); |
|
1280 |
connect(staticSelectionModel, |
|
1281 |
SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), |
|
1282 |
this, |
|
1283 |
SLOT(staticMapChanged(const QModelIndex &, const QModelIndex &))); |
|
1284 |
staticSelectionModel->setCurrentIndex(m_staticMapModel->index(0, 0), QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent); |
|
1285 |
} |
|
13251
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1286 |
|
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1287 |
// Call this function instead of setting the text of the map name label |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1288 |
// directly. |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1289 |
void HWMapContainer::setMapNameLabel(QString mapName) |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1290 |
{ |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1291 |
// Cut off insanely long names to be displayed |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1292 |
if(mapName.length() >= 90) |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1293 |
{ |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1294 |
mapName.truncate(84); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1295 |
mapName.append(" (...)"); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1296 |
} |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1297 |
teMapName->setPlainText(mapName); |
edb2f654f8f6
Shorten and wrap map name properly when viewing room as non-master
Wuzzy <Wuzzy2@mail.ru>
parents:
13250
diff
changeset
|
1298 |
} |