mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
fixed issues in comic vine dialog
This commit is contained in:
parent
f75d0abef0
commit
9b3085f8d1
@ -115,7 +115,7 @@ void ComicVineClient::getComicId(const QString & id, int comicNumber)
|
||||
}
|
||||
|
||||
//CV_COMIC_DETAIL
|
||||
QByteArray ComicVineClient::getComicDetail(const QString & id)
|
||||
QByteArray ComicVineClient::getComicDetail(const QString & id, bool & outError, bool & outTimeout)
|
||||
{
|
||||
HttpWorker * search = new HttpWorker(CV_COMIC_DETAIL.arg(id));
|
||||
|
||||
@ -124,6 +124,8 @@ QByteArray ComicVineClient::getComicDetail(const QString & id)
|
||||
//connect(search,SIGNAL(finished()),search,SLOT(deleteLater()));
|
||||
search->get();
|
||||
search->wait();
|
||||
outError = !(search->wasValid());
|
||||
outTimeout = search->wasTimeout();
|
||||
QByteArray result = search->getResult();
|
||||
delete search;
|
||||
|
||||
|
@ -21,11 +21,11 @@ signals:
|
||||
void timeOut();
|
||||
void finished();
|
||||
public slots:
|
||||
void search(const QString & query, int page = 0);
|
||||
void search(const QString & query, int page = 1);
|
||||
void getSeriesDetail(const QString & id);
|
||||
void getSeriesCover(const QString & url);
|
||||
void getVolumeComicsInfo(const QString & idVolume);
|
||||
QByteArray getComicDetail(const QString & id);
|
||||
QByteArray getComicDetail(const QString & id, bool &outError, bool &outTimeout);
|
||||
void getComicCover(const QString & url);
|
||||
|
||||
void getComicId(const QString & id, int comicNumber);
|
||||
|
@ -29,6 +29,8 @@
|
||||
#include "db_helper.h"
|
||||
#include "response_parser.h"
|
||||
|
||||
#include "QsLog.h"
|
||||
|
||||
|
||||
|
||||
ComicVineDialog::ComicVineDialog(QWidget *parent) :
|
||||
@ -201,17 +203,22 @@ void ComicVineDialog::show()
|
||||
|
||||
currentIndex = 0;
|
||||
|
||||
seriesQuestionWidget->setYes(true);
|
||||
searchSingleComicWidget->clean();
|
||||
searchVolumeWidget->clean();
|
||||
|
||||
if(comics.length() == 1)
|
||||
{
|
||||
status = AutoSearching;
|
||||
mode = SingleComic;
|
||||
|
||||
ComicDB singleComic = comics[0];
|
||||
QString title = singleComic.getTitleOrFileName();
|
||||
titleHeader->setSubTitle(title);
|
||||
showLoading(tr("Looking for volume..."));
|
||||
|
||||
searchVolume(title);
|
||||
status = AutoSearching;
|
||||
mode = SingleComic;
|
||||
|
||||
searchVolume(singleComic.getParentFolderName());
|
||||
QLOG_TRACE() << singleComic.getParentFolderName();
|
||||
}else if(comics.length()>1)
|
||||
{
|
||||
titleHeader->setSubTitle(tr("%1 comics selected").arg(comics.length()));
|
||||
@ -403,8 +410,11 @@ void ComicVineDialog::getComicsInfo(QList<QPair<ComicDB, QString> > & matchingIn
|
||||
//connect(comicVineClient,SIGNAL(searchResult(QString)),this,SLOT(debugClientResults(QString)));
|
||||
//connect(comicVineClient,SIGNAL(timeOut()),this,SLOT(queryTimeOut()));
|
||||
//connect(comicVineClient,SIGNAL(finished()),comicVineClient,SLOT(deleteLater()));
|
||||
QByteArray result = comicVineClient->getComicDetail(p.second); //TODO check timeOut or Connection error
|
||||
|
||||
bool error;
|
||||
bool timeout;
|
||||
QByteArray result = comicVineClient->getComicDetail(p.second,error,timeout); //TODO check timeOut or Connection error
|
||||
if(error || timeout)
|
||||
continue; //TODO
|
||||
comics.push_back(parseComicInfo(p.first,result,count,publisher)); //TODO check result error
|
||||
|
||||
setLoadingMessage(tr("Retrieving tags for : %1").arg(p.first.getFileName()));
|
||||
@ -429,7 +439,21 @@ void ComicVineDialog::getComicInfo(const QString &comicId, int count, const QStr
|
||||
{
|
||||
|
||||
ComicVineClient * comicVineClient = new ComicVineClient;
|
||||
QByteArray result = comicVineClient->getComicDetail(comicId); //TODO check timeOut or Connection error
|
||||
bool error;
|
||||
bool timeout;
|
||||
QByteArray result = comicVineClient->getComicDetail(comicId,error,timeout); //TODO check timeOut or Connection error
|
||||
if(error || timeout)
|
||||
{
|
||||
//TODO
|
||||
if(mode == SingleComic || currentIndex == (comics.count()-1))
|
||||
{
|
||||
close();
|
||||
emit accepted();
|
||||
} else
|
||||
{
|
||||
goToNextComic();
|
||||
}
|
||||
}
|
||||
|
||||
ComicDB comic = parseComicInfo(comics[currentIndex],result,count,publisher); //TODO check result error
|
||||
|
||||
@ -661,10 +685,10 @@ void ComicVineDialog::launchSearchComic()
|
||||
showLoading(tr("Looking for comic..."));
|
||||
|
||||
QString volumeInfo = searchSingleComicWidget->getVolumeInfo();
|
||||
QString comicInfo = searchSingleComicWidget->getComicInfo();
|
||||
int comicNumber = searchSingleComicWidget->getComicNumber();
|
||||
//QString comicInfo = searchSingleComicWidget->getComicInfo();
|
||||
//int comicNumber = searchSingleComicWidget->getComicNumber();
|
||||
|
||||
if(comicInfo.isEmpty() && comicNumber == -1)
|
||||
searchVolume(volumeInfo);
|
||||
//if(comicInfo.isEmpty() && comicNumber == -1)
|
||||
searchVolume(volumeInfo);
|
||||
}
|
||||
|
||||
|
@ -10,23 +10,24 @@ SearchSingleComic::SearchSingleComic(QWidget * parent)
|
||||
:QWidget(parent)
|
||||
{
|
||||
|
||||
QLabel * label = new QLabel(tr("Please provide some aditional information. At least one field is needed."));
|
||||
//QLabel * label = new QLabel(tr("Please provide some aditional information. At least one field is needed."));
|
||||
QLabel * label = new QLabel(tr("Please provide some aditional information."));
|
||||
label->setStyleSheet("QLabel {color:white; font-size:12px;font-family:Arial;}");
|
||||
|
||||
titleEdit = new ScraperLineEdit(tr("Title:"));
|
||||
numberEdit = new ScraperLineEdit(tr("Number:"));
|
||||
//titleEdit = new ScraperLineEdit(tr("Title:"));
|
||||
//numberEdit = new ScraperLineEdit(tr("Number:"));
|
||||
volumeEdit = new ScraperLineEdit(tr("Series:"));
|
||||
|
||||
numberEdit->setMaximumWidth(126);
|
||||
//numberEdit->setMaximumWidth(126);
|
||||
|
||||
QVBoxLayout * l = new QVBoxLayout;
|
||||
QHBoxLayout * hl = new QHBoxLayout;
|
||||
hl->addWidget(titleEdit);
|
||||
hl->addWidget(numberEdit);
|
||||
//QHBoxLayout * hl = new QHBoxLayout;
|
||||
//hl->addWidget(titleEdit);
|
||||
//hl->addWidget(numberEdit);
|
||||
|
||||
l->addSpacing(35);
|
||||
l->addWidget(label);
|
||||
l->addLayout(hl);
|
||||
//l->addLayout(hl);
|
||||
l->addWidget(volumeEdit);
|
||||
l->addStretch();
|
||||
|
||||
@ -42,13 +43,20 @@ QString SearchSingleComic::getVolumeInfo()
|
||||
|
||||
QString SearchSingleComic::getComicInfo()
|
||||
{
|
||||
return titleEdit->text();
|
||||
//return titleEdit->text();
|
||||
return "";
|
||||
}
|
||||
|
||||
int SearchSingleComic::getComicNumber()
|
||||
{
|
||||
QString numberText = numberEdit->text();
|
||||
if(numberText.isEmpty())
|
||||
return -1;
|
||||
return numberText.toInt();
|
||||
//QString numberText = numberEdit->text();
|
||||
//if(numberText.isEmpty())
|
||||
// return -1;
|
||||
//return numberText.toInt();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SearchSingleComic::clean()
|
||||
{
|
||||
volumeEdit->clear();
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ public:
|
||||
QString getVolumeInfo();
|
||||
QString getComicInfo();
|
||||
int getComicNumber();
|
||||
void clean();
|
||||
private:
|
||||
ScraperLineEdit * titleEdit;
|
||||
ScraperLineEdit * numberEdit;
|
||||
|
@ -25,6 +25,11 @@ SearchVolume::SearchVolume(QWidget * parent)
|
||||
setContentsMargins(0,0,0,0);
|
||||
}
|
||||
|
||||
void SearchVolume::clean()
|
||||
{
|
||||
volumeEdit->clear();
|
||||
}
|
||||
|
||||
QString SearchVolume::getVolumeInfo()
|
||||
{
|
||||
return volumeEdit->text();
|
||||
|
@ -11,6 +11,7 @@ class SearchVolume : public QWidget
|
||||
Q_OBJECT
|
||||
public:
|
||||
SearchVolume(QWidget * parent = 0);
|
||||
void clean();
|
||||
public slots:
|
||||
QString getVolumeInfo();
|
||||
private:
|
||||
|
@ -39,3 +39,8 @@ bool SeriesQuestion::getYes()
|
||||
{
|
||||
return yes->isChecked();
|
||||
}
|
||||
|
||||
void SeriesQuestion::setYes(bool y)
|
||||
{
|
||||
yes->setChecked(y);
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ class SeriesQuestion : public QWidget
|
||||
public:
|
||||
SeriesQuestion(QWidget * parent = 0);
|
||||
bool getYes();
|
||||
void setYes(bool yes = true);
|
||||
|
||||
private:
|
||||
QRadioButton * yes;
|
||||
|
@ -13,7 +13,7 @@
|
||||
#define PREVIOUS_VERSION "6.0.0"
|
||||
|
||||
HttpWorker::HttpWorker(const QString & urlString)
|
||||
:QThread(),url(urlString)
|
||||
:QThread(),url(urlString),_error(false),_timeout(false)
|
||||
{
|
||||
|
||||
}
|
||||
@ -28,6 +28,16 @@ QByteArray HttpWorker::getResult()
|
||||
return result;
|
||||
}
|
||||
|
||||
bool HttpWorker::wasValid()
|
||||
{
|
||||
return !_error;
|
||||
}
|
||||
|
||||
bool HttpWorker::wasTimeout()
|
||||
{
|
||||
return _timeout;
|
||||
}
|
||||
|
||||
void HttpWorker::run()
|
||||
{
|
||||
QNetworkAccessManager manager;
|
||||
@ -44,10 +54,12 @@ void HttpWorker::run()
|
||||
|
||||
if(tT.isActive()){
|
||||
// download complete
|
||||
_error = !(reply->error() == QNetworkReply::NoError);
|
||||
result = reply->readAll();
|
||||
emit dataReady(result);
|
||||
tT.stop();
|
||||
} else {
|
||||
_timeout = true;
|
||||
emit timeout();
|
||||
}
|
||||
}
|
||||
|
@ -15,11 +15,15 @@
|
||||
public slots:
|
||||
void get();
|
||||
QByteArray getResult();
|
||||
bool wasValid();
|
||||
bool wasTimeout();
|
||||
private:
|
||||
void run();
|
||||
QUrl url;
|
||||
int httpGetId;
|
||||
QByteArray result;
|
||||
bool _error;
|
||||
bool _timeout;
|
||||
signals:
|
||||
void dataReady(const QByteArray &);
|
||||
void timeout();
|
||||
|
Loading…
Reference in New Issue
Block a user