QTfrontend/mapContainer.cpp
changeset 4941 90572c338e60
parent 4936 d65d438acd23
child 4973 53411a26df7e
equal deleted inserted replaced
4940:e247addb947c 4941:90572c338e60
   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?
   353     connect(pMap, SIGNAL(ImageReceived(const QImage)), this, SLOT(setImage(const QImage)));
   353     connect(pMap, SIGNAL(ImageReceived(const QImage)), this, SLOT(setImage(const QImage)));
   354     connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int)));
   354     connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int)));
   355     pMap->getImage(m_seed,
   355     pMap->getImage(m_seed,
   356                    getTemplateFilter(),
   356                    getTemplateFilter(),
   357                    get_mapgen(),
   357                    get_mapgen(),
   358                    get_maze_size(),
   358                    getMazeSize(),
   359                    getDrawnMapData()
   359                    getDrawnMapData()
   360             );
   360             );
   361 }
   361 }
   362 
   362 
   363 void HWMapContainer::themeSelected(int currentRow)
   363 void HWMapContainer::themeSelected(int currentRow)
   414     return chooseMap->itemData(chooseMap->currentIndex()).toList()[5].toString();
   414     return chooseMap->itemData(chooseMap->currentIndex()).toList()[5].toString();
   415 }
   415 }
   416 
   416 
   417 quint32 HWMapContainer::getTemplateFilter() const
   417 quint32 HWMapContainer::getTemplateFilter() const
   418 {
   418 {
   419     return CB_TemplateFilter->itemData(CB_TemplateFilter->currentIndex()).toInt();
   419     return cbTemplateFilter->itemData(cbTemplateFilter->currentIndex()).toInt();
   420 }
   420 }
   421 
   421 
   422 void HWMapContainer::resizeEvent ( QResizeEvent * event )
   422 void HWMapContainer::resizeEvent ( QResizeEvent * event )
   423 {
   423 {
   424     Q_UNUSED(event);
   424     Q_UNUSED(event);
   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 {
   608     updatePreview();
   614     updatePreview();
   609 }
   615 }
   610 
   616 
   611 void HWMapContainer::updatePreview()
   617 void HWMapContainer::updatePreview()
   612 {
   618 {
       
   619     qDebug("updating a preview");
   613     int curIndex = chooseMap->currentIndex();
   620     int curIndex = chooseMap->currentIndex();
   614 
   621 
   615     switch(curIndex)
   622     switch(curIndex)
   616     {
   623     {
   617     case MAPGEN_REGULAR:
   624     case MAPGEN_REGULAR:
   634         hhLimit = chooseMap->itemData(curIndex).toList()[2].toInt();
   641         hhLimit = chooseMap->itemData(curIndex).toList()[2].toInt();
   635         addInfoToPreview(mapImage);
   642         addInfoToPreview(mapImage);
   636     }
   643     }
   637 }
   644 }
   638 
   645 
   639 void HWMapContainer::setMapMapgenSeed(const QString & map, MapGenerator m, const QString & seed)
   646 void HWMapContainer::setAllMapParameters(const QString &map, MapGenerator m, int mazesize, const QString &seed, int tmpl)
   640 {
   647 {
   641     setMap(map);
   648     intSetMap(map);
   642     setMapgen(m);
   649     intSetMapgen(m);
   643     setSeed(seed);
   650     intSetMazeSize(mazesize);
       
   651     intSetSeed(seed);
       
   652     intSetTemplateFilter(tmpl);
   644 
   653 
   645     updatePreview();
   654     updatePreview();
   646 }
   655 }