set collection

This commit is contained in:
sdine
2026-07-23 08:50:38 +02:00
parent 8a89e79e43
commit 7e03f4d8d5
9 changed files with 417 additions and 36 deletions
@@ -3,18 +3,23 @@
// DigiBattle99SetCompletionPanel: Set Completion tab — pack tiles with
// progress bars for sets the user owns ≥1 card of, plus an in-tab checklist
// drill-down (unowned rows greyed). Catalog is offline (set-catalog.json).
// Optional language filter restricts ownership to one language and labels
// set titles as "{setName} ({language})".
#include "ccm/domain/DigiBattle99Card.hpp"
#include "ccm/domain/DigiBattle99SetCatalog.hpp"
#include "ccm/domain/Enums.hpp"
#include "ccm/services/DigiBattle99SetCatalogService.hpp"
#include "ccm/ui/Theme.hpp"
#include <wx/panel.h>
#include <optional>
#include <string>
#include <vector>
class wxBoxSizer;
class wxChoice;
class wxListCtrl;
class wxScrolledWindow;
class wxSimplebook;
@@ -37,13 +42,19 @@ private:
void rebuildChecklist(const std::string& setId);
void setEmptyMessage(const wxString& message);
void clearGridTiles();
void refreshLanguageChoice();
void onLanguageChoice(wxCommandEvent& event);
void rebuildCurrentView();
[[nodiscard]] std::string displaySetName(const std::string& setName) const;
DigiBattle99SetCatalogService& catalogStore_;
DigiBattle99SetCatalog catalog_;
bool catalogLoaded_{false};
std::vector<DigiBattle99Card> collection_;
ThemePalette palette_{};
std::optional<Language> languageFilter_;
wxChoice* languageChoice_{nullptr};
wxSimplebook* book_{nullptr};
wxPanel* gridPage_{nullptr};
wxScrolledWindow* scroll_{nullptr};
@@ -54,6 +65,7 @@ private:
wxStaticText* detailTitle_{nullptr};
wxListCtrl* checklist_{nullptr};
std::string detailSetId_;
std::string detailSetName_;
};
} // namespace ccm::ui