27#include <QWaitCondition>
32#include "klflatexpreviewthread.h"
33#include "klflatexpreviewthread_p.h"
37KLFLatexPreviewHandler::KLFLatexPreviewHandler(
QObject * parent)
41KLFLatexPreviewHandler::~KLFLatexPreviewHandler()
79KLFLatexPreviewThread::KLFLatexPreviewThread(
QObject * parent)
110 d->worker->moveToThread(
this);
117 KLFLatexPreviewThread::TaskId)),
119 KLFLatexPreviewThread::TaskId)),
120 Qt::QueuedConnection);
123 Qt::QueuedConnection);
127 Qt::QueuedConnection);
130KLFLatexPreviewThread::~KLFLatexPreviewThread()
142QSize KLFLatexPreviewThread::previewSize()
const
143{
return d->previewSize; }
144QSize KLFLatexPreviewThread::largePreviewSize()
const
145{
return d->largePreviewSize; }
147void KLFLatexPreviewThread::setPreviewSize(
const QSize& previewSize)
148{ d->previewSize = previewSize; }
149void KLFLatexPreviewThread::setLargePreviewSize(
const QSize& largePreviewSize)
150{ d->largePreviewSize = largePreviewSize; }
153void KLFLatexPreviewThread::start(
Priority priority)
161void KLFLatexPreviewThread::stop()
164 emit d->internalRequestAbort();
170void KLFLatexPreviewThread::run()
178KLFLatexPreviewThread::TaskId
182 const QSize& previewSize,
183 const QSize& largePreviewSize)
187 t.settings = settings;
189 t.previewSize = previewSize;
190 t.largePreviewSize = largePreviewSize;
192 return d->submitTask(
t,
false, -1);
195KLFLatexPreviewThread::TaskId
202 t.settings = settings;
204 t.previewSize = d->previewSize;
205 t.largePreviewSize = d->largePreviewSize;
207 return d->submitTask(
t,
false, -1);
210KLFLatexPreviewThread::TaskId
214 const QSize& previewSize,
215 const QSize& largePreviewSize)
219 t.settings = settings;
221 t.previewSize = previewSize;
222 t.largePreviewSize = largePreviewSize;
224 return d->submitTask(
t,
true, -1);
227KLFLatexPreviewThread::TaskId
234 t.settings = settings;
236 t.previewSize = d->previewSize;
237 t.largePreviewSize = d->largePreviewSize;
239 return d->submitTask(
t,
true, -1);
242KLFLatexPreviewThread::TaskId
243 KLFLatexPreviewThread::replaceSubmitPreviewTask(KLFLatexPreviewThread::TaskId
replaceId,
247 const QSize& previewSize,
248 const QSize& largePreviewSize)
252 t.settings = settings;
254 t.previewSize = previewSize;
255 t.largePreviewSize = largePreviewSize;
260KLFLatexPreviewThread::TaskId
261 KLFLatexPreviewThread::replaceSubmitPreviewTask(KLFLatexPreviewThread::TaskId
replaceId,
268 t.settings = settings;
270 t.previewSize = d->previewSize;
271 t.largePreviewSize = d->largePreviewSize;
278void KLFLatexPreviewThread::cancelTask(TaskId
task)
280 emit d->internalRequestCancelTask(
task);
282void KLFLatexPreviewThread::clearPendingTasks()
284 emit d->internalRequestClearPendingTasks();
360 klfDbg(
"worker: running KLFBackend::getLatexFormula()") ;
375 if (
task.previewSize.isValid()) {
377 if (
prev.width() >
task.previewSize.width() ||
prev.height() >
task.previewSize.height()) {
378 prev =
img.scaled(
task.previewSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
381 if (
task.largePreviewSize.isValid()) {
383 if (
lprev.width() >
task.largePreviewSize.width() ||
lprev.height() >
task.largePreviewSize.height()) {
384 lprev =
img.scaled(
task.largePreviewSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
392 if (
task.previewSize.isValid()) {
396 if (
task.largePreviewSize.isValid()) {
405 klfDbg(
"about to invoke delayed threadProcessJobs.") ;
410 klfDbg(
"threadProcessJobs: end") ;
432KLFContLatexPreview::~KLFContLatexPreview()
443bool KLFContLatexPreview::enabled()
const
448void KLFContLatexPreview::setEnabled(
bool enabled)
450 d->enabled = enabled;
463 if (d->input == input)
479 if (d->settings == s)
489 if (d->previewSize == previewSize)
491 d->previewSize = previewSize;
497 if (d->largePreviewSize == largePreviewSize)
499 d->largePreviewSize = largePreviewSize;
static klfOutput getLatexFormula(const klfInput &in, const klfSettings &settings, bool isMainThread=true)
The function that processes everything.
bool setLargePreviewSize(const QSize &largePreviewSize)
bool setSettings(const KLFBackend::klfSettings &settings, bool disableExtraFormats=true)
bool setInput(const KLFBackend::klfInput &input)
bool setPreviewSize(const QSize &previewSize)
virtual void latexPreviewReset()
virtual void latexPreviewImageAvailable(const QImage &preview)
virtual void latexPreviewLargeImageAvailable(const QImage &largePreview)
virtual void latexPreviewAvailable(const QImage &preview, const QImage &largePreview, const QImage &fullPreview)
virtual void latexPreviewError(const QString &errorString, int errorCode)
virtual void latexPreviewFullImageAvailable(const QImage &fullPreview)
virtual void latexOutputAvailable(const KLFBackend::klfOutput &output)
Definition of class KLFBackend.
#define KLF_DEBUG_TIME_BLOCK(msg)
#define KLF_DEBUG_BLOCK(msg)
#define klfDbg(streamableItems)
#define KLF_DELETE_PRIVATE
#define KLF_INIT_PRIVATE(ClassName)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Priority priority() const
void start(Priority priority)
bool wait(unsigned long time)
KLFBackend::getLatexFormula() result.
General settings for KLFBackend::getLatexFormula()