mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
No more crashes opening sibling comics in YACReader (by now). //TODO check sync issues
This commit is contained in:
parent
07ce397ec5
commit
7febfdb109
@ -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(pathFile);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -937,27 +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<pagesEmited.size();i++)
|
||||
{
|
||||
if (!hasLoadedComic())
|
||||
return;
|
||||
|
||||
pagesEmited.push_back(page);
|
||||
if(pageRenders.size()>0)
|
||||
{
|
||||
for(int i=0;i<pagesEmited.size();i++)
|
||||
{
|
||||
if(pagesEmited.at(i)>= pagesReady.size())
|
||||
return;
|
||||
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();
|
||||
}
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user