104 m_childWidgets << OptionsInnerContainer; |
104 m_childWidgets << OptionsInnerContainer; |
105 OptionsInnerContainer->setFixedSize(optionsContainerFree->width(), optionsContainerFree->height()); |
105 OptionsInnerContainer->setFixedSize(optionsContainerFree->width(), optionsContainerFree->height()); |
106 OptionsInnerContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); |
106 OptionsInnerContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); |
107 GBoxOptionsLayout = new QGridLayout(OptionsInnerContainer); |
107 GBoxOptionsLayout = new QGridLayout(OptionsInnerContainer); |
108 |
108 |
109 GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), this), 1, 0); |
109 lblScript = new QLabel(QLabel::tr("Style"), this); |
|
110 GBoxOptionsLayout->addWidget(lblScript, 1, 0); |
110 |
111 |
111 Scripts = new QComboBox(this); |
112 Scripts = new QComboBox(this); |
112 Scripts->setMaxVisibleItems(30); |
113 Scripts->setMaxVisibleItems(30); |
113 GBoxOptionsLayout->addWidget(Scripts, 1, 1); |
114 GBoxOptionsLayout->addWidget(Scripts, 1, 1); |
114 |
|
115 Scripts->setModel(DataManager::instance().gameStyleModel()); |
115 Scripts->setModel(DataManager::instance().gameStyleModel()); |
116 m_curScript = Scripts->currentText(); |
116 m_curScript = Scripts->currentText(); |
|
117 |
|
118 ScriptsLabel = new QLabel(this); |
|
119 ScriptsLabel->setHidden(true); |
|
120 ScriptsLabel->setTextFormat(Qt::PlainText); |
|
121 GBoxOptionsLayout->addWidget(ScriptsLabel, 1, 1); |
|
122 |
117 connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int))); |
123 connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int))); |
118 |
124 |
119 QWidget *SchemeWidget = new QWidget(this); |
125 QWidget *SchemeWidget = new QWidget(this); |
120 GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2); |
126 GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2); |
121 |
127 |
123 SchemeWidgetLayout->setMargin(0); |
129 SchemeWidgetLayout->setMargin(0); |
124 |
130 |
125 GameSchemes = new QComboBox(SchemeWidget); |
131 GameSchemes = new QComboBox(SchemeWidget); |
126 GameSchemes->setMaxVisibleItems(30); |
132 GameSchemes->setMaxVisibleItems(30); |
127 SchemeWidgetLayout->addWidget(GameSchemes, 0, 2); |
133 SchemeWidgetLayout->addWidget(GameSchemes, 0, 2); |
|
134 |
|
135 GameSchemesLabel = new QLabel(SchemeWidget); |
|
136 GameSchemesLabel->setHidden(true); |
|
137 GameSchemesLabel->setTextFormat(Qt::PlainText); |
|
138 SchemeWidgetLayout->addWidget(GameSchemesLabel, 0, 2); |
|
139 |
128 connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int))); |
140 connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int))); |
129 |
141 |
130 SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Scheme"), SchemeWidget), 0, 0); |
142 lblScheme = new QLabel(QLabel::tr("Scheme"), SchemeWidget); |
|
143 SchemeWidgetLayout->addWidget(lblScheme, 0, 0); |
131 |
144 |
132 QPixmap pmEdit(":/res/edit.png"); |
145 QPixmap pmEdit(":/res/edit.png"); |
133 |
146 QIcon iconEdit = QIcon(pmEdit); |
134 QPushButton * goToSchemePage = new QPushButton(SchemeWidget); |
147 |
|
148 goToSchemePage = new QPushButton(SchemeWidget); |
135 goToSchemePage->setWhatsThis(tr("Edit schemes")); |
149 goToSchemePage->setWhatsThis(tr("Edit schemes")); |
136 goToSchemePage->setIconSize(pmEdit.size()); |
150 goToSchemePage->setIconSize(pmEdit.size()); |
137 goToSchemePage->setIcon(pmEdit); |
151 goToSchemePage->setIcon(iconEdit); |
138 goToSchemePage->setMaximumWidth(pmEdit.width() + 6); |
152 goToSchemePage->setMaximumWidth(pmEdit.width() + 6); |
139 SchemeWidgetLayout->addWidget(goToSchemePage, 0, 3); |
153 SchemeWidgetLayout->addWidget(goToSchemePage, 0, 3); |
140 connect(goToSchemePage, SIGNAL(clicked()), this, SLOT(jumpToSchemes())); |
154 connect(goToSchemePage, SIGNAL(clicked()), this, SLOT(jumpToSchemes())); |
141 |
155 |
142 SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Weapons"), SchemeWidget), 1, 0); |
156 lblWeapons = new QLabel(QLabel::tr("Weapons"), SchemeWidget); |
|
157 SchemeWidgetLayout->addWidget(lblWeapons, 1, 0); |
143 |
158 |
144 WeaponsName = new QComboBox(SchemeWidget); |
159 WeaponsName = new QComboBox(SchemeWidget); |
145 WeaponsName->setMaxVisibleItems(30); |
160 WeaponsName->setMaxVisibleItems(30); |
146 SchemeWidgetLayout->addWidget(WeaponsName, 1, 2); |
161 SchemeWidgetLayout->addWidget(WeaponsName, 1, 2); |
147 |
162 |
|
163 WeaponsNameLabel = new QLabel(SchemeWidget); |
|
164 WeaponsNameLabel->setHidden(true); |
|
165 WeaponsNameLabel->setTextFormat(Qt::PlainText); |
|
166 SchemeWidgetLayout->addWidget(WeaponsNameLabel, 1, 2); |
|
167 |
148 connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int))); |
168 connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int))); |
149 |
169 |
150 QPushButton * goToWeaponPage = new QPushButton(SchemeWidget); |
170 goToWeaponPage = new QPushButton(SchemeWidget); |
151 goToWeaponPage->setWhatsThis(tr("Edit weapons")); |
171 goToWeaponPage->setWhatsThis(tr("Edit weapons")); |
152 goToWeaponPage->setIconSize(pmEdit.size()); |
172 goToWeaponPage->setIconSize(pmEdit.size()); |
153 goToWeaponPage->setIcon(pmEdit); |
173 goToWeaponPage->setIcon(pmEdit); |
154 goToWeaponPage->setMaximumWidth(pmEdit.width() + 6); |
174 goToWeaponPage->setMaximumWidth(pmEdit.width() + 6); |
155 SchemeWidgetLayout->addWidget(goToWeaponPage, 1, 3); |
175 SchemeWidgetLayout->addWidget(goToWeaponPage, 1, 3); |
157 |
177 |
158 bindEntries = new QCheckBox(SchemeWidget); |
178 bindEntries = new QCheckBox(SchemeWidget); |
159 bindEntries->setWhatsThis(tr("Game scheme will auto-select a weapon")); |
179 bindEntries->setWhatsThis(tr("Game scheme will auto-select a weapon")); |
160 bindEntries->setChecked(true); |
180 bindEntries->setChecked(true); |
161 bindEntries->setMaximumWidth(42); |
181 bindEntries->setMaximumWidth(42); |
162 bindEntries->setStyleSheet( "QCheckBox::indicator:checked { image: url(\":/res/lock.png\"); }" |
182 bindEntries->setStyleSheet( "QCheckBox::indicator:checked:enabled { image: url(\":/res/lock.png\"); }" |
163 "QCheckBox::indicator:unchecked { image: url(\":/res/unlock.png\"); }" ); |
183 "QCheckBox::indicator:checked:disabled { image: url(\":/res/lock_disabled.png\"); }" |
|
184 "QCheckBox::indicator:unchecked:enabled { image: url(\":/res/unlock.png\"); }" |
|
185 "QCheckBox::indicator:unchecked:disabled { image: url(\":/res/unlock_disabled.png\"); }" ); |
164 SchemeWidgetLayout->addWidget(bindEntries, 0, 1, 0, 1, Qt::AlignVCenter); |
186 SchemeWidgetLayout->addWidget(bindEntries, 0, 1, 0, 1, Qt::AlignVCenter); |
165 |
187 |
166 connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &))); |
188 connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &))); |
167 connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &))); |
189 connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &))); |
168 connect(pMapContainer, SIGNAL(mapgenChanged(MapGenerator)), this, SLOT(mapgenChanged(MapGenerator))); |
190 connect(pMapContainer, SIGNAL(mapgenChanged(MapGenerator)), this, SLOT(mapgenChanged(MapGenerator))); |
507 |
531 |
508 void GameCFGWidget::ammoChanged(int index) |
532 void GameCFGWidget::ammoChanged(int index) |
509 { |
533 { |
510 if (index >= 0) |
534 if (index >= 0) |
511 { |
535 { |
|
536 WeaponsNameLabel->setText(WeaponsName->currentText()); |
512 emit paramChanged( |
537 emit paramChanged( |
513 "AMMO", |
538 "AMMO", |
514 QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString() |
539 QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString() |
515 ); |
540 ); |
516 } |
541 } |
|
542 else |
|
543 { |
|
544 WeaponsNameLabel->setText(""); |
|
545 } |
517 } |
546 } |
518 |
547 |
519 void GameCFGWidget::mapChanged(const QString & value) |
548 void GameCFGWidget::mapChanged(const QString & value) |
520 { |
549 { |
521 if(isEnabled() && pMapContainer->getCurrentIsMission()) |
550 if(isEnabled() && pMapContainer->getCurrentIsMission()) |
522 { |
551 { |
523 Scripts->setEnabled(false); |
552 Scripts->setEnabled(false); |
|
553 lblScript->setEnabled(false); |
524 Scripts->setCurrentIndex(0); |
554 Scripts->setCurrentIndex(0); |
525 |
555 |
526 if (pMapContainer->getCurrentScheme() == "locked") |
556 if (pMapContainer->getCurrentScheme() == "locked") |
527 { |
557 { |
528 GameSchemes->setEnabled(false); |
558 GameSchemes->setEnabled(false); |
|
559 goToSchemePage->setEnabled(false); |
|
560 lblScheme->setEnabled(false); |
529 GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
561 GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
530 } |
562 } |
531 else |
563 else |
532 { |
564 { |
533 GameSchemes->setEnabled(true); |
565 GameSchemes->setEnabled(true); |
|
566 goToSchemePage->setEnabled(true); |
|
567 lblScheme->setEnabled(true); |
534 int num = GameSchemes->findText(pMapContainer->getCurrentScheme()); |
568 int num = GameSchemes->findText(pMapContainer->getCurrentScheme()); |
535 if (num != -1) |
569 if (num != -1) |
536 GameSchemes->setCurrentIndex(num); |
570 GameSchemes->setCurrentIndex(num); |
537 //else |
571 //else |
538 // GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
572 // GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
539 } |
573 } |
540 |
574 |
541 if (pMapContainer->getCurrentWeapons() == "locked") |
575 if (pMapContainer->getCurrentWeapons() == "locked") |
542 { |
576 { |
543 WeaponsName->setEnabled(false); |
577 WeaponsName->setEnabled(false); |
|
578 goToWeaponPage->setEnabled(false); |
|
579 lblWeapons->setEnabled(false); |
544 WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
580 WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
545 } |
581 } |
546 else |
582 else |
547 { |
583 { |
548 WeaponsName->setEnabled(true); |
584 WeaponsName->setEnabled(true); |
|
585 goToWeaponPage->setEnabled(true); |
|
586 lblWeapons->setEnabled(true); |
549 int num = WeaponsName->findText(pMapContainer->getCurrentWeapons()); |
587 int num = WeaponsName->findText(pMapContainer->getCurrentWeapons()); |
550 if (num != -1) |
588 if (num != -1) |
551 WeaponsName->setCurrentIndex(num); |
589 WeaponsName->setCurrentIndex(num); |
552 //else |
590 //else |
553 // WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
591 // WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
626 QString weapons = Scripts->itemData(index, GameStyleModel::WeaponsRole).toString(); |
675 QString weapons = Scripts->itemData(index, GameStyleModel::WeaponsRole).toString(); |
627 |
676 |
628 if (scheme == "locked") |
677 if (scheme == "locked") |
629 { |
678 { |
630 GameSchemes->setEnabled(false); |
679 GameSchemes->setEnabled(false); |
|
680 goToSchemePage->setEnabled(false); |
|
681 lblScheme->setEnabled(false); |
631 GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
682 GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
632 } |
683 } |
633 else if (m_master) |
684 else if (m_master) |
634 { |
685 { |
635 GameSchemes->setEnabled(true); |
686 GameSchemes->setEnabled(true); |
|
687 goToSchemePage->setEnabled(true); |
|
688 lblScheme->setEnabled(true); |
636 int num = GameSchemes->findText(scheme); |
689 int num = GameSchemes->findText(scheme); |
637 if (num != -1) |
690 if (num != -1) |
638 GameSchemes->setCurrentIndex(num); |
691 GameSchemes->setCurrentIndex(num); |
639 //else |
692 //else |
640 // GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
693 // GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); |
641 } |
694 } |
642 |
695 |
643 if (weapons == "locked") |
696 if (weapons == "locked") |
644 { |
697 { |
645 WeaponsName->setEnabled(false); |
698 WeaponsName->setEnabled(false); |
|
699 goToWeaponPage->setEnabled(false); |
|
700 lblWeapons->setEnabled(false); |
646 WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
701 WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
647 } |
702 } |
648 else if (m_master) |
703 else if (m_master) |
649 { |
704 { |
650 WeaponsName->setEnabled(true); |
705 WeaponsName->setEnabled(true); |
|
706 goToWeaponPage->setEnabled(true); |
|
707 lblWeapons->setEnabled(true); |
651 int num = WeaponsName->findText(weapons); |
708 int num = WeaponsName->findText(weapons); |
652 if (num != -1) |
709 if (num != -1) |
653 WeaponsName->setCurrentIndex(num); |
710 WeaponsName->setCurrentIndex(num); |
654 //else |
711 //else |
655 // WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
712 // WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); |
661 bindEntries->setEnabled(false); |
718 bindEntries->setEnabled(false); |
662 } |
719 } |
663 else |
720 else |
664 { |
721 { |
665 GameSchemes->setEnabled(true); |
722 GameSchemes->setEnabled(true); |
|
723 goToSchemePage->setEnabled(true); |
|
724 lblScheme->setEnabled(true); |
666 WeaponsName->setEnabled(true); |
725 WeaponsName->setEnabled(true); |
|
726 goToWeaponPage->setEnabled(true); |
|
727 lblWeapons->setEnabled(true); |
667 bindEntries->setEnabled(true); |
728 bindEntries->setEnabled(true); |
668 } |
729 } |
669 if (!index) |
730 if (index == -1) |
670 { |
731 { |
671 pMapContainer->setScript(QString(""), QString("")); |
732 pMapContainer->setScript(QString(""), QString("")); |
|
733 ScriptsLabel->setStyleSheet("color: #b50000;"); |
672 } |
734 } |
673 else |
735 else |
674 { |
736 { |
675 pMapContainer->setScript(Scripts->itemData(index, GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString()); |
737 pMapContainer->setScript(Scripts->itemData(index, GameStyleModel::ScriptRole).toString().toUtf8(), schemeData(43).toString()); |
676 } |
738 ScriptsLabel->setText(Scripts->currentText()); |
|
739 ScriptsLabel->setStyleSheet(""); |
|
740 } |
|
741 |
677 emit paramChanged("SCRIPT", QStringList(name)); |
742 emit paramChanged("SCRIPT", QStringList(name)); |
678 } |
743 } |
679 |
744 |
680 void GameCFGWidget::mapgenChanged(MapGenerator m) |
745 void GameCFGWidget::mapgenChanged(MapGenerator m) |
681 { |
746 { |
729 void GameCFGWidget::setMaster(bool master) |
794 void GameCFGWidget::setMaster(bool master) |
730 { |
795 { |
731 if (master == m_master) return; |
796 if (master == m_master) return; |
732 m_master = master; |
797 m_master = master; |
733 |
798 |
|
799 if (master) |
|
800 { |
|
801 // Reset script if not found |
|
802 if (Scripts->currentIndex() == -1) |
|
803 { |
|
804 Scripts->setCurrentIndex(Scripts->findText("Normal")); |
|
805 } |
|
806 } |
|
807 |
734 pMapContainer->setMaster(master); |
808 pMapContainer->setMaster(master); |
|
809 |
|
810 GameSchemes->setHidden(!master); |
|
811 WeaponsName->setHidden(!master); |
|
812 Scripts->setHidden(!master); |
|
813 goToSchemePage->setHidden(!master); |
|
814 goToWeaponPage->setHidden(!master); |
|
815 bindEntries->setHidden(!master); |
|
816 |
|
817 GameSchemesLabel->setHidden(master); |
|
818 WeaponsNameLabel->setHidden(master); |
|
819 ScriptsLabel->setHidden(master); |
735 |
820 |
736 foreach (QWidget *widget, m_childWidgets) |
821 foreach (QWidget *widget, m_childWidgets) |
737 widget->setEnabled(master); |
822 widget->setEnabled(master); |
738 } |
823 } |