summaryrefslogtreecommitdiff
path: root/gameView
diff options
context:
space:
mode:
authorAotrix <[email protected]>2026-07-31 16:05:54 +0200
committerAotrix <[email protected]>2026-07-31 16:05:54 +0200
commit9fd73981a0c67d21fe495a4ebec80719d059e589 (patch)
treeaf6b55c38f02689254b2fab6904537c9d725545d /gameView
parent8df5367756a9a818e41e6f64128491529c687188 (diff)
Register main menu bar
Diffstat (limited to 'gameView')
-rw-r--r--gameView/main.cpp68
1 files changed, 41 insertions, 27 deletions
diff --git a/gameView/main.cpp b/gameView/main.cpp
index 7a9b8b6..7ab29fc 100644
--- a/gameView/main.cpp
+++ b/gameView/main.cpp
@@ -7,6 +7,7 @@
#include <qboxlayout.h>
#include <qgridlayout.h>
#include <qlistwidget.h>
+#include <qmenubar.h>
#include <qnamespace.h>
#include <qpushbutton.h>
#include <qtoolbar.h>
@@ -14,16 +15,23 @@
class MainWindowMediator {
public:
- MainWindowMediator &setListOfCardsWidget(std::shared_ptr<QListWidget> &iListOfCards) {
+ MainWindowMediator &registerListOfCardsWidget(std::shared_ptr<QListWidget> &iListOfCards) {
_listOfCardsWidget = iListOfCards;
return *this;
}
- MainWindowMediator &setMainWindow(std::shared_ptr<QWidget> &iMainWindow) {
+ MainWindowMediator &registerMainWindow(std::shared_ptr<QWidget> &iMainWindow) {
_mainWindow = iMainWindow;
return *this;
}
+ MainWindowMediator &registerMainMenuBar(std::shared_ptr<QMenuBar> &iMenuBar) {
+ _mainMenuBar = iMenuBar;
+ configureMainMenuBar();
+ return *this;
+ }
std::shared_ptr<QWidget> getListOfCardsWidget() { return _listOfCardsWidget; }
std::shared_ptr<QWidget> getMainWindow() { return _mainWindow; }
+ std::shared_ptr<QMenuBar> getMainMenuBar() { return _mainMenuBar; }
+
MainWindowMediator &fillListOfCards(const std::string &iCardsJsonPath) {
std::ifstream aCardsJsonFile{iCardsJsonPath};
uint64_t aCardIndex{0};
@@ -44,27 +52,27 @@ class MainWindowMediator {
private:
std::shared_ptr<QListWidget> _listOfCardsWidget;
std::shared_ptr<QWidget> _mainWindow;
-};
+ std::shared_ptr<QMenuBar> _mainMenuBar;
-void configureMainMenuBar(QMenuBar &iMenuBar, MainWindowMediator &iMainWindowMediator) {
- QMenu *aOpenMenu = iMenuBar.addMenu("File");
- aOpenMenu->addAction("Open JSON file", [&iMainWindowMediator] {
- QFileDialog aFileDialog;
- aFileDialog.setWindowTitle("Choose JSON file");
- QDir aCurrentDir{QDir::currentPath()};
- aFileDialog.setDirectory(aCurrentDir);
- aFileDialog.setFileMode(QFileDialog::ExistingFile);
- aFileDialog.setOption(QFileDialog::ShowDirsOnly, false);
- aFileDialog.setNameFilter("*.json");
- aFileDialog.exec();
- const QStringList kFilePaths{aFileDialog.selectedFiles()};
- if (kFilePaths.size() > 0) {
- iMainWindowMediator.fillListOfCards(kFilePaths[0].toStdString());
- }
- });
- aOpenMenu->addAction("Quit",
- [&iMainWindowMediator] { iMainWindowMediator.getMainWindow()->close(); });
-}
+ void configureMainMenuBar() {
+ QMenu *aOpenMenu = _mainMenuBar->addMenu("File");
+ aOpenMenu->addAction("Open JSON file", [this] {
+ QFileDialog aFileDialog;
+ aFileDialog.setWindowTitle("Choose JSON file");
+ QDir aCurrentDir{QDir::currentPath()};
+ aFileDialog.setDirectory(aCurrentDir);
+ aFileDialog.setFileMode(QFileDialog::ExistingFile);
+ aFileDialog.setOption(QFileDialog::ShowDirsOnly, false);
+ aFileDialog.setNameFilter("*.json");
+ aFileDialog.exec();
+ const QStringList kFilePaths{aFileDialog.selectedFiles()};
+ if (kFilePaths.size() > 0) {
+ fillListOfCards(kFilePaths[0].toStdString());
+ }
+ });
+ aOpenMenu->addAction("Quit", [this] { getMainWindow()->close(); });
+ }
+};
int main(int argc, char *argv[]) {
QApplication aApplication(argc, argv);
@@ -74,16 +82,22 @@ int main(int argc, char *argv[]) {
aWindow->setWindowFlag(Qt::WindowType::Dialog);
QGridLayout aLayout(aWindow.get());
- QMenuBar aMenuBar;
- aLayout.addWidget(&aMenuBar, 0, 0);
+ auto aMenuBar = std::make_shared<QMenuBar>();
+ aLayout.addWidget(aMenuBar.get(), 0, 0);
auto aListOfCards = std::make_shared<QListWidget>();
aListOfCards->hide();
aLayout.addWidget(aListOfCards.get(), 1, 0);
MainWindowMediator aMainWindowMediator;
- aMainWindowMediator.setListOfCardsWidget(aListOfCards);
- aMainWindowMediator.setMainWindow(aWindow);
- configureMainMenuBar(aMenuBar, aMainWindowMediator);
+ aMainWindowMediator.registerListOfCardsWidget(aListOfCards)
+ .registerMainWindow(aWindow)
+ .registerMainMenuBar(aMenuBar);
+
+ QGraphicsScene scene;
+ QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100));
+ QGraphicsItem *item = scene.itemAt(50, 50, QTransform());
+ QGraphicsView view(&scene);
+ aLayout.addWidget(&view, 1, 1);
aWindow->show();
aWindow->setWindowTitle("Hearthstone simulator");