QTfrontend/ui/widget/gamecfgwidget.cpp
changeset 13263 0f7623f722dc
parent 13244 d49bd0dd735d
child 13264 ad6c8069fe1a
equal deleted inserted replaced
13262:2877c1ec5877 13263:0f7623f722dc
   110     GBoxOptionsLayout->addWidget(lblScript, 1, 0);
   110     GBoxOptionsLayout->addWidget(lblScript, 1, 0);
   111 
   111 
   112     Scripts = new QComboBox(this);
   112     Scripts = new QComboBox(this);
   113     Scripts->setMaxVisibleItems(30);
   113     Scripts->setMaxVisibleItems(30);
   114     GBoxOptionsLayout->addWidget(Scripts, 1, 1);
   114     GBoxOptionsLayout->addWidget(Scripts, 1, 1);
   115 
       
   116     Scripts->setModel(DataManager::instance().gameStyleModel());
   115     Scripts->setModel(DataManager::instance().gameStyleModel());
   117     m_curScript = Scripts->currentText();
   116     m_curScript = Scripts->currentText();
       
   117 
       
   118     ScriptsLabel = new QLabel(this);
       
   119     ScriptsLabel->setHidden(true);
       
   120     GBoxOptionsLayout->addWidget(ScriptsLabel, 1, 1);
       
   121 
   118     connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
   122     connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
   119 
   123 
   120     QWidget *SchemeWidget = new QWidget(this);
   124     QWidget *SchemeWidget = new QWidget(this);
   121     GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
   125     GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
   122 
   126 
   124     SchemeWidgetLayout->setMargin(0);
   128     SchemeWidgetLayout->setMargin(0);
   125 
   129 
   126     GameSchemes = new QComboBox(SchemeWidget);
   130     GameSchemes = new QComboBox(SchemeWidget);
   127     GameSchemes->setMaxVisibleItems(30);
   131     GameSchemes->setMaxVisibleItems(30);
   128     SchemeWidgetLayout->addWidget(GameSchemes, 0, 2);
   132     SchemeWidgetLayout->addWidget(GameSchemes, 0, 2);
       
   133 
       
   134     GameSchemesLabel = new QLabel(SchemeWidget);
       
   135     GameSchemesLabel->setHidden(true);
       
   136     SchemeWidgetLayout->addWidget(GameSchemesLabel, 0, 2);
       
   137 
   129     connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int)));
   138     connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int)));
   130 
   139 
   131     lblScheme = new QLabel(QLabel::tr("Scheme"), SchemeWidget);
   140     lblScheme = new QLabel(QLabel::tr("Scheme"), SchemeWidget);
   132     SchemeWidgetLayout->addWidget(lblScheme, 0, 0);
   141     SchemeWidgetLayout->addWidget(lblScheme, 0, 0);
   133 
   142 
   146     SchemeWidgetLayout->addWidget(lblWeapons, 1, 0);
   155     SchemeWidgetLayout->addWidget(lblWeapons, 1, 0);
   147 
   156 
   148     WeaponsName = new QComboBox(SchemeWidget);
   157     WeaponsName = new QComboBox(SchemeWidget);
   149     WeaponsName->setMaxVisibleItems(30);
   158     WeaponsName->setMaxVisibleItems(30);
   150     SchemeWidgetLayout->addWidget(WeaponsName, 1, 2);
   159     SchemeWidgetLayout->addWidget(WeaponsName, 1, 2);
       
   160 
       
   161     WeaponsNameLabel = new QLabel(SchemeWidget);
       
   162     WeaponsNameLabel->setHidden(true);
       
   163     SchemeWidgetLayout->addWidget(WeaponsNameLabel, 1, 2);
   151 
   164 
   152     connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int)));
   165     connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int)));
   153 
   166 
   154     goToWeaponPage = new QPushButton(SchemeWidget);
   167     goToWeaponPage = new QPushButton(SchemeWidget);
   155     goToWeaponPage->setWhatsThis(tr("Edit weapons"));
   168     goToWeaponPage->setWhatsThis(tr("Edit weapons"));
   468             pMapContainer->setMazeSize(value.toUInt());
   481             pMapContainer->setMazeSize(value.toUInt());
   469             return;
   482             return;
   470         }
   483         }
   471         if (param == "SCRIPT")
   484         if (param == "SCRIPT")
   472         {
   485         {
   473             Scripts->setCurrentIndex(Scripts->findText(value));
   486             int in = Scripts->findText(value);
       
   487             Scripts->setCurrentIndex(in);
       
   488             ScriptsLabel->setText(value);
   474             pMapContainer->setScript(Scripts->itemData(Scripts->currentIndex(), GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString());
   489             pMapContainer->setScript(Scripts->itemData(Scripts->currentIndex(), GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString());
   475             return;
   490             return;
   476         }
   491         }
   477         if (param == "DRAWNMAP")
   492         if (param == "DRAWNMAP")
   478         {
   493         {
   513 
   528 
   514 void GameCFGWidget::ammoChanged(int index)
   529 void GameCFGWidget::ammoChanged(int index)
   515 {
   530 {
   516     if (index >= 0)
   531     if (index >= 0)
   517     {
   532     {
       
   533         WeaponsNameLabel->setText(WeaponsName->currentText());
   518         emit paramChanged(
   534         emit paramChanged(
   519             "AMMO",
   535             "AMMO",
   520             QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString()
   536             QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString()
   521         );
   537         );
       
   538     }
       
   539     else
       
   540     {
       
   541         WeaponsNameLabel->setText("");
   522     }
   542     }
   523 }
   543 }
   524 
   544 
   525 void GameCFGWidget::mapChanged(const QString & value)
   545 void GameCFGWidget::mapChanged(const QString & value)
   526 {
   546 {
   630                 emit ammoChanged(i);
   650                 emit ammoChanged(i);
   631                 break;
   651                 break;
   632             }
   652             }
   633         }
   653         }
   634     }
   654     }
       
   655 
       
   656     if(index == -1)
       
   657         GameSchemesLabel->setText("");
       
   658     else
       
   659         GameSchemesLabel->setText(GameSchemes->currentText());
       
   660 
   635     pMapContainer->setScript(Scripts->itemData(Scripts->currentIndex(), GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString());
   661     pMapContainer->setScript(Scripts->itemData(Scripts->currentIndex(), GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString());
   636 }
   662 }
   637 
   663 
   638 void GameCFGWidget::scriptChanged(int index)
   664 void GameCFGWidget::scriptChanged(int index)
   639 {
   665 {
   696         WeaponsName->setEnabled(true);
   722         WeaponsName->setEnabled(true);
   697         goToWeaponPage->setEnabled(true);
   723         goToWeaponPage->setEnabled(true);
   698         lblWeapons->setEnabled(true);
   724         lblWeapons->setEnabled(true);
   699         bindEntries->setEnabled(true);
   725         bindEntries->setEnabled(true);
   700     }
   726     }
   701     if (!index)
   727     if (index == -1)
   702     {
   728     {
   703         pMapContainer->setScript(QString(""), QString(""));
   729         pMapContainer->setScript(QString(""), QString(""));
       
   730         ScriptsLabel->setStyleSheet("color: #b50000;");
   704     }
   731     }
   705     else
   732     else
   706     {
   733     {
   707         pMapContainer->setScript(Scripts->itemData(index, GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString());
   734         pMapContainer->setScript(Scripts->itemData(index, GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString());
   708     }
   735         ScriptsLabel->setText(Scripts->currentText());
       
   736         ScriptsLabel->setStyleSheet("");
       
   737     }
       
   738 
   709     emit paramChanged("SCRIPT", QStringList(name));
   739     emit paramChanged("SCRIPT", QStringList(name));
   710 }
   740 }
   711 
   741 
   712 void GameCFGWidget::mapgenChanged(MapGenerator m)
   742 void GameCFGWidget::mapgenChanged(MapGenerator m)
   713 {
   743 {
   761 void GameCFGWidget::setMaster(bool master)
   791 void GameCFGWidget::setMaster(bool master)
   762 {
   792 {
   763     if (master == m_master) return;
   793     if (master == m_master) return;
   764     m_master = master;
   794     m_master = master;
   765 
   795 
       
   796     if (master)
       
   797     {
       
   798         // Reset script if not found
       
   799         if (Scripts->currentIndex() == -1)
       
   800         {
       
   801             Scripts->setCurrentIndex(Scripts->findText("Normal"));
       
   802         }
       
   803     }
       
   804 
   766     pMapContainer->setMaster(master);
   805     pMapContainer->setMaster(master);
       
   806 
       
   807     GameSchemes->setHidden(!master);
       
   808     WeaponsName->setHidden(!master);
       
   809     Scripts->setHidden(!master);
       
   810     goToSchemePage->setHidden(!master);
       
   811     goToWeaponPage->setHidden(!master);
       
   812     bindEntries->setHidden(!master);
       
   813 
       
   814     GameSchemesLabel->setHidden(master);
       
   815     WeaponsNameLabel->setHidden(master);
       
   816     ScriptsLabel->setHidden(master);
   767 
   817 
   768     foreach (QWidget *widget, m_childWidgets)
   818     foreach (QWidget *widget, m_childWidgets)
   769         widget->setEnabled(master);
   819         widget->setEnabled(master);
   770 }
   820 }