From 06fc106f8aeaf0de5b705085ab8262a388402ee5 Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Fri, 31 Jul 2026 02:53:12 +0200 Subject: Added middle class --- gameView/main.cpp | 54 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 16 deletions(-) (limited to 'gameView/main.cpp') 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 #include -void configureMainMenuBar(QMenuBar &iMenuBar, QWidget &iWindow) { +class MainWindowMediator { + public: + MainWindowMediator &setListOfCardsWidget(std::shared_ptr &iListOfCards) { + _listOfCardsWidget = iListOfCards; + return *this; + } + MainWindowMediator &setMainWindow(std::shared_ptr &iMainWindow) { + _mainWindow = iMainWindow; + return *this; + } + std::shared_ptr getListOfCardsWidget() { return _listOfCardsWidget; } + std::shared_ptr getMainWindow() { return _mainWindow; } + + private: + std::shared_ptr _listOfCardsWidget; + std::shared_ptr _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(); + 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(); + 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(); } -- cgit v1.2.3