diff options
Diffstat (limited to 'gameView')
| -rw-r--r-- | gameView/main.cpp | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/gameView/main.cpp b/gameView/main.cpp index 193fbed..bc8664f 100644 --- a/gameView/main.cpp +++ b/gameView/main.cpp @@ -10,7 +10,25 @@ #include <qtoolbar.h> #include <qwidget.h> -void configureMainMenuBar(QMenuBar &iMenuBar, QWidget &iWindow) { +class MainWindowMediator { + public: + MainWindowMediator &setListOfCardsWidget(std::shared_ptr<QListWidget> &iListOfCards) { + _listOfCardsWidget = iListOfCards; + return *this; + } + MainWindowMediator &setMainWindow(std::shared_ptr<QWidget> &iMainWindow) { + _mainWindow = iMainWindow; + return *this; + } + std::shared_ptr<QWidget> getListOfCardsWidget() { return _listOfCardsWidget; } + std::shared_ptr<QWidget> getMainWindow() { return _mainWindow; } + + private: + std::shared_ptr<QListWidget> _listOfCardsWidget; + std::shared_ptr<QWidget> _mainWindow; +}; + +void configureMainMenuBar(QMenuBar &iMenuBar, MainWindowMediator &iMainWindowMediator) { QMenu *aOpenMenu = iMenuBar.addMenu("File"); aOpenMenu->addAction("Open JSON file", [] { QFileDialog aFileDialog; @@ -23,32 +41,36 @@ void configureMainMenuBar(QMenuBar &iMenuBar, QWidget &iWindow) { aFileDialog.exec(); const QStringList kFilePaths{aFileDialog.selectedFiles()}; if (kFilePaths.size() > 0) { - std::cout << kFilePaths[0].toStdString(); + std::cout << kFilePaths[0].toStdString() << '\n'; } }); - aOpenMenu->addAction("Quit", [&iWindow] { iWindow.close(); }); + aOpenMenu->addAction("Quit", + [&iMainWindowMediator] { iMainWindowMediator.getMainWindow()->close(); }); } int main(int argc, char *argv[]) { QApplication aApplication(argc, argv); - QWidget aWindow; - aWindow.resize(440, 650); + auto aWindow = std::make_shared<QWidget>(); + aWindow->resize(440, 650); // Set Dialog flag for i3 users - aWindow.setWindowFlag(Qt::WindowType::Dialog); + aWindow->setWindowFlag(Qt::WindowType::Dialog); - QGridLayout aLayout(&aWindow); + QGridLayout aLayout(aWindow.get()); QMenuBar aMenuBar; - configureMainMenuBar(aMenuBar, aWindow); + aLayout.addWidget(&aMenuBar, 0, 0); + auto aListOfCards = std::make_shared<QListWidget>(); + aLayout.addWidget(aListOfCards.get(), 1, 0); - QListWidget aListOfCards; - aListOfCards.insertItem(0, "first card"); - aListOfCards.insertItem(1, "second card"); - aListOfCards.insertItem(2, "third card"); + MainWindowMediator aMainWindowMediator; + aMainWindowMediator.setListOfCardsWidget(aListOfCards); + aMainWindowMediator.setMainWindow(aWindow); + configureMainMenuBar(aMenuBar, aMainWindowMediator); - aLayout.addWidget(&aMenuBar, 0, 0); - aLayout.addWidget(&aListOfCards, 1, 0); + aListOfCards->insertItem(0, "first card"); + aListOfCards->insertItem(1, "second card"); + aListOfCards->insertItem(2, "third card"); - aWindow.show(); - aWindow.setWindowTitle("Hearthstone simulator"); + aWindow->show(); + aWindow->setWindowTitle("Hearthstone simulator"); return aApplication.exec(); } |
