summaryrefslogtreecommitdiff
path: root/gameView/main.cpp
diff options
context:
space:
mode:
authorAotrix <[email protected]>2026-07-31 02:53:12 +0200
committerAotrix <[email protected]>2026-07-31 02:53:12 +0200
commit06fc106f8aeaf0de5b705085ab8262a388402ee5 (patch)
tree0897043a19cd8388631956fd5a176f4064290c4a /gameView/main.cpp
parentfd423b707c7243528945c6ad863097d57d7d9fce (diff)
Added middle class
Diffstat (limited to 'gameView/main.cpp')
-rw-r--r--gameView/main.cpp54
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();
}