* main.cpp: removed path checking and db loading * card database: merge card loading methods into a single one * settings cache: take care of returning safe paths for decks, replays, etc.. * main window: if db loading fails (eg. first run), propose to run oracle NSIS: propose to run cockatrice instead of oracle Rework card database loading * Move carddatabase-related method out of deckeditor tab * Load cards in another thread and render them progressively * Optimize database reload after enabled sets change Fix deck editor column width * removed the noCard hack. * getCard() no more creates cards instead of just returning existing ones * Fix the “edit tokens” dialog. * PictureLoader: avoid trying to download twice the same card * PictureLoader: correct return of card background * AbstractCardItem: avoid recalculating card color at every paint Use a different file to save custom tokens Misc required improvements * Use nullptr; * Refactor CardInfoWidget to use CardInfoPicture and CardInfoText instead of duplicating code; * Added CardInfo::getColorChar() * Fixed some potential crashes * removed dead code related to CardInfoWidget * Don't require a restart after adding a new custom sets file * Bump CMake requirements to 3.1
57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
#include "cardinfopicture.h"
|
|
|
|
#include <QWidget>
|
|
#include <QPainter>
|
|
#include <QStyle>
|
|
|
|
#include "carditem.h"
|
|
#include "carddatabase.h"
|
|
#include "pictureloader.h"
|
|
#include "main.h"
|
|
|
|
CardInfoPicture::CardInfoPicture(QWidget *parent)
|
|
: QWidget(parent),
|
|
info(nullptr),
|
|
pixmapDirty(true)
|
|
{
|
|
setMinimumHeight(100);
|
|
}
|
|
|
|
void CardInfoPicture::setCard(CardInfo *card)
|
|
{
|
|
if (info)
|
|
disconnect(info, nullptr, this, nullptr);
|
|
info = card;
|
|
if(info)
|
|
connect(info, SIGNAL(pixmapUpdated()), this, SLOT(updatePixmap()));
|
|
|
|
updatePixmap();
|
|
}
|
|
|
|
void CardInfoPicture::resizeEvent(QResizeEvent *)
|
|
{
|
|
updatePixmap();
|
|
}
|
|
|
|
void CardInfoPicture::updatePixmap()
|
|
{
|
|
pixmapDirty = true;
|
|
update();
|
|
}
|
|
|
|
void CardInfoPicture::loadPixmap()
|
|
{
|
|
PictureLoader::getPixmap(resizedPixmap, info, size());
|
|
}
|
|
|
|
void CardInfoPicture::paintEvent(QPaintEvent *)
|
|
{
|
|
if (width() == 0 || height() == 0)
|
|
return;
|
|
|
|
if(pixmapDirty)
|
|
loadPixmap();
|
|
|
|
QPainter painter(this);
|
|
style()->drawItemPixmap(&painter, rect(), Qt::AlignHCenter, resizedPixmap);
|
|
}
|