diff options
| author | Aotrix <[email protected]> | 2026-07-31 05:35:41 +0200 |
|---|---|---|
| committer | Aotrix <[email protected]> | 2026-07-31 05:35:41 +0200 |
| commit | ffca1f4b70c461d249809e61f4e1def34e32755d (patch) | |
| tree | 19521c8c51ef0fc889f37a82a6412368f8d00c71 /gameView | |
| parent | 06fc106f8aeaf0de5b705085ab8262a388402ee5 (diff) | |
Add card name and id to window
Diffstat (limited to 'gameView')
| -rw-r--r-- | gameView/main.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/gameView/main.cpp b/gameView/main.cpp index bc8664f..0450c04 100644 --- a/gameView/main.cpp +++ b/gameView/main.cpp @@ -1,6 +1,8 @@ #include <QVBoxLayout> #include <QtWidgets> -#include <iostream> +#include <format> +#include <fstream> +#include <nlohmann/json.hpp> #include <qapplication.h> #include <qboxlayout.h> #include <qgridlayout.h> @@ -22,6 +24,17 @@ class MainWindowMediator { } std::shared_ptr<QWidget> getListOfCardsWidget() { return _listOfCardsWidget; } std::shared_ptr<QWidget> getMainWindow() { return _mainWindow; } + MainWindowMediator &fillListOfCards(const std::string &iCardsJsonPath) { + std::ifstream aCardsJsonFile{iCardsJsonPath}; + uint64_t aCardIndex{0}; + for (auto &aCard : nlohmann::json::parse(aCardsJsonFile)) { + _listOfCardsWidget->insertItem(aCardIndex++, + std::format("{} ({})", aCard["name"].get<std::string>(), + aCard["id"].get<uint64_t>()) + .c_str()); + } + return *this; + } private: std::shared_ptr<QListWidget> _listOfCardsWidget; @@ -30,7 +43,7 @@ class MainWindowMediator { void configureMainMenuBar(QMenuBar &iMenuBar, MainWindowMediator &iMainWindowMediator) { QMenu *aOpenMenu = iMenuBar.addMenu("File"); - aOpenMenu->addAction("Open JSON file", [] { + aOpenMenu->addAction("Open JSON file", [&iMainWindowMediator] { QFileDialog aFileDialog; aFileDialog.setWindowTitle("Choose JSON file"); QDir aCurrentDir{QDir::currentPath()}; @@ -41,7 +54,7 @@ void configureMainMenuBar(QMenuBar &iMenuBar, MainWindowMediator &iMainWindowMed aFileDialog.exec(); const QStringList kFilePaths{aFileDialog.selectedFiles()}; if (kFilePaths.size() > 0) { - std::cout << kFilePaths[0].toStdString() << '\n'; + iMainWindowMediator.fillListOfCards(kFilePaths[0].toStdString()); } }); aOpenMenu->addAction("Quit", @@ -66,10 +79,6 @@ int main(int argc, char *argv[]) { aMainWindowMediator.setMainWindow(aWindow); configureMainMenuBar(aMenuBar, aMainWindowMediator); - aListOfCards->insertItem(0, "first card"); - aListOfCards->insertItem(1, "second card"); - aListOfCards->insertItem(2, "third card"); - aWindow->show(); aWindow->setWindowTitle("Hearthstone simulator"); return aApplication.exec(); |
