generalsettings.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * generalsettings.cpp, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #include "StdInc.h"
  11. #include "generalsettings.h"
  12. #include "ui_generalsettings.h"
  13. #include "../mapcontroller.h"
  14. GeneralSettings::GeneralSettings(QWidget *parent) :
  15. AbstractSettings(parent),
  16. ui(new Ui::GeneralSettings)
  17. {
  18. ui->setupUi(this);
  19. }
  20. GeneralSettings::~GeneralSettings()
  21. {
  22. delete ui;
  23. }
  24. void GeneralSettings::initialize(MapController & c)
  25. {
  26. AbstractSettings::initialize(c);
  27. ui->mapNameEdit->setText(QString::fromStdString(controller->map()->name.toString()));
  28. ui->mapDescriptionEdit->setPlainText(QString::fromStdString(controller->map()->description.toString()));
  29. ui->heroLevelLimit->setValue(controller->map()->levelLimit);
  30. ui->heroLevelLimitCheck->setChecked(controller->map()->levelLimit);
  31. //set difficulty
  32. switch(controller->map()->difficulty)
  33. {
  34. case 0:
  35. ui->diffRadio1->setChecked(true);
  36. break;
  37. case 1:
  38. ui->diffRadio2->setChecked(true);
  39. break;
  40. case 2:
  41. ui->diffRadio3->setChecked(true);
  42. break;
  43. case 3:
  44. ui->diffRadio4->setChecked(true);
  45. break;
  46. case 4:
  47. ui->diffRadio5->setChecked(true);
  48. break;
  49. };
  50. }
  51. void GeneralSettings::update()
  52. {
  53. controller->map()->name = MetaString::createFromTextID(mapRegisterLocalizedString("map", *controller->map(), TextIdentifier("header", "name"), ui->mapNameEdit->text().toStdString()));
  54. controller->map()->description = MetaString::createFromTextID(mapRegisterLocalizedString("map", *controller->map(), TextIdentifier("header", "description"), ui->mapDescriptionEdit->toPlainText().toStdString()));
  55. if(ui->heroLevelLimitCheck->isChecked())
  56. controller->map()->levelLimit = ui->heroLevelLimit->value();
  57. else
  58. controller->map()->levelLimit = 0;
  59. //set difficulty
  60. if(ui->diffRadio1->isChecked()) controller->map()->difficulty = 0;
  61. if(ui->diffRadio2->isChecked()) controller->map()->difficulty = 1;
  62. if(ui->diffRadio3->isChecked()) controller->map()->difficulty = 2;
  63. if(ui->diffRadio4->isChecked()) controller->map()->difficulty = 3;
  64. if(ui->diffRadio5->isChecked()) controller->map()->difficulty = 4;
  65. }
  66. void GeneralSettings::on_heroLevelLimitCheck_toggled(bool checked)
  67. {
  68. ui->heroLevelLimit->setEnabled(checked);
  69. }