diff --git a/common/comic.h b/common/comic.h index 2f633429..bf72b55b 100644 --- a/common/comic.h +++ b/common/comic.h @@ -7,30 +7,18 @@ #include #include "extract_delegate.h" - #include "bookmarks.h" - -#ifdef Q_OS_MAC - #include "pdf_comic.h" -#else - -#if QT_VERSION >= 0x050000 - #include "poppler-qt5.h" -#else - #include "poppler-qt4.h" -#endif - -#endif - class ComicDB; //#define EXTENSIONS << "*.jpg" << "*.jpeg" << "*.png" << "*.gif" << "*.tiff" << "*.tif" << "*.bmp" Comic::getSupportedImageFormats() //#define EXTENSIONS_LITERAL << ".jpg" << ".jpeg" << ".png" << ".gif" << ".tiff" << ".tif" << ".bmp" //Comic::getSupportedImageLiteralFormats() - class Comic : public QObject - { +class Comic : public QObject +{ Q_OBJECT + protected: + //Comic pages, one QPixmap for each file. QVector _pages; QVector _loadedPages; @@ -50,13 +38,13 @@ class ComicDB; bool _isPDF; public: + + static const QStringList imageExtensions; + static const QStringList literalImageExtensions; + static const QStringList comicExtensions; + static const QStringList literalComicExtensions; - static const QStringList imageExtensions; - static const QStringList literalImageExtensions; - static const QStringList comicExtensions; - static const QStringList literalComicExtensions; - - Bookmarks * bm; + Bookmarks * bm; //Constructors Comic(); @@ -78,17 +66,19 @@ class ComicDB; //QPixmap * currentPage(); bool loaded(); //QPixmap * operator[](unsigned int index); - QVector * getRawData(){return &_pages;} + QVector * getRawData(){return &_pages;} QByteArray getRawPage(int page); bool pageIsLoaded(int page); - inline static QStringList getSupportedImageFormats() { return imageExtensions;} - inline static QStringList getSupportedImageLiteralFormats() { return literalImageExtensions;} + inline static QStringList getSupportedImageFormats() { return imageExtensions;} + inline static QStringList getSupportedImageLiteralFormats() { return literalImageExtensions;} - static bool fileIsComic(const QString &path); - static QList findValidComicFiles(const QList & list); - static QList findValidComicFilesInFolder(const QString &path); + static bool fileIsComic(const QString &path); + static QList findValidComicFiles(const QList & list); + static QList findValidComicFilesInFolder(const QString &path); + public slots: + void loadFinished(); void setBookmark(); void removeBookmark(); @@ -96,7 +86,9 @@ class ComicDB; void checkIsBookmark(int index); void updateBookmarkImage(int); void setPageLoaded(int page); + signals: + void imagesLoaded(); void imageLoaded(int index); void imageLoaded(int index,const QByteArray & image); @@ -110,15 +102,18 @@ class ComicDB; void bookmarksUpdated(); void isCover(); void isLast(); - - }; +}; - class FileComic : public Comic, public ExtractDelegate - { - Q_OBJECT +class FileComic : public Comic, public ExtractDelegate +{ + Q_OBJECT + private: - QList > getSections(int & sectionIndex); + + QList > getSections(int & sectionIndex); + public: + FileComic(); FileComic(const QString & path, int atPage = -1); ~FileComic(); @@ -128,55 +123,64 @@ class ComicDB; void crcError(int index); void unknownError(int index); static QList filter(const QList & src); + public slots: + void process(); - }; +}; - class FolderComic : public Comic - { - Q_OBJECT +class FolderComic : public Comic +{ + Q_OBJECT + private: //void run(); + public: + FolderComic(); FolderComic(const QString & path, int atPage = -1); ~FolderComic(); virtual bool load(const QString & path, int atPage = -1); + public slots: + void process(); +}; - }; - - class PDFComic : public Comic - { - Q_OBJECT +class PDFComic : public Comic +{ + Q_OBJECT + private: //pdf #ifdef Q_OS_MAC - MacOSXPDFComic * pdfComic; + MacOSXPDFComic * pdfComic; #else Poppler::Document * pdfComic; #endif void renderPage(int page); //void run(); + public: + PDFComic(); PDFComic(const QString & path, int atPage = -1); ~PDFComic(); virtual bool load(const QString & path, int atPage = -1); virtual bool load(const QString & path, const ComicDB & comic); + public slots: + void process(); - }; +}; - class FactoryComic - { +class FactoryComic +{ public: static Comic * newComic(const QString & path); - }; - - -#endif +}; +#endif \ No newline at end of file diff --git a/common/pdf_comic.h b/common/pdf_comic.h index 7c5d7f48..caa3d999 100644 --- a/common/pdf_comic.h +++ b/common/pdf_comic.h @@ -4,6 +4,7 @@ #include #include +#ifdef Q_OS_MAC class MacOSXPDFComic { public: @@ -19,4 +20,8 @@ private: void * lastPageData; }; +#else +#include "poppler-qt5.h" +#endif // Q_OS_MAC + #endif // PDF_COMIC_H