diff --git a/YACReader/comic.cpp b/YACReader/comic.cpp index e7da590c..7cbd1dc5 100644 --- a/YACReader/comic.cpp +++ b/YACReader/comic.cpp @@ -27,7 +27,7 @@ Comic::Comic(const QString pathFile) //----------------------------------------------------------------------------- Comic::~Comic() { - QThread::~QThread(); + //QThread::~QThread(); /*delete _7z; delete _7ze; delete bm;*/ //TODO safe delete diff --git a/common/yacreader_flow_gl.cpp b/common/yacreader_flow_gl.cpp index 70723870..a9d2feb9 100644 --- a/common/yacreader_flow_gl.cpp +++ b/common/yacreader_flow_gl.cpp @@ -179,7 +179,7 @@ struct Preset pressetYACReaderFlowDownConfig = { }; /*Constructor*/ YACReaderFlowGL::YACReaderFlowGL(QWidget *parent,struct Preset p) - :QGLWidget(QGLFormat(QGL::DoubleBuffer), parent),numObjects(0) + :QGLWidget(QGLFormat(QGL::DoubleBuffer), parent),numObjects(0),lazyPopulateObjects(-1) { updateCount = 0; config = p; @@ -217,6 +217,7 @@ YACReaderFlowGL::YACReaderFlowGL(QWidget *parent,struct Preset p) loaderThread->start();*/ timerId = startTimer(16); + } void YACReaderFlowGL::timerEvent(QTimerEvent * event) @@ -254,7 +255,10 @@ void YACReaderFlowGL::initializeGL() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - //populate(284); //TODO esto es responsabilidad del usuario de la clase + defaultTexture = bindTexture(QImage(":/images/defaultCover.png"),GL_TEXTURE_2D,GL_RGBA,QGLContext::LinearFilteringBindOption | QGLContext::MipmapBindOption); + markTexture = bindTexture(QImage(":/images/setRead.png"),GL_TEXTURE_2D,GL_RGBA,QGLContext::LinearFilteringBindOption | QGLContext::MipmapBindOption); + if(lazyPopulateObjects!=-1) + populate(lazyPopulateObjects); //TODO esto es responsabilidad del usuario de la clase //float x = 0.5; //int i; @@ -512,7 +516,7 @@ void YACReaderFlowGL::draw() glColor4f( 1.0, 1.0, 1.0, 1.0 ); glVertex2f( -0.03, 0.98); glVertex2f( 0.03, 0.98); - glVertex2f( 0, 0.95); + glVertex2f( 0, 0.949); glEnd(); @@ -676,10 +680,9 @@ void YACReaderFlowGL::populate(int n) float x = 1; float y = 1 * (700/480.0); int i; - GLuint cover = bindTexture(QImage(":/images/defaultCover.png"),GL_TEXTURE_2D,GL_RGBA,QGLContext::LinearFilteringBindOption | QGLContext::MipmapBindOption); - markTexture = bindTexture(QImage(":/images/setRead.png"),GL_TEXTURE_2D,GL_RGBA,QGLContext::LinearFilteringBindOption | QGLContext::MipmapBindOption); + for(i = 0;istart(); } -void YACReaderFlowGL::reset() //TODO unbind textures +void YACReaderFlowGL::reset() { loaded.clear(); for(int i = 0;i0) delete[] cfImages; @@ -848,7 +852,7 @@ void YACReaderFlowGL::keyPressEvent(QKeyEvent *event) if(event->key() == Qt::Key_Left) { if(event->modifiers() == Qt::ControlModifier) - setCurrentIndex(currentSelected-10); + setCurrentIndex((currentSelected-10<0)?0:currentSelected-10); else showPrevious(); event->accept(); @@ -858,7 +862,7 @@ void YACReaderFlowGL::keyPressEvent(QKeyEvent *event) if(event->key() == Qt::Key_Right) { if(event->modifiers() == Qt::ControlModifier) - setCurrentIndex(currentSelected+10); + setCurrentIndex((currentSelected+10>=numObjects)?numObjects-1:currentSelected+10); else showNext(); event->accept(); @@ -1068,11 +1072,13 @@ void YACReaderPageFlowGL::updateImageData() void YACReaderPageFlowGL::populate(int n) { - YACReaderFlowGL::populate(n); + worker->reset(); + if(lazyPopulateObjects!=-1) + YACReaderFlowGL::populate(n); + lazyPopulateObjects = n; imagesReady = QVector (n,false); rawImages = QVector (n); imagesSetted = QVector (n,false); //puede sobrar - } diff --git a/common/yacreader_flow_gl.h b/common/yacreader_flow_gl.h index 4b018ec5..7fa5dd3a 100644 --- a/common/yacreader_flow_gl.h +++ b/common/yacreader_flow_gl.h @@ -96,15 +96,13 @@ extern struct Preset pressetYACReaderFlowDownConfig; class YACReaderFlowGL : public QGLWidget { Q_OBJECT -private: +protected: int timerId; /*** System variables ***/ CFImage dummy; int viewRotateActive; float stepBackup; - GLuint markTexture; - /*functions*/ void calcPos(CFImage *CF,int pos); void calcRV(RVect *RV,int pos); @@ -115,7 +113,8 @@ private: WidgetLoader * loader; int fontSize; -protected: + GLuint defaultTexture; + GLuint markTexture; void initializeGL(); void paintGL(); void timerEvent(QTimerEvent *); @@ -124,6 +123,7 @@ protected: public: //number of Covers int numObjects; + int lazyPopulateObjects; bool showMarks; QVector loaded; QVector marks; @@ -287,7 +287,7 @@ public: // returns FALSE if worker is still busy and can't take the task bool busy() const; void generate(int index, const QString& fileName); - void reset(){idx = -1;}; + void reset(){idx = -1;fileName="";}; int index() const { return idx; }; QImage result(); YACReaderFlowGL * flow; @@ -318,7 +318,7 @@ public: // returns FALSE if worker is still busy and can't take the task bool busy() const; void generate(int index, const QByteArray& raw); - void reset(){idx = -1;}; + void reset(){idx = -1; rawData.clear();}; int index() const { return idx; }; QImage result(); YACReaderFlowGL * flow;