QTfrontend/ui/widget/gamecfgwidget.cpp
changeset 14518 5230c063214a
parent 13269 ad6c8069fe1a
child 14527 d0441c7e9000
equal deleted inserted replaced
14517:3b6976beb58b 14518:5230c063214a
   543     {
   543     {
   544         WeaponsNameLabel->setText("");
   544         WeaponsNameLabel->setText("");
   545     }
   545     }
   546 }
   546 }
   547 
   547 
       
   548 void GameCFGWidget::updateSchemeEnabledStates(int scriptIndex)
       
   549 {
       
   550     QString scheme;
       
   551     QString weapons;
       
   552     if(scriptIndex > 0)
       
   553     {
       
   554         scheme = Scripts->itemData(scriptIndex, GameStyleModel::SchemeRole).toString();
       
   555         weapons = Scripts->itemData(scriptIndex, GameStyleModel::WeaponsRole).toString();
       
   556     }
       
   557     else
       
   558     {
       
   559         scheme = pMapContainer->getCurrentScheme();
       
   560         weapons = pMapContainer->getCurrentWeapons();
       
   561     }
       
   562     if (scheme == "locked")
       
   563     {
       
   564         GameSchemes->setEnabled(false);
       
   565         goToSchemePage->setEnabled(false);
       
   566         lblScheme->setEnabled(false);
       
   567         GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
       
   568     }
       
   569     else if(m_master)
       
   570     {
       
   571         GameSchemes->setEnabled(true);
       
   572         goToSchemePage->setEnabled(true);
       
   573         lblScheme->setEnabled(true);
       
   574         int num = GameSchemes->findText(scheme);
       
   575         if (num != -1)
       
   576             GameSchemes->setCurrentIndex(num);
       
   577     }
       
   578 
       
   579     if (weapons == "locked")
       
   580     {
       
   581         WeaponsName->setEnabled(false);
       
   582         goToWeaponPage->setEnabled(false);
       
   583         lblWeapons->setEnabled(false);
       
   584         WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
       
   585     }
       
   586     else if(m_master)
       
   587     {
       
   588         WeaponsName->setEnabled(true);
       
   589         goToWeaponPage->setEnabled(true);
       
   590         lblWeapons->setEnabled(true);
       
   591         int num = WeaponsName->findText(weapons);
       
   592         if (num != -1)
       
   593             WeaponsName->setCurrentIndex(num);
       
   594     }
       
   595 
       
   596     if (scheme != "locked" && weapons != "locked")
       
   597         bindEntries->setEnabled(true);
       
   598     else
       
   599         bindEntries->setEnabled(false);
       
   600 }
       
   601 
   548 void GameCFGWidget::mapChanged(const QString & value)
   602 void GameCFGWidget::mapChanged(const QString & value)
   549 {
   603 {
   550     if(isEnabled() && pMapContainer->getCurrentIsMission())
   604     if(isEnabled() && pMapContainer->getCurrentIsMission())
   551     {
   605     {
   552         Scripts->setEnabled(false);
   606         Scripts->setEnabled(false);
   553         lblScript->setEnabled(false);
   607         lblScript->setEnabled(false);
   554         Scripts->setCurrentIndex(0);
   608         Scripts->setCurrentIndex(0);
   555 
   609         updateSchemeEnabledStates(0);
   556         if (pMapContainer->getCurrentScheme() == "locked")
       
   557         {
       
   558             GameSchemes->setEnabled(false);
       
   559             goToSchemePage->setEnabled(false);
       
   560             lblScheme->setEnabled(false);
       
   561             GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
       
   562         }
       
   563         else
       
   564         {
       
   565             GameSchemes->setEnabled(true);
       
   566             goToSchemePage->setEnabled(true);
       
   567             lblScheme->setEnabled(true);
       
   568             int num = GameSchemes->findText(pMapContainer->getCurrentScheme());
       
   569             if (num != -1)
       
   570                 GameSchemes->setCurrentIndex(num);
       
   571             //else
       
   572             //    GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
       
   573         }
       
   574 
       
   575         if (pMapContainer->getCurrentWeapons() == "locked")
       
   576         {
       
   577             WeaponsName->setEnabled(false);
       
   578             goToWeaponPage->setEnabled(false);
       
   579             lblWeapons->setEnabled(false);
       
   580             WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
       
   581         }
       
   582         else
       
   583         {
       
   584             WeaponsName->setEnabled(true);
       
   585             goToWeaponPage->setEnabled(true);
       
   586             lblWeapons->setEnabled(true);
       
   587             int num = WeaponsName->findText(pMapContainer->getCurrentWeapons());
       
   588             if (num != -1)
       
   589                 WeaponsName->setCurrentIndex(num);
       
   590             //else
       
   591             //    WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
       
   592         }
       
   593 
       
   594         if (pMapContainer->getCurrentScheme() != "locked" && pMapContainer->getCurrentWeapons() != "locked")
       
   595             bindEntries->setEnabled(true);
       
   596         else
       
   597             bindEntries->setEnabled(false);
       
   598     }
   610     }
   599     else
   611     else
   600     {
   612     {
   601         Scripts->setEnabled(true);
   613         Scripts->setEnabled(true);
   602         lblScript->setEnabled(true);
   614         lblScript->setEnabled(true);
   669     const QString & name = Scripts->itemText(index);
   681     const QString & name = Scripts->itemText(index);
   670     m_curScript = name;
   682     m_curScript = name;
   671 
   683 
   672     if(isEnabled() && index > 0)
   684     if(isEnabled() && index > 0)
   673     {
   685     {
   674         QString scheme = Scripts->itemData(index, GameStyleModel::SchemeRole).toString();
   686         updateSchemeEnabledStates(index);
   675         QString weapons = Scripts->itemData(index, GameStyleModel::WeaponsRole).toString();
       
   676 
       
   677         if (scheme == "locked")
       
   678         {
       
   679             GameSchemes->setEnabled(false);
       
   680             goToSchemePage->setEnabled(false);
       
   681             lblScheme->setEnabled(false);
       
   682             GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
       
   683         }
       
   684         else if (m_master)
       
   685         {
       
   686             GameSchemes->setEnabled(true);
       
   687             goToSchemePage->setEnabled(true);
       
   688             lblScheme->setEnabled(true);
       
   689             int num = GameSchemes->findText(scheme);
       
   690             if (num != -1)
       
   691                 GameSchemes->setCurrentIndex(num);
       
   692             //else
       
   693             //    GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
       
   694         }
       
   695 
       
   696         if (weapons == "locked")
       
   697         {
       
   698             WeaponsName->setEnabled(false);
       
   699             goToWeaponPage->setEnabled(false);
       
   700             lblWeapons->setEnabled(false);
       
   701             WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
       
   702         }
       
   703         else if (m_master)
       
   704         {
       
   705             WeaponsName->setEnabled(true);
       
   706             goToWeaponPage->setEnabled(true);
       
   707             lblWeapons->setEnabled(true);
       
   708             int num = WeaponsName->findText(weapons);
       
   709             if (num != -1)
       
   710                 WeaponsName->setCurrentIndex(num);
       
   711             //else
       
   712             //    WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
       
   713         }
       
   714 
       
   715         if (scheme != "locked" && weapons != "locked")
       
   716             bindEntries->setEnabled(true);
       
   717         else
       
   718             bindEntries->setEnabled(false);
       
   719     }
   687     }
   720     else
   688     else
   721     {
   689     {
   722         GameSchemes->setEnabled(true);
   690         GameSchemes->setEnabled(true);
   723         goToSchemePage->setEnabled(true);
   691         goToSchemePage->setEnabled(true);
   742     emit paramChanged("SCRIPT", QStringList(name));
   710     emit paramChanged("SCRIPT", QStringList(name));
   743 }
   711 }
   744 
   712 
   745 void GameCFGWidget::mapgenChanged(MapGenerator m)
   713 void GameCFGWidget::mapgenChanged(MapGenerator m)
   746 {
   714 {
       
   715     int scriptIndex = Scripts->currentIndex();
       
   716     updateSchemeEnabledStates(scriptIndex);
   747     emit paramChanged("MAPGEN", QStringList(QString::number(m)));
   717     emit paramChanged("MAPGEN", QStringList(QString::number(m)));
   748 }
   718 }
   749 
   719 
   750 void GameCFGWidget::maze_sizeChanged(int s)
   720 void GameCFGWidget::maze_sizeChanged(int s)
   751 {
   721 {