diff --git a/common/comic.cpp b/common/comic.cpp index 64b00c83..8666ba93 100644 --- a/common/comic.cpp +++ b/common/comic.cpp @@ -44,13 +44,13 @@ const QStringList Comic::literalComicExtensions = LiteralComicArchiveExtensions; //----------------------------------------------------------------------------- Comic::Comic() -:_pages(),_index(0),_path(),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false),_invalidated(false) +:_pages(),_index(0),_path(),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false),_invalidated(false),_errorOpening(false) { setup(); } //----------------------------------------------------------------------------- Comic::Comic(const QString & pathFile, int atPage ) -:_pages(),_index(0),_path(pathFile),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false),_firstPage(atPage) +:_pages(),_index(0),_path(pathFile),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false),_firstPage(atPage),_errorOpening(false) { setup(); } @@ -66,6 +66,16 @@ void Comic::setup() connect(this,SIGNAL(pageChanged(int)),this,SLOT(checkIsBookmark(int))); connect(this,SIGNAL(imageLoaded(int)),this,SLOT(updateBookmarkImage(int))); connect(this,SIGNAL(imageLoaded(int)),this,SLOT(setPageLoaded(int))); + + auto l = [&](){ _errorOpening = true; }; + + void (Comic::* errorOpeningPtr)() = &Comic::errorOpening; + void (Comic::* errorOpeningWithStringPtr)(QString) = &Comic::errorOpening; + + connect(this, errorOpeningPtr, l); + connect(this, errorOpeningWithStringPtr, l); + + connect(this, &Comic::crcErrorFound, l); } //----------------------------------------------------------------------------- int Comic::nextPage() @@ -230,6 +240,11 @@ bool Comic::pageIsLoaded(int page) return _loadedPages[page]; } +bool Comic::hasBeenAnErrorOpening() +{ + return _errorOpening; +} + bool Comic::fileIsComic(const QString &path) { QFileInfo info(path); diff --git a/common/comic.h b/common/comic.h index 89e895be..2d2a1d0f 100644 --- a/common/comic.h +++ b/common/comic.h @@ -40,6 +40,8 @@ class Comic : public QObject bool _invalidated; + bool _errorOpening; + public: static const QStringList imageExtensions; @@ -73,6 +75,9 @@ class Comic : public QObject QByteArray getRawPage(int page); bool pageIsLoaded(int page); + //check if the comic has failed loading + bool hasBeenAnErrorOpening(); + inline static QStringList getSupportedImageFormats() { return imageExtensions;} inline static QStringList getSupportedImageLiteralFormats() { return literalImageExtensions;}