#include "../headers/brcategory.h" #include "headers/brprovider.h" BRCategory::BRCategory(BRProvider* provider, BRWidget::BRFederation federation, int id, BRCategoryData initialData) : BRWidget(provider, federation, id) { this->currentRound = nullptr; this->setData(initialData); } BRCompetition* BRCategory::getCompetition() const { return this->competition; } QString BRCategory::getName() { return this->name; } BRRound* BRCategory::getCurrentRound() const { return this->currentRound; } void BRCategory::setCurrentRound(BRRound* round) { if(!this->rounds.contains(round)) return; this->currentRound = round; emit this->currentRoundChanged(); } QList BRCategory::getRounds() const { return this->rounds; } QList BRCategory::getRoundsQML() { return this->listToQmlList(this->rounds); } void BRCategory::setData(BRCategoryData data) { this->name = data.name; emit this->metadataChanged(); if(this->currentRound != data.currentRound) { this->currentRound = data.currentRound; emit this->currentRoundChanged(); } if(this->rounds != data.rounds) { this->rounds.clear(); this->rounds = data.rounds; for(BRRound* round : this->rounds) round->category = this; emit this->roundsChanged(); } } BRWidget::BRWidgetStatusCode BRCategory::load() { BRCategoryData newData { this, this->name, this->currentRound, this->rounds }; qDebug() << "LOADING CATEGORY"; BRWidget::BRWidgetStatusCode statusCode = this->getProvider()->getWidgetData(&newData); if(statusCode != BRWidget::Success) return statusCode; this->setData(newData); return BRWidget::Success; }