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