Corregido memory leak

intento de corregir los glitches de las marcas de "le?do"

Corregido el cargador de los flows SW
This commit is contained in:
Luis Ángel San Martín 2013-01-20 00:50:37 +01:00
parent eae74073c0
commit 726061affe
5 changed files with 25 additions and 15 deletions

View File

@ -66,7 +66,7 @@ void Comic::setIndex(unsigned int index)
emit pageChanged(_index);
}
//-----------------------------------------------------------------------------
QPixmap * Comic::currentPage()
/*QPixmap * Comic::currentPage()
{
QPixmap * p = new QPixmap();
p->loadFromData(_pages[_index]);
@ -78,7 +78,7 @@ QPixmap * Comic::operator[](unsigned int index)
QPixmap * p = new QPixmap();
p->loadFromData(_pages[index]);
return p;
}
}*/
//-----------------------------------------------------------------------------
bool Comic::loaded()
{
@ -92,7 +92,9 @@ void Comic::loadFinished()
//-----------------------------------------------------------------------------
void Comic::setBookmark()
{
bm->setBookmark(_index,*operator[](_index));
QPixmap p;
p.loadFromData(_pages[_index]);
bm->setBookmark(_index,p);
emit bookmarksLoaded(*bm);
}
//-----------------------------------------------------------------------------
@ -104,7 +106,9 @@ void Comic::removeBookmark()
//-----------------------------------------------------------------------------
void Comic::saveBookmarks()
{
bm->setLastPage(_index,*operator[](_index));
QPixmap p;
p.loadFromData(_pages[_index]);
bm->setLastPage(_index,p);
bm->save();
}
//-----------------------------------------------------------------------------
@ -117,15 +121,19 @@ void Comic::updateBookmarkImage(int index)
{
if(bm->isBookmark(index))
{
bm->setBookmark(index,*operator[](index));
QPixmap p;
p.loadFromData(_pages[_index]);
bm->setBookmark(index,p);
emit bookmarksLoaded(*bm);
}
if(bm->getLastPage() == index)
{
bm->setLastPage(index,*operator[](index));
QPixmap p;
p.loadFromData(_pages[_index]);
bm->setLastPage(index,p);
emit bookmarksLoaded(*bm);
}
}
//-----------------------------------------------------------------------------
void Comic::setPageLoaded(int page)

View File

@ -48,9 +48,9 @@
void setIndex(unsigned int index);
unsigned int getIndex(){return _index;};
unsigned int numPages(){return _pages.size();}
QPixmap * currentPage();
//QPixmap * currentPage();
bool loaded();
QPixmap * operator[](unsigned int index);
//QPixmap * operator[](unsigned int index);
QVector<QByteArray> * getRawData(){return &_pages;};
QByteArray getRawPage(int page);
bool pageIsLoaded(int page);

View File

@ -190,6 +190,7 @@ void GoToFlow::updateImageData()
imagesSetted[idx] = true;
numImagesLoaded++;
rawImages[idx].clear();; //release memory
imagesLoaded[idx]=true;
}
}
@ -212,7 +213,7 @@ void GoToFlow::updateImageData()
if(!imagesLoaded[i]&&imagesReady[i])//slide(i).isNull())
{
// schedule thumbnail generation
imagesLoaded[i]=true;
worker->generate(i, flow->slideSize(),rawImages[i]);
return;
}

View File

@ -74,6 +74,7 @@ void ComicFlow::updateImageData()
setSlide(idx, worker->result());
imagesSetted[idx] = true;
numImagesLoaded++;
imagesLoaded[idx]=true;
}
}
@ -96,7 +97,7 @@ void ComicFlow::updateImageData()
{
// schedule thumbnail generation
QString fname = imageFiles[i];
imagesLoaded[i]=true;
worker->generate(i, fname, slideSize());
return;

View File

@ -458,22 +458,22 @@ void YACReaderFlowGL::drawCover(CFImage *CF)
//esquina inferior izquierda
glColor4f(LDOWN*opacity,LDOWN*opacity,LDOWN*opacity,1);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(w/2.f-0.2f, -0.5f, 0.0001f);
glVertex3f(w/2.f-0.2f, -0.5f, 0.001f);
//esquina inferior derecha
glColor4f(RDOWN*opacity,RDOWN*opacity,RDOWN*opacity,1);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(w/2.f, -0.5f, 0.0001f);
glVertex3f(w/2.f, -0.5f, 0.001f);
//esquina superior derecha
glColor4f(RUP*opacity,RUP*opacity,RUP*opacity,1);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(w/2.f, -0.3f, 0.0001f);
glVertex3f(w/2.f, -0.3f, 0.001f);
//esquina superior izquierda
glColor4f(LUP*opacity,LUP*opacity,LUP*opacity,1);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(w/2.f-0.2f, -0.3f, 0.0001f);
glVertex3f(w/2.f-0.2f, -0.3f, 0.001f);
glEnd();
glDisable(GL_TEXTURE_2D);