QTfrontend/ui/widget/gamecfgwidget.cpp
changeset 6960 822f8269e13f
parent 6958 8230a516ba93
child 6983 ede55af89e78
equal deleted inserted replaced
6959:fce378ee4191 6960:822f8269e13f
   110     connect(pMapContainer, SIGNAL(mazeSizeChanged(int)), this, SLOT(maze_sizeChanged(int)));
   110     connect(pMapContainer, SIGNAL(mazeSizeChanged(int)), this, SLOT(maze_sizeChanged(int)));
   111     connect(pMapContainer, SIGNAL(themeChanged(const QString &)), this, SLOT(themeChanged(const QString &)));
   111     connect(pMapContainer, SIGNAL(themeChanged(const QString &)), this, SLOT(themeChanged(const QString &)));
   112     connect(pMapContainer, SIGNAL(newTemplateFilter(int)), this, SLOT(templateFilterChanged(int)));
   112     connect(pMapContainer, SIGNAL(newTemplateFilter(int)), this, SLOT(templateFilterChanged(int)));
   113     connect(pMapContainer, SIGNAL(drawMapRequested()), this, SIGNAL(goToDrawMap()));
   113     connect(pMapContainer, SIGNAL(drawMapRequested()), this, SIGNAL(goToDrawMap()));
   114     connect(pMapContainer, SIGNAL(drawnMapChanged(const QByteArray &)), this, SLOT(onDrawnMapChanged(const QByteArray &)));
   114     connect(pMapContainer, SIGNAL(drawnMapChanged(const QByteArray &)), this, SLOT(onDrawnMapChanged(const QByteArray &)));
       
   115 
       
   116     connect(&DataManager::instance(), SIGNAL(updated()), this, SLOT(updateModelViews()));
   115 }
   117 }
   116 
   118 
   117 void GameCFGWidget::jumpToSchemes()
   119 void GameCFGWidget::jumpToSchemes()
   118 {
   120 {
   119     emit goToSchemes(GameSchemes->currentIndex());
   121     emit goToSchemes(GameSchemes->currentIndex());
   489     }
   491     }
   490 }
   492 }
   491 
   493 
   492 void GameCFGWidget::scriptChanged(int index)
   494 void GameCFGWidget::scriptChanged(int index)
   493 {
   495 {
       
   496     const QString & name = Scripts->itemText(index);
       
   497     m_curScript = name;
       
   498 
   494     if(isEnabled() && index > 0)
   499     if(isEnabled() && index > 0)
   495     {
   500     {
   496         QString scheme = Scripts->itemData(Scripts->currentIndex(), GameStyleModel::SchemeRole).toString();
   501         QString scheme = Scripts->itemData(index, GameStyleModel::SchemeRole).toString();
   497         QString weapons = Scripts->itemData(Scripts->currentIndex(), GameStyleModel::WeaponsRole).toString();
   502         QString weapons = Scripts->itemData(index, GameStyleModel::WeaponsRole).toString();
   498 
   503 
   499         if (scheme == "locked")
   504         if (scheme == "locked")
   500         {
   505         {
   501             GameSchemes->setEnabled(false);
   506             GameSchemes->setEnabled(false);
   502             GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
   507             GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
   535     {
   540     {
   536         GameSchemes->setEnabled(true);
   541         GameSchemes->setEnabled(true);
   537         WeaponsName->setEnabled(true);
   542         WeaponsName->setEnabled(true);
   538         bindEntries->setEnabled(true);
   543         bindEntries->setEnabled(true);
   539     }
   544     }
   540     emit paramChanged("SCRIPT", QStringList(Scripts->itemText(index)));
   545     emit paramChanged("SCRIPT", QStringList(name));
   541 }
   546 }
   542 
   547 
   543 void GameCFGWidget::mapgenChanged(MapGenerator m)
   548 void GameCFGWidget::mapgenChanged(MapGenerator m)
   544 {
   549 {
   545     emit paramChanged("MAPGEN", QStringList(QString::number(m)));
   550     emit paramChanged("MAPGEN", QStringList(QString::number(m)));
   557 
   562 
   558 void GameCFGWidget::onDrawnMapChanged(const QByteArray & data)
   563 void GameCFGWidget::onDrawnMapChanged(const QByteArray & data)
   559 {
   564 {
   560     emit paramChanged("DRAWNMAP", QStringList(qCompress(data, 9).toBase64()));
   565     emit paramChanged("DRAWNMAP", QStringList(qCompress(data, 9).toBase64()));
   561 }
   566 }
       
   567 
       
   568 
       
   569 void GameCFGWidget::updateModelViews()
       
   570 {
       
   571     // restore game-style selection
       
   572     if (!m_curScript.isEmpty())
       
   573     {
       
   574         int idx = Scripts->findText(m_curScript);
       
   575         if (idx >= 0)
       
   576             Scripts->setCurrentIndex(idx);
       
   577         else
       
   578             Scripts->setCurrentIndex(0);
       
   579     }
       
   580 }