diff options
Diffstat (limited to 'gameView/main.cpp')
| -rw-r--r-- | gameView/main.cpp | 72 |
1 files changed, 41 insertions, 31 deletions
diff --git a/gameView/main.cpp b/gameView/main.cpp index f769ed5..95e49a3 100644 --- a/gameView/main.cpp +++ b/gameView/main.cpp @@ -13,37 +13,42 @@ #include <qtoolbar.h> #include <qwidget.h> -class MainWindowMediator { +class ControlInterface { public: - MainWindowMediator ®isterListOfCardsWidget(std::shared_ptr<QListWidget> &iListOfCards) { + ControlInterface ®isterListOfCardsWidget(std::shared_ptr<QListWidget> &iListOfCards) { _listOfCardsWidget = iListOfCards; - _listOfCardsWidget->hide(); return *this; } - MainWindowMediator ®isterMainWindow(std::shared_ptr<QWidget> &iMainWindow) { + ControlInterface ®isterMainWindow(std::shared_ptr<QWidget> &iMainWindow) { _mainWindow = iMainWindow; return *this; } - MainWindowMediator ®isterMainMenuBar(std::shared_ptr<QMenuBar> &iMenuBar) { + ControlInterface ®isterMainMenuBar(std::shared_ptr<QMenuBar> &iMenuBar) { _mainMenuBar = iMenuBar; - configureMainMenuBar(); return *this; } - MainWindowMediator ®isterRightView(std::shared_ptr<QGraphicsView> &iRightView) { + ControlInterface ®isterRightView(std::shared_ptr<QGraphicsView> &iRightView) { _rightView = iRightView; - _rightScene = std::make_shared<QGraphicsScene>(); - QGraphicsRectItem *rect = _rightScene->addRect(QRectF(0, 0, 100, 100)); - QGraphicsItem *item = _rightScene->itemAt(50, 50, QTransform()); - _rightView->setScene(_rightScene.get()); - _rightView->hide(); return *this; } - std::shared_ptr<QWidget> getListOfCardsWidget() { return _listOfCardsWidget; } - std::shared_ptr<QWidget> getMainWindow() { return _mainWindow; } - std::shared_ptr<QMenuBar> getMainMenuBar() { return _mainMenuBar; } - std::shared_ptr<QGraphicsView> getRightView() { return _rightView; } + std::shared_ptr<QWidget> listOfCardsWidget() { return _listOfCardsWidget; } + std::shared_ptr<QWidget> mainWindow() { return _mainWindow; } + std::shared_ptr<QMenuBar> mainMenuBar() { return _mainMenuBar; } + std::shared_ptr<QGraphicsView> rightView() { return _rightView; } + + ControlInterface &configure() { + configureListOfCardsWidget().configureMainMenuBar().configureRightGraphicsView(); + return *this; + } - MainWindowMediator &fillListOfCards(const std::string &iCardsJsonPath) { + private: + std::shared_ptr<QListWidget> _listOfCardsWidget; + std::shared_ptr<QWidget> _mainWindow; + std::shared_ptr<QMenuBar> _mainMenuBar; + std::shared_ptr<QGraphicsView> _rightView; + std::shared_ptr<QGraphicsScene> _rightScene; + + ControlInterface &fillListOfCards(const std::string &iCardsJsonPath) { std::ifstream aCardsJsonFile{iCardsJsonPath}; uint64_t aCardIndex{0}; _listOfCardsWidget->clear(); @@ -59,15 +64,11 @@ class MainWindowMediator { _mainWindow->resize(1500, 1000); return *this; } - - private: - std::shared_ptr<QListWidget> _listOfCardsWidget; - std::shared_ptr<QWidget> _mainWindow; - std::shared_ptr<QMenuBar> _mainMenuBar; - std::shared_ptr<QGraphicsView> _rightView; - std::shared_ptr<QGraphicsScene> _rightScene; - - void configureMainMenuBar() { + ControlInterface &configureListOfCardsWidget() { + _listOfCardsWidget->hide(); + return *this; + } + ControlInterface &configureMainMenuBar() { QMenu *aOpenMenu = _mainMenuBar->addMenu("File"); aOpenMenu->addAction("Open JSON file", [this] { QFileDialog aFileDialog; @@ -84,7 +85,16 @@ class MainWindowMediator { _rightView->setVisible(true); } }); - aOpenMenu->addAction("Quit", [this] { getMainWindow()->close(); }); + aOpenMenu->addAction("Quit", [this] { _mainWindow->close(); }); + return *this; + } + ControlInterface &configureRightGraphicsView() { + _rightScene = std::make_shared<QGraphicsScene>(); + QGraphicsRectItem *rect = _rightScene->addRect(QRectF(0, 0, 100, 100)); + QGraphicsItem *item = _rightScene->itemAt(50, 50, QTransform()); + _rightView->setScene(_rightScene.get()); + _rightView->hide(); + return *this; } }; @@ -105,12 +115,12 @@ int main(int argc, char *argv[]) { auto aRightView = std::make_shared<QGraphicsView>(); aHLayout.addWidget(aRightView.get()); - MainWindowMediator aMainWindowMediator; - aMainWindowMediator.registerListOfCardsWidget(aListOfCards) + ControlInterface aControlInterface; + aControlInterface.registerListOfCardsWidget(aListOfCards) .registerMainWindow(aWindow) .registerMainMenuBar(aMenuBar) - .registerRightView(aRightView); - + .registerRightView(aRightView) + .configure(); aWindow->show(); aWindow->setWindowTitle("Hearthstone simulator"); return aApplication.exec(); |
