app/sources/brleague.cpp
Dorian Zedler c44380d1bf
Many more implementations!
Calendar works now for VL and DR API
2020-11-03 15:56:43 +01:00

84 lines
1.9 KiB
C++

#include "headers/brleague.h"
#include "headers/brprovider.h"
BRLeague::BRLeague(BRProvider* provider, BRWidget::BRFederation federation, int id, BRLeagueData initialData) : BRWidget(provider, federation), id(id)
{
this->competitions = {};
this->competitions = {};
this->setData(initialData);
}
int BRLeague::getId() const {
return this->id;
}
QString BRLeague::getName() {
return this->name;
}
QColor BRLeague::getColor() {
return this->color;
}
QList<BRCompetition*> BRLeague::getCompetitions() {
return this->competitions;
}
QList<QObject*> BRLeague::getCompetitionsQML() {
return this->listToQmlList(this->competitions);
}
QList<QObject*> BRLeague::getCupsQML() {
return this->listToQmlList(this->cups);
}
void BRLeague::setData(BRLeagueData data) {
this->name = data.name;
this->color = data.color;
emit this->metadataChanged();
if(this->competitions != data.competitions) {
this->competitions.clear();
this->competitions = data.competitions;
for(BRCompetition* competition : this->competitions)
competition->setLeague(this);
emit this->competitionsChanged();
}
if(this->cups != data.cups) {
this->cups.clear();
this->cups = data.cups;
emit this->cupsChanged();
}
}
BRWidget::BRWidgetStatusCode BRLeague::load() {
if(this->getProvider() == nullptr)
return BRWidget::NoProviderError;
// reload all comp data using our providers
BRLeagueData newData {
this,
this->name,
this->color,
this->competitions,
this->cups
};
BRWidget::BRWidgetStatusCode statusCode = this->getProvider()->getWidgetData(&newData);
if(statusCode != BRWidget::Success)
return statusCode;
qDebug() << "new Data: " << newData.competitions;
this->setData(newData);
return statusCode;
}