47
48
templateFilter = 0;
49
mainLayout.setContentsMargins(QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
50
mainLayout.setContentsMargins(HWApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
51
QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
52
QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
52
HWApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
53
HWApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
54
55
QWidget* mapWidget = new QWidget(this);
55
56
mainLayout.addWidget(mapWidget, 0, 0, Qt::AlignHCenter);
63
64
imageButt->setFlat(true);
64
65
imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
65
66
mapLayout->addWidget(imageButt, 0, 0, 1, 2);
66
//connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed()));
67
//connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme()));
68
67
connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomMap()));
70
69
chooseMap = new QComboBox(mapWidget);
86
85
int missionindex = chooseMap->count();
88
89
for (int i = 0; i < mapList->size(); ++i) {
89
90
QString map = (*mapList)[i];
91
QString("%1/Maps/%2/map.cfg")
92
.arg(datadir->absolutePath())
95
QString("%1/Maps/%2/map.lua")
96
.arg(datadir->absolutePath())
91
mapCfgFile.setFileName(
92
QString("%1/Data/Maps/%2/map.cfg")
93
.arg(cfgdir->absolutePath())
95
if (mapCfgFile.exists()) {
96
mapLuaFile.setFileName(
97
QString("%1/Data/Maps/%2/map.lua")
98
.arg(cfgdir->absolutePath())
101
mapCfgFile.setFileName(
102
QString("%1/Maps/%2/map.cfg")
103
.arg(datadir->absolutePath())
105
mapLuaFile.setFileName(
106
QString("%1/Maps/%2/map.lua")
107
.arg(datadir->absolutePath())
99
111
if (mapCfgFile.open(QFile::ReadOnly)) {
149
161
lblFilter = new QLabel(tr("Filter"), mapWidget);
150
162
mapLayout->addWidget(lblFilter, 2, 0);
152
CB_TemplateFilter = new QComboBox(mapWidget);
153
CB_TemplateFilter->addItem(tr("All"), 0);
154
CB_TemplateFilter->addItem(tr("Small"), 1);
155
CB_TemplateFilter->addItem(tr("Medium"), 2);
156
CB_TemplateFilter->addItem(tr("Large"), 3);
157
CB_TemplateFilter->addItem(tr("Cavern"), 4);
158
CB_TemplateFilter->addItem(tr("Wacky"), 5);
159
mapLayout->addWidget(CB_TemplateFilter, 2, 1);
164
cbTemplateFilter = new QComboBox(mapWidget);
165
cbTemplateFilter->addItem(tr("All"), 0);
166
cbTemplateFilter->addItem(tr("Small"), 1);
167
cbTemplateFilter->addItem(tr("Medium"), 2);
168
cbTemplateFilter->addItem(tr("Large"), 3);
169
cbTemplateFilter->addItem(tr("Cavern"), 4);
170
cbTemplateFilter->addItem(tr("Wacky"), 5);
171
mapLayout->addWidget(cbTemplateFilter, 2, 1);
161
connect(CB_TemplateFilter, SIGNAL(currentIndexChanged(int)), this, SLOT(templateFilterChanged(int)));
173
connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int)));
163
175
maze_size_label = new QLabel(tr("Type"), mapWidget);
164
mainLayout.addWidget(maze_size_label, 2, 0);
176
mapLayout->addWidget(maze_size_label, 2, 0);
165
177
maze_size_label->hide();
166
maze_size_selection = new QComboBox(mapWidget);
167
maze_size_selection->addItem(tr("Small tunnels"), 0);
168
maze_size_selection->addItem(tr("Medium tunnels"), 1);
169
maze_size_selection->addItem(tr("Large tunnels"), 2);
170
maze_size_selection->addItem(tr("Small floating islands"), 3);
171
maze_size_selection->addItem(tr("Medium floating islands"), 4);
172
maze_size_selection->addItem(tr("Large floating islands"), 5);
173
maze_size_selection->setCurrentIndex(1);
178
cbMazeSize = new QComboBox(mapWidget);
179
cbMazeSize->addItem(tr("Small tunnels"), 0);
180
cbMazeSize->addItem(tr("Medium tunnels"), 1);
181
cbMazeSize->addItem(tr("Large tunnels"), 2);
182
cbMazeSize->addItem(tr("Small floating islands"), 3);
183
cbMazeSize->addItem(tr("Medium floating islands"), 4);
184
cbMazeSize->addItem(tr("Large floating islands"), 5);
185
cbMazeSize->setCurrentIndex(1);
175
mapLayout->addWidget(maze_size_selection, 2, 1);
176
maze_size_selection->hide();
177
connect(maze_size_selection, SIGNAL(currentIndexChanged(int)), this, SLOT(setMaze_size(int)));
187
mapLayout->addWidget(cbMazeSize, 2, 1);
189
connect(cbMazeSize, SIGNAL(activated(int)), this, SLOT(setMazeSize(int)));
179
191
gbThemes = new IconedGroupBox(mapWidget);
180
192
gbThemes->setTitleTextPadding(80);
187
199
QVBoxLayout * gbTLayout = new QVBoxLayout(gbThemes);
188
200
gbTLayout->setContentsMargins(0, 0, 0 ,0);
189
201
gbTLayout->setSpacing(0);
190
lwThemes = new QListWidget(mapWidget);
191
lwThemes->setMinimumHeight(30);
192
lwThemes->setFixedWidth(140);
193
for (int i = 0; i < Themes->size(); ++i) {
194
QListWidgetItem * lwi = new QListWidgetItem();
195
lwi->setText(Themes->at(i));
196
lwi->setIcon(QIcon(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(Themes->at(i))));
197
//lwi->setTextAlignment(Qt::AlignHCenter);
198
lwThemes->addItem(lwi);
200
connect(lwThemes, SIGNAL(currentRowChanged(int)), this, SLOT(themeSelected(int)));
202
lvThemes = new QListView(mapWidget);
203
lvThemes->setMinimumHeight(30);
204
lvThemes->setFixedWidth(140);
205
lvThemes->setModel(themesModel);
206
lvThemes->setIconSize(QSize(16, 16));
207
lvThemes->setEditTriggers(QListView::NoEditTriggers);
209
connect(lvThemes->selectionModel(), SIGNAL(currentRowChanged( const QModelIndex &, const QModelIndex &)), this, SLOT(themeSelected( const QModelIndex &, const QModelIndex &)));
202
211
// override default style to tighten up theme scroller
203
lwThemes->setStyleSheet(QString(
212
lvThemes->setStyleSheet(QString(
206
215
"border-width: 0px;"
207
216
"border-radius: 0px;"
303
310
gbThemes->show();
304
311
lblFilter->hide();
305
CB_TemplateFilter->hide();
312
cbTemplateFilter->hide();
306
313
maze_size_label->hide();
307
maze_size_selection->hide();
308
315
emit mapChanged("+drawn+");
309
emit mapgenChanged(mapgen);
310
316
emit themeChanged(chooseMap->itemData(index).toList()[1].toString());
314
321
gbThemes->hide();
315
322
lblFilter->hide();
316
CB_TemplateFilter->hide();
323
cbTemplateFilter->hide();
317
324
maze_size_label->hide();
318
maze_size_selection->hide();
319
326
emit mapChanged(chooseMap->itemData(index).toList()[0].toString());
329
emit mapgenChanged(mapgen);
323
332
// Should this add text to identify map size?
511
531
void HWMapContainer::setRandomTheme()
513
if(!Themes->size()) return;
514
quint32 themeNum = rand() % Themes->size();
515
lwThemes->setCurrentRow(themeNum);
533
if(!themesModel->rowCount()) return;
534
quint32 themeNum = rand() % themesModel->rowCount();
535
lvThemes->setCurrentIndex(themesModel->index(themeNum));
538
void HWMapContainer::intSetTemplateFilter(int filter)
540
cbTemplateFilter->setCurrentIndex(filter);
541
emit newTemplateFilter(filter);
518
544
void HWMapContainer::setTemplateFilter(int filter)
520
CB_TemplateFilter->setCurrentIndex(filter);
523
void HWMapContainer::templateFilterChanged(int filter)
525
emit newTemplateFilter(filter);
546
intSetTemplateFilter(filter);
534
int HWMapContainer::get_maze_size(void) const
536
return maze_size_selection->currentIndex();
539
void HWMapContainer::setMaze_size(int size)
541
maze_size_selection->setCurrentIndex(size);
542
emit maze_sizeChanged(size);
555
int HWMapContainer::getMazeSize(void) const
557
return cbMazeSize->currentIndex();
560
void HWMapContainer::intSetMazeSize(int size)
562
cbMazeSize->setCurrentIndex(size);
563
emit mazeSizeChanged(size);
566
void HWMapContainer::setMazeSize(int size)
568
intSetMazeSize(size);
546
void HWMapContainer::setMapgen(MapGenerator m)
572
void HWMapContainer::intSetMapgen(MapGenerator m)
549
chooseMap->setCurrentIndex(m);
577
chooseMap->setCurrentIndex(m);
550
579
emit mapgenChanged(m);
582
void HWMapContainer::setMapgen(MapGenerator m)