mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-19 08:52:15 -07:00
Stuff.
Took 46 minutes
This commit is contained in:
parent
62a01a6ee8
commit
a9234f39ed
2 changed files with 52 additions and 10 deletions
|
|
@ -20,6 +20,11 @@ HomeWidget::HomeWidget(QWidget *parent, TabSupervisor *_tabSupervisor)
|
||||||
layout = new QGridLayout(this);
|
layout = new QGridLayout(this);
|
||||||
|
|
||||||
backgroundSourceCard = new CardInfoPictureArtCropWidget(this);
|
backgroundSourceCard = new CardInfoPictureArtCropWidget(this);
|
||||||
|
backgroundSourceDeck = new DeckLoader();
|
||||||
|
|
||||||
|
qInfo() << "Loading from " << SettingsCache::instance().getDeckPath() + "background.cod";
|
||||||
|
backgroundSourceDeck->loadFromFile(SettingsCache::instance().getDeckPath() + "background.cod",
|
||||||
|
DeckLoader::CockatriceFormat, false);
|
||||||
|
|
||||||
gradientColors = extractDominantColors(background);
|
gradientColors = extractDominantColors(background);
|
||||||
|
|
||||||
|
|
@ -35,12 +40,7 @@ HomeWidget::HomeWidget(QWidget *parent, TabSupervisor *_tabSupervisor)
|
||||||
cardChangeTimer = new QTimer(this);
|
cardChangeTimer = new QTimer(this);
|
||||||
connect(cardChangeTimer, &QTimer::timeout, this, &HomeWidget::updateRandomCard);
|
connect(cardChangeTimer, &QTimer::timeout, this, &HomeWidget::updateRandomCard);
|
||||||
|
|
||||||
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this,
|
|
||||||
&HomeWidget::initializeBackgroundFromSource);
|
|
||||||
|
|
||||||
if (CardDatabaseManager::getInstance()->getLoadStatus() == LoadStatus::Ok) {
|
|
||||||
initializeBackgroundFromSource();
|
initializeBackgroundFromSource();
|
||||||
}
|
|
||||||
|
|
||||||
connect(tabSupervisor->getClient(), &RemoteClient::statusChanged, this, &HomeWidget::updateConnectButton);
|
connect(tabSupervisor->getClient(), &RemoteClient::statusChanged, this, &HomeWidget::updateConnectButton);
|
||||||
connect(&SettingsCache::instance(), &SettingsCache::homeTabBackgroundSourceChanged, this,
|
connect(&SettingsCache::instance(), &SettingsCache::homeTabBackgroundSourceChanged, this,
|
||||||
|
|
@ -49,11 +49,17 @@ HomeWidget::HomeWidget(QWidget *parent, TabSupervisor *_tabSupervisor)
|
||||||
|
|
||||||
void HomeWidget::initializeBackgroundFromSource()
|
void HomeWidget::initializeBackgroundFromSource()
|
||||||
{
|
{
|
||||||
auto type = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
if (CardDatabaseManager::getInstance()->getLoadStatus() != LoadStatus::Ok) {
|
||||||
|
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this,
|
||||||
|
&HomeWidget::initializeBackgroundFromSource);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto backgroundSourceType = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
||||||
|
|
||||||
cardChangeTimer->stop();
|
cardChangeTimer->stop();
|
||||||
|
|
||||||
switch (type) {
|
switch (backgroundSourceType) {
|
||||||
case BackgroundSources::Theme:
|
case BackgroundSources::Theme:
|
||||||
background = QPixmap("theme:backgrounds/home");
|
background = QPixmap("theme:backgrounds/home");
|
||||||
update();
|
update();
|
||||||
|
|
@ -62,14 +68,49 @@ void HomeWidget::initializeBackgroundFromSource()
|
||||||
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
||||||
break;
|
break;
|
||||||
case BackgroundSources::DeckFileArt:
|
case BackgroundSources::DeckFileArt:
|
||||||
// do deck file stuff if and when we implement it
|
backgroundSourceDeck->loadFromFile(SettingsCache::instance().getDeckPath() + "background.cod",
|
||||||
|
DeckLoader::CockatriceFormat, false);
|
||||||
|
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HomeWidget::updateRandomCard()
|
void HomeWidget::updateRandomCard()
|
||||||
{
|
{
|
||||||
ExactCard newCard = CardDatabaseManager::getInstance()->getRandomCard();
|
auto backgroundSourceType = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
||||||
|
|
||||||
|
ExactCard newCard;
|
||||||
|
|
||||||
|
switch (backgroundSourceType) {
|
||||||
|
case BackgroundSources::Theme:
|
||||||
|
break;
|
||||||
|
case BackgroundSources::RandomCardArt:
|
||||||
|
do {
|
||||||
|
newCard = CardDatabaseManager::getInstance()->getRandomCard();
|
||||||
|
} while (newCard == backgroundSourceCard->getCard());
|
||||||
|
break;
|
||||||
|
case BackgroundSources::DeckFileArt:
|
||||||
|
QList<CardRef> cardRefs = backgroundSourceDeck->getCardRefList();
|
||||||
|
ExactCard oldCard = backgroundSourceCard->getCard();
|
||||||
|
|
||||||
|
if (!cardRefs.empty()) {
|
||||||
|
if (cardRefs.size() == 1) {
|
||||||
|
newCard = CardDatabaseManager::getInstance()->getCard(cardRefs.first());
|
||||||
|
} else {
|
||||||
|
// Keep picking until different
|
||||||
|
do {
|
||||||
|
int idx = QRandomGenerator::global()->bounded(cardRefs.size());
|
||||||
|
newCard = CardDatabaseManager::getInstance()->getCard(cardRefs.at(idx));
|
||||||
|
qInfo() << "Picked " << newCard.getName();
|
||||||
|
} while (newCard == oldCard);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
do {
|
||||||
|
newCard = CardDatabaseManager::getInstance()->getRandomCard();
|
||||||
|
} while (newCard == oldCard);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (!newCard)
|
if (!newCard)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ private:
|
||||||
TabSupervisor *tabSupervisor;
|
TabSupervisor *tabSupervisor;
|
||||||
QPixmap background;
|
QPixmap background;
|
||||||
CardInfoPictureArtCropWidget *backgroundSourceCard = nullptr;
|
CardInfoPictureArtCropWidget *backgroundSourceCard = nullptr;
|
||||||
|
DeckLoader *backgroundSourceDeck;
|
||||||
QPixmap overlay;
|
QPixmap overlay;
|
||||||
QPair<QColor, QColor> gradientColors;
|
QPair<QColor, QColor> gradientColors;
|
||||||
HomeStyledButton *connectButton;
|
HomeStyledButton *connectButton;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue