138 mapCfgFile.close(); |
138 mapCfgFile.close(); |
139 } |
139 } |
140 } |
140 } |
141 chooseMap->insertSeparator(missionindex); // separator between missions and maps |
141 chooseMap->insertSeparator(missionindex); // separator between missions and maps |
142 |
142 |
143 connect(chooseMap, SIGNAL(currentIndexChanged(int)), this, SLOT(mapChanged(int))); |
143 connect(chooseMap, SIGNAL(activated(int)), this, SLOT(mapChanged(int))); |
144 mapLayout->addWidget(chooseMap, 1, 1); |
144 mapLayout->addWidget(chooseMap, 1, 1); |
145 |
145 |
146 QLabel * lblMap = new QLabel(tr("Map"), mapWidget); |
146 QLabel * lblMap = new QLabel(tr("Map"), mapWidget); |
147 mapLayout->addWidget(lblMap, 1, 0); |
147 mapLayout->addWidget(lblMap, 1, 0); |
148 |
148 |
149 lblFilter = new QLabel(tr("Filter"), mapWidget); |
149 lblFilter = new QLabel(tr("Filter"), mapWidget); |
150 mapLayout->addWidget(lblFilter, 2, 0); |
150 mapLayout->addWidget(lblFilter, 2, 0); |
151 |
151 |
152 CB_TemplateFilter = new QComboBox(mapWidget); |
152 cbTemplateFilter = new QComboBox(mapWidget); |
153 CB_TemplateFilter->addItem(tr("All"), 0); |
153 cbTemplateFilter->addItem(tr("All"), 0); |
154 CB_TemplateFilter->addItem(tr("Small"), 1); |
154 cbTemplateFilter->addItem(tr("Small"), 1); |
155 CB_TemplateFilter->addItem(tr("Medium"), 2); |
155 cbTemplateFilter->addItem(tr("Medium"), 2); |
156 CB_TemplateFilter->addItem(tr("Large"), 3); |
156 cbTemplateFilter->addItem(tr("Large"), 3); |
157 CB_TemplateFilter->addItem(tr("Cavern"), 4); |
157 cbTemplateFilter->addItem(tr("Cavern"), 4); |
158 CB_TemplateFilter->addItem(tr("Wacky"), 5); |
158 cbTemplateFilter->addItem(tr("Wacky"), 5); |
159 mapLayout->addWidget(CB_TemplateFilter, 2, 1); |
159 mapLayout->addWidget(cbTemplateFilter, 2, 1); |
160 |
160 |
161 connect(CB_TemplateFilter, SIGNAL(currentIndexChanged(int)), this, SLOT(templateFilterChanged(int))); |
161 connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int))); |
162 |
162 |
163 maze_size_label = new QLabel(tr("Type"), mapWidget); |
163 maze_size_label = new QLabel(tr("Type"), mapWidget); |
164 mainLayout.addWidget(maze_size_label, 2, 0); |
164 mainLayout.addWidget(maze_size_label, 2, 0); |
165 maze_size_label->hide(); |
165 maze_size_label->hide(); |
166 maze_size_selection = new QComboBox(mapWidget); |
166 cbMazeSize = new QComboBox(mapWidget); |
167 maze_size_selection->addItem(tr("Small tunnels"), 0); |
167 cbMazeSize->addItem(tr("Small tunnels"), 0); |
168 maze_size_selection->addItem(tr("Medium tunnels"), 1); |
168 cbMazeSize->addItem(tr("Medium tunnels"), 1); |
169 maze_size_selection->addItem(tr("Large tunnels"), 2); |
169 cbMazeSize->addItem(tr("Large tunnels"), 2); |
170 maze_size_selection->addItem(tr("Small floating islands"), 3); |
170 cbMazeSize->addItem(tr("Small floating islands"), 3); |
171 maze_size_selection->addItem(tr("Medium floating islands"), 4); |
171 cbMazeSize->addItem(tr("Medium floating islands"), 4); |
172 maze_size_selection->addItem(tr("Large floating islands"), 5); |
172 cbMazeSize->addItem(tr("Large floating islands"), 5); |
173 maze_size_selection->setCurrentIndex(1); |
173 cbMazeSize->setCurrentIndex(1); |
174 |
174 |
175 mapLayout->addWidget(maze_size_selection, 2, 1); |
175 mapLayout->addWidget(cbMazeSize, 2, 1); |
176 maze_size_selection->hide(); |
176 cbMazeSize->hide(); |
177 connect(maze_size_selection, SIGNAL(currentIndexChanged(int)), this, SLOT(setMaze_size(int))); |
177 connect(cbMazeSize, SIGNAL(activated(int)), this, SLOT(setMazeSize(int))); |
178 |
178 |
179 gbThemes = new IconedGroupBox(mapWidget); |
179 gbThemes = new IconedGroupBox(mapWidget); |
180 gbThemes->setTitleTextPadding(80); |
180 gbThemes->setTitleTextPadding(80); |
181 gbThemes->setContentTopPadding(15); |
181 gbThemes->setContentTopPadding(15); |
182 gbThemes->setTitle(tr("Themes")); |
182 gbThemes->setTitle(tr("Themes")); |
276 case MAPGEN_REGULAR: |
276 case MAPGEN_REGULAR: |
277 mapgen = MAPGEN_REGULAR; |
277 mapgen = MAPGEN_REGULAR; |
278 updatePreview(); |
278 updatePreview(); |
279 gbThemes->show(); |
279 gbThemes->show(); |
280 lblFilter->show(); |
280 lblFilter->show(); |
281 CB_TemplateFilter->show(); |
281 cbTemplateFilter->show(); |
282 maze_size_label->hide(); |
282 maze_size_label->hide(); |
283 maze_size_selection->hide(); |
283 cbMazeSize->hide(); |
284 emit mapChanged("+rnd+"); |
284 emit mapChanged("+rnd+"); |
285 emit mapgenChanged(mapgen); |
285 emit mapgenChanged(mapgen); |
286 emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); |
286 emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); |
287 break; |
287 break; |
288 case MAPGEN_MAZE: |
288 case MAPGEN_MAZE: |
289 mapgen = MAPGEN_MAZE; |
289 mapgen = MAPGEN_MAZE; |
290 updatePreview(); |
290 updatePreview(); |
291 gbThemes->show(); |
291 gbThemes->show(); |
292 lblFilter->hide(); |
292 lblFilter->hide(); |
293 CB_TemplateFilter->hide(); |
293 cbTemplateFilter->hide(); |
294 maze_size_label->show(); |
294 maze_size_label->show(); |
295 maze_size_selection->show(); |
295 cbMazeSize->show(); |
296 emit mapChanged("+maze+"); |
296 emit mapChanged("+maze+"); |
297 emit mapgenChanged(mapgen); |
297 emit mapgenChanged(mapgen); |
298 emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); |
298 emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); |
299 break; |
299 break; |
300 case MAPGEN_DRAWN: |
300 case MAPGEN_DRAWN: |
301 mapgen = MAPGEN_DRAWN; |
301 mapgen = MAPGEN_DRAWN; |
302 updatePreview(); |
302 updatePreview(); |
303 gbThemes->show(); |
303 gbThemes->show(); |
304 lblFilter->hide(); |
304 lblFilter->hide(); |
305 CB_TemplateFilter->hide(); |
305 cbTemplateFilter->hide(); |
306 maze_size_label->hide(); |
306 maze_size_label->hide(); |
307 maze_size_selection->hide(); |
307 cbMazeSize->hide(); |
308 emit mapChanged("+drawn+"); |
308 emit mapChanged("+drawn+"); |
309 emit mapgenChanged(mapgen); |
309 emit mapgenChanged(mapgen); |
310 emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); |
310 emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); |
311 break; |
311 break; |
312 default: |
312 default: |
313 updatePreview(); |
313 updatePreview(); |
314 gbThemes->hide(); |
314 gbThemes->hide(); |
315 lblFilter->hide(); |
315 lblFilter->hide(); |
316 CB_TemplateFilter->hide(); |
316 cbTemplateFilter->hide(); |
317 maze_size_label->hide(); |
317 maze_size_label->hide(); |
318 maze_size_selection->hide(); |
318 cbMazeSize->hide(); |
319 emit mapChanged(chooseMap->itemData(index).toList()[0].toString()); |
319 emit mapChanged(chooseMap->itemData(index).toList()[0].toString()); |
320 } |
320 } |
321 } |
321 } |
322 |
322 |
323 // Should this add text to identify map size? |
323 // Should this add text to identify map size? |
523 if(!Themes->size()) return; |
523 if(!Themes->size()) return; |
524 quint32 themeNum = rand() % Themes->size(); |
524 quint32 themeNum = rand() % Themes->size(); |
525 lwThemes->setCurrentRow(themeNum); |
525 lwThemes->setCurrentRow(themeNum); |
526 } |
526 } |
527 |
527 |
|
528 void HWMapContainer::intSetTemplateFilter(int filter) |
|
529 { |
|
530 cbTemplateFilter->setCurrentIndex(filter); |
|
531 emit newTemplateFilter(filter); |
|
532 } |
|
533 |
528 void HWMapContainer::setTemplateFilter(int filter) |
534 void HWMapContainer::setTemplateFilter(int filter) |
529 { |
535 { |
530 CB_TemplateFilter->setCurrentIndex(filter); |
536 intSetTemplateFilter(filter); |
531 } |
|
532 |
|
533 void HWMapContainer::templateFilterChanged(int filter) |
|
534 { |
|
535 emit newTemplateFilter(filter); |
|
536 updatePreview(); |
537 updatePreview(); |
537 } |
538 } |
538 |
539 |
539 MapGenerator HWMapContainer::get_mapgen(void) const |
540 MapGenerator HWMapContainer::get_mapgen(void) const |
540 { |
541 { |
541 return mapgen; |
542 return mapgen; |
542 } |
543 } |
543 |
544 |
544 int HWMapContainer::get_maze_size(void) const |
545 int HWMapContainer::getMazeSize(void) const |
545 { |
546 { |
546 return maze_size_selection->currentIndex(); |
547 return cbMazeSize->currentIndex(); |
547 } |
548 } |
548 |
549 |
549 void HWMapContainer::setMaze_size(int size) |
550 void HWMapContainer::intSetMazeSize(int size) |
550 { |
551 { |
551 maze_size_selection->setCurrentIndex(size); |
552 cbMazeSize->setCurrentIndex(size); |
552 emit maze_sizeChanged(size); |
553 emit mazeSizeChanged(size); |
|
554 } |
|
555 |
|
556 void HWMapContainer::setMazeSize(int size) |
|
557 { |
|
558 intSetMazeSize(size); |
553 updatePreview(); |
559 updatePreview(); |
554 } |
560 } |
555 |
561 |
556 void HWMapContainer::intSetMapgen(MapGenerator m) |
562 void HWMapContainer::intSetMapgen(MapGenerator m) |
557 { |
563 { |