From ffca1f4b70c461d249809e61f4e1def34e32755d Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Fri, 31 Jul 2026 05:35:41 +0200 Subject: Add card name and id to window --- battleNetApi/src/hearthstoneTokenBuilder.cpp | 2 +- gameView/main.cpp | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/battleNetApi/src/hearthstoneTokenBuilder.cpp b/battleNetApi/src/hearthstoneTokenBuilder.cpp index 96e3aa8..6307ba5 100644 --- a/battleNetApi/src/hearthstoneTokenBuilder.cpp +++ b/battleNetApi/src/hearthstoneTokenBuilder.cpp @@ -61,7 +61,7 @@ bool HearthstoneTokenBuilder::isTokenValid(const json &iTokenJson) const { not iTokenJson["Token"].contains("Content")) { return false; } - if (iTokenJson["Token"]["Content"].dump().length() < kTOKEN_CONTENT_MIN_LENGTH) { + if (iTokenJson["Token"]["Content"].get().length() < kTOKEN_CONTENT_MIN_LENGTH) { return false; } if (_allowExpiredToken) { 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 #include -#include +#include +#include +#include #include #include #include @@ -22,6 +24,17 @@ class MainWindowMediator { } std::shared_ptr getListOfCardsWidget() { return _listOfCardsWidget; } std::shared_ptr 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(), + aCard["id"].get()) + .c_str()); + } + return *this; + } private: std::shared_ptr _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(); -- cgit v1.2.3