From e0626560ea87c9faf1fa7cfaa576d4a6e2cc9656 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 19 Nov 2014 20:23:42 +0000 Subject: [PATCH] removed JS support for Okular (requires KJS) --- okular/CMakeLists.txt | 17 +- okular/core/document.cpp | 32 +-- okular/core/document_p.h | 4 - okular/core/script/executor_kjs.cpp | 113 ---------- okular/core/script/executor_kjs_p.h | 35 ---- okular/core/script/kjs_app.cpp | 232 --------------------- okular/core/script/kjs_app_p.h | 30 --- okular/core/script/kjs_console.cpp | 150 -------------- okular/core/script/kjs_console_p.h | 28 --- okular/core/script/kjs_data.cpp | 90 -------- okular/core/script/kjs_data_p.h | 30 --- okular/core/script/kjs_document.cpp | 287 -------------------------- okular/core/script/kjs_document_p.h | 30 --- okular/core/script/kjs_field.cpp | 230 --------------------- okular/core/script/kjs_field_p.h | 32 --- okular/core/script/kjs_fullscreen.cpp | 78 ------- okular/core/script/kjs_fullscreen_p.h | 28 --- okular/core/script/kjs_spell.cpp | 42 ---- okular/core/script/kjs_spell_p.h | 28 --- okular/core/script/kjs_util.cpp | 74 ------- okular/core/script/kjs_util_p.h | 28 --- okular/core/scripter.cpp | 66 ------ okular/core/scripter.h | 43 ---- 23 files changed, 2 insertions(+), 1725 deletions(-) delete mode 100644 okular/core/script/executor_kjs.cpp delete mode 100644 okular/core/script/executor_kjs_p.h delete mode 100644 okular/core/script/kjs_app.cpp delete mode 100644 okular/core/script/kjs_app_p.h delete mode 100644 okular/core/script/kjs_console.cpp delete mode 100644 okular/core/script/kjs_console_p.h delete mode 100644 okular/core/script/kjs_data.cpp delete mode 100644 okular/core/script/kjs_data_p.h delete mode 100644 okular/core/script/kjs_document.cpp delete mode 100644 okular/core/script/kjs_document_p.h delete mode 100644 okular/core/script/kjs_field.cpp delete mode 100644 okular/core/script/kjs_field_p.h delete mode 100644 okular/core/script/kjs_fullscreen.cpp delete mode 100644 okular/core/script/kjs_fullscreen_p.h delete mode 100644 okular/core/script/kjs_spell.cpp delete mode 100644 okular/core/script/kjs_spell_p.h delete mode 100644 okular/core/script/kjs_util.cpp delete mode 100644 okular/core/script/kjs_util_p.h delete mode 100644 okular/core/scripter.cpp delete mode 100644 okular/core/scripter.h diff --git a/okular/CMakeLists.txt b/okular/CMakeLists.txt index 34f9f6a8..67469576 100644 --- a/okular/CMakeLists.txt +++ b/okular/CMakeLists.txt @@ -61,7 +61,6 @@ set(okularcore_SRCS core/pagesize.cpp core/pagetransition.cpp core/rotationjob.cpp - core/scripter.cpp core/sound.cpp core/sourcereference.cpp core/textdocumentgenerator.cpp @@ -71,15 +70,6 @@ set(okularcore_SRCS core/utils.cpp core/view.cpp core/fileprinter.cpp - core/script/executor_kjs.cpp - core/script/kjs_app.cpp - core/script/kjs_console.cpp - core/script/kjs_data.cpp - core/script/kjs_document.cpp - core/script/kjs_fullscreen.cpp - core/script/kjs_field.cpp - core/script/kjs_spell.cpp - core/script/kjs_util.cpp ) kde4_add_ui_files(okularcore_SRCS @@ -128,12 +118,7 @@ kde4_add_kcfg_files(okularcore_SRCS conf/settings_core.kcfgc ) kde4_add_library(okularcore SHARED ${okularcore_SRCS}) -# Special handling for linking okularcore on OSX/Apple -IF(APPLE) - SET(OKULAR_IOKIT "-framework IOKit" CACHE STRING "Apple IOKit framework") -ENDIF(APPLE) - -target_link_libraries(okularcore ${OKULAR_IOKIT} ${KDE4_KIO_LIBS} ${KDE4_PHONON_LIBRARY} ${KDE4_KJSAPI_LIBRARY} ${MATH_LIB} ${KDE4_THREADWEAVER_LIBRARY} ) +target_link_libraries(okularcore ${KDE4_KIO_LIBS} ${KDE4_PHONON_LIBRARY} ${MATH_LIB} ${KDE4_THREADWEAVER_LIBRARY} ) if(LibKScreen_FOUND) target_link_libraries(okularcore ${LibKScreen_LIBRARY}) diff --git a/okular/core/document.cpp b/okular/core/document.cpp index 99e05630..64f4597a 100644 --- a/okular/core/document.cpp +++ b/okular/core/document.cpp @@ -73,7 +73,6 @@ #include "page.h" #include "page_p.h" #include "pagecontroller_p.h" -#include "scripter.h" #include "settings_core.h" #include "sourcereference.h" #include "sourcereference_p.h" @@ -2319,16 +2318,6 @@ Document::OpenResult Document::openDocument( const QString & docFile, const KUrl AudioPlayer::instance()->d->m_currentDocument = isstdin ? KUrl() : d->m_url; d->m_docSize = document_size; - const QStringList docScripts = d->m_generator->metaData( "DocumentScripts", "JavaScript" ).toStringList(); - if ( !docScripts.isEmpty() ) - { - d->m_scripter = new Scripter( d ); - Q_FOREACH ( const QString &docscript, docScripts ) - { - d->m_scripter->execute( JavaScript, docscript ); - } - } - return OpenSuccess; } @@ -2353,9 +2342,6 @@ void Document::closeDocument() delete d->m_pageController; d->m_pageController = 0; - delete d->m_scripter; - d->m_scripter = 0; - // remove requests left in queue d->m_pixmapRequestsMutex.lock(); QLinkedList< PixmapRequest * >::const_iterator sIt = d->m_pixmapRequestsStack.constBegin(); @@ -3750,28 +3736,12 @@ void Document::processAction( const Action * action ) AudioPlayer::instance()->playSound( linksound->sound(), linksound ); } break; - case Action::Script: { - const ScriptAction * linkscript = static_cast< const ScriptAction * >( action ); - if ( !d->m_scripter ) - d->m_scripter = new Scripter( d ); - d->m_scripter->execute( linkscript->scriptType(), linkscript->script() ); - } break; - case Action::Movie: emit processMovieAction( static_cast< const MovieAction * >( action ) ); break; case Action::Rendition: { const RenditionAction * linkrendition = static_cast< const RenditionAction * >( action ); - if ( !linkrendition->script().isEmpty() ) - { - if ( !d->m_scripter ) - d->m_scripter = new Scripter( d ); - d->m_scripter->execute( linkrendition->scriptType(), linkrendition->script() ); - } - else - { - emit processRenditionAction( static_cast< const RenditionAction * >( action ) ); - } + emit processRenditionAction( static_cast< const RenditionAction * >( action ) ); } break; } } diff --git a/okular/core/document_p.h b/okular/core/document_p.h index 08775da4..b4bc6a8b 100644 --- a/okular/core/document_p.h +++ b/okular/core/document_p.h @@ -41,7 +41,6 @@ namespace Okular { class ConfigInterface; class PageController; class SaveInterface; -class Scripter; class View; } @@ -93,7 +92,6 @@ class DocumentPrivate m_generatorsLoaded( false ), m_pageController( 0 ), m_closingLoop( 0 ), - m_scripter( 0 ), m_archiveData( 0 ), m_fontsCached( false ), m_documentInfo( 0 ), @@ -251,8 +249,6 @@ class DocumentPrivate PageController *m_pageController; QEventLoop *m_closingLoop; - Scripter *m_scripter; - ArchiveData *m_archiveData; QString m_archivedFileName; diff --git a/okular/core/script/executor_kjs.cpp b/okular/core/script/executor_kjs.cpp deleted file mode 100644 index 071da7a3..00000000 --- a/okular/core/script/executor_kjs.cpp +++ /dev/null @@ -1,113 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "executor_kjs_p.h" - -#include -#include -#include -#include - -#include - -#include "../debug_p.h" -#include "../document_p.h" - -#include "kjs_app_p.h" -#include "kjs_console_p.h" -#include "kjs_data_p.h" -#include "kjs_document_p.h" -#include "kjs_field_p.h" -#include "kjs_fullscreen_p.h" -#include "kjs_spell_p.h" -#include "kjs_util_p.h" - -using namespace Okular; - -class Okular::ExecutorKJSPrivate -{ - public: - ExecutorKJSPrivate( DocumentPrivate *doc ) - : m_doc( doc ) - { - initTypes(); - } - ~ExecutorKJSPrivate() - { - JSField::clearCachedFields(); - - delete m_interpreter; - } - - void initTypes(); - - DocumentPrivate *m_doc; - KJSInterpreter *m_interpreter; - KJSGlobalObject m_docObject; -}; - -void ExecutorKJSPrivate::initTypes() -{ - m_docObject = JSDocument::wrapDocument( m_doc ); - m_interpreter = new KJSInterpreter( m_docObject ); - - KJSContext *ctx = m_interpreter->globalContext(); - - JSApp::initType( ctx ); - JSFullscreen::initType( ctx ); - JSConsole::initType( ctx ); - JSData::initType( ctx ); - JSDocument::initType( ctx ); - JSField::initType( ctx ); - JSSpell::initType( ctx ); - JSUtil::initType( ctx ); - - m_docObject.setProperty( ctx, "app", JSApp::object( ctx, m_doc ) ); - m_docObject.setProperty( ctx, "console", JSConsole::object( ctx ) ); - m_docObject.setProperty( ctx, "Doc", m_docObject ); - m_docObject.setProperty( ctx, "spell", JSSpell::object( ctx ) ); - m_docObject.setProperty( ctx, "util", JSUtil::object( ctx ) ); -} - -ExecutorKJS::ExecutorKJS( DocumentPrivate *doc ) - : d( new ExecutorKJSPrivate( doc ) ) -{ -} - -ExecutorKJS::~ExecutorKJS() -{ - delete d; -} - -void ExecutorKJS::execute( const QString &script ) -{ -#if 0 - QString script2; - QString errMsg; - int errLine; - if ( !KJSInterpreter::normalizeCode( script, &script2, &errLine, &errMsg ) ) - { - kWarning(OkularDebug) << "Parse error during normalization!"; - script2 = script; - } -#endif - - KJSResult result = d->m_interpreter->evaluate( "okular.js", 1, - script, &d->m_docObject ); - KJSContext* ctx = d->m_interpreter->globalContext(); - if ( result.isException() || ctx->hasException() ) - { - kDebug(OkularDebug) << "JS exception" << result.errorMessage(); - } - else - { - kDebug(OkularDebug) << "result:" << result.value().toString( ctx ); - } -} diff --git a/okular/core/script/executor_kjs_p.h b/okular/core/script/executor_kjs_p.h deleted file mode 100644 index 12a6304d..00000000 --- a/okular/core/script/executor_kjs_p.h +++ /dev/null @@ -1,35 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_EXECUTOR_KJS_P_H -#define OKULAR_SCRIPT_EXECUTOR_KJS_P_H - -class QString; - -namespace Okular { - -class DocumentPrivate; -class ExecutorKJSPrivate; - -class ExecutorKJS -{ - public: - ExecutorKJS( DocumentPrivate *doc ); - ~ExecutorKJS(); - - void execute( const QString &script ); - - private: - friend class ExecutorKJSPrivate; - ExecutorKJSPrivate* d; -}; - -} - -#endif diff --git a/okular/core/script/kjs_app.cpp b/okular/core/script/kjs_app.cpp deleted file mode 100644 index ea793938..00000000 --- a/okular/core/script/kjs_app.cpp +++ /dev/null @@ -1,232 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_app_p.h" - -#include -#include -#include - -#include - -#include -#include - -#include "../document_p.h" -#include "kjs_fullscreen_p.h" - -using namespace Okular; - -static KJSPrototype *g_appProto; - -// the acrobat version we fake -static const double fake_acroversion = 8.00; - -static const struct FakePluginInfo { - const char *name; - bool certified; - bool loaded; - const char *path; -} s_fake_plugins[] = { - { "Annots", true, true, "" }, - { "EFS", true, true, "" }, - { "EScript", true, true, "" }, - { "Forms", true, true, "" }, - { "ReadOutLoud", true, true, "" }, - { "WebLink", true, true, "" } -}; -static const int s_num_fake_plugins = sizeof( s_fake_plugins ) / sizeof( s_fake_plugins[0] ); - - -static KJSObject appGetFormsVersion( KJSContext *, void * ) -{ - // faking a bit... - return KJSNumber( fake_acroversion ); -} - -static KJSObject appGetLanguage( KJSContext *, void * ) -{ - QString lang; - QString country; - QString dummy; - KLocale::splitLocale( KGlobal::locale()->language(), - lang, country, dummy, dummy ); - QString acroLang = QString::fromLatin1( "ENU" ); - if ( lang == QLatin1String( "da" ) ) - acroLang = QString::fromLatin1( "DAN" ); // Danish - else if ( lang == QLatin1String( "de" ) ) - acroLang = QString::fromLatin1( "DEU" ); // German - else if ( lang == QLatin1String( "en" ) ) - acroLang = QString::fromLatin1( "ENU" ); // English - else if ( lang == QLatin1String( "es" ) ) - acroLang = QString::fromLatin1( "ESP" ); // Spanish - else if ( lang == QLatin1String( "fr" ) ) - acroLang = QString::fromLatin1( "FRA" ); // French - else if ( lang == QLatin1String( "it" ) ) - acroLang = QString::fromLatin1( "ITA" ); // Italian - else if ( lang == QLatin1String( "ko" ) ) - acroLang = QString::fromLatin1( "KOR" ); // Korean - else if ( lang == QLatin1String( "ja" ) ) - acroLang = QString::fromLatin1( "JPN" ); // Japanese - else if ( lang == QLatin1String( "nl" ) ) - acroLang = QString::fromLatin1( "NLD" ); // Dutch - else if ( lang == QLatin1String( "pt" ) && country == QLatin1String( "BR" ) ) - acroLang = QString::fromLatin1( "PTB" ); // Brazilian Portuguese - else if ( lang == QLatin1String( "fi" ) ) - acroLang = QString::fromLatin1( "SUO" ); // Finnish - else if ( lang == QLatin1String( "sv" ) ) - acroLang = QString::fromLatin1( "SVE" ); // Swedish - else if ( lang == QLatin1String( "zh" ) && country == QLatin1String( "CN" ) ) - acroLang = QString::fromLatin1( "CHS" ); // Chinese Simplified - else if ( lang == QLatin1String( "zh" ) && country == QLatin1String( "TW" ) ) - acroLang = QString::fromLatin1( "CHT" ); // Chinese Traditional - return KJSString( acroLang ); -} - -static KJSObject appGetNumPlugins( KJSContext *, void * ) -{ - return KJSNumber( s_num_fake_plugins ); -} - -static KJSObject appGetPlatform( KJSContext *, void * ) -{ -#if defined(Q_OS_WIN) - return KJSString( QString::fromLatin1( "WIN" ) ); -#elif defined(Q_OS_MAC) - return KJSString( QString::fromLatin1( "MAC" ) ); -#else - return KJSString( QString::fromLatin1( "UNIX" ) ); -#endif -} - -static KJSObject appGetPlugIns( KJSContext *context, void * ) -{ - KJSArray plugins( context, s_num_fake_plugins ); - for ( int i = 0; i < s_num_fake_plugins; ++i ) - { - const FakePluginInfo &info = s_fake_plugins[i]; - KJSObject plugin; - plugin.setProperty( context, "certified", info.certified ); - plugin.setProperty( context, "loaded", info.loaded ); - plugin.setProperty( context, "name", info.name ); - plugin.setProperty( context, "path", info.path ); - plugin.setProperty( context, "version", fake_acroversion ); - plugins.setProperty( context, QString::number( i ), plugin ); - } - return plugins; -} - -static KJSObject appGetPrintColorProfiles( KJSContext *context, void * ) -{ - return KJSArray( context, 0 ); -} - -static KJSObject appGetPrinterNames( KJSContext *context, void * ) -{ - return KJSArray( context, 0 ); -} - -static KJSObject appGetViewerType( KJSContext *, void * ) -{ - // faking a bit... - return KJSString( QString::fromLatin1( "Reader" ) ); -} - -static KJSObject appGetViewerVariation( KJSContext *, void * ) -{ - // faking a bit... - return KJSString( QString::fromLatin1( "Reader" ) ); -} - -static KJSObject appGetViewerVersion( KJSContext *, void * ) -{ - // faking a bit... - return KJSNumber( fake_acroversion ); -} - -static KJSObject appBeep( KJSContext *context, void *, - const KJSArguments &arguments ) -{ - if ( arguments.count() < 1 ) - { - return context->throwException( "Missing beep type" ); - } - QApplication::beep(); - return KJSUndefined(); -} - -static KJSObject appGetNthPlugInName( KJSContext *context, void *, - const KJSArguments &arguments ) -{ - if ( arguments.count() < 1 ) - { - return context->throwException( "Missing plugin index" ); - } - const int nIndex = arguments.at( 0 ).toInt32( context ); - - if ( nIndex < 0 || nIndex >= s_num_fake_plugins ) - return context->throwException( "PlugIn index out of bounds" ); - - const FakePluginInfo &info = s_fake_plugins[nIndex]; - return KJSString( info.name ); -} - -static KJSObject appGoBack( KJSContext *, void *object, - const KJSArguments & ) -{ - const DocumentPrivate *doc = reinterpret_cast< DocumentPrivate * >( object ); - if ( doc->m_parent->historyAtBegin() ) - return KJSUndefined(); - - doc->m_parent->setPrevViewport(); - return KJSUndefined(); -} - -static KJSObject appGoForward( KJSContext *, void *object, - const KJSArguments & ) -{ - const DocumentPrivate *doc = reinterpret_cast< DocumentPrivate * >( object ); - if ( doc->m_parent->historyAtEnd() ) - return KJSUndefined(); - - doc->m_parent->setNextViewport(); - return KJSUndefined(); -} - -void JSApp::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - g_appProto = new KJSPrototype(); - - g_appProto->defineProperty( ctx, "formsVersion", appGetFormsVersion ); - g_appProto->defineProperty( ctx, "language", appGetLanguage ); - g_appProto->defineProperty( ctx, "numPlugIns", appGetNumPlugins ); - g_appProto->defineProperty( ctx, "platform", appGetPlatform ); - g_appProto->defineProperty( ctx, "plugIns", appGetPlugIns ); - g_appProto->defineProperty( ctx, "printColorProfiles", appGetPrintColorProfiles ); - g_appProto->defineProperty( ctx, "printerNames", appGetPrinterNames ); - g_appProto->defineProperty( ctx, "viewerType", appGetViewerType ); - g_appProto->defineProperty( ctx, "viewerVariation", appGetViewerVariation ); - g_appProto->defineProperty( ctx, "viewerVersion", appGetViewerVersion ); - - g_appProto->defineFunction( ctx, "beep", appBeep ); - g_appProto->defineFunction( ctx, "getNthPlugInName", appGetNthPlugInName ); - g_appProto->defineFunction( ctx, "goBack", appGoBack ); - g_appProto->defineFunction( ctx, "goForward", appGoForward ); -} - -KJSObject JSApp::object( KJSContext *ctx, DocumentPrivate *doc ) -{ - return g_appProto->constructObject( ctx, doc ); -} diff --git a/okular/core/script/kjs_app_p.h b/okular/core/script/kjs_app_p.h deleted file mode 100644 index c0649df1..00000000 --- a/okular/core/script/kjs_app_p.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_APP_P_H -#define OKULAR_SCRIPT_KJS_APP_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class DocumentPrivate; - -class JSApp -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject object( KJSContext *ctx, DocumentPrivate *doc ); -}; - -} - -#endif diff --git a/okular/core/script/kjs_console.cpp b/okular/core/script/kjs_console.cpp deleted file mode 100644 index 8944d73d..00000000 --- a/okular/core/script/kjs_console.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_console_p.h" - -#include -#include -#include - -#include - -#include "../debug_p.h" - -using namespace Okular; - -static KJSPrototype *g_consoleProto; - -#ifdef OKULAR_JS_CONSOLE - -#include -#include - -#include -#include - -K_GLOBAL_STATIC( KDialog, g_jsConsoleWindow ) -static QPlainTextEdit *g_jsConsoleLog = 0; - -static void createConsoleWindow() -{ - if ( g_jsConsoleWindow.exists() ) - return; - - g_jsConsoleWindow->setButtons( KDialog::Close | KDialog::User1 ); - g_jsConsoleWindow->setButtonGuiItem( KDialog::User1, KStandardGuiItem::clear() ); - - QVBoxLayout *mainLay = new QVBoxLayout( g_jsConsoleWindow->mainWidget() ); - mainLay->setMargin( 0 ); - g_jsConsoleLog = new QPlainTextEdit( g_jsConsoleWindow->mainWidget() ); - g_jsConsoleLog->setReadOnly( true ); - mainLay->addWidget( g_jsConsoleLog ); - - QObject::connect( g_jsConsoleWindow, SIGNAL(closeClicked()), - g_jsConsoleWindow, SLOT(close()) ); - QObject::connect( g_jsConsoleWindow, SIGNAL(user1Clicked()), - g_jsConsoleLog, SLOT(clear()) ); -} - -static void showConsole() -{ - createConsoleWindow(); - g_jsConsoleWindow->show(); -} - -static void hideConsole() -{ - if ( !g_jsConsoleWindow.exists() ) - return; - - g_jsConsoleWindow->hide(); -} - -static void clearConsole() -{ - if ( !g_jsConsoleWindow.exists() ) - return; - - g_jsConsoleLog->clear(); -} - -static void outputToConsole( const QString &message ) -{ - showConsole(); - g_jsConsoleLog->appendPlainText( message ); -} - -#else /* OKULAR_JS_CONSOLE */ - -static void showConsole() -{ -} - -static void hideConsole() -{ -} - -static void clearConsole() -{ -} - -static void outputToConsole( const QString &cMessage ) -{ - kDebug(OkularDebug) << "CONSOLE:" << cMessage; -} - -#endif /* OKULAR_JS_CONSOLE */ - -static KJSObject consoleClear( KJSContext *, void *, const KJSArguments & ) -{ - clearConsole(); - return KJSUndefined(); -} - -static KJSObject consoleHide( KJSContext *, void *, const KJSArguments & ) -{ - hideConsole(); - return KJSUndefined(); -} - -static KJSObject consolePrintln( KJSContext *ctx, void *, - const KJSArguments &arguments ) -{ - QString cMessage = arguments.at( 0 ).toString( ctx ); - outputToConsole( cMessage ); - - return KJSUndefined(); -} - -static KJSObject consoleShow( KJSContext *, void *, const KJSArguments & ) -{ - showConsole(); - return KJSUndefined(); -} - -void JSConsole::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - g_consoleProto = new KJSPrototype(); - - g_consoleProto->defineFunction( ctx, "clear", consoleClear ); - g_consoleProto->defineFunction( ctx, "hide", consoleHide ); - g_consoleProto->defineFunction( ctx, "println", consolePrintln ); - g_consoleProto->defineFunction( ctx, "hide", consoleShow ); -} - -KJSObject JSConsole::object( KJSContext *ctx ) -{ - return g_consoleProto->constructObject( ctx, 0 ); -} diff --git a/okular/core/script/kjs_console_p.h b/okular/core/script/kjs_console_p.h deleted file mode 100644 index 0b9096b7..00000000 --- a/okular/core/script/kjs_console_p.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_CONSOLE_P_H -#define OKULAR_SCRIPT_KJS_CONSOLE_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class JSConsole -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject object( KJSContext *ctx ); -}; - -} - -#endif diff --git a/okular/core/script/kjs_data.cpp b/okular/core/script/kjs_data.cpp deleted file mode 100644 index 30544dcb..00000000 --- a/okular/core/script/kjs_data.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_data_p.h" - -#include -#include - -#include - -#include "../document.h" - -using namespace Okular; - -static KJSPrototype *g_dataProto; - -static KJSObject dataGetCreationDate( KJSContext *ctx, void *object ) -{ - const EmbeddedFile *file = reinterpret_cast< EmbeddedFile * >( object ); - - return KJSDate( ctx, file->creationDate() ); -} - -static KJSObject dataGetDescription( KJSContext *, void *object ) -{ - const EmbeddedFile *file = reinterpret_cast< EmbeddedFile * >( object ); - - return KJSString( file->description() ); -} - -static KJSObject dataGetMIMEType( KJSContext *, void * ) -{ - return KJSString( "" ); -} - -static KJSObject dataGetModDate( KJSContext *ctx, void *object ) -{ - const EmbeddedFile *file = reinterpret_cast< EmbeddedFile * >( object ); - - return KJSDate( ctx, file->modificationDate() ); -} - -static KJSObject dataGetName( KJSContext *, void *object ) -{ - const EmbeddedFile *file = reinterpret_cast< EmbeddedFile * >( object ); - - return KJSString( file->name() ); -} - -static KJSObject dataGetPath( KJSContext *, void * ) -{ - return KJSString( "" ); -} - -static KJSObject dataGetSize( KJSContext *, void *object ) -{ - const EmbeddedFile *file = reinterpret_cast< EmbeddedFile * >( object ); - return KJSNumber( file->size() ); -} - -void JSData::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - if ( !g_dataProto ) - g_dataProto = new KJSPrototype(); - - g_dataProto->defineProperty( ctx, "creationDate", dataGetCreationDate ); - g_dataProto->defineProperty( ctx, "description", dataGetDescription ); - g_dataProto->defineProperty( ctx, "MIMEType", dataGetMIMEType ); - g_dataProto->defineProperty( ctx, "modDate", dataGetModDate ); - g_dataProto->defineProperty( ctx, "name", dataGetName ); - g_dataProto->defineProperty( ctx, "path", dataGetPath ); - g_dataProto->defineProperty( ctx, "size", dataGetSize ); -} - -KJSObject JSData::wrapFile( KJSContext *ctx, EmbeddedFile *f ) -{ - return g_dataProto->constructObject( ctx, f ); -} diff --git a/okular/core/script/kjs_data_p.h b/okular/core/script/kjs_data_p.h deleted file mode 100644 index e8652343..00000000 --- a/okular/core/script/kjs_data_p.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_DATA_P_H -#define OKULAR_SCRIPT_KJS_DATA_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class EmbeddedFile; - -class JSData -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject wrapFile( KJSContext *ctx, EmbeddedFile *f ); -}; - -} - -#endif diff --git a/okular/core/script/kjs_document.cpp b/okular/core/script/kjs_document.cpp deleted file mode 100644 index c3280cdd..00000000 --- a/okular/core/script/kjs_document.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_document_p.h" - -#include - -#include -#include -#include - -#include -#include - -#include "../document_p.h" -#include "../page.h" -#include "../form.h" -#include "kjs_data_p.h" -#include "kjs_field_p.h" - -using namespace Okular; - -static KJSPrototype *g_docProto; - -// Document.numPages -static KJSObject docGetNumPages( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - return KJSNumber( doc->m_pagesVector.count() ); -} - -// Document.pageNum (getter) -static KJSObject docGetPageNum( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - return KJSNumber( doc->m_parent->currentPage() ); -} - -// Document.pageNum (setter) -static void docSetPageNum( KJSContext* ctx, void* object, - KJSObject value ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - int page = value.toInt32( ctx ); - - if ( page == (int)doc->m_parent->currentPage() ) - return; - - doc->m_parent->setViewportPage( page ); -} - -// Document.documentFileName -static KJSObject docGetDocumentFileName( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - return KJSString( doc->m_url.fileName() ); -} - -// Document.filesize -static KJSObject docGetFilesize( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - return KJSNumber( doc->m_docSize ); -} - -// Document.path -static KJSObject docGetPath( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - return KJSString( doc->m_url.pathOrUrl() ); -} - -// Document.URL -static KJSObject docGetURL( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - return KJSString( doc->m_url.prettyUrl() ); -} - -// Document.permStatusReady -static KJSObject docGetPermStatusReady( KJSContext *, void * ) -{ - return KJSBoolean( true ); -} - -// Document.dataObjects -static KJSObject docGetDataObjects( KJSContext *ctx, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - const QList< EmbeddedFile * > *files = doc->m_generator->embeddedFiles(); - - KJSArray dataObjects( ctx, files ? files->count() : 0 ); - if ( files ) - { - QList< EmbeddedFile * >::ConstIterator it = files->begin(), itEnd = files->end(); - for ( int i = 0; it != itEnd; ++it, ++i ) - { - KJSObject newdata = JSData::wrapFile( ctx, *it ); - dataObjects.setProperty( ctx, QString::number( i ), newdata ); - } - } - return dataObjects; -} - -// Document.external -static KJSObject docGetExternal( KJSContext *, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - QWidget *widget = doc->m_widget; - - const bool isShell = ( widget - && widget->parentWidget() - && widget->parentWidget()->objectName() == QLatin1String( "okular::Shell" ) ); - return KJSBoolean( !isShell ); -} - - -static KJSObject docGetInfo( KJSContext *ctx, void *object ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - KJSObject obj; - const DocumentInfo *docinfo = doc->m_generator->generateDocumentInfo(); - if ( docinfo ) - { -#define KEY_GET( key, property ) \ -do { \ - const QString data = docinfo->get( key ); \ - if ( !data.isEmpty() ) \ - { \ - const KJSString newval( data ); \ - obj.setProperty( ctx, property, newval ); \ - obj.setProperty( ctx, QString( property ).toLower(), newval ); \ - } \ -} while ( 0 ); - KEY_GET( "title", "Title" ); - KEY_GET( "author", "Author" ); - KEY_GET( "subject", "Subject" ); - KEY_GET( "keywords", "Keywords" ); - KEY_GET( "creator", "Creator" ); - KEY_GET( "producer", "Producer" ); -#undef KEY_GET - } - return obj; -} - -#define DOCINFO_GET_METHOD( key, name ) \ -static KJSObject docGet ## name( KJSContext *, void *object ) \ -{ \ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); \ - const DocumentInfo *docinfo = doc->m_generator->generateDocumentInfo(); \ - return KJSString( docinfo->get( key ) ); \ -} - -DOCINFO_GET_METHOD( "author", Author ) -DOCINFO_GET_METHOD( "creator", Creator ) -DOCINFO_GET_METHOD( "keywords", Keywords ) -DOCINFO_GET_METHOD( "producer", Producer ) -DOCINFO_GET_METHOD( "title", Title ) -DOCINFO_GET_METHOD( "subject", Subject ) - -#undef DOCINFO_GET_METHOD - -// Document.getField() -static KJSObject docGetField( KJSContext *context, void *object, - const KJSArguments &arguments ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - QString cName = arguments.at( 0 ).toString( context ); - - QVector< Page * >::const_iterator pIt = doc->m_pagesVector.constBegin(), pEnd = doc->m_pagesVector.constEnd(); - for ( ; pIt != pEnd; ++pIt ) - { - const QLinkedList< Okular::FormField * > pageFields = (*pIt)->formFields(); - QLinkedList< Okular::FormField * >::const_iterator ffIt = pageFields.constBegin(), ffEnd = pageFields.constEnd(); - for ( ; ffIt != ffEnd; ++ffIt ) - { - if ( (*ffIt)->name() == cName ) - { - return JSField::wrapField( context, *ffIt, *pIt ); - } - } - } - return KJSUndefined(); -} - -// Document.getPageLabel() -static KJSObject docGetPageLabel( KJSContext *ctx,void *object, - const KJSArguments &arguments ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - int nPage = arguments.at( 0 ).toInt32( ctx ); - Page *p = doc->m_pagesVector.value( nPage ); - return KJSString( p ? p->label() : QString() ); -} - -// Document.getPageRotation() -static KJSObject docGetPageRotation( KJSContext *ctx, void *object, - const KJSArguments &arguments ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - int nPage = arguments.at( 0 ).toInt32( ctx ); - Page *p = doc->m_pagesVector.value( nPage ); - return KJSNumber( p ? p->orientation() * 90 : 0 ); -} - -// Document.gotoNamedDest() -static KJSObject docGotoNamedDest( KJSContext *ctx, void *object, - const KJSArguments &arguments ) -{ - DocumentPrivate *doc = reinterpret_cast< DocumentPrivate* >( object ); - - QString dest = arguments.at( 0 ).toString( ctx ); - - DocumentViewport viewport( doc->m_generator->metaData( "NamedViewport", dest ).toString() ); - if ( !viewport.isValid() ) - return KJSUndefined(); - - doc->m_parent->setViewport( viewport ); - - return KJSUndefined(); -} - -// Document.syncAnnotScan() -static KJSObject docSyncAnnotScan( KJSContext *, void *, - const KJSArguments & ) -{ - return KJSUndefined(); -} - -void JSDocument::initType( KJSContext *ctx ) -{ - assert( g_docProto ); - - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - g_docProto->defineProperty( ctx, "numPages", docGetNumPages ); - g_docProto->defineProperty( ctx, "pageNum", docGetPageNum, docSetPageNum ); - g_docProto->defineProperty( ctx, "documentFileName", docGetDocumentFileName ); - g_docProto->defineProperty( ctx, "filesize", docGetFilesize ); - g_docProto->defineProperty( ctx, "path", docGetPath ); - g_docProto->defineProperty( ctx, "URL", docGetURL ); - g_docProto->defineProperty( ctx, "permStatusReady", docGetPermStatusReady ); - g_docProto->defineProperty( ctx, "dataObjects", docGetDataObjects ); - g_docProto->defineProperty( ctx, "external", docGetExternal ); - - // info properties - g_docProto->defineProperty( ctx, "info", docGetInfo ); - g_docProto->defineProperty( ctx, "author", docGetAuthor ); - g_docProto->defineProperty( ctx, "creator", docGetCreator ); - g_docProto->defineProperty( ctx, "keywords", docGetKeywords ); - g_docProto->defineProperty( ctx, "producer", docGetProducer ); - g_docProto->defineProperty( ctx, "title", docGetTitle ); - g_docProto->defineProperty( ctx, "subject", docGetSubject ); - - g_docProto->defineFunction( ctx, "getField", docGetField ); - g_docProto->defineFunction( ctx, "getPageLabel", docGetPageLabel ); - g_docProto->defineFunction( ctx, "getPageRotation", docGetPageRotation ); - g_docProto->defineFunction( ctx, "gotoNamedDest", docGotoNamedDest ); - g_docProto->defineFunction( ctx, "syncAnnotScan", docSyncAnnotScan ); -} - -KJSGlobalObject JSDocument::wrapDocument( DocumentPrivate *doc ) -{ - if ( !g_docProto ) - g_docProto = new KJSPrototype(); - return g_docProto->constructGlobalObject( doc ); -} diff --git a/okular/core/script/kjs_document_p.h b/okular/core/script/kjs_document_p.h deleted file mode 100644 index edb9d4b8..00000000 --- a/okular/core/script/kjs_document_p.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_DOCUMENT_P_H -#define OKULAR_SCRIPT_KJS_DOCUMENT_P_H - -class KJSContext; -class KJSGlobalObject; - -namespace Okular { - -class DocumentPrivate; - -class JSDocument -{ - public: - static void initType( KJSContext *ctx ); - static KJSGlobalObject wrapDocument( DocumentPrivate *doc ); -}; - -} - -#endif diff --git a/okular/core/script/kjs_field.cpp b/okular/core/script/kjs_field.cpp deleted file mode 100644 index 9bdb73b1..00000000 --- a/okular/core/script/kjs_field.cpp +++ /dev/null @@ -1,230 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_field_p.h" - -#include -#include -#include - -#include - -#include -#include - -#include "../debug_p.h" -#include "../document_p.h" -#include "../form.h" -#include "../page.h" - -using namespace Okular; - -static KJSPrototype *g_fieldProto; - -typedef QHash< FormField *, KJSObject > FormCache; -K_GLOBAL_STATIC( FormCache, g_fieldCache ) - -// Field.doc -static KJSObject fieldGetDoc( KJSContext *context, void * ) -{ - return context->interpreter().globalObject(); -} - -// Field.name -static KJSObject fieldGetName( KJSContext *, void *object ) -{ - const FormField *field = reinterpret_cast< FormField * >( object ); - return KJSString( field->name() ); -} - -// Field.readonly (getter) -static KJSObject fieldGetReadOnly( KJSContext *, void *object ) -{ - const FormField *field = reinterpret_cast< FormField * >( object ); - return KJSBoolean( field->isReadOnly() ); -} - -// Field.readonly (setter) -static void fieldSetReadOnly( KJSContext *context, void *object, KJSObject value ) -{ -#if 0 - FormField *field = reinterpret_cast< FormField * >( object ); - bool b = value.toBoolean( context ); - field->setReadOnly( b ); -#else - Q_UNUSED( context ); - Q_UNUSED( object ); - Q_UNUSED( value ); - kDebug(OkularDebug) << "Not implemented: setting readonly property"; -#endif -} - -static QString fieldGetTypeHelper( const FormField *field ) -{ - switch ( field->type() ) - { - case FormField::FormButton: - { - const FormFieldButton *button = static_cast< const FormFieldButton * >( field ); - switch ( button->buttonType() ) - { - case FormFieldButton::Push: - return "button"; - case FormFieldButton::CheckBox: - return "checkbox"; - case FormFieldButton::Radio: - return "radiobutton"; - } - break; - } - case FormField::FormText: - return "text"; - case FormField::FormChoice: - { - const FormFieldChoice *choice = static_cast< const FormFieldChoice * >( field ); - switch ( choice->choiceType() ) - { - case FormFieldChoice::ComboBox: - return "combobox"; - case FormFieldChoice::ListBox: - return "listbox"; - } - break; - } - case FormField::FormSignature: - return "signature"; - } - return QString(); -} - -// Field.type -static KJSObject fieldGetType( KJSContext *, void *object ) -{ - const FormField *field = reinterpret_cast< FormField * >( object ); - - return KJSString( fieldGetTypeHelper( field ) ); -} - -// Field.value (getter) -static KJSObject fieldGetValue( KJSContext *context, void *object ) -{ - FormField *field = reinterpret_cast< FormField * >( object ); - if ( field->isReadOnly() ) - { - KJSObject value = g_fieldCache->value( field ); - if ( g_fieldCache.exists() && g_fieldCache->contains( field ) ) - value = g_fieldCache->value( field ); - else - value = KJSString(""); - kDebug(OkularDebug) << "Getting the value of a readonly field" << field->name() << ":" << value.toString( context ); - return value; - } - - switch ( field->type() ) - { - case FormField::FormButton: - { - const FormFieldButton *button = static_cast< const FormFieldButton * >( field ); - Q_UNUSED( button ); // ### - break; - } - case FormField::FormText: - { - const FormFieldText *text = static_cast< const FormFieldText * >( field ); - return KJSString( text->text() ); - } - case FormField::FormChoice: - { - const FormFieldChoice *choice = static_cast< const FormFieldChoice * >( field ); - Q_UNUSED( choice ); // ### - break; - } - case FormField::FormSignature: - { - break; - } - } - - return KJSUndefined(); -} - -// Field.value (setter) -static void fieldSetValue( KJSContext *context, void *object, KJSObject value ) -{ - FormField *field = reinterpret_cast< FormField * >( object ); - - if ( field->isReadOnly() ) - { - // ### throw exception? - kDebug(OkularDebug) << "Trying to change the readonly field" << field->name() << "to" << value.toString( context ); - g_fieldCache->insert( field, value ); - return; - } - - switch ( field->type() ) - { - case FormField::FormButton: - { - FormFieldButton *button = static_cast< FormFieldButton * >( field ); - Q_UNUSED( button ); // ### - break; - } - case FormField::FormText: - { - FormFieldText *text = static_cast< FormFieldText * >( field ); - text->setText( value.toString( context ) ); - break; - } - case FormField::FormChoice: - { - FormFieldChoice *choice = static_cast< FormFieldChoice * >( field ); - Q_UNUSED( choice ); // ### - break; - } - case FormField::FormSignature: - { - break; - } - } -} - -void JSField::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - if ( !g_fieldProto ) - g_fieldProto = new KJSPrototype(); - - g_fieldProto->defineProperty( ctx, "doc", fieldGetDoc ); - g_fieldProto->defineProperty( ctx, "name", fieldGetName ); - g_fieldProto->defineProperty( ctx, "readonly", - fieldGetReadOnly, fieldSetReadOnly ); - g_fieldProto->defineProperty( ctx, "type", fieldGetType ); - g_fieldProto->defineProperty( ctx, "value", fieldGetValue, fieldSetValue ); -} - -KJSObject JSField::wrapField( KJSContext *ctx, FormField *field, Page *page ) -{ - // ### cache unique wrapper - KJSObject f = g_fieldProto->constructObject( ctx, field ); - f.setProperty( ctx, "page", page->number() ); - return f; -} - -void JSField::clearCachedFields() -{ - if ( g_fieldCache.exists() ) - { - g_fieldCache->clear(); - } -} diff --git a/okular/core/script/kjs_field_p.h b/okular/core/script/kjs_field_p.h deleted file mode 100644 index bc0a4628..00000000 --- a/okular/core/script/kjs_field_p.h +++ /dev/null @@ -1,32 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_FIELD_P_H -#define OKULAR_SCRIPT_KJS_FIELD_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class FormField; -class Page; - -class JSField -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject wrapField( KJSContext *ctx, FormField *field, Page *page ); - static void clearCachedFields(); -}; - -} - -#endif diff --git a/okular/core/script/kjs_fullscreen.cpp b/okular/core/script/kjs_fullscreen.cpp deleted file mode 100644 index 28086570..00000000 --- a/okular/core/script/kjs_fullscreen.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_fullscreen_p.h" - -#include - -#include -#include - -#include "settings_core.h" - -using namespace Okular; - -static KJSPrototype *g_fsProto; - -static KJSObject fsGetLoop( KJSContext *, void * ) -{ - return KJSBoolean( SettingsCore::slidesLoop() ); -} - -static void fsSetLoop( KJSContext *ctx, void *, KJSObject value ) -{ - bool loop = value.toBoolean( ctx ); - SettingsCore::setSlidesLoop( loop ); -} - -static KJSObject fsGetUseTimer( KJSContext *, void * ) -{ - return KJSBoolean( SettingsCore::slidesAdvance() ); -} - -static void fsSetUseTimer( KJSContext *ctx, void *, KJSObject value ) -{ - bool use = value.toBoolean( ctx ); - SettingsCore::setSlidesAdvance( use ); -} - -static KJSObject fsGetTimeDelay( KJSContext *, void * ) -{ - return KJSNumber( SettingsCore::slidesAdvanceTime() ); -} - -static void fsSetTimeDelay( KJSContext *ctx, void *, KJSObject value ) -{ - int time = static_cast( value.toNumber( ctx ) ); - SettingsCore::setSlidesAdvanceTime( time ); -} - -void JSFullscreen::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - if ( !g_fsProto ) - g_fsProto = new KJSPrototype(); - - g_fsProto->defineProperty( ctx, "loop", fsGetLoop, fsSetLoop ); - g_fsProto->defineProperty( ctx, "useTimer", - fsGetUseTimer, fsSetUseTimer ); - g_fsProto->defineProperty( ctx, "timeDelay", - fsGetTimeDelay, fsSetTimeDelay ); -} - -KJSObject JSFullscreen::object( KJSContext *ctx ) -{ - assert( g_fsProto ); - return g_fsProto->constructObject( ctx ); -} diff --git a/okular/core/script/kjs_fullscreen_p.h b/okular/core/script/kjs_fullscreen_p.h deleted file mode 100644 index e0f437f9..00000000 --- a/okular/core/script/kjs_fullscreen_p.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_FULLSCREEN_P_H -#define OKULAR_SCRIPT_KJS_FULLSCREEN_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class JSFullscreen -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject object( KJSContext *ctx ); -}; - -} - -#endif diff --git a/okular/core/script/kjs_spell.cpp b/okular/core/script/kjs_spell.cpp deleted file mode 100644 index ea21d26a..00000000 --- a/okular/core/script/kjs_spell.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_spell_p.h" - -#include -#include - -#include - -using namespace Okular; - -static KJSPrototype *g_spellProto; - -// Spell.available -static KJSObject spellGetAvailable( KJSContext *, void * ) -{ - return KJSBoolean( false ); -} - -void JSSpell::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - g_spellProto = new KJSPrototype(); - g_spellProto->defineProperty( ctx, QString( "available" ), spellGetAvailable ); -} - -KJSObject JSSpell::object( KJSContext *ctx ) -{ - return g_spellProto->constructObject( ctx, 0 ); -} diff --git a/okular/core/script/kjs_spell_p.h b/okular/core/script/kjs_spell_p.h deleted file mode 100644 index f255fd1f..00000000 --- a/okular/core/script/kjs_spell_p.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_SPELL_P_H -#define OKULAR_SCRIPT_KJS_SPELL_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class JSSpell -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject object( KJSContext *ctx ); -}; - -} - -#endif diff --git a/okular/core/script/kjs_util.cpp b/okular/core/script/kjs_util.cpp deleted file mode 100644 index 99d329bb..00000000 --- a/okular/core/script/kjs_util.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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 "kjs_util_p.h" - -#include -#include -#include - -#include - -using namespace Okular; - -static KJSPrototype *g_utilProto; - -static KJSObject crackURL( KJSContext *context, void *, - const KJSArguments &arguments ) -{ - if ( arguments.count() < 1 ) - { - return context->throwException( "Missing URL argument" ); - } - QString cURL = arguments.at( 0 ).toString( context ); - KUrl url( cURL ); - if ( !url.isValid() ) - { - return context->throwException( "Invalid URL" ); - } - if ( url.protocol() != QLatin1String( "file" ) - || url.protocol() != QLatin1String( "http" ) - || url.protocol() != QLatin1String( "https" ) ) - { - return context->throwException( "Protocol not valid: '" + url.protocol() + '\'' ); - } - - KJSObject obj; - obj.setProperty( context, "cScheme", url.protocol() ); - if ( url.hasUser() ) - obj.setProperty( context, "cUser", url.user() ); - if ( url.hasPass() ) - obj.setProperty( context, "cPassword", url.password() ); - obj.setProperty( context, "cHost", url.host() ); - obj.setProperty( context, "nPort", url.port( 80 ) ); - // TODO cPath (Optional) The path portion of the URL. - // TODO cParameters (Optional) The parameter string portion of the URL. - if ( url.hasRef() ) - obj.setProperty( context, "cFragments", url.ref() ); - - return obj; -} - -void JSUtil::initType( KJSContext *ctx ) -{ - static bool initialized = false; - if ( initialized ) - return; - initialized = true; - - g_utilProto = new KJSPrototype(); - g_utilProto->defineFunction( ctx, "crackURL", crackURL ); -} - -KJSObject JSUtil::object( KJSContext *ctx ) -{ - return g_utilProto->constructObject( ctx, 0 ); -} - diff --git a/okular/core/script/kjs_util_p.h b/okular/core/script/kjs_util_p.h deleted file mode 100644 index 8acfd7fc..00000000 --- a/okular/core/script/kjs_util_p.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * Copyright (C) 2008 by Harri Porten * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPT_KJS_UTIL_P_H -#define OKULAR_SCRIPT_KJS_UTIL_P_H - -class KJSContext; -class KJSObject; - -namespace Okular { - -class JSUtil -{ - public: - static void initType( KJSContext *ctx ); - static KJSObject object( KJSContext *ctx ); -}; - -} - -#endif diff --git a/okular/core/scripter.cpp b/okular/core/scripter.cpp deleted file mode 100644 index 32850352..00000000 --- a/okular/core/scripter.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * * - * 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 - -#include "debug_p.h" -#include "script/executor_kjs_p.h" - -using namespace Okular; - -class Okular::ScripterPrivate -{ - public: - ScripterPrivate( DocumentPrivate *doc ) - : m_doc( doc ), m_kjs( 0 ) - { - } - - ~ScripterPrivate() - { - delete m_kjs; - } - - DocumentPrivate *m_doc; - ExecutorKJS *m_kjs; -}; - -Scripter::Scripter( DocumentPrivate *doc ) - : d( new ScripterPrivate( doc ) ) -{ -} - -Scripter::~Scripter() -{ - delete d; -} - -QString Scripter::execute( ScriptType type, const QString &script ) -{ - kDebug(OkularDebug) << "executing the script:"; -#if 0 - if ( script.length() < 1000 ) - qDebug() << script; - else - qDebug() << script.left( 1000 ) << "[...]"; -#endif - switch ( type ) - { - case JavaScript: - if ( !d->m_kjs ) - { - d->m_kjs = new ExecutorKJS( d->m_doc ); - } - d->m_kjs->execute( script ); - break; - } - return QString(); -} diff --git a/okular/core/scripter.h b/okular/core/scripter.h deleted file mode 100644 index 69cf5d49..00000000 --- a/okular/core/scripter.h +++ /dev/null @@ -1,43 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Pino Toscano * - * * - * 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. * - ***************************************************************************/ - -#ifndef OKULAR_SCRIPTER_H -#define OKULAR_SCRIPTER_H - -#include "global.h" - -class QString; -class QStringList; - -namespace Okular { - -class Document; -class DocumentPrivate; -class ScripterPrivate; - -class Scripter -{ - friend class Document; - friend class DocumentPrivate; - - public: - ~Scripter(); - - QString execute( ScriptType type, const QString &script ); - - private: - friend class ScripterPrivate; - ScripterPrivate* d; - - Scripter( DocumentPrivate *doc ); -}; - -} - -#endif