campaigneditor.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * campaigneditor.h, 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. #pragma once
  11. #include <QDialog>
  12. #include "campaignview.h"
  13. #include "../StdInc.h"
  14. #include "../../lib/constants/EntityIdentifiers.h"
  15. class CampaignState;
  16. namespace Ui {
  17. class CampaignEditor;
  18. }
  19. class CampaignEditor : public QDialog
  20. {
  21. Q_OBJECT
  22. public:
  23. explicit CampaignEditor();
  24. ~CampaignEditor();
  25. void redraw();
  26. static void showCampaignEditor();
  27. private slots:
  28. void on_actionOpen_triggered();
  29. void on_actionSave_as_triggered();
  30. void on_actionNew_triggered();
  31. void on_actionSave_triggered();
  32. void on_actionCampaignProperties_triggered();
  33. void on_actionScenarioProperties_triggered();
  34. private:
  35. bool getAnswerAboutUnsavedChanges();
  36. void setTitle();
  37. void changed();
  38. void saveCampaign();
  39. void closeEvent(QCloseEvent *event) override;
  40. Ui::CampaignEditor *ui;
  41. std::unique_ptr<CampaignScene> campaignScene;
  42. QString filename;
  43. bool unsaved = false;
  44. CampaignScenarioID selectedScenario;
  45. std::shared_ptr<CampaignState> campaignState;
  46. };