mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
kioslave: wait for document decoding to complete in djvucreator
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
715b840e4a
commit
69a1de37d2
1 changed files with 11 additions and 3 deletions
|
@ -55,12 +55,18 @@ bool DjVuCreator::create(const QString &path, int width, int height, QImage &img
|
||||||
ddjvu_context_release(djvuctx);
|
ddjvu_context_release(djvuctx);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
kDebug() << "Waiting for document decoding to complete";
|
||||||
|
while (!ddjvu_document_decoding_done(djvudoc)) {
|
||||||
|
QCoreApplication::processEvents(QEventLoop::AllEvents, s_eventstime);
|
||||||
|
QThread::msleep(s_sleeptime);
|
||||||
|
}
|
||||||
|
kDebug() << "Done waiting for document decoding to complete";
|
||||||
|
|
||||||
ddjvu_page_t* djvupage = ddjvu_page_create_by_pageno(djvudoc, 0);
|
ddjvu_page_t* djvupage = ddjvu_page_create_by_pageno(djvudoc, 0);
|
||||||
if (!djvupage) {
|
if (!djvupage) {
|
||||||
kWarning() << "Could not create DjVu page";
|
kWarning() << "Could not create DjVu page";
|
||||||
ddjvu_document_release(djvudoc);
|
ddjvu_document_release(djvudoc);
|
||||||
ddjvu_context_release(djvuctx);
|
ddjvu_context_release(djvuctx);
|
||||||
img = QImage();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
kDebug() << "Waiting for page decoding to complete";
|
kDebug() << "Waiting for page decoding to complete";
|
||||||
|
@ -69,7 +75,7 @@ bool DjVuCreator::create(const QString &path, int width, int height, QImage &img
|
||||||
QThread::msleep(s_sleeptime);
|
QThread::msleep(s_sleeptime);
|
||||||
}
|
}
|
||||||
kDebug() << "Done waiting for page decoding to complete";
|
kDebug() << "Done waiting for page decoding to complete";
|
||||||
img = QImage(width, height, QImage::Format_RGB32);
|
|
||||||
uint djvumask[4] = { 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 };
|
uint djvumask[4] = { 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 };
|
||||||
int djvumasksize = 3; // sizeof(djvumask);
|
int djvumasksize = 3; // sizeof(djvumask);
|
||||||
ddjvu_format_t* djvuformat = ddjvu_format_create(DDJVU_FORMAT_RGBMASK32, djvumasksize, djvumask);
|
ddjvu_format_t* djvuformat = ddjvu_format_create(DDJVU_FORMAT_RGBMASK32, djvumasksize, djvumask);
|
||||||
|
@ -78,11 +84,11 @@ bool DjVuCreator::create(const QString &path, int width, int height, QImage &img
|
||||||
ddjvu_page_release(djvupage);
|
ddjvu_page_release(djvupage);
|
||||||
ddjvu_document_release(djvudoc);
|
ddjvu_document_release(djvudoc);
|
||||||
ddjvu_context_release(djvuctx);
|
ddjvu_context_release(djvuctx);
|
||||||
img = QImage();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ddjvu_format_set_row_order(djvuformat, 1);
|
ddjvu_format_set_row_order(djvuformat, 1);
|
||||||
ddjvu_format_set_y_direction(djvuformat, 1);
|
ddjvu_format_set_y_direction(djvuformat, 1);
|
||||||
|
|
||||||
ddjvu_rect_t djvupagerect;
|
ddjvu_rect_t djvupagerect;
|
||||||
djvupagerect.x = 0;
|
djvupagerect.x = 0;
|
||||||
djvupagerect.y = 0;
|
djvupagerect.y = 0;
|
||||||
|
@ -90,6 +96,7 @@ bool DjVuCreator::create(const QString &path, int width, int height, QImage &img
|
||||||
djvupagerect.h = height;
|
djvupagerect.h = height;
|
||||||
ddjvu_rect_t djvurenderrect;
|
ddjvu_rect_t djvurenderrect;
|
||||||
djvurenderrect = djvupagerect;
|
djvurenderrect = djvupagerect;
|
||||||
|
img = QImage(width, height, QImage::Format_RGB32);
|
||||||
const int djvustatus = ddjvu_page_render(
|
const int djvustatus = ddjvu_page_render(
|
||||||
djvupage,
|
djvupage,
|
||||||
DDJVU_RENDER_COLOR,
|
DDJVU_RENDER_COLOR,
|
||||||
|
@ -106,6 +113,7 @@ bool DjVuCreator::create(const QString &path, int width, int height, QImage &img
|
||||||
img = QImage();
|
img = QImage();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ddjvu_page_release(djvupage);
|
ddjvu_page_release(djvupage);
|
||||||
ddjvu_format_release(djvuformat);
|
ddjvu_format_release(djvuformat);
|
||||||
ddjvu_document_release(djvudoc);
|
ddjvu_document_release(djvudoc);
|
||||||
|
|
Loading…
Add table
Reference in a new issue