carddb thread fix; added VG, AE, PCH to sets

This commit is contained in:
Max-Wilhelm Bruker 2011-02-21 18:18:08 +01:00
parent acac5addd6
commit 1151077c1e
3 changed files with 29 additions and 5 deletions

View file

@ -223,7 +223,6 @@ void PictureLoader::setPicDownload(bool _picDownload)
PictureLoadingThread::PictureLoadingThread(const QString &_picsPath, bool _picDownload, QObject *parent) PictureLoadingThread::PictureLoadingThread(const QString &_picsPath, bool _picDownload, QObject *parent)
: QThread(parent), picsPath(_picsPath), picDownload(_picDownload) : QThread(parent), picsPath(_picsPath), picDownload(_picDownload)
{ {
initMutex.lock();
} }
PictureLoadingThread::~PictureLoadingThread() PictureLoadingThread::~PictureLoadingThread()
@ -239,12 +238,22 @@ void PictureLoadingThread::run()
pictureLoader->setPicsPath(picsPath); pictureLoader->setPicsPath(picsPath);
pictureLoader->setPicDownload(picDownload); pictureLoader->setPicDownload(picDownload);
initMutex.unlock(); usleep(100);
initWaitCondition.wakeAll();
exec(); exec();
delete pictureLoader; delete pictureLoader;
} }
void PictureLoadingThread::waitForInit()
{
QMutex mutex;
mutex.lock();
initWaitCondition.wait(&mutex);
mutex.unlock();
}
CardInfo::CardInfo(CardDatabase *_db, const QString &_name, const QString &_manacost, const QString &_cardtype, const QString &_powtough, const QString &_text, const QStringList &_colors, bool _cipt, int _tableRow, const SetList &_sets, const QMap<QString, QString> &_picURLs, const QMap<QString, QString> &_picURLsHq, const QMap<QString, QString> &_picURLsSt) CardInfo::CardInfo(CardDatabase *_db, const QString &_name, const QString &_manacost, const QString &_cardtype, const QString &_powtough, const QString &_text, const QStringList &_colors, bool _cipt, int _tableRow, const SetList &_sets, const QMap<QString, QString> &_picURLs, const QMap<QString, QString> &_picURLsHq, const QMap<QString, QString> &_picURLsSt)
: db(_db), name(_name), sets(_sets), manacost(_manacost), cardtype(_cardtype), powtough(_powtough), text(_text), colors(_colors), picURLs(_picURLs), picURLsHq(_picURLsHq), picURLsSt(_picURLsSt), cipt(_cipt), tableRow(_tableRow), pixmap(NULL) : db(_db), name(_name), sets(_sets), manacost(_manacost), cardtype(_cardtype), powtough(_powtough), text(_text), colors(_colors), picURLs(_picURLs), picURLsHq(_picURLsHq), picURLsSt(_picURLsSt), cipt(_cipt), tableRow(_tableRow), pixmap(NULL)
{ {
@ -427,6 +436,7 @@ CardDatabase::CardDatabase(QObject *parent)
loadingThread = new PictureLoadingThread(settingsCache->getPicsPath(), settingsCache->getPicDownload(), this); loadingThread = new PictureLoadingThread(settingsCache->getPicsPath(), settingsCache->getPicDownload(), this);
connect(loadingThread, SIGNAL(imageLoaded(CardInfo *, QImage)), this, SLOT(imageLoaded(CardInfo *, QImage))); connect(loadingThread, SIGNAL(imageLoaded(CardInfo *, QImage)), this, SLOT(imageLoaded(CardInfo *, QImage)));
loadingThread->start(QThread::LowPriority); loadingThread->start(QThread::LowPriority);
loadingThread->waitForInit();
noCard = new CardInfo(this); noCard = new CardInfo(this);
noCard->loadPixmap(); // cache pixmap for card back noCard->loadPixmap(); // cache pixmap for card back

View file

@ -10,6 +10,7 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QThread> #include <QThread>
#include <QMutex> #include <QMutex>
#include <QWaitCondition>
class CardDatabase; class CardDatabase;
class CardInfo; class CardInfo;
@ -87,13 +88,14 @@ private:
QString picsPath; QString picsPath;
bool picDownload; bool picDownload;
PictureLoader *pictureLoader; PictureLoader *pictureLoader;
mutable QMutex initMutex; QWaitCondition initWaitCondition;
protected: protected:
void run(); void run();
public: public:
PictureLoadingThread(const QString &_picsPath, bool _picDownload, QObject *parent); PictureLoadingThread(const QString &_picsPath, bool _picDownload, QObject *parent);
~PictureLoadingThread(); ~PictureLoadingThread();
PictureLoader *getPictureLoader() const { QMutexLocker locker(&initMutex); return pictureLoader; } PictureLoader *getPictureLoader() const { return pictureLoader; }
void waitForInit();
signals: signals:
void imageLoaded(CardInfo *card, const QImage &image); void imageLoaded(CardInfo *card, const QImage &image);
}; };

View file

@ -3,7 +3,7 @@
<picture_url>http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&amp;type=card</picture_url> <picture_url>http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&amp;type=card</picture_url>
<picture_url_hq>http://mtgpics.chutography.com/!set!/!name!.full.jpg</picture_url_hq> <picture_url_hq>http://mtgpics.chutography.com/!set!/!name!.full.jpg</picture_url_hq>
<picture_url_st>http://mtgpics.chutography.com/!set!/!name!.jpg</picture_url_st> <picture_url_st>http://mtgpics.chutography.com/!set!/!name!.jpg</picture_url_st>
<set_url>http://gatherer.wizards.com/Pages/Search/Default.aspx?output=spoiler&amp;method=text&amp;set=[&quot;!longname!&quot;]</set_url> <set_url>http://gatherer.wizards.com/Pages/Search/Default.aspx?output=spoiler&amp;method=text&amp;set=[&quot;!longname!&quot;]&amp;special=true</set_url>
<set import="1"> <set import="1">
<name>ARB</name> <name>ARB</name>
<longname>Alara Reborn</longname> <longname>Alara Reborn</longname>
@ -24,6 +24,10 @@
<name>AN</name> <name>AN</name>
<longname>Arabian Nights</longname> <longname>Arabian Nights</longname>
</set> </set>
<set import="0">
<name>AE</name>
<longname>Archenemy</longname>
</set>
<set import="1"> <set import="1">
<name>BOK</name> <name>BOK</name>
<longname>Betrayers of Kamigawa</longname> <longname>Betrayers of Kamigawa</longname>
@ -176,6 +180,10 @@
<name>PLC</name> <name>PLC</name>
<longname>Planar Chaos</longname> <longname>Planar Chaos</longname>
</set> </set>
<set import="0">
<name>PCH</name>
<longname>Planechase</longname>
</set>
<set import="1"> <set import="1">
<name>PS</name> <name>PS</name>
<longname>Planeshift</longname> <longname>Planeshift</longname>
@ -296,6 +304,10 @@
<name>US</name> <name>US</name>
<longname>Urza's Saga</longname> <longname>Urza's Saga</longname>
</set> </set>
<set import="0">
<name>VG</name>
<longname>Vanguard</longname>
</set>
<set import="1"> <set import="1">
<name>VI</name> <name>VI</name>
<longname>Visions</longname> <longname>Visions</longname>