mirror of
https://invent.kde.org/graphics/okular
synced 2024-09-12 20:51:17 +00:00
19d98d6a74
find . \( -name "*.cpp" -or -name "*.h" -or -name "*.c" -or -name "*.cc" \) -exec clang-format -i {} \; If you reached this file doing a git blame, please see README.clang-format (added 2 commits in the future of this one)
89 lines
2.2 KiB
C++
89 lines
2.2 KiB
C++
/***************************************************************************
|
|
* Copyright (C) 2008 by Pino Toscano <pino@kde.org> *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
***************************************************************************/
|
|
|
|
#include "scripter.h"
|
|
|
|
#include <QDebug>
|
|
#include <QFile>
|
|
|
|
#include "debug_p.h"
|
|
#include "script/executor_kjs_p.h"
|
|
|
|
using namespace Okular;
|
|
|
|
class Okular::ScripterPrivate
|
|
{
|
|
public:
|
|
ScripterPrivate(DocumentPrivate *doc)
|
|
: m_doc(doc)
|
|
#ifdef WITH_KJS
|
|
, m_kjs(nullptr)
|
|
#endif
|
|
, m_event(nullptr)
|
|
{
|
|
}
|
|
|
|
DocumentPrivate *m_doc;
|
|
#ifdef WITH_KJS
|
|
QScopedPointer<ExecutorKJS> m_kjs;
|
|
#endif
|
|
Event *m_event;
|
|
};
|
|
|
|
Scripter::Scripter(DocumentPrivate *doc)
|
|
: d(new ScripterPrivate(doc))
|
|
{
|
|
}
|
|
|
|
Scripter::~Scripter()
|
|
{
|
|
delete d;
|
|
}
|
|
|
|
void Scripter::execute(ScriptType type, const QString &script)
|
|
{
|
|
qCDebug(OkularCoreDebug) << "executing the script:";
|
|
#ifdef WITH_KJS
|
|
#if 0
|
|
if ( script.length() < 1000 )
|
|
qDebug() << script;
|
|
else
|
|
qDebug() << script.left( 1000 ) << "[...]";
|
|
#endif
|
|
static QString builtInScript;
|
|
if (builtInScript.isNull()) {
|
|
QFile builtInResource(QStringLiteral(":/script/builtin.js"));
|
|
if (!builtInResource.open(QIODevice::ReadOnly)) {
|
|
qCDebug(OkularCoreDebug) << "failed to load builtin script";
|
|
} else {
|
|
builtInScript = QString::fromUtf8(builtInResource.readAll());
|
|
builtInResource.close();
|
|
}
|
|
}
|
|
|
|
switch (type) {
|
|
case JavaScript:
|
|
if (!d->m_kjs) {
|
|
d->m_kjs.reset(new ExecutorKJS(d->m_doc));
|
|
}
|
|
d->m_kjs->execute(builtInScript + script, d->m_event);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void Scripter::setEvent(Event *event)
|
|
{
|
|
d->m_event = event;
|
|
}
|
|
|
|
Event *Scripter::event() const
|
|
{
|
|
return d->m_event;
|
|
}
|