diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index 032f5384..8b55f7a2 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -710,22 +710,31 @@ void MainWindowViewer::open(QString path, qint64 comicId, qint64 libraryId) optionsDialog->setFilters(currentComicDB.info.brightness, currentComicDB.info.contrast, currentComicDB.info.gamma); } -void MainWindowViewer::openComicFromPath(QString pathFile) +void MainWindowViewer::openComicFromPath(const QString &pathFile) { - QFileInfo fi(pathFile); - currentDirectory = fi.dir().absolutePath(); - getSiblingComics(fi.absolutePath(),fi.fileName()); - - setWindowTitle("YACReader - " + fi.fileName()); - - enableActions(); - - viewer->open(pathFile); - - isClient = false; - + openComic(pathFile); + isClient = false; //this method is used for direct openings } +//isClient shouldn't be modified when a siblinig comic is opened +void MainWindowViewer::openSiblingComic(const QString &pathFile) +{ + openComic(pathFile); +} + +void MainWindowViewer::openComic(const QString &pathFile) +{ + QFileInfo fi(pathFile); + currentDirectory = fi.dir().absolutePath(); + getSiblingComics(fi.absolutePath(),fi.fileName()); + + setWindowTitle("YACReader - " + fi.fileName()); + + enableActions(); + + viewer->open(fi.absoluteFilePath()); + } + void MainWindowViewer::openFolder() { QFileDialog openDialog; @@ -737,7 +746,7 @@ void MainWindowViewer::openFolder() } } -void MainWindowViewer::openFolderFromPath(QString pathDir) +void MainWindowViewer::openFolderFromPath(const QString & pathDir) { currentDirectory = pathDir; //TODO ?? QFileInfo fi(pathDir); @@ -750,7 +759,7 @@ void MainWindowViewer::openFolderFromPath(QString pathDir) viewer->open(pathDir); } -void MainWindowViewer::openFolderFromPath(QString pathDir, QString atFileName) +void MainWindowViewer::openFolderFromPath(const QString &pathDir, const QString &atFileName) { currentDirectory = pathDir; //TODO ?? QFileInfo fi(pathDir); @@ -1230,11 +1239,7 @@ void MainWindowViewer::openPreviousComic() } if(!previousComicPath.isEmpty()) { - viewer->open(previousComicPath); - QFileInfo fi(previousComicPath); - getSiblingComics(fi.absolutePath(),fi.fileName()); - - setWindowTitle("YACReader - " + fi.fileName()); + openSiblingComic(previousComicPath); } } @@ -1257,11 +1262,7 @@ void MainWindowViewer::openNextComic() } if(!nextComicPath.isEmpty()) { - viewer->open(nextComicPath); - QFileInfo fi(nextComicPath); - getSiblingComics(fi.absolutePath(),fi.fileName()); - - setWindowTitle("YACReader - " + fi.fileName()); + openSiblingComic(nextComicPath); } } diff --git a/YACReader/main_window_viewer.h b/YACReader/main_window_viewer.h index 255acadf..6b1d4f60 100644 --- a/YACReader/main_window_viewer.h +++ b/YACReader/main_window_viewer.h @@ -48,9 +48,11 @@ class EditShortcutsDialog; void newVersion(); void openPreviousComic(); void openNextComic(); - void openComicFromPath(QString pathFile); - void openFolderFromPath(QString pathDir); - void openFolderFromPath(QString pathFile, QString atFileName); + void openComicFromPath(const QString & pathFile); + void openSiblingComic(const QString &pathFile); + void openComic(const QString &pathFile); + void openFolderFromPath(const QString & pathDir); + void openFolderFromPath(const QString & pathFile, const QString & atFileName); void alwaysOnTopSwitch(); void adjustToFullSizeSwitch(); void reloadOptions(); @@ -68,7 +70,8 @@ class EditShortcutsDialog; void next(); void updatePage();*/ - private: + + private: //!State bool fullscreen; bool toolbars; @@ -162,6 +165,5 @@ signals: public: MainWindowViewer(); ~MainWindowViewer(); - -}; + }; #endif diff --git a/YACReader/render.cpp b/YACReader/render.cpp index 155c1a5a..9ae7cf36 100644 --- a/YACReader/render.cpp +++ b/YACReader/render.cpp @@ -937,25 +937,31 @@ void Render::setNumPages(unsigned int numPages) void Render::pageRawDataReady(int page) { - pagesEmited.push_back(page); - if(pageRenders.size()>0) - { - for(int i=0;i currentIndex-numLeftPages)) || - ((pagesEmited.at(i) > currentIndex) && (pagesEmited.at(i) < currentIndex+numRightPages)) ) - { - fillBuffer(); - } - } - } - pagesEmited.clear(); - } + if (!hasLoadedComic()) + return; + + pagesEmited.push_back(page); + if(pageRenders.size()>0) + { + for(int i=0;i= pagesReady.size()) + return; //Oooops, something went wrong + + pagesReady[pagesEmited.at(i)] = true; + if(pagesEmited.at(i) == currentIndex) + update(); + else + { + if ( ((pagesEmited.at(i) < currentIndex) && (pagesEmited.at(i) > currentIndex-numLeftPages)) || + ((pagesEmited.at(i) > currentIndex) && (pagesEmited.at(i) < currentIndex+numRightPages)) ) + { + fillBuffer(); + } + } + } + pagesEmited.clear(); + } } //sólo se renderiza la página, si ha habido un cambio de página