diff --git a/src/Client/languages/de.ts b/src/Client/languages/de.ts index d86bd5f..2d1d3ca 100644 --- a/src/Client/languages/de.ts +++ b/src/Client/languages/de.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/en.ts b/src/Client/languages/en.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/en.ts +++ b/src/Client/languages/en.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/es.ts b/src/Client/languages/es.ts index cafd23c..4924ef4 100644 --- a/src/Client/languages/es.ts +++ b/src/Client/languages/es.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/fr.ts b/src/Client/languages/fr.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/fr.ts +++ b/src/Client/languages/fr.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/ja.ts b/src/Client/languages/ja.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/ja.ts +++ b/src/Client/languages/ja.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/pl.ts b/src/Client/languages/pl.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/pl.ts +++ b/src/Client/languages/pl.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/ru.ts b/src/Client/languages/ru.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/ru.ts +++ b/src/Client/languages/ru.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/tr.ts b/src/Client/languages/tr.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/tr.ts +++ b/src/Client/languages/tr.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/uk.ts b/src/Client/languages/uk.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/uk.ts +++ b/src/Client/languages/uk.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Client/languages/zh.ts b/src/Client/languages/zh.ts index 3cf7938..ee3d98a 100644 --- a/src/Client/languages/zh.ts +++ b/src/Client/languages/zh.ts @@ -73,6 +73,10 @@ Select level + + Store + + PreviewControl @@ -86,9 +90,9 @@ - SelectLvlView + SelectLevelView - Start + Select diff --git a/src/Core/Crawl.qrc b/src/Core/Crawl.qrc index 0d84981..8e8c34d 100644 --- a/src/Core/Crawl.qrc +++ b/src/Core/Crawl.qrc @@ -10,7 +10,6 @@ CrawlModule/Scene.qml CrawlModule/SettingsView.qml CrawlModule/SnakeItem.qml - CrawlModule/SelectLvlView.qml CrawlModule/DefaultMenu.qml CrawlModule/AbstractMenuView.qml CrawlModule/Light.qml diff --git a/src/Core/Crawl/clientapp.cpp b/src/Core/Crawl/clientapp.cpp index 5cf76f7..a99fa4a 100644 --- a/src/Core/Crawl/clientapp.cpp +++ b/src/Core/Crawl/clientapp.cpp @@ -39,9 +39,9 @@ QByteArray ClientApp::initTheme() { ILevel *ClientApp::getLastLevel() { for (const auto &data : qAsConst(_availableLvls)) { - if (data.model && data.model->world() && _engine->currentUser() && - _engine->currentUser()->isUnlocked(data.model->world()->itemId())) { - return data.model; + if (data && data->world() && _engine->currentUser() && + _engine->currentUser()->isUnlocked(data->world()->itemId())) { + return data; } } @@ -50,18 +50,13 @@ ILevel *ClientApp::getLastLevel() { ClientApp::ClientApp() { _engine = new Engine(); - _menu = new MainMenuModel(); - - connect(_menu, &MainMenuModel::sigLevelChanged, this, &ClientApp::changeLevel); } ClientApp::~ClientApp() { - delete _menu; delete _engine; for (auto it = _availableLvls.begin(); it != _availableLvls.end(); ++it) { - delete it.value().viewModel; - delete it.value().model; + delete it.value(); } _availableLvls.clear(); @@ -69,15 +64,15 @@ ClientApp::~ClientApp() { void ClientApp::initStore(QMultiHash & result) { for (const auto &data : qAsConst(_availableLvls)) { - if (data.model && data.model->world()) - result.unite(data.model->world()->childItemsRecursive()); + if (data && data->world()) + result.unite(data->world()->childItemsRecursive()); } } void ClientApp::changeLevel(int lvl) { - WordlData data = _availableLvls.value(lvl); + ILevel* data = _availableLvls.value(lvl, nullptr); - if (!data.model) { + if (!data) { QuasarAppUtils::Params::log("Failed to start lvl.", QuasarAppUtils::Error); return; } @@ -89,7 +84,7 @@ void ClientApp::changeLevel(int lvl) { return; } - _engine->setLevel(data.model); + _engine->setLevel(data); } bool ClientApp::init(QQmlApplicationEngine *engine) { @@ -104,7 +99,6 @@ bool ClientApp::init(QQmlApplicationEngine *engine) { engine->addImageProvider(QLatin1String("userItems"), new ImageProvider()); root->setContextProperty("engine", QVariant::fromValue(_engine)); - root->setContextProperty("mainmenu", QVariant::fromValue(_menu)); qmlRegisterUncreatableMetaObject( WorldStatus::staticMetaObject, @@ -140,12 +134,7 @@ bool ClientApp::init(QQmlApplicationEngine *engine) { } void ClientApp::addLvl(ILevel *levelWordl) { - WordlData data; - - data.model = levelWordl; - data.viewModel = new WorldViewData(data.model->world()); - _availableLvls.insert(data.model->world()->itemId(), data); - _menu->addWorldViewModel(data.viewModel); + _availableLvls.insert(levelWordl->world()->itemId(), levelWordl); } } diff --git a/src/Core/Crawl/clientapp.h b/src/Core/Crawl/clientapp.h index 3b55e37..80a8cb5 100644 --- a/src/Core/Crawl/clientapp.h +++ b/src/Core/Crawl/clientapp.h @@ -22,19 +22,10 @@ namespace CRAWL { class Engine; class IWorld; -class WorldViewData; class MainMenuModel; class IControl; class Store; -/** - * @brief The WordlData struct simple structure that contains information about world. - */ -struct WordlData { - WorldViewData* viewModel = nullptr; - ILevel * model = nullptr; -}; - /** * @brief The ClientApp class This is main class of the Game engine. */ @@ -87,8 +78,7 @@ private: */ void changeLevel(int lvl); - QHash _availableLvls; - MainMenuModel *_menu = nullptr; + QHash _availableLvls; Engine *_engine = nullptr; }; diff --git a/src/Core/CrawlModule/Crawl.qml b/src/Core/CrawlModule/Crawl.qml index 8d8351b..7eb6718 100644 --- a/src/Core/CrawlModule/Crawl.qml +++ b/src/Core/CrawlModule/Crawl.qml @@ -41,9 +41,8 @@ ApplicationWindow { MainMenu { - model: (mainmenu)? mainmenu: null; + model: (mainWindow.model)? mainWindow.model.menu: null; anchors.fill: parent; - visible: scane.showMenu } NotificationServiceView { diff --git a/src/Core/CrawlModule/MainMenu.qml b/src/Core/CrawlModule/MainMenu.qml index ad21db9..3b39b98 100644 --- a/src/Core/CrawlModule/MainMenu.qml +++ b/src/Core/CrawlModule/MainMenu.qml @@ -11,10 +11,10 @@ import QtQuick.Controls import QtQuick.Layouts Item { - id: item1 + id: root property var model: null - visible: true + visible: Boolean(model && model.visible) z: 1 GridLayout { @@ -35,7 +35,6 @@ Item { transformOrigin: Item.Center - MainMenuButton { id: play text: qsTr("Select level") @@ -45,6 +44,15 @@ Item { } } + MainMenuButton { + id: store + text: qsTr("Store") + + onClicked: { + storePopUp.open() + } + } + MainMenuButton { id: settings text: qsTr("My Settings") @@ -70,7 +78,7 @@ Item { id: settingsPopUp source: SettingsView { id: settingsView - model: item1.model ? item1.model.userSettingsModel: null + model: root.model ? root.model.userSettingsModel: null } standardButtons: Dialog.Save | Dialog.Cancel | Dialog.RestoreDefaults @@ -93,19 +101,25 @@ Item { } PagePopUp { - id: selectLvl - source: SelectLvlView { + id: storePopUp + source: StoreView { id: view - model: item1.model ? item1.model.availableLvlsModel: null + model: root.model ? root.model.storeView: null - onStart: { - if (!item1.model) - return; + } - item1.model.newGame(view.selectedLvl) + modal: false; + width: parent.width * 0.8 + height: parent.height * 0.8; + + } + + PagePopUp { + id: selectLvl + source: SelectLevelView { + id: selectLvlView + model: root.model ? root.model.availableLvlsModel: null - selectLvl.close(); - } } modal: false; diff --git a/src/Core/CrawlModule/PreviewControl.qml b/src/Core/CrawlModule/PreviewControl.qml index 3deda36..da6555b 100644 --- a/src/Core/CrawlModule/PreviewControl.qml +++ b/src/Core/CrawlModule/PreviewControl.qml @@ -12,7 +12,7 @@ import QtQuick.Controls import QtQuick.Layouts AbstractMenuView { - columns: 2 + columns: 4 rows: 2 MouseArea { @@ -20,7 +20,7 @@ AbstractMenuView { Layout.fillHeight: true Layout.fillWidth: true - Layout.columnSpan: 2 + Layout.columnSpan: 4 Layout.rowSpan: 1 onClicked: { diff --git a/src/Core/CrawlModule/Scene.qml b/src/Core/CrawlModule/Scene.qml index 6401b87..7a0c816 100644 --- a/src/Core/CrawlModule/Scene.qml +++ b/src/Core/CrawlModule/Scene.qml @@ -5,14 +5,11 @@ import QtQuick.Controls import QtQuick.Layouts import QtQuick3D.Particles3D -// https://doc.qt.io/qt-5/qqmlengine.html#qmlRegisterUncreatableMetaObject -import engine.worldstatus View3D { id: scene; property var worldModel: null; - property alias showMenu: privateRoot.showMenu renderMode: View3D.Offscreen visible: worldModel && worldModel.visible @@ -52,7 +49,6 @@ View3D { property var releativeCameraPosition: (worldModel)? worldModel.cameraReleativePosition: null property var gameMenu: null - property bool showMenu: (worldModel)? WorldStatus.Game !== worldModel.worldStatus : false; function add (cppObjId) { if (!worldModel) { @@ -144,12 +140,6 @@ View3D { console.log("Error loading component: " + privateRoot.gameMenuModel.view, comp.errorString()); } } - - function onShowMenuChanged() { - if (privateRoot.gameMenu) { - privateRoot.gameMenu.visible = !showMenu - } - } } } } diff --git a/src/Core/CrawlModule/SelectLevelView.qml b/src/Core/CrawlModule/SelectLevelView.qml index 75c80cf..9478473 100644 --- a/src/Core/CrawlModule/SelectLevelView.qml +++ b/src/Core/CrawlModule/SelectLevelView.qml @@ -7,7 +7,6 @@ import QtQuick.Layouts Page { id: store property var model: null; - visible: model && model.visible ColumnLayout { anchors.fill: parent ListView { diff --git a/src/Core/CrawlModule/SelectLvlView.qml b/src/Core/CrawlModule/SelectLvlView.qml deleted file mode 100644 index 5315e69..0000000 --- a/src/Core/CrawlModule/SelectLvlView.qml +++ /dev/null @@ -1,61 +0,0 @@ -//# -//# Copyright (C) 2021-2021 QuasarApp. -//# Distributed under the GPLv3 software license, see the accompanying -//# Everyone is permitted to copy and distribute verbatim copies -//# of this license document, but changing it is not allowed. -//# - -import QtQuick -import ViewSolutionsModule -import QtQuick.Controls -import QtQuick.Controls.Material -import QtQuick.Layouts - -ColumnLayout { - id: root - - property alias model: list.model - property string selectedLvl: "" - - signal start(var lvlName) - - ListView { - id: list - Layout.fillHeight: true - Layout.fillWidth: true - orientation: ListView.Horizontal - clip: true - - delegate: ImageView { - property var data : modelData - hoverColor: "#90f6ff" - selectedColor: "#90f6ff" - - source: data.image - text: data.name - - width: list.height * 1.5 - height: list.height * 0.9 - selected: selectedLvl === data.name - - onClicked: { - selectedLvl = text - } - } - } - - Button { - - Layout.alignment: Qt.AlignRight - - text: qsTr("Start") - enabled: selectedLvl.length - - onClicked: { - root.start(selectedLvl) - } - - } -} - - diff --git a/src/Core/CrawlModule/StoreView.qml b/src/Core/CrawlModule/StoreView.qml index fee908e..10515f1 100644 --- a/src/Core/CrawlModule/StoreView.qml +++ b/src/Core/CrawlModule/StoreView.qml @@ -7,7 +7,6 @@ import QtQuick.Layouts Page { id: store property var model: null; - visible: model && model.visible ColumnLayout { anchors.fill: parent ListView { diff --git a/src/Core/private/engine.cpp b/src/Core/private/engine.cpp index e0c421a..72d0944 100644 --- a/src/Core/private/engine.cpp +++ b/src/Core/private/engine.cpp @@ -6,6 +6,7 @@ //# #include "engine.h" +#include "mainmenumodel.h" #include #include @@ -23,14 +24,15 @@ namespace CRAWL { Engine::Engine(QObject *parent): QObject(parent) { _store = new Store(); - _storeView = new StoreViewModel; _currentUser = new User(); + _menu = new MainMenuModel(); } Engine::~Engine() { stopRenderLoop(); - delete _storeView; + delete _menu; + delete _currentUser; } QObject *Engine::scane() { @@ -38,7 +40,6 @@ QObject *Engine::scane() { } void Engine::setLevel(ILevel *world) { - _storeView->setVisible(!world); if (_currentLevel == world) return ; @@ -166,6 +167,10 @@ void Engine::renderLoop() { } } +QObject *Engine::menu() const { + return _menu; +} + Store *Engine::store() const { return _store; } @@ -181,13 +186,10 @@ User *Engine::currentUser() const { return _currentUser; } -QObject *Engine::storeView() const { - return _storeView; -} void Engine::initStore(const QMultiHash &availabelItems) { _store->init(availabelItems); - _storeView->init(_store, _currentUser); + static_cast(_menu->storeView())->init(_store, _currentUser); } } diff --git a/src/Core/private/engine.h b/src/Core/private/engine.h index 01e4f0f..280d161 100644 --- a/src/Core/private/engine.h +++ b/src/Core/private/engine.h @@ -21,6 +21,7 @@ class Store; class StartData; class User; class StoreViewModel; +class MainMenuModel; /** * @brief The Engine class @@ -31,9 +32,10 @@ class Engine : public QObject { Q_PROPERTY(QObject* player READ player NOTIFY playerChanged) Q_PROPERTY(QObject* world READ world NOTIFY worldChanged) Q_PROPERTY(QObject* nest READ nest NOTIFY worldChanged) - Q_PROPERTY(QObject* storeView READ storeView NOTIFY storeViewChanged) Q_PROPERTY(QObject* scane READ scane WRITE setScane NOTIFY scaneChanged) + Q_PROPERTY(QObject * menu READ menu NOTIFY menuChanged) + public: Engine(QObject * parent = nullptr); @@ -104,12 +106,6 @@ public: */ User *currentUser() const; - /** - * @brief storeView This method return pointer to store view model - * @return pointer to store view model - */ - QObject *storeView() const; - /** * @brief initStore This method is wrapper of the Store::init method. * @param availabelItems This is list of available items. @@ -128,11 +124,19 @@ public: */ QObject *nest() const ; + /** + * @brief menu This is a main menu model. + * @return main menu model object. + */ + QObject *menu() const; + + signals: void scaneChanged(); void playerChanged(); void worldChanged(); - void storeViewChanged(); + + void menuChanged(); private slots: /** @@ -152,11 +156,11 @@ private: QObject *_scane = nullptr; ILevel* _currentLevel = nullptr; + MainMenuModel *_menu = nullptr; quint64 _oldTimeRender = 0; User *_currentUser = nullptr; - StoreViewModel *_storeView = nullptr; Store *_store = nullptr; QFuture _renderLoopFuture; diff --git a/src/Core/private/mainmenumodel.cpp b/src/Core/private/mainmenumodel.cpp index c4c4ef8..7b8eca2 100644 --- a/src/Core/private/mainmenumodel.cpp +++ b/src/Core/private/mainmenumodel.cpp @@ -8,6 +8,7 @@ #include #include "mainmenumodel.h" #include "settingsviewmodel.h" +#include "storeviewmodel.h" #include @@ -17,28 +18,30 @@ MainMenuModel::MainMenuModel(QObject *ptr): QObject (ptr) { _conf = QuasarAppUtils::Settings::instance(); _userSettingsModel = new SettingsViewModel(this); - _availableLvlsModel = new ViewSolutions::ListViewModel(this); + _storeView = new StoreViewModel(); +} +MainMenuModel::~MainMenuModel() { + delete _storeView; } QObject *MainMenuModel::userSettingsModel() const { return _userSettingsModel; } -QObject *MainMenuModel::availableLvlsModel() const { - return _availableLvlsModel; +bool MainMenuModel::getVisible() const { + return visible; } -void MainMenuModel::addWorldViewModel(QObject * data) { - _availableLvlsModel->addSource(data); +void MainMenuModel::setVisible(bool newVisible) { + if (visible == newVisible) + return; + visible = newVisible; + emit visibleChanged(); } -void MainMenuModel::setAvailableLvls(const QList &newData) { - _availableLvlsModel->setSource(newData); -} - -void MainMenuModel::changeLevel(int lvl) { - emit sigLevelChanged(lvl); +QObject *MainMenuModel::storeView() const { + return _storeView; } } diff --git a/src/Core/private/mainmenumodel.h b/src/Core/private/mainmenumodel.h index ed0d22a..eee7dca 100644 --- a/src/Core/private/mainmenumodel.h +++ b/src/Core/private/mainmenumodel.h @@ -10,7 +10,6 @@ #include #include "settings.h" -#include "worldviewdata.h" namespace ViewSolutions { class ListViewModel; @@ -19,6 +18,7 @@ class ListViewModel; namespace CRAWL { class WorldInfo; +class StoreViewModel; /** * @brief The MainMenuModel class This is main class for controll user interface @@ -28,26 +28,35 @@ class MainMenuModel : public QObject Q_OBJECT Q_PROPERTY(QObject* userSettingsModel READ userSettingsModel NOTIFY userSettingsModelChanged) - Q_PROPERTY(QObject * availableLvlsModel READ availableLvlsModel NOTIFY availableLvlsModelChanged) + Q_PROPERTY(bool visible READ getVisible WRITE setVisible NOTIFY visibleChanged) + Q_PROPERTY(QObject * storeView READ storeView NOTIFY storeViewChanged) public: MainMenuModel(QObject *ptr = nullptr); + ~MainMenuModel(); QObject* userSettingsModel() const; - QObject* availableLvlsModel() const; - void addWorldViewModel(QObject *); - void setAvailableLvls(const QList &newData); - Q_INVOKABLE void changeLevel(int lvl); + bool getVisible() const; + void setVisible(bool newVisible); + + /** + * @brief storeView This method return pointer to store view model + * @return pointer to store view model + */ + QObject *storeView() const; signals: void userSettingsModelChanged(QObject* userSettingsModel); - void sigLevelChanged(int lvl); - void availableLvlsModelChanged(); + + void visibleChanged(); + + void storeViewChanged(); private: Settings *_conf = nullptr; QObject* _userSettingsModel = nullptr; - ViewSolutions::ListViewModel *_availableLvlsModel = nullptr; + bool visible = true; + StoreViewModel *_storeView = nullptr; }; diff --git a/src/Core/private/storeviewmodel.cpp b/src/Core/private/storeviewmodel.cpp index 51fdcd2..917ba96 100644 --- a/src/Core/private/storeviewmodel.cpp +++ b/src/Core/private/storeviewmodel.cpp @@ -16,17 +16,6 @@ void StoreViewModel::init(Store *store, User *user) { _store = store; } -bool StoreViewModel::visible() const { - return _visible; -} - -void StoreViewModel::setVisible(bool newVisible) { - if (_visible == newVisible) - return; - _visible = newVisible; - emit visibleChanged(); -} - void StoreViewModel::buy(int item) { if (_store && getUser()) { _store->buy(*getUser(), item); diff --git a/src/Core/private/storeviewmodel.h b/src/Core/private/storeviewmodel.h index ca39aa9..a74746c 100644 --- a/src/Core/private/storeviewmodel.h +++ b/src/Core/private/storeviewmodel.h @@ -21,10 +21,6 @@ class User; class StoreViewModel: public BaseUserListModel { Q_OBJECT - /** - * @brief visible If you sets thsis proprtye to false then store view qml view will be hide. - */ - Q_PROPERTY(bool visible READ visible NOTIFY visibleChanged) public: StoreViewModel(); @@ -37,18 +33,6 @@ public: */ void init(Store * store, User* user); - /** - * @brief visible This method return true if the store view is visible. - * @return true if the store view is visible. - */ - bool visible() const; - - /** - * @brief setVisible This method chnge the visible state of the qml view of store. - * @param newVisible This is new value of the qml-store visible - */ - void setVisible(bool newVisible); - /** * @brief buy This is qml method for receive signal from view about buying item. * @param item This is item id that user want to buy. @@ -59,16 +43,9 @@ public: protected: const IItem *getItem(int id) const; -signals: - /** - * @brief visibleChanged This slot emited when store visibel changed - */ - void visibleChanged(); - private: Store *_store = nullptr; - bool _visible = false; }; } diff --git a/src/Core/private/worldviewdata.cpp b/src/Core/private/worldviewdata.cpp deleted file mode 100644 index db4068a..0000000 --- a/src/Core/private/worldviewdata.cpp +++ /dev/null @@ -1,67 +0,0 @@ -//# -//# Copyright (C) 2021-2021 QuasarApp. -//# Distributed under the GPLv3 software license, see the accompanying -//# Everyone is permitted to copy and distribute verbatim copies -//# of this license document, but changing it is not allowed. -//# - -#include "worldviewdata.h" -#include "Crawl/iworld.h" -namespace CRAWL { - -WorldViewData::WorldViewData(const IWorld *data) { - setWorldObject(data); -} - -QString WorldViewData::name() const { - if (_worldObject) { - return _worldObject->itemName(); - } - - return ""; -} - -QString WorldViewData::desc() const { - if (_worldObject) { - return _worldObject->description(); - } - - return ""; -} - -int WorldViewData::cost() const { - if (_worldObject) { - return _worldObject->cost(); - } - - return 0; -} - -bool WorldViewData::unlocked() const { - return m_unlocked || !cost(); -} - -void WorldViewData::setUnlocked(bool newUnlocked) { - if (m_unlocked == newUnlocked) - return; - m_unlocked = newUnlocked; - emit unlockedChanged(); -} - -QString WorldViewData::image() const { - if (_worldObject) { - return _worldObject->image(); - } - - return ""; -} - -void WorldViewData::setWorldObject(const IWorld *newWorldObject) { - if (_worldObject == newWorldObject) - return; - - _worldObject = newWorldObject; - emit dataChanged(); - -} -} diff --git a/src/Core/private/worldviewdata.h b/src/Core/private/worldviewdata.h deleted file mode 100644 index 97c8232..0000000 --- a/src/Core/private/worldviewdata.h +++ /dev/null @@ -1,52 +0,0 @@ -//# -//# Copyright (C) 2021-2021 QuasarApp. -//# Distributed under the GPLv3 software license, see the accompanying -//# Everyone is permitted to copy and distribute verbatim copies -//# of this license document, but changing it is not allowed. -//# - -#ifndef WORLDVIEWDATA_H -#define WORLDVIEWDATA_H - -#include - -namespace CRAWL { - -class IWorld; - -/** - * @brief The WorldViewData class Simaple class for view world status in gui interface. - */ -class WorldViewData: public QObject -{ - Q_OBJECT - - Q_PROPERTY(QString name READ name NOTIFY dataChanged) - Q_PROPERTY(QString desc READ desc NOTIFY dataChanged) - Q_PROPERTY(int cost READ cost NOTIFY dataChanged) - Q_PROPERTY(bool unlocked READ unlocked WRITE setUnlocked NOTIFY unlockedChanged) - Q_PROPERTY(QString image READ image NOTIFY dataChanged) - -public: - WorldViewData(const IWorld * data); - QString name() const; - QString desc() const; - - int cost() const; - bool unlocked() const; - void setUnlocked(bool newUnlocked); - - QString image() const; - - void setWorldObject(const IWorld *newWorldObject); - -private: - bool m_unlocked; - const IWorld* _worldObject = nullptr; - -signals: - void dataChanged(); - void unlockedChanged(); -}; -} -#endif // WORLDVIEWDATA_H