mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-09 09:33:57 -07:00
set warning and properly set timer
This commit is contained in:
parent
2acf5e352c
commit
2933f37f85
2 changed files with 25 additions and 20 deletions
|
|
@ -58,20 +58,23 @@ void HomeWidget::initializeBackgroundFromSource()
|
||||||
|
|
||||||
auto backgroundSourceType = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
auto backgroundSourceType = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
||||||
|
|
||||||
cardChangeTimer->stop();
|
|
||||||
|
|
||||||
switch (backgroundSourceType) {
|
switch (backgroundSourceType) {
|
||||||
case BackgroundSources::Theme:
|
case BackgroundSources::Theme:
|
||||||
|
cardChangeTimer->stop();
|
||||||
background = QPixmap("theme:backgrounds/home");
|
background = QPixmap("theme:backgrounds/home");
|
||||||
|
backgroundSourceDeck = DeckList();
|
||||||
updateButtonsToBackgroundColor();
|
updateButtonsToBackgroundColor();
|
||||||
update();
|
update();
|
||||||
break;
|
break;
|
||||||
case BackgroundSources::RandomCardArt:
|
case BackgroundSources::RandomCardArt:
|
||||||
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
backgroundSourceDeck = DeckList();
|
||||||
|
updateRandomCard();
|
||||||
|
onBackgroundShuffleFrequencyChanged();
|
||||||
break;
|
break;
|
||||||
case BackgroundSources::DeckFileArt:
|
case BackgroundSources::DeckFileArt:
|
||||||
loadBackgroundSourceDeck();
|
loadBackgroundSourceDeck();
|
||||||
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
updateRandomCard();
|
||||||
|
onBackgroundShuffleFrequencyChanged();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -83,6 +86,20 @@ void HomeWidget::loadBackgroundSourceDeck()
|
||||||
backgroundSourceDeck = deckOpt.has_value() ? deckOpt.value().deckList : DeckList();
|
backgroundSourceDeck = deckOpt.has_value() ? deckOpt.value().deckList : DeckList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HomeWidget::setRandomCard(ExactCard &newCard)
|
||||||
|
{
|
||||||
|
static constexpr int ATTEMPTS = 10;
|
||||||
|
for (int i = 0; i < ATTEMPTS; ++i) {
|
||||||
|
ExactCard tmpCard = CardDatabaseManager::query()->getRandomCard();
|
||||||
|
if (tmpCard != backgroundSourceCard->getCard() && tmpCard.getCardPtr()->getProperty("layout") == "normal" &&
|
||||||
|
tmpCard.getPrinting().getSet() != nullptr) {
|
||||||
|
newCard = tmpCard;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qWarning() << "failed to set random card image after" << ATTEMPTS << "attempts";
|
||||||
|
}
|
||||||
|
|
||||||
void HomeWidget::updateRandomCard()
|
void HomeWidget::updateRandomCard()
|
||||||
{
|
{
|
||||||
auto backgroundSourceType = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
auto backgroundSourceType = BackgroundSources::fromId(SettingsCache::instance().getHomeTabBackgroundSource());
|
||||||
|
|
@ -93,15 +110,7 @@ void HomeWidget::updateRandomCard()
|
||||||
case BackgroundSources::Theme:
|
case BackgroundSources::Theme:
|
||||||
break;
|
break;
|
||||||
case BackgroundSources::RandomCardArt:
|
case BackgroundSources::RandomCardArt:
|
||||||
for (int i = 0; i < 10; ++i) {
|
setRandomCard(newCard);
|
||||||
ExactCard tmpCard = CardDatabaseManager::query()->getRandomCard();
|
|
||||||
if (tmpCard != backgroundSourceCard->getCard() &&
|
|
||||||
tmpCard.getCardPtr()->getProperty("layout") == "normal" &&
|
|
||||||
tmpCard.getPrinting().getSet() != nullptr) {
|
|
||||||
newCard = tmpCard;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BackgroundSources::DeckFileArt:
|
case BackgroundSources::DeckFileArt:
|
||||||
QList<CardRef> cardRefs = backgroundSourceDeck.getCardRefList();
|
QList<CardRef> cardRefs = backgroundSourceDeck.getCardRefList();
|
||||||
|
|
@ -130,19 +139,14 @@ void HomeWidget::updateRandomCard()
|
||||||
connect(newCard.getCardPtr().data(), &CardInfo::pixmapUpdated, this, &HomeWidget::updateBackgroundProperties);
|
connect(newCard.getCardPtr().data(), &CardInfo::pixmapUpdated, this, &HomeWidget::updateBackgroundProperties);
|
||||||
backgroundSourceCard->setCard(newCard);
|
backgroundSourceCard->setCard(newCard);
|
||||||
background = backgroundSourceCard->getProcessedBackground(size());
|
background = backgroundSourceCard->getProcessedBackground(size());
|
||||||
|
|
||||||
if (SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() <= 0) {
|
|
||||||
cardChangeTimer->stop();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HomeWidget::onBackgroundShuffleFrequencyChanged()
|
void HomeWidget::onBackgroundShuffleFrequencyChanged()
|
||||||
{
|
{
|
||||||
cardChangeTimer->stop();
|
cardChangeTimer->stop();
|
||||||
if (SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() <= 0) {
|
if (SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() > 0) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
cardChangeTimer->start(SettingsCache::instance().getHomeTabBackgroundShuffleFrequency() * 1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HomeWidget::updateBackgroundProperties()
|
void HomeWidget::updateBackgroundProperties()
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ private:
|
||||||
QPair<QColor, QColor> gradientColors;
|
QPair<QColor, QColor> gradientColors;
|
||||||
HomeStyledButton *connectButton;
|
HomeStyledButton *connectButton;
|
||||||
|
|
||||||
|
void setRandomCard(ExactCard &newCard);
|
||||||
void loadBackgroundSourceDeck();
|
void loadBackgroundSourceDeck();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue