generalsettings.cpp 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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->authorEdit->setText(QString::fromStdString(controller->map()->author.toString()));
  30. ui->authorContactEdit->setText(QString::fromStdString(controller->map()->authorContact.toString()));
  31. ui->mapCreationDateTimeEdit->setDateTime(QDateTime::fromSecsSinceEpoch(controller->map()->creationDateTime));
  32. ui->mapVersionEdit->setText(QString::fromStdString(controller->map()->mapVersion.toString()));
  33. ui->heroLevelLimit->setValue(controller->map()->levelLimit);
  34. ui->heroLevelLimitCheck->setChecked(controller->map()->levelLimit);
  35. //set difficulty
  36. switch(controller->map()->difficulty)
  37. {
  38. case EMapDifficulty::EASY:
  39. ui->diffRadio1->setChecked(true);
  40. break;
  41. case EMapDifficulty::NORMAL:
  42. ui->diffRadio2->setChecked(true);
  43. break;
  44. case EMapDifficulty::HARD:
  45. ui->diffRadio3->setChecked(true);
  46. break;
  47. case EMapDifficulty::EXPERT:
  48. ui->diffRadio4->setChecked(true);
  49. break;
  50. case EMapDifficulty::IMPOSSIBLE:
  51. ui->diffRadio5->setChecked(true);
  52. break;
  53. };
  54. }
  55. void GeneralSettings::update()
  56. {
  57. controller->map()->name = MetaString::createFromTextID(mapRegisterLocalizedString("map", *controller->map(), TextIdentifier("header", "name"), ui->mapNameEdit->text().toStdString()));
  58. controller->map()->description = MetaString::createFromTextID(mapRegisterLocalizedString("map", *controller->map(), TextIdentifier("header", "description"), ui->mapDescriptionEdit->toPlainText().toStdString()));
  59. controller->map()->author = MetaString::createFromRawString(ui->authorEdit->text().toStdString());
  60. controller->map()->authorContact = MetaString::createFromRawString(ui->authorContactEdit->text().toStdString());
  61. controller->map()->creationDateTime = ui->mapCreationDateTimeEdit->dateTime().toSecsSinceEpoch();
  62. controller->map()->mapVersion = MetaString::createFromRawString(ui->mapVersionEdit->text().toStdString());
  63. if(ui->heroLevelLimitCheck->isChecked())
  64. controller->map()->levelLimit = ui->heroLevelLimit->value();
  65. else
  66. controller->map()->levelLimit = 0;
  67. //set difficulty
  68. if(ui->diffRadio1->isChecked()) controller->map()->difficulty = EMapDifficulty::EASY;
  69. if(ui->diffRadio2->isChecked()) controller->map()->difficulty = EMapDifficulty::NORMAL;
  70. if(ui->diffRadio3->isChecked()) controller->map()->difficulty = EMapDifficulty::HARD;
  71. if(ui->diffRadio4->isChecked()) controller->map()->difficulty = EMapDifficulty::EXPERT;
  72. if(ui->diffRadio5->isChecked()) controller->map()->difficulty = EMapDifficulty::IMPOSSIBLE;
  73. }
  74. void GeneralSettings::on_heroLevelLimitCheck_toggled(bool checked)
  75. {
  76. ui->heroLevelLimit->setEnabled(checked);
  77. }