diff options
| author | Aotrix <[email protected]> | 2026-07-31 16:05:54 +0200 |
|---|---|---|
| committer | Aotrix <[email protected]> | 2026-07-31 16:05:54 +0200 |
| commit | 9fd73981a0c67d21fe495a4ebec80719d059e589 (patch) | |
| tree | af6b55c38f02689254b2fab6904537c9d725545d /gameView/main.cpp | |
| parent | 8df5367756a9a818e41e6f64128491529c687188 (diff) | |
Register main menu bar
Diffstat (limited to 'gameView/main.cpp')
| -rw-r--r-- | gameView/main.cpp | 68 |
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 ®isterListOfCardsWidget(std::shared_ptr<QListWidget> &iListOfCards) { _listOfCardsWidget = iListOfCards; return *this; } - MainWindowMediator &setMainWindow(std::shared_ptr<QWidget> &iMainWindow) { + MainWindowMediator ®isterMainWindow(std::shared_ptr<QWidget> &iMainWindow) { _mainWindow = iMainWindow; return *this; } + MainWindowMediator ®isterMainMenuBar(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"); |
