QTfrontend/mapContainer.cpp
branch0.9.14.1
changeset 4322 564a433ca1cb
parent 4316 c4e98c10fc71
child 4337 85e02b1a8e8f
equal deleted inserted replaced
4320:8af00b86a38c 4322:564a433ca1cb
    54     imageButt->setObjectName("imageButt");
    54     imageButt->setObjectName("imageButt");
    55     imageButt->setFixedSize(256 + 6, 128 + 6);
    55     imageButt->setFixedSize(256 + 6, 128 + 6);
    56     imageButt->setFlat(true);
    56     imageButt->setFlat(true);
    57     imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
    57     imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
    58     mainLayout.addWidget(imageButt, 0, 0, 1, 2);
    58     mainLayout.addWidget(imageButt, 0, 0, 1, 2);
    59     //connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed()));
    59     connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed()));
    60     //connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme()));
    60     connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme()));
    61     connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomMap()));
       
    62 
    61 
    63     chooseMap = new QComboBox(this);
    62     chooseMap = new QComboBox(this);
    64     chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    63     chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    65     chooseMap->addItem(
    64     chooseMap->addItem(
    66 // FIXME - need real icons. Disabling until then
    65 // FIXME - need real icons. Disabling until then
    71 //QIcon(":/res/mapMaze.png"), 
    70 //QIcon(":/res/mapMaze.png"), 
    72 QComboBox::tr("generated maze..."));
    71 QComboBox::tr("generated maze..."));
    73     chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
    72     chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
    74 
    73 
    75     int missionindex = chooseMap->count();
    74     int missionindex = chooseMap->count();
    76     numMissions = 0;
       
    77     for (int i = 0; i < mapList->size(); ++i) {
    75     for (int i = 0; i < mapList->size(); ++i) {
    78         QString map = (*mapList)[i];
    76         QString map = (*mapList)[i];
    79         QFile mapCfgFile(
    77         QFile mapCfgFile(
    80                 QString("%1/Maps/%2/map.cfg")
    78                 QString("%1/Maps/%2/map.cfg")
    81                 .arg(datadir->absolutePath())
    79                 .arg(datadir->absolutePath())
    98                 mapInfo.push_back(limit);
    96                 mapInfo.push_back(limit);
    99             else
    97             else
   100                 mapInfo.push_back(18);
    98                 mapInfo.push_back(18);
   101             mapInfo.push_back(mapLuaFile.exists());
    99             mapInfo.push_back(mapLuaFile.exists());
   102             if(mapLuaFile.exists())
   100             if(mapLuaFile.exists())
   103             {
       
   104                 chooseMap->insertItem(missionindex++, 
   101                 chooseMap->insertItem(missionindex++, 
   105 // FIXME - need real icons. Disabling until then
   102 // FIXME - need real icons. Disabling until then
   106 //QIcon(":/res/mapMission.png"), 
   103 //QIcon(":/res/mapMission.png"), 
   107 QComboBox::tr("Mission") + ": " + map, mapInfo);
   104 QComboBox::tr("Mission") + ": " + map, mapInfo);
   108                 numMissions++;
       
   109             }
       
   110             else
   105             else
   111                 chooseMap->addItem(
   106                 chooseMap->addItem(
   112 // FIXME - need real icons. Disabling until then
   107 // FIXME - need real icons. Disabling until then
   113 //QIcon(":/res/mapCustom.png"), 
   108 //QIcon(":/res/mapCustom.png"),
   114 map, mapInfo);
   109  map, mapInfo);
   115             mapCfgFile.close();
   110             mapCfgFile.close();
   116         }
   111         }
   117     }
   112     }
   118     chooseMap->insertSeparator(missionindex); // separator between missions and maps
   113     chooseMap->insertSeparator(missionindex); // separator between missions and maps
   119 
   114 
   405 {
   400 {
   406     QList<QListWidgetItem *> items = lwThemes->findItems(theme, Qt::MatchExactly);
   401     QList<QListWidgetItem *> items = lwThemes->findItems(theme, Qt::MatchExactly);
   407     if(items.size())
   402     if(items.size())
   408         lwThemes->setCurrentItem(items.at(0));
   403         lwThemes->setCurrentItem(items.at(0));
   409 }
   404 }
   410 #include <QMessageBox>
       
   411 void HWMapContainer::setRandomMap()
       
   412 {
       
   413     switch(chooseMap->currentIndex())
       
   414     {
       
   415     case MAPGEN_REGULAR:
       
   416     case MAPGEN_MAZE:
       
   417         setRandomSeed();
       
   418         setRandomTheme();
       
   419         break;
       
   420     default:
       
   421         if(chooseMap->currentIndex() < numMissions + 3)
       
   422             setRandomMission();
       
   423         else
       
   424             setRandomStatic();
       
   425         break;
       
   426     }
       
   427 }
       
   428 
       
   429 void HWMapContainer::setRandomStatic()
       
   430 {
       
   431     chooseMap->setCurrentIndex(4 + numMissions + rand() % (chooseMap->count() - 4 - numMissions));
       
   432     m_seed = QUuid::createUuid().toString();
       
   433     emit seedChanged(m_seed);
       
   434 }
       
   435 
       
   436 void HWMapContainer::setRandomMission()
       
   437 {
       
   438     chooseMap->setCurrentIndex(3 + rand() % numMissions);
       
   439     m_seed = QUuid::createUuid().toString();
       
   440     emit seedChanged(m_seed);
       
   441 }
       
   442 
   405 
   443 void HWMapContainer::setRandomSeed()
   406 void HWMapContainer::setRandomSeed()
   444 {
   407 {
   445     m_seed = QUuid::createUuid().toString();
   408     m_seed = QUuid::createUuid().toString();
   446     emit seedChanged(m_seed);
   409     emit seedChanged(m_seed);