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 | |
| parent | 06fc106f8aeaf0de5b705085ab8262a388402ee5 (diff) | |
Add card name and id to window
| -rw-r--r-- | battleNetApi/src/hearthstoneTokenBuilder.cpp | 2 | ||||
| -rw-r--r-- | 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<std::string>().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 <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(); |
