[X2Go-Commits] [x2goclient] 10/18: x2gobrowserplugin-2.4_1/: remove.

git-admin at x2go.org git-admin at x2go.org
Wed Mar 14 03:48:10 CET 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goclient.

commit 9274e2c679a41a8c3cdbb8ac8c1c6fb241532fc5
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Wed Mar 14 02:20:50 2018 +0100

    x2gobrowserplugin-2.4_1/: remove.
---
 debian/changelog                                   |    1 +
 x2gobrowserplugin-2.4_1/src/qtbrowserplugin.cpp    | 1703 --------------------
 x2gobrowserplugin-2.4_1/src/qtbrowserplugin.def    |    4 -
 x2gobrowserplugin-2.4_1/src/qtbrowserplugin.h      |  176 --
 x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri    |   74 -
 .../src/qtbrowserplugin_mac.cpp                    |  560 -------
 x2gobrowserplugin-2.4_1/src/qtbrowserplugin_p.h    |   94 --
 .../src/qtbrowserplugin_win.cpp                    |  194 ---
 .../src/qtbrowserplugin_x11.cpp                    |  150 --
 x2gobrowserplugin-2.4_1/src/qtbrowserpluginax.def  |    9 -
 x2gobrowserplugin-2.4_1/src/qtnpapi.h              |  555 -------
 x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc      |   37 -
 12 files changed, 1 insertion(+), 3556 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 450013e..dfe23cc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -35,6 +35,7 @@ x2goclient (4.1.2.0-0x2go1) UNRELEASED; urgency=medium
       and translation files for now.
     - Makefile: remove plugin references.
     - Makefile: remove x2goclient_*.qm files in clean rule.
+    - x2gobrowserplugin-2.4_1/: remove.
   * x2goclient.spec:
     - Remove plugin references.
   * debian/rules:
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.cpp b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.cpp
deleted file mode 100644
index 06010d1..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.cpp
+++ /dev/null
@@ -1,1703 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-#include <QtGui>
-
-#include "qtnpapi.h"
-
-#include "qtbrowserplugin.h"
-#include "qtbrowserplugin_p.h"
-
-#ifndef WINAPI
-# ifdef Q_WS_WIN
-#  define WINAPI __stdcall
-# else
-#  define WINAPI
-# endif
-#endif
-
-#ifdef Q_WS_X11
-#  ifdef Bool
-#    undef Bool
-#  endif
-
-/*
-static void debuginfo(const QString &str)
-{
-    static bool inited = false;
-    QFile file("/tmp/qnsdebug.txt");
-    if (file.open(QFile::WriteOnly | QFile::Append)) {
-        if (!inited) {
-            file.write("\n\n*** New run started ***\n");
-            inited = true;
-        }
-        file.write(qtNPFactory()->pluginName().toLatin1() + ": " + str.toLatin1() + '\n');
-        file.close();
-    }
-}
-*/
-
-#endif
-
-static QtNPFactory *qNP = 0;
-static NPNetscapeFuncs *qNetscapeFuncs = 0;
-
-// The single global plugin
-QtNPFactory *qtNPFactory()
-{
-    extern QtNPFactory *qtns_instantiate();
-
-    if (!qNP) {
-        qNP = qtns_instantiate();
-    }
-
-    return qNP;
-}
-
-// NPN functions, forwarding to function pointers provided by browser
-void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor)
-{
-    Q_ASSERT(qNetscapeFuncs);
-    *plugin_major   = NP_VERSION_MAJOR;
-    *plugin_minor   = NP_VERSION_MINOR;
-    *netscape_major = qNetscapeFuncs->version  >> 8;  // Major version is in high byte
-    *netscape_minor = qNetscapeFuncs->version & 0xFF; // Minor version is in low byte
-}
-
-#define NPN_Prolog(x) \
-    Q_ASSERT(qNetscapeFuncs); \
-    Q_ASSERT(qNetscapeFuncs->x); \
-
-
-const char *NPN_UserAgent(NPP instance)
-{
-    NPN_Prolog(uagent);
-    return FIND_FUNCTION_POINTER(NPN_UserAgentFP, qNetscapeFuncs->uagent)(instance);
-}
-
-void NPN_Status(NPP instance, const char* message)
-{
-    NPN_Prolog(status);
-    FIND_FUNCTION_POINTER(NPN_StatusFP, qNetscapeFuncs->status)(instance, message);
-}
-
-NPError NPN_GetURL(NPP instance, const char* url, const char* window)
-{
-    NPN_Prolog(geturl);
-    return FIND_FUNCTION_POINTER(NPN_GetURLFP, qNetscapeFuncs->geturl)(instance, url, window);
-}
-
-NPError NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData)
-{
-    if ((qNetscapeFuncs->version & 0xFF) < NPVERS_HAS_NOTIFICATION)
-        return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
-    NPN_Prolog(geturlnotify);
-    return FIND_FUNCTION_POINTER(NPN_GetURLNotifyFP, qNetscapeFuncs->geturlnotify)(instance, url, window, notifyData);
-}
-
-NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData)
-{
-    if ((qNetscapeFuncs->version & 0xFF) < NPVERS_HAS_NOTIFICATION)
-        return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
-    NPN_Prolog(posturlnotify);
-    return FIND_FUNCTION_POINTER(NPN_PostURLNotifyFP, qNetscapeFuncs->posturlnotify)(instance, url, window, len, buf, file, notifyData);
-}
-
-void* NPN_MemAlloc(uint32 size)
-{
-    NPN_Prolog(memalloc);
-    return FIND_FUNCTION_POINTER(NPN_MemAllocFP, qNetscapeFuncs->memalloc)(size);
-}
-
-void NPN_MemFree(void* ptr)
-{
-    NPN_Prolog(memfree);
-    FIND_FUNCTION_POINTER(NPN_MemFreeFP, qNetscapeFuncs->memfree)(ptr);
-}
-
-uint32 NPN_MemFlush(uint32 size)
-{
-    NPN_Prolog(memflush);
-    return FIND_FUNCTION_POINTER(NPN_MemFlushFP, qNetscapeFuncs->memflush)(size);
-}
-
-NPError	NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value)
-{
-    NPN_Prolog(getvalue);
-    return FIND_FUNCTION_POINTER(NPN_GetValueFP, qNetscapeFuncs->getvalue)(instance, variable, ret_value);
-}
-
-NPError NPN_SetValue(NPP instance, NPPVariable variable, void *ret_value)
-{
-    NPN_Prolog(setvalue);
-    return FIND_FUNCTION_POINTER(NPN_SetValueFP, qNetscapeFuncs->setvalue)(instance, variable, ret_value);
-}
-
-NPIdentifier NPN_GetStringIdentifier(const char* name)
-{
-    NPN_Prolog(getstringidentifier);
-    return FIND_FUNCTION_POINTER(NPN_GetStringIdentifierFP, qNetscapeFuncs->getstringidentifier)(name);
-}
-
-void NPN_GetStringIdentifiers(const char** names, int32 nameCount, NPIdentifier* identifiers)
-{
-    NPN_Prolog(getstringidentifiers);
-    FIND_FUNCTION_POINTER(NPN_GetStringIdentifiersFP, qNetscapeFuncs->getstringidentifiers)(names, nameCount, identifiers);
-}
-
-NPIdentifier NPN_GetIntIdentifier(int32 intid)
-{
-    NPN_Prolog(getintidentifier);
-    return FIND_FUNCTION_POINTER(NPN_GetIntIdentifierFP, qNetscapeFuncs->getintidentifier)(intid);
-}
-
-bool NPN_IdentifierIsString(NPIdentifier identifier)
-{
-    NPN_Prolog(identifierisstring);
-    return FIND_FUNCTION_POINTER(NPN_IdentifierIsStringFP, qNetscapeFuncs->identifierisstring)(identifier);
-}
-
-char* NPN_UTF8FromIdentifier(NPIdentifier identifier)
-{
-    NPN_Prolog(utf8fromidentifier);
-    return FIND_FUNCTION_POINTER(NPN_UTF8FromIdentifierFP, qNetscapeFuncs->utf8fromidentifier)(identifier);
-}
-
-int32 NPN_IntFromIdentifier(NPIdentifier identifier)
-{
-    NPN_Prolog(intfromidentifier);
-    return FIND_FUNCTION_POINTER(NPN_IntFromIdentifierFP, qNetscapeFuncs->intfromidentifier)(identifier);
-}
-
-NPObject* NPN_CreateObject(NPP npp, NPClass *aClass)
-{
-    NPN_Prolog(createobject);
-    return FIND_FUNCTION_POINTER(NPN_CreateObjectFP, qNetscapeFuncs->createobject)(npp, aClass);
-}
-
-NPObject* NPN_RetainObject(NPObject *obj)
-{
-    NPN_Prolog(retainobject);
-    return FIND_FUNCTION_POINTER(NPN_RetainObjectFP, qNetscapeFuncs->retainobject)(obj);
-}
-
-void NPN_ReleaseObject(NPObject *obj)
-{
-    NPN_Prolog(releaseobject);
-    FIND_FUNCTION_POINTER(NPN_ReleaseObjectFP, qNetscapeFuncs->releaseobject)(obj);
-}
-
-// Scripting implementation (QObject calling JavaScript in browser) - we don't use those
-bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result)
-{
-    NPN_Prolog(invoke);
-    return FIND_FUNCTION_POINTER(NPN_InvokeFP, qNetscapeFuncs->invoke)(npp, obj, methodName, args, argCount, result);
-}
-
-bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result)
-{
-    NPN_Prolog(invokedefault);
-    return FIND_FUNCTION_POINTER(NPN_InvokeDefaultFP, qNetscapeFuncs->invokedefault)(npp, obj, args, argCount, result);
-}
-
-bool NPN_Evaluate(NPP npp, NPObject *obj, NPString *script, NPVariant *result)
-{
-    NPN_Prolog(evaluate);
-    return FIND_FUNCTION_POINTER(NPN_EvaluateFP, qNetscapeFuncs->evaluate)(npp, obj, script, result);
-}
-
-bool NPN_GetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result)
-{
-    NPN_Prolog(getproperty);
-    return FIND_FUNCTION_POINTER(NPN_GetPropertyFP, qNetscapeFuncs->getproperty)(npp, obj, propertyName, result);
-}
-
-bool NPN_SetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value)
-{
-    NPN_Prolog(setproperty);
-    return FIND_FUNCTION_POINTER(NPN_SetPropertyFP, qNetscapeFuncs->setproperty)(npp, obj, propertyName, value);
-}
-
-bool NPN_RemoveProperty(NPP npp, NPObject *obj, NPIdentifier propertyName)
-{
-    NPN_Prolog(removeproperty);
-    return FIND_FUNCTION_POINTER(NPN_RemovePropertyFP, qNetscapeFuncs->removeproperty)(npp, obj, propertyName);
-}
-
-bool NPN_HasProperty(NPP npp, NPObject *obj, NPIdentifier propertyName)
-{
-    NPN_Prolog(hasproperty);
-    return FIND_FUNCTION_POINTER(NPN_HasPropertyFP, qNetscapeFuncs->hasproperty)(npp, obj, propertyName);
-}
-
-bool NPN_HasMethod(NPP npp, NPObject *obj, NPIdentifier methodName)
-{
-    NPN_Prolog(hasmethod);
-    return FIND_FUNCTION_POINTER(NPN_HasMethodFP, qNetscapeFuncs->hasmethod)(npp, obj, methodName);
-}
-
-void NPN_ReleaseVariantValue(NPVariant *variant)
-{
-    NPN_Prolog(releasevariantvalue);
-    FIND_FUNCTION_POINTER(NPN_ReleaseVariantValueFP, qNetscapeFuncs->releasevariantvalue)(variant);
-}
-
-void NPN_SetException(NPObject *obj, const char *message)
-{
-    qDebug("NPN_SetException: %s", message);
-    NPN_Prolog(setexception);
-    FIND_FUNCTION_POINTER(NPN_SetExceptionFP, qNetscapeFuncs->setexception)(obj, message);
-}
-
-// Scripting implementation (JavaScript calling QObject)
-#define NPClass_Prolog \
-    if (!npobj->_class) return false; \
-    if (!npobj->_class->qtnp) return false; \
-    QtNPInstance *This = npobj->_class->qtnp; \
-    if (!This->qt.object) return false; \
-    QObject *qobject = This->qt.object \
-
-
-static NPObject *NPAllocate(NPP npp, NPClass *aClass)
-{
-    Q_UNUSED(npp);
-    Q_UNUSED(aClass);
-
-    Q_ASSERT(false);
-    return 0;
-}
-
-static void NPDeallocate(NPObject *npobj)
-{
-    Q_UNUSED(npobj);
-
-    Q_ASSERT(false);
-    return;
-}
-
-static void NPInvalidate(NPObject *npobj)
-{
-    if (npobj)
-        delete npobj->_class;
-    npobj->_class = 0;
-}
-
-enum MetaOffset { MetaProperty, MetaMethod };
-
-static int metaOffset(const QMetaObject *metaObject, MetaOffset offsetType)
-{
-    int classInfoIndex = metaObject->indexOfClassInfo("ToSuperClass");
-    if (classInfoIndex == -1)
-        return 0;
-    QByteArray ToSuperClass = metaObject->classInfo(classInfoIndex).value();
-    int offset = offsetType == MetaProperty ? metaObject->propertyOffset()
-        : metaObject->methodOffset();
-
-    while (ToSuperClass != metaObject->className()) {
-        metaObject = metaObject->superClass();
-        if (!metaObject)
-            break;
-        offset -= offsetType == MetaProperty ? metaObject->propertyCount()
-                    : metaObject->methodCount();
-    }
-    return offset;
-}
-
-static int publicMethodIndex(NPObject *npobj, const QByteArray &slotName, int argCount = -1)
-{
-    NPClass_Prolog;
-    const QMetaObject *metaObject = qobject->metaObject();
-    for (int slotIndex = metaOffset(metaObject, MetaMethod); slotIndex < metaObject->methodCount(); ++slotIndex) {
-        const QMetaMethod slot = qobject->metaObject()->method(slotIndex);
-        if (slot.access() != QMetaMethod::Public || slot.methodType() == QMetaMethod::Signal)
-            continue;
-        QByteArray signature = slot.signature();
-        if (signature.left(signature.indexOf('(')) == slotName) {
-            if (argCount == -1 || slot.parameterTypes().count() == argCount)
-                return slotIndex;
-        }
-    }
-    return -1;
-}
-
-static bool NPClass_HasMethod(NPObject *npobj, NPIdentifier name)
-{
-    NPClass_Prolog;
-    Q_UNUSED(qobject);
-    return publicMethodIndex(npobj, NPN_UTF8FromIdentifier(name)) != -1;
-}
-
-static bool NPClass_Invoke(NPObject *npobj, NPIdentifier name, const NPVariant *args, uint32 argCount, NPVariant *result)
-{
-    NPClass_Prolog;
-    const QByteArray slotName = NPN_UTF8FromIdentifier(name);
-    int slotIndex = publicMethodIndex(npobj, slotName, static_cast<int>(argCount));
-    if (slotIndex == -1) {
-        NPN_SetException(npobj, QByteArray("No method '" + slotName + "' with " + QByteArray::number(argCount) + " parameters").constData());
-        return false;
-    }
-
-    const QMetaMethod slot = qobject->metaObject()->method(slotIndex);
-    QList<QByteArray> parameterTypes = slot.parameterTypes();
-    if (parameterTypes.count() != static_cast<int>(argCount)) {
-        NPN_SetException(npobj, QByteArray("Wrong parameter count for method " + slotName).constData());
-        return false;
-    }
-
-    QVariant returnVariant(QVariant::nameToType(slot.typeName()), (void*)0);
-    QVector<QVariant> variants(parameterTypes.count()); // keep data alive
-    QVector<const void*> metacallArgs(parameterTypes.count() + 1); // arguments for qt_metacall
-    metacallArgs[0] = returnVariant.data(); // args[0] == return value
-
-    for (int p = 0; p < parameterTypes.count(); ++p) {
-        QVariant::Type type = QVariant::nameToType(parameterTypes.at(p));
-        if (type == QVariant::Invalid && parameterTypes.at(p) != "QVariant") {
-            NPN_SetException(npobj, QString("Parameter %1 in method '%2' has invalid type")
-                .arg(p).arg(QString::fromUtf8(slotName)).toAscii().constData());
-            return false;
-        }
-        QVariant qvar = args[p];
-        if (type != QVariant::Invalid && !qvar.convert(type)) {
-            NPN_SetException(npobj, QString("Parameter %1 to method '%2' needs to be convertible to '%3'")
-                .arg(p).arg(QString::fromUtf8(slotName)).arg(QString::fromAscii(parameterTypes.at(p))).toAscii().constData());
-            return false;
-        }
-
-        variants[p] = qvar;
-        if (type == QVariant::Invalid)
-            metacallArgs[p + 1] = &variants.at(p);
-        else
-            metacallArgs[p + 1] = variants.at(p).constData(); // must not detach!
-    }
-
-    qobject->qt_metacall(QMetaObject::InvokeMetaMethod, slotIndex, const_cast<void**>(metacallArgs.data()));
-    if (returnVariant.isValid() && result)
-        *result = NPVariant::fromQVariant(This, returnVariant);
-
-    return true;
-}
-
-static bool NPClass_InvokeDefault(NPObject * /*npobj*/, const NPVariant * /*args*/, uint32 /*argCount*/, NPVariant * /*result*/)
-{
-    return false;
-}
-
-static bool NPClass_HasProperty(NPObject *npobj, NPIdentifier name)
-{
-    NPClass_Prolog;
-    const QByteArray qname = NPN_UTF8FromIdentifier(name);
-    const QMetaObject *metaObject = qobject->metaObject();
-    int propertyIndex = metaObject->indexOfProperty(qname);
-    if (propertyIndex == -1 || propertyIndex < metaOffset(metaObject, MetaProperty))
-        return false;
-    QMetaProperty property = qobject->metaObject()->property(propertyIndex);
-    if (!property.isScriptable())
-        return false;
-
-    return true;
-}
-
-static bool NPClass_GetProperty(NPObject *npobj, NPIdentifier name, NPVariant *result)
-{
-    NPClass_Prolog;
-    const QByteArray qname = NPN_UTF8FromIdentifier(name);
-    QVariant qvar = qobject->property(qname);
-    if (!qvar.isValid()) {
-        NPN_SetException(npobj, QByteArray("Failed to get value for property " + qname).constData());
-        return false;
-    }
-    *result = NPVariant::fromQVariant(This, qvar);
-    return true;
-}
-
-static bool NPClass_SetProperty(NPObject *npobj, NPIdentifier name, const NPVariant *result)
-{
-    NPClass_Prolog;
-    const QByteArray qname = NPN_UTF8FromIdentifier(name);
-    QVariant qvar = *result;
-    return qobject->setProperty(qname, qvar);
-}
-
-static bool NPClass_RemoveProperty(NPObject * /*npobj*/, NPIdentifier /*name*/)
-{
-    return false;
-}
-
-NPClass::NPClass(QtNPInstance *This)
-{
-    structVersion = NP_CLASS_STRUCT_VERSION;
-    allocate = 0;
-    deallocate = 0;
-    invalidate = NPInvalidate;
-    hasMethod = NPClass_HasMethod;
-    invoke = NPClass_Invoke;
-    invokeDefault = NPClass_InvokeDefault;
-    hasProperty = NPClass_HasProperty;
-    getProperty = NPClass_GetProperty;
-    setProperty = NPClass_SetProperty;
-    removeProperty = NPClass_RemoveProperty;
-    qtnp = This;
-    delete_qtnp = false;
-}
-
-NPClass::~NPClass()
-{
-    if (delete_qtnp)
-        delete qtnp;
-}
-
-// Type conversions
-NPString NPString::fromQString(const QString &qstr)
-{
-    NPString npstring;
-    const QByteArray qutf8 = qstr.toUtf8();
-
-    npstring.utf8length = qutf8.length();
-    npstring.utf8characters = (char*)NPN_MemAlloc(npstring.utf8length);
-    memcpy((char*)npstring.utf8characters, qutf8.constData(), npstring.utf8length);
-
-    return npstring;
-}
-
-NPString::operator QString() const
-{
-    return QString::fromUtf8(utf8characters, utf8length);
-}
-
-NPVariant NPVariant::fromQVariant(QtNPInstance *This, const QVariant &qvariant)
-{
-    Q_ASSERT(This);
-    NPVariant npvar;
-    npvar.type = Null;
-
-    QVariant qvar(qvariant);
-    switch(qvariant.type()) {
-    case QVariant::Bool:
-        npvar.value.boolValue = qvar.toBool();
-        npvar.type = Boolean;
-        break;
-    case QVariant::Int:
-        npvar.value.intValue = qvar.toInt();
-        npvar.type = Int32;
-        break;
-    case QVariant::Double:
-        npvar.value.doubleValue = qvar.toDouble();
-        npvar.type = Double;
-        break;
-    case QVariant::UserType:
-        {
-            QByteArray userType = qvariant.typeName();
-            if (userType.endsWith('*')) {
-                QtNPInstance *that = new QtNPInstance;
-                that->npp = This->npp;
-                that->qt.object = *(QObject**)qvariant.constData();
-                NPClass *npclass = new NPClass(that);
-                npclass->delete_qtnp = true;
-                npvar.value.objectValue = NPN_CreateObject(This->npp, npclass);
-                npvar.type = Object;
-            }
-        }
-        break;
-    default: // including QVariant::String
-        if (!qvar.convert(QVariant::String))
-            break;
-        npvar.type = String;
-        npvar.value.stringValue = NPString::fromQString(qvar.toString());
-        break;
-    }
-
-    return npvar;
-}
-
-NPVariant::operator QVariant() const
-{
-    switch(type) {
-    case Void:
-    case Null:
-        return QVariant();
-    case Object:
-        {
-            if (!value.objectValue || !value.objectValue->_class)
-                break;
-            NPClass *aClass = value.objectValue->_class;
-            // not one of ours?
-            if (aClass->invoke != NPClass_Invoke)
-                break;
-            // or just empty for some reason
-            QObject *qobject = aClass->qtnp->qt.object;
-            if (!qobject)
-                break;
-            QByteArray typeName = qobject->metaObject()->className();
-            int userType = QMetaType::type(typeName + "*");
-            if (userType == QVariant::Invalid)
-                break;
-            QVariant result(userType, &aClass->qtnp->qt.object);
-            // sanity check
-            Q_ASSERT(*(QObject**)result.constData() == aClass->qtnp->qt.object);
-            return result;
-        }
-    case Boolean:
-        return value.boolValue;
-    case Int32:
-        return value.intValue;
-    case Double:
-        return value.doubleValue;
-    case String:
-        return QString(value.stringValue);
-    default:
-        break;
-    }
-    return QVariant();
-}
-
-// Helper class for handling incoming data
-class QtNPStream
-{
-public:
-    QtNPStream(NPP instance, NPStream *st);
-    virtual ~QtNPStream()
-    {
-    }
-
-    QString url() const;
-    bool finish(QtNPBindable *bindable);
-
-    QByteArray buffer;
-    QFile file;
-    QString mime;
-
-    NPError reason;
-
-    NPP npp;
-    NPStream* stream;
-
-protected:
-    qint64 readData(char *, qint64);
-    qint64 writeData(const char *, qint64);
-};
-
-QtNPStream::QtNPStream(NPP instance, NPStream *st)
-    : reason(NPRES_DONE), npp(instance), stream(st)
-{
-}
-
-/*!
-    Returns the URL from which the stream was created, or the empty string
-    for write-only streams.
-*/
-QString QtNPStream::url() const
-{
-    if (!stream)
-        return QString();
-    return QString::fromLocal8Bit(stream->url);
-}
-
-class ErrorBuffer : public QBuffer
-{
-    friend class QtNPStream;
-};
-
-bool QtNPStream::finish(QtNPBindable *bindable)
-{
-    if (!bindable)
-        return false;
-
-    bool res = false;
-    if (bindable) {
-        switch(reason) {
-        case NPRES_DONE:
-            // no data at all? url is probably local file (Opera)
-            if (buffer.isEmpty() && file.fileName().isEmpty()) {
-                QUrl u = QUrl::fromEncoded(stream->url);
-                QString lfn = u.toLocalFile();
-                if (lfn.startsWith("//localhost/"))
-                    lfn = lfn.mid(12);
-                file.setFileName(lfn);
-            }
-
-            if (file.exists()) {
-                file.setObjectName(url());
-                res = bindable->readData(&file, mime);
-            } else {
-                QBuffer io(&buffer);
-                io.setObjectName(url());
-                res = bindable->readData(&io, mime);
-            }
-            break;
-        case NPRES_USER_BREAK:
-            {
-                ErrorBuffer empty;
-                empty.setObjectName(url());
-                empty.setErrorString("User cancelled operation."),
-                res = bindable->readData(&empty, mime);
-            }
-            break;
-        case NPRES_NETWORK_ERR:
-            {
-                ErrorBuffer empty;
-                empty.setObjectName(url());
-                empty.setErrorString("Network error during download."),
-                res = bindable->readData(&empty, mime);
-            }
-            break;
-        default:
-            break;
-        }
-    }
-    stream->pdata = 0;
-    delete this;
-    return res;
-}
-
-// Helper class for forwarding signal emissions to the respective JavaScript
-class QtSignalForwarder : public QObject
-{
-public:
-    QtSignalForwarder(QtNPInstance *that)
-        : This(that), domNode(0)
-    {
-    }
-
-    ~QtSignalForwarder()
-    {
-        if (domNode)
-            NPN_ReleaseObject(domNode);
-    }
-
-    int qt_metacall(QMetaObject::Call call, int index, void **args);
-
-private:
-    QtNPInstance *This;
-    NPObject *domNode;
-};
-
-int QtSignalForwarder::qt_metacall(QMetaObject::Call call, int index, void **args)
-{
-    // no support for QObject method/properties etc!
-    if (!This || !This->npp || call != QMetaObject::InvokeMetaMethod
-        || !This->qt.object)
-        return index;
-
-    switch (index) {
-    case -1:
-        {
-            QString msg = *(QString*)args[1];
-            NPN_Status(This->npp, msg.toLocal8Bit().constData());
-        }
-        break;
-    default:
-        {
-            QObject *qobject = This->qt.object;
-            if (!domNode)
-                NPN_GetValue(This->npp, NPNVPluginElementNPObject, &domNode);
-            if (!domNode)
-                break;
-            const QMetaObject *metaObject = qobject->metaObject();
-            if (index < metaOffset(metaObject, MetaMethod))
-                break;
-
-            const QMetaMethod method = metaObject->method(index);
-            Q_ASSERT(method.methodType() == QMetaMethod::Signal);
-
-            QByteArray signalSignature = method.signature();
-            QByteArray scriptFunction = signalSignature.left(signalSignature.indexOf('('));
-            NPIdentifier id = NPN_GetStringIdentifier(scriptFunction.constData());
-            if (NPN_HasMethod(This->npp, domNode, id)) {
-                QList<QByteArray> parameterTypes = method.parameterTypes();
-                QVector<NPVariant> parameters;
-                NPVariant result;
-                bool error = false;
-                for (int p = 0; p < parameterTypes.count(); ++p) {
-                    QVariant::Type type = QVariant::nameToType(parameterTypes.at(p));
-                    if (type == QVariant::Invalid) {
-                        NPN_SetException(domNode, QByteArray("Unsupported parameter type in ") + scriptFunction);
-                        error = true;
-                        break;
-                    }
-                    QVariant qvar(type, args[p + 1]);
-                    NPVariant npvar = NPVariant::fromQVariant(This, qvar);
-                    if (npvar.type == NPVariant::Null || npvar.type == NPVariant::Void) {
-                        NPN_SetException(domNode, QByteArray("Unsupported parameter value in ") + scriptFunction);
-                        error =true;
-                        break;
-                    }
-                    parameters += npvar;
-                }
-                if (error)
-                    break;
-
-                NPError nperror = NPN_Invoke(This->npp, domNode, id, parameters.constData(), parameters.count(), &result);
-                if (nperror != NPERR_NO_ERROR && false) { // disabled, as NPN_Invoke seems to always return GENERICERROR
-                    NPN_SetException(domNode, QByteArray("Error invoking event handler ") + scriptFunction);
-                }
-                // ### TODO: update return value (args[0]) (out-parameters not supported anyway)
-                NPN_ReleaseVariantValue(&result);
-            }
-        }
-        break;
-    }
-
-    return index;
-}
-
-
-// Plugin functions
-extern "C" NPError
-NPP_GetValue(NPP instance, NPPVariable variable, void *value)
-{
-    if (!instance || !instance->pdata)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-
-    switch (variable) {
-    case NPPVpluginNameString:
-        {
-            static QByteArray name = qtNPFactory()->pluginName().toLocal8Bit();
-            *(const char**)value = name.constData();
-        }
-        break;
-    case NPPVpluginDescriptionString:
-        {
-            static QByteArray description = qtNPFactory()->pluginDescription().toLocal8Bit();
-            *(const char**)value = description.constData();
-        }
-        break;
-
-#ifdef Q_WS_X11
-    case NPPVpluginNeedsXEmbed:
-        *(int*)value = true; // PRBool = int
-        break;
-#endif
-
-    case NPPVpluginScriptableNPObject:
-        {
-            NPObject *object = NPN_CreateObject(instance, new NPClass(This));
-            *(NPObject**)value = object;
-        }
-        break;
-    case NPPVformValue:
-        {
-            QObject *object = This->qt.object;
-            const QMetaObject *metaObject = object->metaObject();
-            int defaultIndex = metaObject->indexOfClassInfo("DefaultProperty");
-            if (defaultIndex == -1)
-                return NPERR_GENERIC_ERROR;
-            QByteArray defaultProperty = metaObject->classInfo(defaultIndex).value();
-            if (defaultProperty.isEmpty())
-                return NPERR_GENERIC_ERROR;
-            QVariant defaultValue = object->property(defaultProperty);
-            if (!defaultValue.isValid())
-                return NPERR_GENERIC_ERROR;
-            defaultProperty = defaultValue.toString().toUtf8();
-            int size = defaultProperty.size();
-            char *utf8 = (char*)NPN_MemAlloc(size + 1);
-            memcpy(utf8, defaultProperty.constData(), size);
-            utf8[size] = 0; // null-terminator
-            *(void**)value = utf8;
-        }
-        break;
-    default:
-        return NPERR_GENERIC_ERROR;
-    }
-
-    return NPERR_NO_ERROR;
-}
-
-extern "C" NPError
-NPP_SetValue(NPP instance, NPPVariable variable, void *value)
-{
-    Q_UNUSED(variable);
-    Q_UNUSED(value);
-
-    if (!instance || !instance->pdata)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    /*
-    switch(variable) {
-    default:
-        return NPERR_GENERIC_ERROR;
-    }
-    */
-    return NPERR_NO_ERROR;
-}
-
-extern "C" int16 NPP_Event(NPP instance, NPEvent* event)
-{
-    if (!instance || !instance->pdata)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-    extern bool qtns_event(QtNPInstance *, NPEvent *);
-    return qtns_event(This, event) ? 1 : 0;
-}
-
-#ifdef Q_WS_X11
-// Instance state information about the plugin.
-extern "C" char*
-NP_GetMIMEDescription(void)
-{
-    static QByteArray mime = qtNPFactory()->mimeTypes().join(";").toLocal8Bit();
-    return (char*)mime.constData();
-}
-
-extern "C" NPError
-NP_GetValue(void*, NPPVariable aVariable, void *aValue)
-{
-    NPError err = NPERR_NO_ERROR;
-
-    static QByteArray name = qtNPFactory()->pluginName().toLocal8Bit();
-    static QByteArray descr = qtNPFactory()->pluginDescription().toLocal8Bit();
-
-    switch (aVariable) {
-    case NPPVpluginNameString:
-        *static_cast<const char **> (aValue) = name.constData();
-        break;
-    case NPPVpluginDescriptionString:
-        *static_cast<const char **>(aValue) = descr.constData();
-        break;
-    case NPPVpluginNeedsXEmbed:
-        *static_cast<int*>(aValue) = true;
-        break;
-    case NPPVpluginTimerInterval:
-    case NPPVpluginKeepLibraryInMemory:
-    default:
-        err = NPERR_INVALID_PARAM;
-        break;
-    }
-    return err;
-}
-#endif
-
-/*
-** NPP_New is called when your plugin is instantiated (i.e. when an EMBED
-** tag appears on a page).
-*/
-extern "C" NPError
-NPP_New(NPMIMEType pluginType,
-    NPP instance,
-    uint16 mode,
-    int16 argc,
-    char* argn[],
-    char* argv[],
-    NPSavedData* /*saved*/)
-{
-    if (!instance)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance* This = new QtNPInstance;
-    if (!This)
-	return NPERR_OUT_OF_MEMORY_ERROR;
-
-    instance->pdata = This;
-    This->filter = 0;
-    This->bindable = 0;
-    This->npp = instance;
-    This->fMode = mode; // NP_EMBED, NP_FULL, or NP_BACKGROUND (see npapi.h)
-    This->window = 0;
-    This->qt.object = 0;
-#ifdef Q_WS_MAC
-    This->rootWidget = 0;
-#endif
-    This->pendingStream = 0; // stream might be created before instance
-    This->mimetype = QString::fromLatin1(pluginType);
-    This->notificationSeqNum = 0;
-
-    for (int i = 0; i < argc; i++) {
-        QByteArray name = QByteArray(argn[i]).toLower();
-        if (name == "id")
-            This->htmlID = argv[i];
-        This->parameters[name] = QVariant(argv[i]);
-    }
-
-    return NPERR_NO_ERROR;
-}
-
-extern "C" NPError
-NPP_Destroy(NPP instance, NPSavedData** /*save*/)
-{
-    if (!instance || !instance->pdata)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-
-#ifdef Q_WS_X11
-    //This->widget->destroy(false, false); // X has destroyed all windows
-#endif
-    delete This->qt.object;
-    This->qt.object = 0;
-    delete This->filter;
-    This->filter = 0;
-    extern void qtns_destroy(QtNPInstance *This);
-    qtns_destroy(This);
-    delete This;
-    instance->pdata = 0;
-
-    return NPERR_NO_ERROR;
-}
-
-static QtNPInstance *next_pi = 0; // helper to connect to QtNPBindable
-
-extern "C" NPError
-NPP_SetWindow(NPP instance, NPWindow* window)
-{
-    if (!instance)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-    extern void qtns_setGeometry(QtNPInstance*, const QRect &, const QRect &);
-
-    const QRect clipRect(window->clipRect.left, window->clipRect.top,
-                         window->clipRect.right - window->clipRect.left,
-                         window->clipRect.bottom - window->clipRect.top);
-    if (window)
-        This->geometry = QRect(window->x, window->y, window->width, window->height);
-
-    // take a shortcut if all that was changed is the geometry
-    if (qobject_cast<QWidget*>(This->qt.object) && window && This->window == (QtNPInstance::Widget)window->window) {
-        qtns_setGeometry(This, This->geometry, clipRect);
-	return NPERR_NO_ERROR;
-    }
-
-	delete This->qt.object;
-	This->qt.object = 0;
-	extern void qtns_destroy(QtNPInstance *This);
-	qtns_destroy(This);
-
-    if (!window) {
-        This->window = 0;
-	return NPERR_NO_ERROR;
-    }
-
-    This->window = (QtNPInstance::Widget)window->window;
-#ifdef Q_WS_X11
-    //This->display = ((NPSetWindowCallbackStruct *)window->ws_info)->display;
-#endif
-
-    extern void qtns_initialize(QtNPInstance*);
-    qtns_initialize(This);
-
-    next_pi = This;
-    This->qt.object = qtNPFactory()->createObject(This->mimetype);
-    next_pi = 0;
-
-    if (!This->qt.object)
-        return NPERR_NO_ERROR;
-
-    if (!This->htmlID.isEmpty())
-        This->qt.object->setObjectName(QLatin1String(This->htmlID));
-
-    This->filter = new QtSignalForwarder(This);
-    QStatusBar *statusbar = qFindChild<QStatusBar*>(This->qt.object);
-    if (statusbar) {
-        int statusSignal = statusbar->metaObject()->indexOfSignal("messageChanged(QString)");
-        if (statusSignal != -1) {
-            QMetaObject::connect(statusbar, statusSignal, This->filter, -1);
-            statusbar->hide();
-        }
-    }
-
-    const QMetaObject *mo = This->qt.object->metaObject();
-    for (int p = 0; p < mo->propertyCount(); ++p) {
-        const QMetaProperty property = mo->property(p);
-        QByteArray name(property.name());
-        QVariant value = This->parameters.value(name.toLower());
-        if (value.isValid())
-            property.write(This->qt.object, value);
-    }
-    for (int methodIndex = 0; methodIndex < mo->methodCount(); ++methodIndex) {
-        const QMetaMethod method = mo->method(methodIndex);
-        if (method.methodType() == QMetaMethod::Signal)
-            QMetaObject::connect(This->qt.object, methodIndex, This->filter, methodIndex);
-    }
-
-    if (This->pendingStream) {
-        This->pendingStream->finish(This->bindable);
-        This->pendingStream = 0;
-    }
-
-    if (!qobject_cast<QWidget*>(This->qt.object))
-	return NPERR_NO_ERROR;
-
-    extern void qtns_embed(QtNPInstance*);
-    qtns_embed(This);
-
-    QEvent e(QEvent::EmbeddingControl);
-    QApplication::sendEvent(This->qt.widget, &e);
-
-    if (!This->qt.widget->testAttribute(Qt::WA_PaintOnScreen))
-        This->qt.widget->setAutoFillBackground(true);
-    This->qt.widget->raise();
-    qtns_setGeometry(This, This->geometry, clipRect);
-    This->qt.widget->show();
-
-    return NPERR_NO_ERROR;
-}
-
-extern "C" NPError
-NPP_NewStream(NPP instance,
-	  NPMIMEType type,
-	  NPStream *stream,
-	  NPBool /*seekable*/,
-	  uint16 *stype)
-{
-    if (!instance)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-    if (!This)
-        return NPERR_NO_ERROR;
-
-    QtNPStream *qstream = new QtNPStream(instance, stream);
-    qstream->mime = QString::fromLocal8Bit(type);
-    stream->pdata = qstream;
-
-    // Workaround bug in Firefox/Gecko/Mozilla; observed in version 3.0.5 on Windows:
-    //   On page reload, it does not call StreamAsFile() even when stype is AsFileOnly
-    if (QByteArray(NPN_UserAgent(instance)).contains("Mozilla"))
-        *stype = NP_NORMAL;
-    else
-        *stype = NP_ASFILEONLY;
-
-    return NPERR_NO_ERROR;
-}
-
-extern "C" int32
-NPP_WriteReady(NPP, NPStream *stream)
-{
-    if (stream->pdata)
-        return 0x0FFFFFFF;
-    return 0;
-}
-
-// Both Netscape and FireFox call this for OnDemand streams as well...
-extern "C" int32
-NPP_Write(NPP instance, NPStream *stream, int32 /*offset*/, int32 len, void *buffer)
-{
-    if (!instance || !stream || !stream->pdata)
-        return NPERR_INVALID_INSTANCE_ERROR;
-
-    // this should not be called, as we always demand a download
-    QtNPStream *qstream = (QtNPStream*)stream->pdata;
-    QByteArray data((const char*)buffer, len); // make deep copy
-    qstream->buffer += data;
-
-    return len;
-}
-
-// Opera calls this for OnDemand streams without calling NPP_Write first
-extern "C" NPError
-NPP_DestroyStream(NPP instance, NPStream *stream, NPError reason)
-{
-    if (!instance || !instance->pdata || !stream || !stream->pdata)
-	return NPERR_INVALID_INSTANCE_ERROR;
-
-    QtNPInstance *This = (QtNPInstance*)instance->pdata;
-    QtNPStream *qstream = (QtNPStream*)stream->pdata;
-    qstream->reason = reason;
-
-    if (!This->qt.object) { // not yet initialized
-        This->pendingStream = qstream;
-        return NPERR_NO_ERROR;
-    }
-
-    This->pendingStream = 0;
-    qstream->finish(This->bindable);
-
-    return NPERR_NO_ERROR;
-}
-
-extern "C" void
-NPP_StreamAsFile(NPP instance, NPStream *stream, const char* fname)
-{
-    if (!instance || !stream || !stream->pdata)
-        return;
-
-    QString path = QString::fromLocal8Bit(fname);
-#ifdef Q_WS_MAC
-    path = "/" + path.section(':', 1).replace(':', '/');
-#endif
-
-    QtNPStream *qstream = (QtNPStream*)stream->pdata;
-    qstream->file.setFileName(path);
-}
-
-extern "C" void
-NPP_URLNotify(NPP instance,
-	      const char* url,
-	      NPReason reason,
-	      void* notifyData)
-{
-    if (!instance)
-        return;
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-    if (!This->bindable)
-        return;
-
-    QtNPBindable::Reason r;
-    switch (reason) {
-    case NPRES_DONE:
-	r = QtNPBindable::ReasonDone;
-	break;
-    case NPRES_USER_BREAK:
-	r = QtNPBindable::ReasonBreak;
-	break;
-    case NPRES_NETWORK_ERR:
-	r = QtNPBindable::ReasonError;
-	break;
-    default:
-	r = QtNPBindable::ReasonUnknown;
-	break;
-    }
-
-    qint32 id = static_cast<qint32>(reinterpret_cast<size_t>(notifyData));
-    if (id < 0)  // Sanity check
-        id = 0;
-
-    This->bindable->transferComplete(QString::fromLocal8Bit(url), id, r);
-}
-
-extern "C" void
-NPP_Print(NPP instance, NPPrint* printInfo)
-{
-    if(!printInfo || !instance)
-	return;
-
-    QtNPInstance* This = (QtNPInstance*) instance->pdata;
-    if (!This->bindable)
-        return;
-
-/*
-    if (printInfo->mode == NP_FULL) {
-	printInfo->print.fullPrint.pluginPrinted = This->bindable->printFullPage();
-    } else if (printInfo->mode == NP_EMBED) {
-        extern void qtns_print(QtNPInstance*, NPPrint*);
-        qtns_print(This, printInfo);
-    }
-*/
-}
-
-// Plug-in entrypoints - these are called by the browser
-
-// Fills in functiontable used by browser to call entry points in plugin.
-extern "C" NPError WINAPI NP_GetEntryPoints(NPPluginFuncs* pFuncs)
-{
-    if(!pFuncs)
-        return NPERR_INVALID_FUNCTABLE_ERROR;
-    if(!pFuncs->size)
-        pFuncs->size = sizeof(NPPluginFuncs);
-    else if (pFuncs->size < sizeof(NPPluginFuncs))
-        return NPERR_INVALID_FUNCTABLE_ERROR;
-
-    pFuncs->version       = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR;
-    pFuncs->newp          = MAKE_FUNCTION_POINTER(NPP_New);
-    pFuncs->destroy       = MAKE_FUNCTION_POINTER(NPP_Destroy);
-    pFuncs->setwindow     = MAKE_FUNCTION_POINTER(NPP_SetWindow);
-    pFuncs->newstream     = MAKE_FUNCTION_POINTER(NPP_NewStream);
-    pFuncs->destroystream = MAKE_FUNCTION_POINTER(NPP_DestroyStream);
-    pFuncs->asfile        = MAKE_FUNCTION_POINTER(NPP_StreamAsFile);
-    pFuncs->writeready    = MAKE_FUNCTION_POINTER(NPP_WriteReady);
-    pFuncs->write         = MAKE_FUNCTION_POINTER(NPP_Write);
-    pFuncs->print         = MAKE_FUNCTION_POINTER(NPP_Print);
-    pFuncs->event         = MAKE_FUNCTION_POINTER(NPP_Event);
-    pFuncs->urlnotify     = MAKE_FUNCTION_POINTER(NPP_URLNotify);
-    pFuncs->javaClass     = 0;
-    pFuncs->getvalue      = MAKE_FUNCTION_POINTER(NPP_GetValue);
-    pFuncs->setvalue      = MAKE_FUNCTION_POINTER(NPP_SetValue);
-    return NPERR_NO_ERROR;
-}
-
-enum NPNToolkitType
-{
-    NPNVGtk12 = 1,
-    NPNVGtk2
-};
-
-#ifndef Q_WS_X11
-extern "C" NPError WINAPI NP_Initialize(NPNetscapeFuncs* pFuncs)
-{
-    if(!pFuncs)
-        return NPERR_INVALID_FUNCTABLE_ERROR;
-
-    qNetscapeFuncs = pFuncs;
-    int navMajorVers = qNetscapeFuncs->version >> 8;
-
-    // if the plugin's major version is lower than the Navigator's,
-    // then they are incompatible, and should return an error
-    if(navMajorVers > NP_VERSION_MAJOR)
-        return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
-    return NPERR_NO_ERROR;
-}
-#else
-extern "C" NPError WINAPI NP_Initialize(NPNetscapeFuncs* nFuncs, NPPluginFuncs* pFuncs)
-{
-    if(!nFuncs)
-        return NPERR_INVALID_FUNCTABLE_ERROR;
-
-    qNetscapeFuncs = nFuncs;
-    int navMajorVers = qNetscapeFuncs->version >> 8;
-
-    // if the plugin's major version is lower than the Navigator's,
-    // then they are incompatible, and should return an error
-    if(navMajorVers > NP_VERSION_MAJOR)
-        return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
-    // check if the Browser supports the XEmbed protocol
-    int supportsXEmbed = 0;
-    NPError err = NPN_GetValue(0, NPNVSupportsXEmbedBool, (void *)&supportsXEmbed);
-    if (err != NPERR_NO_ERROR ||!supportsXEmbed)
-        return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
-    return NP_GetEntryPoints(pFuncs);
-}
-#endif
-
-extern "C" NPError WINAPI NP_Shutdown()
-{
-    delete qNP;
-    qNP = 0;
-
-    extern void qtns_shutdown();
-    qtns_shutdown();
-
-    qNetscapeFuncs = 0;
-    return NPERR_NO_ERROR;
-}
-
-
-/*!
-    \class QtNPBindable qtnetscape.h
-    \brief The QtNPBindable class provides an interface between a widget and the web browser.
-
-    Inherit your plugin widget class from both QWidget (or QObject) and QtNPBindable
-    to be able to call the functions of this class, and to reimplement the virtual
-    functions. The \l{moc}{meta-object compiler} requires you to inherit from the
-    QObject subclass first.
-
-    \code
-    class PluginWidget : public QWidget, public QtNPBindable
-    {
-        Q_OBJECT
-    public:
-        PluginWidget(QWidget *parent = 0)
-        {
-        }
-
-        //...
-    };
-    \endcode
-*/
-
-/*!
-    \enum QtNPBindable::DisplayMode
-
-    \brief This enum specifies the different display modes of a plugin
-
-    \value Embedded The plugin widget is embedded in a web page, usually
-    with the <EMBED> or the <OBJECT> tag.
-    \value Fullpage The plugin widget is the primary content of the web browser, which
-    is usually the case when the web browser displays a file the plugin supports.
-*/
-
-/*!
-    \enum QtNPBindable::Reason
-
-    \brief This enum specifies how an URL operation was completed
-
-    \value ReasonDone
-    \value ReasonBreak
-    \value ReasonError
-    \value ReasonUnknown
-*/
-
-/*!
-    Constructs a QtNPBindable object.
-
-    This can only happen when the plugin object is created.
-*/
-QtNPBindable::QtNPBindable()
-: pi(next_pi)
-{
-    if (pi)
-        pi->bindable = this;
-    next_pi = 0;
-}
-
-/*!
-    Destroys the object.
-
-    This can only happen when the plugin object is destroyed.
-*/
-QtNPBindable::~QtNPBindable()
-{
-}
-
-/*!
-    Returns the parameters passed to the plugin instance.
-
-    The framework sets the properties of the plugin to the corresponding
-    parameters when the plugin object has been created, but you can
-    use this function to process additional parameters.
-
-    Note that the SGML specification does not permit multiple
-    arguments with the same name.
-*/
-QMap<QByteArray, QVariant> QtNPBindable::parameters() const
-{
-    if (!pi)
-        return QMap<QByteArray, QVariant>();
-    return pi->parameters;
-}
-
-/*!
-    Returns the user agent (browser name) containing this plugin.
-
-    This is a wrapper around NPN_UserAgent.
-
-    \sa getBrowserVersion()
-*/
-QString QtNPBindable::userAgent() const
-{
-    if (!pi)
-        return QString();
-    return QString::fromLocal8Bit(NPN_UserAgent(pi->npp));
-}
-
-/*!
-    Extracts the version of the plugin API used by this plugin into \a major
-    and \a minor.
-
-    See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/
-    for an explanation of those values.
-
-    \sa getBrowserVersion() userAgent()
-*/
-void QtNPBindable::getNppVersion(int *major, int *minor) const
-{
-    int dummy = 0;
-    if (pi)
-        NPN_Version(major, minor, &dummy, &dummy);
-}
-
-/*!
-    Extracts the version of the browser into \a major and \a minor.
-
-    See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/
-    for an explanation of those values.
-
-    \sa getNppVersion() userAgent()
-*/
-void QtNPBindable::getBrowserVersion(int *major, int *minor) const
-{
-    int dummy = 0;
-    if (pi)
-        NPN_Version(&dummy, &dummy, major, minor);
-}
-
-/*!
-    Returns the display mode of the plugin.
-*/
-QtNPBindable::DisplayMode QtNPBindable::displayMode() const
-{
-    if (!pi)
-        return Embedded;
-    return (QtNPBindable::DisplayMode)pi->fMode;
-}
-
-/*!
-    Returns the mime type this plugin has been instantiated for.
-*/
-QString QtNPBindable::mimeType() const
-{
-    if (!pi)
-        return QString();
-    return pi->mimetype;
-}
-
-/*!
-    Returns the browser's plugin instance associated with this plugin object.
-    The instance is required to call functions in the Netscape Plugin API,
-    i.e. NPN_GetJavaPeer().
-
-    The instance returned is only valid as long as this object is.
-
-    See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/
-    for documentation of the \c NPP type.
-*/
-NPP QtNPBindable::instance() const
-{
-    if (!pi)
-        return 0;
-    return pi->npp;
-}
-
-/*!
-    Reimplement this function to read data from \a source provided with
-    mime type \a format. The data is the one specified in the \c src or
-    \c data attribute of the \c{<EMBED>} or \c{<OBJECT>} tag of in
-    HTML page. This function is called once for every stream the browser
-    creates for the plugin.
-
-    Return true to indicate successfull processing of the data, otherwise
-    return false. The default implementation does nothing and returns false.
-*/
-
-bool QtNPBindable::readData(QIODevice *source, const QString &format)
-{
-    Q_UNUSED(source);
-    Q_UNUSED(format);
-    return false;
-}
-
-/*!
-    Requests that the \a url be retrieved and sent to the named \a window (or
-    a new window if \a window is empty), and returns the ID of the request that is
-    delivered to transferComplete() when the get-operation has finished. Returns 0 when
-    the browser or the system doesn't support notification, or -1 when an error occured.
-
-    \code
-    void MyPlugin::aboutQtSoftware()
-    {
-        openUrl("http://qt.nokia.com");
-    }
-    \endcode
-
-    See Netscape's JavaScript documentation for an explanation of window names.
-
-    \sa transferComplete() uploadData() uploadFile()
-*/
-int QtNPBindable::openUrl(const QString &url, const QString &window)
-{
-    if (!pi)
-        return -1;
-    QString wnd = window;
-    if (wnd.isEmpty())
-        wnd = "_blank";
-
-    qint32 id = pi->getNotificationSeqNum();
-    NPError err = NPN_GetURLNotify(pi->npp, url.toLocal8Bit().constData(), wnd.toLocal8Bit().constData(), reinterpret_cast<void*>(id));
-    if (err != NPERR_NO_ERROR)
-        id = -1;
-
-    if (err == NPERR_INCOMPATIBLE_VERSION_ERROR) {
-        err = NPN_GetURL(pi->npp, url.toLocal8Bit().constData(), wnd.toLocal8Bit().constData());
-        if (NPERR_NO_ERROR == err)
-            id = 0;
-        else
-            id = -1;
-    }
-    return id;
-}
-
-/*!
-    Posts \a data to \a url, and displays the result in \a window. Returns the ID of the request
-    that is delivered to transferComplete() when the post-operation has finished. Returns 0 when
-    the browser or the system doesn't support notification, or -1 when an error occured.
-
-    \code
-    void MyPlugin::sendMail()
-    {
-        uploadData("mailto:fred at somewhere.com", QString(), "There is a new file for you!");
-    }
-    \endcode
-
-    See Netscape's JavaScript documentation for an explanation of window names.
-
-    \sa transferComplete() openUrl() uploadFile()
-*/
-int QtNPBindable::uploadData(const QString &url, const QString &window, const QByteArray &data)
-{
-    if (!pi)
-        return -1;
-
-    int id = pi->getNotificationSeqNum();
-    if (NPERR_NO_ERROR != NPN_PostURLNotify(pi->npp, url.toLocal8Bit().constData(), window.isEmpty() ? 0 : window.toLocal8Bit().constData(), data.size(), data.constData(), false, reinterpret_cast<void*>(id)))
-        id = -1;
-
-    return id;
-}
-
-/*!
-    Posts \a filename to \a url, and displays the result in \a window. Returns the ID of
-    the request that is delivered to transferComplete() when the post-operation has finished.
-    Returns 0 when the browser or the system doesn't support notification, or -1 when an
-    error occured.
-
-    \code
-    void MyPlugin::uploadFile()
-    {
-        uploadFile("ftp://ftp.somewhere.com/incoming", "response", "c:\\temp\\file.txt");
-    }
-    \endcode
-
-    See Netscape's JavaScript documentation for an explanation of window names.
-
-    \sa transferComplete() uploadData() openUrl()
-*/
-
-int QtNPBindable::uploadFile(const QString &url, const QString &window, const QString &filename)
-{
-    if (!pi)
-        return -1;
-
-    QByteArray data = filename.toLocal8Bit();
-    int id = pi->getNotificationSeqNum();
-    if (NPERR_NO_ERROR != NPN_PostURLNotify(pi->npp, url.toLocal8Bit().constData(), window.isEmpty() ? 0 : window.toLocal8Bit().constData(), data.size(), data.constData(), true, reinterpret_cast<void*>(id)))
-        id = -1;
-
-    return id;
-}
-
-/*!
-    Called as a result of a call to openUrl, uploadData or uploadFile.
-    \a url corresponds to the respective parameter, and \a id to value returned
-    by the call. \a reason indicates how the transfer was completed.
-*/
-void QtNPBindable::transferComplete(const QString &url, int id, Reason reason)
-{
-    Q_UNUSED(url)
-    Q_UNUSED(id)
-    Q_UNUSED(reason)
-}
-
-
-/******************************************************************************
- * The plugin itself - only one ever exists, created by QtNPFactory::create()
- *****************************************************************************/
-
-
-/*!
-    \class QtNPFactory qtbrowserplugin.h
-    \brief The QtNPFactory class provides the factory for plugin objects.
-
-    Implement this factory once in your plugin project to provide information
-    about the plugin and to create the plugin objects. Subclass QtNPFactory and
-    implement the pure virtual functions, and export the factory using the
-    \c QTNPFACTORY_EXPORT() macro.
-
-    If you use the Q_CLASSINFO macro in your object classes you can use the
-    \c QTNPFACTORY_BEGIN(), \c QTNPCLASS() and \c QTNPFACTORY_END() macros to
-    generate a factory implementation:
-
-    \code
-    class Widget : public QWidget
-    {
-        Q_OBJECT
-        Q_CLASSINFO("MIME", "application/x-graphable:g1n:Graphable data")
-    public:
-        ...
-    };
-
-    QTNPFACTORY_BEGIN("Plugin name", "Plugin description")
-        QTNPCLASS(WidgetClass)
-    QTNPFACTORY_END()
-    \endcode
-
-    The classes exposed must provide a constructor.
-
-    If Qt is linked to the plugin as a dynamic library, only one instance of
-    QApplication will exist \e{across all plugins that have been made with Qt}.
-    So, your plugin should tread lightly on global settings. Do not, for example,
-    use QApplication::setFont() - that will change the font in every widget of
-    every Qt-based plugin currently loaded!
-*/
-
-/*!
-    Creates a QtNPFactory.
-*/
-QtNPFactory::QtNPFactory()
-{
-}
-
-/*!
-    Destroys the QtNPFactory.
-
-    This is called by the plugin binding code just before the plugin is
-    about to be unloaded from memory. If createObject() has been called,
-    a QApplication will still exist at this time, but will be deleted
-    shortly after, just before the plugin is deleted.
-*/
-QtNPFactory::~QtNPFactory()
-{
-}
-
-
-/*!
-    \fn QStringList QtNPFactory::mimeTypes() const
-
-    Reimplement this function to return the MIME types of the data formats
-    supported by your plugin. The format of each string is
-    mime:extension(s):description:
-
-    \code
-    QStringList mimeTypes() const
-    {
-        QStringList list;
-        list << "image/x-png:png:PNG Image"
-             << "image/png:png:PNG Image"
-             << "image/jpeg:jpg,jpeg:JPEG Image";
-	return list;
-    }
-    \endcode
-*/
-
-/*!
-    \fn QObject *QtNPFactory::createObject(const QString &type)
-
-    Reimplement this function to return the QObject or QWidget subclass
-    supporting the mime type \a type, or 0 if the factory doesn't support
-    the type requested.
-
-    \a type will be in the same form as the leftmost (mime) part of
-    the string(s) returned by mimeTypes(), e.g. "image/png".
-*/
-
-/*!
-    \fn QString QtNPFactory::pluginName() const
-
-    Reimplement this function to return the name of the plugin.
-*/
-
-/*!
-    \fn QString QtNPFactory::pluginDescription() const
-
-    Reimplement this function to return the description of the plugin.
-*/
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.def b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.def
deleted file mode 100644
index ce7f119..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.def
+++ /dev/null
@@ -1,4 +0,0 @@
-EXPORTS
-	NP_GetEntryPoints   @1
-	NP_Initialize       @2
-	NP_Shutdown         @3
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.h b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.h
deleted file mode 100644
index 6b87bfb..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-#ifndef QTNETSCAPE_H
-#define QTNETSCAPE_H
-
-#include <QtCore/QMetaObject>
-#include <QtCore/QFile>
-#include <QtCore/QDateTime>
-#include <QtGui/QPainter>
-
-
-struct QtNPInstance;
-class QtNPBindable;
-class QtNPStreamPrivate;
-
-struct NPP_t;
-typedef NPP_t* NPP;
-
-class QtNPBindable
-{
-    friend class QtNPStream;
-public:
-    enum Reason {
-        ReasonDone = 0,
-        ReasonBreak = 1,
-        ReasonError = 2,
-        ReasonUnknown = -1
-    };
-    enum DisplayMode
-    {
-        Embedded = 1,
-        Fullpage = 2
-    };
-
-    QMap<QByteArray, QVariant> parameters() const;
-    DisplayMode displayMode() const;
-    QString mimeType() const;
-
-    QString userAgent() const;
-    void getNppVersion(int *major, int *minor) const;
-    void getBrowserVersion(int *major, int *minor) const;
-
-    // incoming streams (SRC=... tag)
-    virtual bool readData(QIODevice *source, const QString &format);
-
-    // URL stuff
-    int openUrl(const QString &url, const QString &window = QString());
-    int uploadData(const QString &url, const QString &window, const QByteArray &data);
-    int uploadFile(const QString &url, const QString &window, const QString &filename);
-    virtual void transferComplete(const QString &url, int id, Reason r);
-
-    NPP instance() const;
-
-protected:
-    QtNPBindable();
-    virtual ~QtNPBindable();
-
-private:
-    QtNPInstance* pi;
-};
-
-class QtNPFactory {
-public:
-    QtNPFactory();
-    virtual ~QtNPFactory();
-
-    virtual QStringList mimeTypes() const = 0;
-    virtual QObject* createObject(const QString &type) = 0;
-
-    virtual QString pluginName() const = 0;
-    virtual QString pluginDescription() const = 0;
-};
-
-extern QtNPFactory *qtNPFactory();
-
-template<class T>
-class QtNPClass : public QtNPFactory
-{
-public:
-    QtNPClass() {}
-
-    QObject *createObject(const QString &key)
-    {
-        foreach (QString mime, mimeTypes()) {
-            if (mime.left(mime.indexOf(':')) == key)
-                return new T;
-        }
-        return 0;
-    }
-
-    QStringList mimeTypes() const
-    {
-        const QMetaObject &mo = T::staticMetaObject;
-        return QString::fromLatin1(mo.classInfo(mo.indexOfClassInfo("MIME")).value()).split(';');
-    }
-
-    QString pluginName() const { return QString(); }
-    QString pluginDescription() const { return QString(); }
-};
-
-#define QTNPFACTORY_BEGIN(Name, Description) \
-class QtNPClassList : public QtNPFactory \
-{ \
-    QHash<QString, QtNPFactory*> factories; \
-    QStringList mimeStrings; \
-    QString m_name, m_description; \
-public: \
-    QtNPClassList() \
-    : m_name(Name), m_description(Description) \
-    { \
-        QtNPFactory *factory = 0; \
-        QStringList keys; \
-
-#define QTNPCLASS(Class) \
-        { \
-        factory = new QtNPClass<Class>; \
-        keys = factory->mimeTypes(); \
-        foreach (QString key, keys) { \
-            mimeStrings.append(key); \
-            factories.insert(key.left(key.indexOf(':')), factory); \
-        } \
-        } \
-
-#define QTNPFACTORY_END() \
-    } \
-    ~QtNPClassList() { /*crashes? qDeleteAll(factories);*/ } \
-    QObject *createObject(const QString &mime) { \
-        QtNPFactory *factory = factories.value(mime); \
-        return factory ? factory->createObject(mime) : 0; \
-    } \
-    QStringList mimeTypes() const { return mimeStrings; } \
-    QString pluginName() const { return m_name; } \
-    QString pluginDescription() const { return m_description; } \
-}; \
-QtNPFactory *qtns_instantiate() { return new QtNPClassList; } \
-
-#define QTNPFACTORY_EXPORT(Class) \
-QtNPFactory *qtns_instantiate() { return new Class; }
-
-#endif  // QTNETSCAPE_H
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri
deleted file mode 100644
index 6b5f08d..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri
+++ /dev/null
@@ -1,74 +0,0 @@
-TEMPLATE = lib
-CONFIG  += dll
-win32-* {
-  # Uncomment the following line to build a plugin that can be used also in
-  # Internet Explorer, through ActiveX.
-  # CONFIG += qaxserver
-} else {
-  CONFIG += plugin
-}
-
-INCLUDEPATH     += $$PWD
-DEPENDPATH      += $$PWD
-
-SOURCES        += $$PWD/qtbrowserplugin.cpp
-HEADERS        += $$PWD/qtbrowserplugin.h qtnpapi.h
-
-win32-* {
-  SOURCES     += $$PWD/qtbrowserplugin_win.cpp
-  !isEmpty(TARGET) {
-    TARGET = np$$TARGET
-  }
-  LIBS        += -luser32
-
-  qaxserver {
-    DEF_FILE       += $$PWD/qtbrowserpluginax.def
-  } else {
-    DEF_FILE       += $$PWD/qtbrowserplugin.def
-  }
-
-  firefox {
-    exists("c:/program files/mozilla firefox/plugins") {
-      DLLDESTDIR += "c:/program files/mozilla firefox/plugins"
-    } else {
-      message("Firefox not found at default location")
-    }
-  }
-  opera {
-    exists("c:/program files/opera/program/plugins") {
-      DLLDESTDIR += "c:/program files/opera/program/plugins"
-    } else {
-      message("Opera not found at default location")
-    }
-  }
-  netscape {
-    exists("c:/program files/netscape/netscape browser/plugins") {
-      DLLDESTDIR += "c:/program files/netscape/netscape browser/plugins"
-    } else {
-      message("Netscape not found at default location")
-    }
-  }
-} else:mac {
-  CONFIG += plugin_bundle
-  SOURCES     += $$PWD/qtbrowserplugin_mac.cpp
-  #target.path = /Library/Internet\ Plugins
-  #INSTALLS += target
-} else {
-  SOURCES     += $$PWD/qtbrowserplugin_x11.cpp
-  INCLUDEPATH += /usr/include/X11
-
-  # Avoiding symbol clash with other instances of the Qt library
-  # (ref. developingplugins.html in the doc.):
-  #
-  # For Qt 4.4 and later, just configure Qt to use a separate namespace:
-  # configure -qtnamespace SomeNamespace
-  #
-  # For Qt 4.3: Uncomment the line below.
-  # It makes the dynamic linker prefer our own Qt symbols for the plugin,
-  # provided that our Qt is statically built and linked into the
-  # plugin. Note that to force the linker to prefer the static Qt
-  # libraries (.a files), the dynamic libraries (.so) files must not
-  # be present in the lib directory.
-  #
-  # QMAKE_LFLAGS += -Wl,-Bsymbolic
-}
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_mac.cpp b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_mac.cpp
deleted file mode 100644
index c757bda..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_mac.cpp
+++ /dev/null
@@ -1,560 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-#include <QtGui/QApplication>
-#include <QtCore/QStringList>
-#include <QtCore/QPointer>
-#include <QtGui/QWidget>
-#include <QtCore/QEvent>
-#include <QtCore/QDebug>
-#include <QtCore/QRect>
-#include <QtGui/QMouseEvent>
-#include <QtGui/QHoverEvent>
-#include <QtGui/QKeyEvent>
-
-#include <Carbon/Carbon.h>
-
-#include "qtnpapi.h"
-
-#include "qtbrowserplugin.h"
-#include "qtbrowserplugin_p.h"
-
-static bool ownsqapp = false;
-extern void qt_mac_set_native_menubar(bool b);
-const UInt32 kWidgetCreatorQt = 'cute';
-enum {
-    kWidgetPropertyQWidget = 'QWId' //QWidget *
-};
-
-class
-QMacBrowserRoot : public QWidget
-{
-    Q_OBJECT
-public:
-    QMacBrowserRoot(HIViewRef root) : QWidget()
-    {
-        // make sure we're not registered with Qt before create
-        WindowRef window = HIViewGetWindow(root);
-        QWidget *oldwindow=0;
-        OSErr err;
-        err = GetWindowProperty(window,
-                                kWidgetCreatorQt,
-                                kWidgetPropertyQWidget,
-                                sizeof(oldwindow),
-                                0,
-                                &oldwindow);
-        if (err == noErr)
-            RemoveWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget);
-
-        create((WId)root);
-
-        // re-register the root window with Qt
-        err = SetWindowProperty(window,
-                                kWidgetCreatorQt,
-                                kWidgetPropertyQWidget,
-                                sizeof(oldwindow),
-                                &oldwindow);
-        if (err != noErr) {
-            qWarning("Error, couldn't register Window with Qt: (%s:%d:%d)", __FILE__, __LINE__, err);
-        }
-
-        QPalette pal = palette();
-        pal.setColor(QPalette::Window,Qt::transparent);
-        setPalette(pal);
-
-        setAttribute(Qt::WA_WState_Polished);
-    }
-
-    ~QMacBrowserRoot() { }
-};
-#include "qtbrowserplugin_mac.moc"
-
-struct key_sym
-{
-    int mac_code;
-    int qt_code;
-    const char *desc;
-};
-
-static key_sym modifier_syms[] = {
-{ shiftKey, Qt::ShiftModifier, "Qt::ShiftModifier" },
-{ controlKey, Qt::MetaModifier, "Qt::MetaModifier" },
-{ rightControlKey, Qt::MetaModifier, "Qt::MetaModifier" },
-{ optionKey, Qt::AltModifier, "Qt::AltModifier" },
-{ rightOptionKey, Qt::AltModifier, "Qt::AltModifier" },
-{ cmdKey, Qt::ControlModifier, "Qt::ControlModifier" },
-{   0, 0, NULL }
-};
-static Qt::KeyboardModifiers get_modifiers(int key)
-{
-    Qt::KeyboardModifiers ret = 0;
-    for(int i = 0; modifier_syms[i].desc; i++) {
-        if(key & modifier_syms[i].mac_code) {
-            ret |= Qt::KeyboardModifier(modifier_syms[i].qt_code);
-        }
-    }
-    return ret;
-}
-
-static key_sym key_syms[] = {
-{ kHomeCharCode, Qt::Key_Home, "Qt::Home" },
-{ kEnterCharCode, Qt::Key_Enter, "Qt::Key_Enter" },
-{ kEndCharCode, Qt::Key_End, "Qt::Key_End" },
-{ kBackspaceCharCode, Qt::Key_Backspace, "Qt::Backspace" },
-{ kTabCharCode, Qt::Key_Tab, "Qt::Tab" },
-{ kPageUpCharCode, Qt::Key_PageUp, "Qt::PageUp" },
-{ kPageDownCharCode, Qt::Key_PageDown, "Qt::PageDown" },
-{ kReturnCharCode, Qt::Key_Return, "Qt::Key_Return" },
-//function keys?
-{ kEscapeCharCode, Qt::Key_Escape, "Qt::Key_Escape" },
-{ kLeftArrowCharCode, Qt::Key_Left, "Qt::Key_Left" },
-{ kRightArrowCharCode, Qt::Key_Right, "Qt::Key_Right" },
-{ kUpArrowCharCode, Qt::Key_Up, "Qt::Key_Up" },
-{ kDownArrowCharCode, Qt::Key_Down, "Qt::Key_Down" },
-{ kDeleteCharCode, Qt::Key_Delete, "Qt::Key_Delete" }
-};
-static int get_key(int key)
-{
-    for(int i = 0; key_syms[i].desc; i++) {
-        if(key_syms[i].mac_code == key) {
-            return key_syms[i].qt_code;
-        }
-    }
-    return key;
-}
-
-struct qt_last_mouse_down_struct {
-    unsigned int when;
-    int x, y;
-} qt_last_mouse_down = { 0, 0, 0 };
-
-//nasty, copied code -
-static void qt_dispatchEnterLeave(QWidget* enter, QWidget* leave) {
-#if 0
-    if(leave) {
-        QEvent e(QEvent::Leave);
-        QApplication::sendEvent(leave, & e);
-    }
-    if(enter) {
-        QEvent e(QEvent::Enter);
-        QApplication::sendEvent(enter, & e);
-    }
-    return;
-#endif
-
-    QWidget* w ;
-    if(!enter && !leave)
-        return;
-    QWidgetList leaveList;
-    QWidgetList enterList;
-
-    bool sameWindow = leave && enter && leave->window() == enter->window();
-    if(leave && !sameWindow) {
-        w = leave;
-        do {
-            leaveList.append(w);
-        } while(!w->isWindow() && (w = w->parentWidget()));
-    }
-    if(enter && !sameWindow) {
-        w = enter;
-        do {
-            enterList.prepend(w);
-        } while(!w->isWindow() && (w = w->parentWidget()));
-    }
-    if(sameWindow) {
-        int enterDepth = 0;
-        int leaveDepth = 0;
-        w = enter;
-        while(!w->isWindow() && (w = w->parentWidget()))
-            enterDepth++;
-        w = leave;
-        while(!w->isWindow() && (w = w->parentWidget()))
-            leaveDepth++;
-        QWidget* wenter = enter;
-        QWidget* wleave = leave;
-        while(enterDepth > leaveDepth) {
-            wenter = wenter->parentWidget();
-            enterDepth--;
-        }
-        while(leaveDepth > enterDepth) {
-            wleave = wleave->parentWidget();
-            leaveDepth--;
-        }
-        while(!wenter->isWindow() && wenter != wleave) {
-            wenter = wenter->parentWidget();
-            wleave = wleave->parentWidget();
-        }
-
-        w = leave;
-        while(w != wleave) {
-            leaveList.append(w);
-            w = w->parentWidget();
-        }
-        w = enter;
-        while(w != wenter) {
-            enterList.prepend(w);
-            w = w->parentWidget();
-        }
-    }
-
-    QEvent leaveEvent(QEvent::Leave);
-    for (int i = 0; i < leaveList.size(); ++i) {
-        w = leaveList.at(i);
-        QApplication::sendEvent(w, &leaveEvent);
-#if 0
-        if(w->testAttribute(Qt::WA_Hover)) {
-            Q_ASSERT(instance());
-            QHoverEvent he(QEvent::HoverLeave, QPoint(-1, -1),
-                           w->mapFromGlobal(QApplicationPrivate::instance()->hoverGlobalPos));
-            QApplication::sendEvent(w, &he);
-        }
-#endif
-    }
-    QPoint posEnter = QCursor::pos();
-    QEvent enterEvent(QEvent::Enter);
-    for (int i = 0; i < enterList.size(); ++i) {
-        w = enterList.at(i);
-        QApplication::sendEvent(w, &enterEvent);
-        if(w->testAttribute(Qt::WA_Hover)) {
-            QHoverEvent he(QEvent::HoverEnter, w->mapFromGlobal(posEnter), QPoint(-1, -1));
-            QApplication::sendEvent(w, &he);
-        }
-    }
-}
-
-
-extern "C" bool qtns_event(QtNPInstance *This, NPEvent *event)
-{
-    static QPointer<QWidget> lastWidget;
-    static QPointer<QWidget> qt_button_down;
-    static Point lastPosition = { 0, 0 };
-    if(event->what == nullEvent || event->what == adjustCursorEvent) {
-        if(event->what == nullEvent) {
-            qApp->processEvents();
-            QApplication::sendPostedEvents();
-        }
-
-        //watch for mouse moves
-       Point currentPosition;
-        GetMouse(&currentPosition);
-        LocalToGlobal(&currentPosition);
-        if(currentPosition.h != lastPosition.h || currentPosition.v != lastPosition.v) {
-            lastPosition = currentPosition;
-
-            WindowPtr wp;
-            FindWindow(currentPosition, &wp);
-            QWidget *widget = 0;
-            if(wp == GetWindowFromPort((CGrafPtr)This->window->port))
-                widget = This->rootWidget->childAt(This->rootWidget->mapFromGlobal(QPoint(event->where.h, event->where.v)));
-            else
-                widget = QApplication::widgetAt(event->where.h, event->where.v);
-            if(widget != lastWidget) {
-                qt_dispatchEnterLeave(widget, lastWidget);
-                lastWidget = widget;
-            }
-            if(widget) {
-                QPoint p(currentPosition.h, currentPosition.v);
-                QPoint plocal(widget->mapFromGlobal(p));
-                QMouseEvent qme(QEvent::MouseMove, plocal, p, Button() ? Qt::LeftButton : Qt::NoButton,
-                                0, get_modifiers(GetCurrentKeyModifiers()));
-                QApplication::sendEvent(widget, &qme);
-            }
-        }
-        return true;
-    } else if(QWidget *widget = qobject_cast<QWidget*>(This->qt.object)) {
-        if(event->what == updateEvt) {
-            widget->repaint();
-            return true;
-        } else if(event->what == keyUp || event->what == keyDown) {
-            QWidget *widget = 0;
-            if(QWidget::keyboardGrabber())
-                widget = QWidget::keyboardGrabber();
-            else if(QApplication::focusWidget())
-                widget = QApplication::focusWidget();
-            else //last ditch effort
-                widget = QApplication::widgetAt(event->where.h, event->where.v);
-
-            if(widget) {
-#if 0
-                if(app_do_modal && !qt_try_modal(widget, er))
-                    return 1;
-#endif
-
-                int mychar=get_key(event->message & charCodeMask);
-                QEvent::Type etype = event->what == keyUp ? QEvent::KeyRelease : QEvent::KeyPress;
-                QKeyEvent ke(etype, mychar, get_modifiers(event->modifiers), QString(QChar(mychar)));
-                QApplication::sendEvent(widget,&ke);
-                return true;
-            }
-        } else if(event->what == mouseDown  || event->what == mouseUp) {
-            QEvent::Type etype = QEvent::None;
-            Qt::KeyboardModifiers keys = get_modifiers(event->modifiers);
-            Qt::MouseButton button = Qt::LeftButton;
-
-            if(event->what == mouseDown) {
-                if (lastWidget)
-                    qt_button_down = lastWidget;
-                //check if this is the second click, there must be a way to make the
-                //mac do this for us, FIXME!!
-                if(qt_last_mouse_down.when &&
-                   (event->when - qt_last_mouse_down.when <= (uint)QApplication::doubleClickInterval())) {
-                    int x = event->where.h, y = event->where.v;
-                    if(x >= (qt_last_mouse_down.x-2) && x <= (qt_last_mouse_down.x+4) &&
-                       y >= (qt_last_mouse_down.y-2) && y <= (qt_last_mouse_down.y+4)) {
-                        etype = QEvent::MouseButtonDblClick;
-                        qt_last_mouse_down.when = 0;
-                    }
-                }
-
-                if(etype == QEvent::None) { //guess it's just a press
-                    etype = QEvent::MouseButtonPress;
-                    qt_last_mouse_down.when = event->when;
-                    qt_last_mouse_down.x = event->where.h;
-                    qt_last_mouse_down.y = event->where.v;
-                }
-            } else {
-                etype = QEvent::MouseButtonRelease;
-            }
-
-            WindowPtr wp;
-            FindWindow(event->where, &wp);
-
-            //handle popup's first
-            QWidget *popupwidget = NULL;
-            if(QApplication::activePopupWidget()) {
-                if(wp) {
-                    QWidget *clt=QWidget::find((WId)wp);
-                    if(clt && clt->windowType() == Qt::Popup)
-                        popupwidget = clt;
-                }
-                if(!popupwidget)
-                    popupwidget = QApplication::activePopupWidget();
-                if(QWidget *child = popupwidget->childAt(popupwidget->mapFromGlobal(QPoint(event->where.h, event->where.v))))
-                    popupwidget = child;
-
-                QPoint p(event->where.h, event->where.v);
-                QPoint plocal(popupwidget->mapFromGlobal(p));
-                QMouseEvent qme(etype, plocal, p, button, 0, keys);
-                QApplication::sendEvent(popupwidget, &qme);
-            }
-
-            {
-                QWidget *widget = 0; //figure out which widget to send it to
-                if(event->what == mouseUp && qt_button_down)
-                    widget = qt_button_down;
-                else if(QWidget::mouseGrabber())
-                    widget = QWidget::mouseGrabber();
-                else if(wp == GetWindowFromPort((CGrafPtr)This->window->port))
-                    widget = This->rootWidget->childAt(This->rootWidget->mapFromGlobal(QPoint(event->where.h, event->where.v)));
-                else
-                    widget = QApplication::widgetAt(event->where.h, event->where.v);
-
-                //setup the saved widget
-                qt_button_down = event->what == mouseDown ? widget : 0;
-
-                //finally send the event to the widget if its not the popup
-                if(widget && widget != popupwidget) {
-#if 0
-                    if(app_do_modal && !qt_try_modal(widget, er))
-                        return 1;
-#endif
-                    if(event->what == mouseDown) {
-                        QWidget* w = widget;
-                        while(w->focusProxy())
-                            w = w->focusProxy();
-                        if(w->focusPolicy() & Qt::ClickFocus)
-                            w->setFocus(Qt::MouseFocusReason);
-                        if(QWidget *tlw = widget->topLevelWidget()) {
-                            tlw->raise();
-                            if(tlw->isTopLevel() && tlw->windowType() != Qt::Popup &&
-                               (tlw->isModal() || tlw->windowType() != Qt::Dialog))
-                                QApplication::setActiveWindow(tlw);
-                        }
-                    }
-
-                    QPoint p(event->where.h, event->where.v);
-                    QPoint plocal(widget->mapFromGlobal( p ));
-                    QMouseEvent qme(etype, plocal, p, button, 0, keys);
-                    QApplication::sendEvent(widget, &qme);
-                    return true;
-                }
-            }
-        } else {
-            //qDebug("%d", event->what);
-        }
-    }
-    return false;
-}
-
-#ifdef QTBROWSER_USE_CFM
-static bool qtbrowser_use_cfm = false;
-static UInt32 gGlueTemplate[6] = { 0x3D800000, 0x618C0000, 0x800C0000,
-                            0x804C0004, 0x7C0903A6, 0x4E800420  };
-struct TVector_rec
-{
-    ProcPtr fProcPtr;
-    void *fTOC;
-};
-
-void *CFMFunctionPointerForMachOFunctionPointer(void *inMachProcPtr)
-{
-    if(!qtbrowser_use_cfm)
-        return inMachProcPtr;
-     TVector_rec *vTVector = (TVector_rec*)malloc(sizeof(TVector_rec));
-     if(MemError() == noErr && vTVector != 0) {
-         vTVector->fProcPtr = (ProcPtr)inMachProcPtr;
-         vTVector->fTOC = 0;  // ignored
-     }
-     return((void *)vTVector);
-}
-
-void DisposeCFMFunctionPointer(void *inCfmProcPtr)
-{
-    if(!qtbrowser_use_cfm)
-        return;
-    if(inCfmProcPtr)
-        free(inCfmProcPtr);
-}
-
-void* MachOFunctionPointerForCFMFunctionPointer(void* inCfmProcPtr)
-{
-    if(!qtbrowser_use_cfm)
-        return inCfmProcPtr;
-    UInt32 *vMachProcPtr = (UInt32*)NewPtr(sizeof(gGlueTemplate));
-    vMachProcPtr[0] = gGlueTemplate[0] | ((UInt32)inCfmProcPtr >> 16);
-    vMachProcPtr[1] = gGlueTemplate[1] | ((UInt32)inCfmProcPtr & 0xFFFF);
-    vMachProcPtr[2] = gGlueTemplate[2];
-    vMachProcPtr[3] = gGlueTemplate[3];
-    vMachProcPtr[4] = gGlueTemplate[4];
-    vMachProcPtr[5] = gGlueTemplate[5];
-    MakeDataExecutable(vMachProcPtr, sizeof(gGlueTemplate));
-    return(vMachProcPtr);
-}
-#endif
-
-
-extern "C" void qtns_initialize(QtNPInstance *)
-{
-    qt_mac_set_native_menubar(false);
-    if(!qApp) {
-        ownsqapp = true;
-        static int argc=0;
-        static char **argv={ 0 };
-        (void)new QApplication(argc, argv);
-    }
-}
-
-extern "C" void qtns_destroy(QtNPInstance *This)
-{
-    delete This->rootWidget;
-    This->rootWidget = 0;
-}
-
-extern "C" void qtns_shutdown()
-{
-    if(!ownsqapp)
-        return;
-
-    // TODO: find out if other plugin DLL's still need qApp
-    delete qApp;
-    ownsqapp = false;
-}
-
-extern "C" void qtns_embed(QtNPInstance *This)
-{
-    Q_ASSERT(qobject_cast<QWidget*>(This->qt.object));
-
-    WindowPtr windowptr = GetWindowFromPort((CGrafPtr)This->window->port);
-    HIViewRef root = 0;
-    OSErr err;
-    err = GetRootControl(windowptr,&root);
-    if(!root)
-        root = HIViewGetRoot(windowptr);
-    if(!root) {
-        qDebug("No window composition!");
-    } else {
-        This->rootWidget = new QMacBrowserRoot(root);
-        This->qt.widget->setParent(This->rootWidget);
-    }
-}
-
-extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &clipRect)
-{
-    Q_ASSERT(qobject_cast<QWidget*>(This->qt.object));
-
-    WindowPtr windowptr = GetWindowFromPort((CGrafPtr)This->window->port);
-    Rect content_r;
-    GetWindowBounds(windowptr, kWindowContentRgn, &content_r);
-    Rect structure_r;
-    GetWindowBounds(windowptr, kWindowStructureRgn, &structure_r);
-
-    QRect geom(rect.translated(content_r.left-structure_r.left, content_r.top-structure_r.top));
-    if(rect != clipRect) {
-        QRegion clipRegion(QRect(clipRect.x()-geom.x(), clipRect.y()-geom.y(), clipRect.width(), clipRect.height())
-                           .translated(content_r.left-structure_r.left, content_r.top-structure_r.top));
-        if(clipRegion.isEmpty())
-            clipRegion = QRegion(-1, -1, 1, 1); //eww ### FIXME
-        This->qt.widget->setMask(clipRegion);
-    } else {
-        This->qt.widget->clearMask();
-    }
-    This->qt.widget->setGeometry(geom);
-}
-
-typedef void (*NPP_ShutdownUPP)(void);
-
-extern "C" void NPP_MacShutdown()
-{
-    //extern NPError NP_Shutdown();
-    //NP_Shutdown();
-}
-
-extern "C" int main(NPNetscapeFuncs *npn_funcs, NPPluginFuncs *np_funcs, NPP_ShutdownUPP *shutdown)
-{
-    qtbrowser_use_cfm = true; //quite the heuristic..
-
-    NPError ret;
-    extern NPError NP_Initialize(NPNetscapeFuncs*);
-    if((ret=NP_Initialize(npn_funcs)) != NPERR_NO_ERROR)
-        return ret;
-    extern NPError NP_GetEntryPoints(NPPluginFuncs*);
-    if((ret=NP_GetEntryPoints(np_funcs)) != NPERR_NO_ERROR)
-        return ret;
-    *shutdown = (NPP_ShutdownUPP)MAKE_FUNCTION_POINTER(NPP_MacShutdown);
-    return NPERR_NO_ERROR;
-}
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_p.h b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_p.h
deleted file mode 100644
index ebca24a..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_p.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-#include <QtCore/QVariant>
-#include <QtCore/QMutexLocker>
-#include <QtGui/QWidget>
-
-#ifdef Q_WS_X11
-#   include <X11/Xlib.h>
-class QtNPStream;
-class QtNPBindable;
-#endif
-
-
-struct QtNPInstance
-{
-    NPP npp;
-
-    short fMode;
-
-#ifdef Q_WS_WIN
-    typedef HWND Widget;
-#endif
-#ifdef Q_WS_X11
-    typedef Window Widget;
-    Display *display;
-#endif
-#ifdef Q_WS_MAC
-    typedef NPPort* Widget;
-    QWidget *rootWidget;
-#endif
-
-    Widget window;
-
-    QRect geometry;
-    QString mimetype;
-    QByteArray htmlID;
-    union {
-        QObject* object;
-        QWidget* widget;
-    } qt;
-    QtNPStream *pendingStream;
-    QtNPBindable* bindable;
-    QObject *filter;
-
-    QMap<QByteArray, QVariant> parameters;
-
-    qint32 notificationSeqNum;
-    QMutex seqNumMutex;
-    qint32 getNotificationSeqNum()
-        {
-            QMutexLocker locker(&seqNumMutex);
-
-            if (++notificationSeqNum < 0)
-                notificationSeqNum = 1;
-            return notificationSeqNum;
-        }
-
-};
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_win.cpp b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_win.cpp
deleted file mode 100644
index a9bb884..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_win.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-#include <QtGui>
-
-#include "qtbrowserplugin.h"
-#include "qtbrowserplugin_p.h"
-
-#include <windows.h>
-#include "qtnpapi.h"
-
-static HHOOK hhook = 0;
-static bool ownsqapp = false;
-Q_GUI_EXPORT int qt_translateKeyCode(int);
-
-LRESULT CALLBACK FilterProc( int nCode, WPARAM wParam, LPARAM lParam )
-{
-    if (qApp)
-	qApp->sendPostedEvents(0, -1);
-
-    if (nCode < 0 || !(wParam & PM_REMOVE))
-        return CallNextHookEx(hhook, nCode, wParam, lParam);
-
-    MSG *msg = (MSG*)lParam;
-    bool processed = false;
-
-    // (some) support for key-sequences via QAction and QShortcut
-    if(msg->message == WM_KEYDOWN || msg->message == WM_SYSKEYDOWN) {
-        QWidget *focusWidget = QWidget::find(msg->hwnd);
-        if (focusWidget) {
-            int key = msg->wParam;
-            if (!(key >= 'A' && key <= 'Z') && !(key >= '0' && key <= '9'))
-                key = qt_translateKeyCode(msg->wParam);
-
-            Qt::KeyboardModifiers modifiers = 0;
-            int modifierKey = 0;
-            if (GetKeyState(VK_SHIFT) < 0) {
-                modifierKey |= Qt::SHIFT;
-                modifiers |= Qt::ShiftModifier;
-            }
-            if (GetKeyState(VK_CONTROL) < 0) {
-                modifierKey |= Qt::CTRL;
-                modifiers |= Qt::ControlModifier;
-            }
-            if (GetKeyState(VK_MENU) < 0) {
-                modifierKey |= Qt::ALT;
-                modifiers |= Qt::AltModifier;
-            }
-            QKeySequence shortcutKey(modifierKey + key);
-            if (!shortcutKey.isEmpty()) {
-                QKeyEvent override(QEvent::ShortcutOverride, key, modifiers);
-                override.ignore();
-                QApplication::sendEvent(focusWidget, &override);
-                processed = override.isAccepted();
-
-                if (!processed) {
-                    QList<QAction*> actions = qFindChildren<QAction*>(focusWidget->window());
-                    for (int i = 0; i < actions.count() && !processed; ++i) {
-                        QAction *action = actions.at(i);
-                        if (!action->isEnabled() || action->shortcut() != shortcutKey)
-                            continue;
-                        QShortcutEvent event(shortcutKey, 0);
-                        processed = QApplication::sendEvent(action, &event);
-                    }
-                }
-                if (!processed) {
-                    QList<QShortcut*> shortcuts = qFindChildren<QShortcut*>(focusWidget->window());
-                    for (int i = 0; i < shortcuts.count() && !processed; ++i) {
-                        QShortcut *shortcut = shortcuts.at(i);
-                        if (!shortcut->isEnabled() || shortcut->key() != shortcutKey)
-                            continue;
-                        QShortcutEvent event(shortcutKey, shortcut->id());
-                        processed = QApplication::sendEvent(shortcut, &event);
-                    }
-                }
-            }
-        }
-    }
-
-    return CallNextHookEx(hhook, nCode, wParam, lParam);
-}
-
-extern "C" bool qtns_event(QtNPInstance *, NPEvent *)
-{
-    return false;
-}
-
-extern Q_CORE_EXPORT void qWinMsgHandler(QtMsgType t, const char* str);
-
-extern "C" void qtns_initialize(QtNPInstance*)
-{
-    if (!qApp) {
-        qInstallMsgHandler(qWinMsgHandler);
-        ownsqapp = true;
-	static int argc=0;
-	static char **argv={ 0 };
-	(void)new QApplication(argc, argv);
-
-        QT_WA({
-	    hhook = SetWindowsHookExW( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() );
-        }, {
-	    hhook = SetWindowsHookExA( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() );
-        });
-    }
-}
-
-extern "C" void qtns_destroy(QtNPInstance *)
-{
-}
-
-extern "C" void qtns_shutdown()
-{
-    if (!ownsqapp)
-        return;
-
-    // check if qApp still runs widgets (in other DLLs)
-    QWidgetList widgets = qApp->allWidgets();
-    int count = widgets.count();
-    for (int w = 0; w < widgets.count(); ++w) {
-        // ignore all Qt generated widgets
-        QWidget *widget = widgets.at(w);
-        if (widget->windowFlags() & Qt::Desktop)
-            count--;
-    }
-    if (count) // qApp still used
-        return;
-
-    delete qApp;
-    ownsqapp = false;
-    if ( hhook )
-        UnhookWindowsHookEx( hhook );
-    hhook = 0;
-}
-
-extern "C" void qtns_embed(QtNPInstance *This)
-{
-    Q_ASSERT(qobject_cast<QWidget*>(This->qt.object));
-
-    LONG oldLong = GetWindowLong(This->window, GWL_STYLE);
-    ::SetWindowLong(This->window, GWL_STYLE, oldLong | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
-    ::SetWindowLong(This->qt.widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
-    ::SetParent(This->qt.widget->winId(), This->window);
-}
-
-extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &)
-{
-    Q_ASSERT(qobject_cast<QWidget*>(This->qt.object));
-
-    This->qt.widget->setGeometry(QRect(0, 0, rect.width(), rect.height()));
-}
-
-/*
-extern "C" void qtns_print(QtNPInstance * This, NPPrint *printInfo)
-{
-    NPWindow* printWindow = &(printInfo->print.embedPrint.window);
-    void* platformPrint = printInfo->print.embedPrint.platformPrint;
-    // #### Nothing yet.
-}
-*/
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_x11.cpp b/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_x11.cpp
deleted file mode 100644
index c988a34..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_x11.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <QtGui/QX11EmbedWidget>
-
-#include "qtbrowserplugin.h"
-#include "qtbrowserplugin_p.h"
-
-#include "qtnpapi.h"
-
-#include <stdlib.h>
-
-static bool ownsqapp = false;
-static QMap<QtNPInstance*, QX11EmbedWidget*> clients;
-
-extern "C" bool qtns_event(QtNPInstance *, NPEvent *)
-{
-    return false;
-}
-
-extern "C" void qtns_initialize(QtNPInstance* This)
-{
-    if (!qApp) {
-        ownsqapp = true;
-        static int argc = 0;
-        static char **argv = {0};
-
-        // Workaround to avoid re-initilaziation of glib
-        char* envvar = qstrdup("QT_NO_THREADED_GLIB=1");
-        // Unavoidable memory leak; the variable must survive plugin unloading
-        ::putenv(envvar);
-
-        (void)new QApplication(argc, argv);
-    }
-    if (!clients.contains(This)) {
-        QX11EmbedWidget* client = new QX11EmbedWidget;
-        QHBoxLayout* layout = new QHBoxLayout(client);
-        layout->setMargin(0);
-        clients.insert(This, client);
-    }
-}
-
-extern "C" void qtns_destroy(QtNPInstance* This)
-{
-    QMap<QtNPInstance*, QX11EmbedWidget*>::iterator it = clients.find(This);
-    if (it == clients.end())
-        return;
-    delete it.value();
-    clients.erase(it);
-}
-
-extern "C" void qtns_shutdown()
-{
-    if (clients.count() > 0) {
-        QMap<QtNPInstance*, QX11EmbedWidget*>::iterator it = clients.begin();
-        while (it != clients.end()) {
-            delete it.value();
-            ++it;
-        }
-        clients.clear();
-    }
-
-    if (!ownsqapp)
-        return;
-
-    // check if qApp still runs widgets (in other DLLs)
-    QWidgetList widgets = qApp->allWidgets();
-    int count = widgets.count();
-    for (int w = 0; w < widgets.count(); ++w) {
-        // ignore all Qt generated widgets
-        QWidget *widget = widgets.at(w);
-        if (widget->windowFlags() & Qt::Desktop)
-            count--;
-    }
-    if (count) // qApp still used
-        return;
-
-    delete qApp;
-    ownsqapp = false;
-}
-
-extern "C" void qtns_embed(QtNPInstance *This)
-{
-    Q_ASSERT(qobject_cast<QWidget*>(This->qt.object));
-
-    QMap<QtNPInstance*, QX11EmbedWidget*>::iterator it = clients.find(This);
-    if (it == clients.end())
-        return;
-    QX11EmbedWidget* client = it.value();
-    This->qt.widget->setParent(client);
-    client->layout()->addWidget(This->qt.widget);
-    client->embedInto(This->window);
-    client->show();
-}
-
-extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &)
-{
-    Q_ASSERT(qobject_cast<QWidget*>(This->qt.object));
-
-    QMap<QtNPInstance*, QX11EmbedWidget*>::iterator it = clients.find(This);
-    if (it == clients.end())
-        return;
-    QX11EmbedWidget* client = it.value();
-    client->setGeometry(QRect(0, 0, rect.width(), rect.height()));
-}
-
-/*
-extern "C" void qtns_print(QtNPInstance * This, NPPrint *printInfo)
-{
-    NPWindow* printWindow = &(printInfo->print.embedPrint.window);
-    void* platformPrint = printInfo->print.embedPrint.platformPrint;
-    // #### Nothing yet.
-}
-*/
diff --git a/x2gobrowserplugin-2.4_1/src/qtbrowserpluginax.def b/x2gobrowserplugin-2.4_1/src/qtbrowserpluginax.def
deleted file mode 100644
index df2dedb..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtbrowserpluginax.def
+++ /dev/null
@@ -1,9 +0,0 @@
-EXPORTS
-	NP_GetEntryPoints   @1
-	NP_Initialize       @2
-	NP_Shutdown         @3
-	DllCanUnloadNow	     PRIVATE
-	DllGetClassObject    PRIVATE
-	DllRegisterServer    PRIVATE
-	DllUnregisterServer  PRIVATE
-	DumpIDL		     PRIVATE
diff --git a/x2gobrowserplugin-2.4_1/src/qtnpapi.h b/x2gobrowserplugin-2.4_1/src/qtnpapi.h
deleted file mode 100644
index d9b5357..0000000
--- a/x2gobrowserplugin-2.4_1/src/qtnpapi.h
+++ /dev/null
@@ -1,555 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info at nokia.com)
-**
-** This file is part of a Qt Solutions component.
-**
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-****************************************************************************/
-
-// see http://www.mozilla.org/projects/plugins/ for details regarding the structs and API prototypes
-
-#ifndef QTNPAPI_H
-#define QTNPAPI_H
-
-// Plugin API version
-#define NP_VERSION_MAJOR 0
-#define NP_VERSION_MINOR 17
-
-// basic types
-typedef unsigned short uint16;
-typedef short int16;
-typedef unsigned int uint32;
-typedef int int32;
-
-typedef unsigned char NPBool;
-typedef int16 NPError;
-typedef int16 NPReason;
-typedef char* NPMIMEType;
-
-typedef void *NPRegion;
-typedef void *NPIdentifier;
-
-// Java stuff
-typedef void* jref;
-typedef void* JRIGlobalRef;
-typedef void* JRIEnv; // ### not quite correct, but we don't use it anyway
-
-// NP-types
-struct NPP_t
-{
-    void* pdata; // plug-in private data
-    void* ndata; // browser private data
-};
-typedef NPP_t* NPP;
-
-struct NPRect
-{
-    uint16	top;
-    uint16	left;
-    uint16	bottom;
-    uint16	right;
-};
-
-#ifdef Q_WS_WIN
-struct NPEvent
-{
-    uint16 event;
-    uint32 wParam;
-    uint32 lParam;
-};
-#elif defined(Q_WS_X11)
-#  include <X11/Xlib.h>
-typedef XEvent NPEvent;
-#elif defined (Q_WS_MAC)
-typedef struct EventRecord NPEvent;
-#endif
-
-// Variable names for NPP_GetValue
-enum NPPVariable {
-    NPPVpluginNameString = 1,
-    NPPVpluginDescriptionString,
-    NPPVpluginWindowBool,
-    NPPVpluginTransparentBool,
-    NPPVjavaClass,
-    NPPVpluginWindowSize,
-    NPPVpluginTimerInterval,
-
-    NPPVpluginScriptableInstance = 10,
-    NPPVpluginScriptableIID = 11,
-
-    // Introduced in Mozilla 0.9.9
-    NPPVjavascriptPushCallerBool = 12,
-
-    // Introduced in Mozilla 1.0
-    NPPVpluginKeepLibraryInMemory = 13,
-    NPPVpluginNeedsXEmbed         = 14,
-
-    // Introduced in Firefox 1.0
-    NPPVpluginScriptableNPObject  = 15,
-    NPPVformValue = 16
-} ;
-
-// Variable names for NPN_GetValue
-enum NPNVariable {
-    NPNVxDisplay = 1,
-    NPNVxtAppContext,
-    NPNVnetscapeWindow,
-    NPNVjavascriptEnabledBool,
-    NPNVasdEnabledBool,
-    NPNVisOfflineBool,
-
-    // Introduced in Mozilla 0.9.4
-    NPNVserviceManager = 10,
-    NPNVDOMElement     = 11,
-    // Introduced in Mozilla 1.2
-    NPNVDOMWindow      = 12,
-    NPNVToolkit        = 13,
-    NPNVSupportsXEmbedBool = 14,
-
-    NPNVWindowNPObject = 15,
-    NPNVPluginElementNPObject = 16
-};
-
-
-enum NPWindowType {
-    NPWindowTypeWindow = 1, // Windowed plug-in. The window field holds a platform-specific handle to a window.
-    NPWindowTypeDrawable    // Windows: HDC; Mac OS: pointer to NP_Port structure.
-};
-
-struct NPWindow
-{
-    // Platform-specific handle to a native window element in the browser's window hierarchy
-    // XEmbed: "In the NPP_SetWindow call, the window parameter will be the XID of the hosting
-    // XEmbed window. As an implementation note, this is really the XID of a GtkSocket window."
-    void* window;
-    // The x and y coordinates for the top left corner of the plug-in relative to the page
-    // (and thus relative to the origin of the drawable)
-    uint32 x, y;
-    // The height and width of the plug-in area. Should not be modified by the plug-in.
-    uint32 width, height;
-    // Used by MAC only (Clipping rectangle in port coordinates)
-    NPRect clipRect;
-#ifdef Q_WS_X11
-    // Contains information about the plug-in's Unix window environment
-    // points to an NPSetWindowCallbackStruct
-    void* ws_info; // probably obsolete with XEmbed
-#endif
-    // The type field indicates the NPWindow type of the target area
-    NPWindowType type;
-};
-
-struct NPPort
-{
-    void *port;
-    int32 portx;
-    int32 porty;
-};
-
-struct NPFullPrint
-{
-    NPBool pluginPrinted;	// true if plugin handled fullscreen printing
-    NPBool printOne;            // true if plugin should print one copy to default printer
-    void* platformPrint;	// Platform-specific printing info
-};
-
-struct NPEmbedPrint
-{
-    NPWindow window;
-    void* platformPrint;	// Platform-specific printing info
-};
-
-struct NPPrint
-{
-    uint16 mode; // NP_FULL or NP_EMBED
-    union {
-        NPFullPrint fullPrint;
-        NPEmbedPrint embedPrint;
-    } print;
-};
-
-struct NPSavedData
-{
-    int32 len;
-    void* buf;
-};
-
-struct NPStream
-{
-    void* pdata;
-    void* ndata;
-    const char* url;
-    uint32 end;
-    uint32 lastmodified;
-    void* notifyData;
-};
-
-struct NPByteRange
-{
-    int32 offset; // negative offset means from the end
-    uint32 length;
-    NPByteRange* next;
-};
-
-// Values for mode passed to NPP_New:
-#define NP_EMBED      1
-#define NP_FULL       2
-
-// Values for stream type passed to NPP_NewStream:
-#define NP_NORMAL     1
-#define NP_SEEK       2
-#define NP_ASFILE     3
-#define NP_ASFILEONLY 4
-
-#define NP_MAXREADY (((unsigned)(~0)<<1)>>1)
-
-// Values of type NPError:
-#define NPERR_NO_ERROR                      0
-#define NPERR_GENERIC_ERROR                 1
-#define NPERR_INVALID_INSTANCE_ERROR        2
-#define NPERR_INVALID_FUNCTABLE_ERROR       3
-#define NPERR_MODULE_LOAD_FAILED_ERROR      4
-#define NPERR_OUT_OF_MEMORY_ERROR           5
-#define NPERR_INVALID_PLUGIN_ERROR          6
-#define NPERR_INVALID_PLUGIN_DIR_ERROR      7
-#define NPERR_INCOMPATIBLE_VERSION_ERROR    8
-#define NPERR_INVALID_PARAM                 9
-#define NPERR_INVALID_URL                   10
-#define NPERR_FILE_NOT_FOUND                11
-#define NPERR_NO_DATA                       12
-#define NPERR_STREAM_NOT_SEEKABLE           13
-
-// Values of type NPReason:
-#define NPRES_DONE                          0
-#define NPRES_NETWORK_ERR                   1
-#define NPRES_USER_BREAK                    2
-
-// Version feature information
-#define NPVERS_HAS_STREAMOUTPUT	            8
-#define NPVERS_HAS_NOTIFICATION             9
-#define NPVERS_HAS_LIVECONNECT              9
-#define NPVERS_WIN16_HAS_LIVECONNECT        10
-
-// Mac specifics
-#ifdef Q_WS_MAC
-# define getFocusEvent       (osEvt + 16)
-# define loseFocusEvent      (osEvt + 17)
-# define adjustCursorEvent   (osEvt + 18)
-# define QTBROWSER_USE_CFM
-#endif
-
-#ifdef QTBROWSER_USE_CFM
- extern void *CFMFunctionPointerForMachOFunctionPointer(void*);
- extern void DisposeCFMFunctionPointer(void *);
- extern void* MachOFunctionPointerForCFMFunctionPointer(void*);
-# define FUNCTION_POINTER(t) void*
-# define MAKE_FUNCTION_POINTER(f) CFMFunctionPointerForMachOFunctionPointer((void*)f)
-# define DESTROY_FUNCTION_POINTER(n) DisposeCFMFunctionPointer(n)
-# define FIND_FUNCTION_POINTER(t, n) (*(t)MachOFunctionPointerForCFMFunctionPointer(n))
-#else
-# define FUNCTION_POINTER(t) t
-# define MAKE_FUNCTION_POINTER(f) f
-# define DESTROY_FUNCTION_POINTER(n)
-# define FIND_FUNCTION_POINTER(t, n) (*n)
-#endif
-
-// Plugin function prototypes
-typedef NPError	(*NPP_NewFP)(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved);
-typedef NPError	(*NPP_DestroyFP)(NPP instance, NPSavedData** save);
-typedef NPError	(*NPP_SetWindowFP)(NPP instance, NPWindow* window);
-typedef NPError	(*NPP_NewStreamFP)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype);
-typedef NPError	(*NPP_DestroyStreamFP)(NPP instance, NPStream* stream, NPReason reason);
-typedef void (*NPP_StreamAsFileFP)(NPP instance, NPStream* stream, const char* fname);
-typedef int32 (*NPP_WriteReadyFP)(NPP instance, NPStream* stream);
-typedef int32 (*NPP_WriteFP)(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer);
-typedef void (*NPP_PrintFP)(NPP instance, NPPrint* platformPrint);
-typedef int16 (*NPP_HandleEventFP)(NPP instance, NPEvent* event);
-typedef void (*NPP_URLNotifyFP)(NPP instance, const char* url, NPReason reason, void* notifyData);
-typedef NPError (*NPP_GetValueFP)(NPP instance, NPPVariable variable, void *value);
-typedef NPError (*NPP_SetValueFP)(NPP instance, NPPVariable variable, void *value);
-
-// table of functions implemented by the plugin
-struct NPPluginFuncs {
-    uint16 size;
-    uint16 version;
-    FUNCTION_POINTER(NPP_NewFP) newp;
-    FUNCTION_POINTER(NPP_DestroyFP) destroy;
-    FUNCTION_POINTER(NPP_SetWindowFP) setwindow;
-    FUNCTION_POINTER(NPP_NewStreamFP) newstream;
-    FUNCTION_POINTER(NPP_DestroyStreamFP) destroystream;
-    FUNCTION_POINTER(NPP_StreamAsFileFP) asfile;
-    FUNCTION_POINTER(NPP_WriteReadyFP) writeready;
-    FUNCTION_POINTER(NPP_WriteFP) write;
-    FUNCTION_POINTER(NPP_PrintFP) print;
-    FUNCTION_POINTER(NPP_HandleEventFP) event;
-    FUNCTION_POINTER(NPP_URLNotifyFP) urlnotify;
-    JRIGlobalRef javaClass;
-    FUNCTION_POINTER(NPP_GetValueFP) getvalue;
-    FUNCTION_POINTER(NPP_SetValueFP) setvalue;
-} ;
-
-
-// forward declarations
-struct NPObject;
-struct NPClass;
-struct NPVariant;
-struct NPString;
-struct QtNPInstance;
-
-// NPObject is the type used to express objects exposed by either
-// the plugin or by the browser. Implementation specific  (i.e. plugin
-// specific, or browser specific) members can come after the struct.
-// In our case, the plugin specific member (aka QObject) lives in NPClass.
-struct NPObject
-{
-    NPClass *_class;
-    uint32 refCount;
-};
-
-// NPClass is what virtual function tables would look like if
-// there was no C++...
-typedef NPObject *(*NPAllocateFP)(NPP npp, NPClass *aClass);
-typedef void (*NPDeallocateFP)(NPObject *npobj);
-typedef void (*NPInvalidateFP)(NPObject *npobj);
-typedef bool (*NPHasMethodFP)(NPObject *npobj, NPIdentifier name);
-typedef bool (*NPInvokeFP)(NPObject *npobj, NPIdentifier name,const NPVariant *args, uint32 argCount,NPVariant *result);
-typedef bool (*NPInvokeDefaultFP)(NPObject *npobj,const NPVariant *args,uint32 argCount,NPVariant *result);
-typedef bool (*NPHasPropertyFP)(NPObject *npobj, NPIdentifier name);
-typedef bool (*NPGetPropertyFP)(NPObject *npobj, NPIdentifier name, NPVariant *result);
-typedef bool (*NPSetPropertyFP)(NPObject *npobj, NPIdentifier name, const NPVariant *value);
-typedef bool (*NPRemovePropertyFP)(NPObject *npobj, NPIdentifier name);
-
-#define NP_CLASS_STRUCT_VERSION 1
-
-struct NPClass
-{
-    NPClass(QtNPInstance *qtnp);
-    ~NPClass();
-
-    // NP API
-    uint32 structVersion;
-    NPAllocateFP allocate;
-    NPDeallocateFP deallocate;
-    NPInvalidateFP invalidate;
-    NPHasMethodFP hasMethod;
-    NPInvokeFP invoke;
-    NPInvokeDefaultFP invokeDefault;
-    NPHasPropertyFP hasProperty;
-    NPGetPropertyFP getProperty;
-    NPSetPropertyFP setProperty;
-    NPRemovePropertyFP removeProperty;
-
-    // User data lives here
-    QtNPInstance *qtnp;
-    bool delete_qtnp;
-};
-
-struct NPString {
-    const char *utf8characters;
-    uint32 utf8length;
-
-    // Qt specific conversion routines
-    // (no c'tor as it would be misleading that there is no d'tor in spite of memory allocation)
-    static NPString fromQString(const QString &qstr);
-    operator QString() const;
-};
-
-struct NPVariant {
-    enum Type {
-        Void,
-        Null,
-        Boolean,
-        Int32,
-        Double,
-        String,
-        Object
-    };
-    Type type;
-    union {
-        bool boolValue;
-        uint32 intValue;
-        double doubleValue;
-        NPString stringValue;
-        NPObject *objectValue;
-    } value;
-
-    NPVariant()
-        : type(Null)
-    {}
-
-    // Qt specific conversion routines
-    // (no c'tor as the NPP instance is required)
-    static NPVariant fromQVariant(QtNPInstance *This, const QVariant &qvariant);
-    operator QVariant() const;
-
-private:
-};
-
-#ifdef Q_WS_X11
-extern "C" {
-#endif
-
-// Browser function prototypes
-typedef NPError	(*NPN_GetURLFP)(NPP instance, const char* url, const char* window);
-typedef NPError (*NPN_PostURLFP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file);
-typedef NPError	(*NPN_RequestReadFP)(NPStream* stream, NPByteRange* rangeList);
-typedef NPError	(*NPN_NewStreamFP)(NPP instance, NPMIMEType type, const char* window, NPStream** stream);
-typedef int32 (*NPN_WriteFP)(NPP instance, NPStream* stream, int32 len, void* buffer);
-typedef NPError (*NPN_DestroyStreamFP)(NPP instance, NPStream* stream, NPReason reason);
-typedef void (*NPN_StatusFP)(NPP instance, const char* message);
-typedef const char* (*NPN_UserAgentFP)(NPP instance);
-typedef void* (*NPN_MemAllocFP)(uint32 size);
-typedef void (*NPN_MemFreeFP)(void* ptr);
-typedef uint32 (*NPN_MemFlushFP)(uint32 size);
-typedef void (*NPN_ReloadPluginsFP)(NPBool reloadPages);
-typedef JRIEnv* (*NPN_GetJavaEnvFP)(void);
-typedef jref (*NPN_GetJavaPeerFP)(NPP instance);
-typedef NPError	(*NPN_GetURLNotifyFP)(NPP instance, const char* url, const char* window, void* notifyData);
-typedef NPError (*NPN_PostURLNotifyFP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData);
-typedef NPError	(*NPN_GetValueFP)(NPP instance, NPNVariable variable, void *ret_value);
-typedef NPError (*NPN_SetValueFP)(NPP instance, NPPVariable variable, void *ret_value);
-typedef void (*NPN_InvalidateRectFP)(NPP instance, NPRect *rect);
-typedef void (*NPN_InvalidateRegionFP)(NPP instance, NPRegion *region);
-typedef void (*NPN_ForceRedrawFP)(NPP instance);
-typedef NPIdentifier (*NPN_GetStringIdentifierFP)(const char* name);
-typedef void (*NPN_GetStringIdentifiersFP)(const char** names, int32 nameCount, NPIdentifier* identifiers);
-typedef NPIdentifier (*NPN_GetIntIdentifierFP)(int32 intid);
-typedef bool (*NPN_IdentifierIsStringFP)(NPIdentifier identifier);
-typedef char* (*NPN_UTF8FromIdentifierFP)(NPIdentifier identifier);
-typedef int32 (*NPN_IntFromIdentifierFP)(NPIdentifier identifier);
-typedef NPObject* (*NPN_CreateObjectFP)(NPP npp, NPClass *aClass);
-typedef NPObject* (*NPN_RetainObjectFP)(NPObject *obj);
-typedef void (*NPN_ReleaseObjectFP)(NPObject *obj);
-typedef bool (*NPN_InvokeFP)(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result);
-typedef bool (*NPN_InvokeDefaultFP)(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result);
-typedef bool (*NPN_EvaluateFP)(NPP npp, NPObject *obj, NPString *script, NPVariant *result);
-typedef bool (*NPN_GetPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result);
-typedef bool (*NPN_SetPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value);
-typedef bool (*NPN_RemovePropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName);
-typedef bool (*NPN_HasPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName);
-typedef bool (*NPN_HasMethodFP)(NPP npp, NPObject *obj, NPIdentifier methodName);
-typedef void (*NPN_ReleaseVariantValueFP)(NPVariant *variant);
-typedef void (*NPN_SetExceptionFP)(NPObject *obj, const char *message);
-
-// function declarations
-NPError	NPN_GetURL(NPP instance, const char* url, const char* window);
-NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file);
-NPError	NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
-NPError	NPN_NewStream(NPP instance, NPMIMEType type, const char* window, NPStream** stream);
-int32 NPN_Write(NPP instance, NPStream* stream, int32 len, void* buffer);
-NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPReason reason);
-void NPN_Status(NPP instance, const char* message);
-const char* NPN_UserAgent(NPP instance);
-void* NPN_MemAlloc(uint32 size);
-void NPN_MemFree(void* ptr);
-uint32 NPN_MemFlush(uint32 size);
-void NPN_ReloadPlugins(NPBool reloadPages);
-JRIEnv* NPN_GetJavaEnv(void);
-jref NPN_GetJavaPeer(NPP instance);
-NPError	NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData);
-NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData);
-NPError	NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value);
-NPError NPN_SetValue(NPP instance, NPPVariable variable, void *ret_value);
-void NPN_InvalidateRect(NPP instance, NPRect *rect);
-void NPN_InvalidateRegion(NPP instance, NPRegion *region);
-void NPN_ForceRedraw(NPP instance);
-NPIdentifier NPN_GetStringIdentifier(const char* name);
-void NPN_GetStringIdentifiers(const char** names, int32 nameCount, NPIdentifier* identifiers);
-NPIdentifier NPN_GetIntIdentifier(int32 intid);
-bool NPN_IdentifierIsString(NPIdentifier identifier);
-char* NPN_UTF8FromIdentifier(NPIdentifier identifier);
-int32 NPN_IntFromIdentifier(NPIdentifier identifier);
-NPObject* NPN_CreateObject(NPP npp, NPClass *aClass);
-NPObject* NPN_RetainObject(NPObject *obj);
-void NPN_ReleaseObject(NPObject *obj);
-bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result);
-bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result);
-bool NPN_Evaluate(NPP npp, NPObject *obj, NPString *script, NPVariant *result);
-bool NPN_GetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result);
-bool NPN_SetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value);
-bool NPN_RemoveProperty(NPP npp, NPObject *obj, NPIdentifier propertyName);
-bool NPN_HasProperty(NPP npp, NPObject *obj, NPIdentifier propertyName);
-bool NPN_HasMethod(NPP npp, NPObject *obj, NPIdentifier methodName);
-void NPN_ReleaseVariantValue(NPVariant *variant);
-void NPN_SetException(NPObject *obj, const char *message);
-
-// table of function implemented by the browser
-struct NPNetscapeFuncs {
-    uint16 size;
-    uint16 version;
-    FUNCTION_POINTER(NPN_GetURLFP) geturl;
-    FUNCTION_POINTER(NPN_PostURLFP) posturl;
-    FUNCTION_POINTER(NPN_RequestReadFP) requestread;
-    FUNCTION_POINTER(NPN_NewStreamFP) newstream;
-    FUNCTION_POINTER(NPN_WriteFP) write;
-    FUNCTION_POINTER(NPN_DestroyStreamFP) destroystream;
-    FUNCTION_POINTER(NPN_StatusFP) status;
-    FUNCTION_POINTER(NPN_UserAgentFP) uagent;
-    FUNCTION_POINTER(NPN_MemAllocFP) memalloc;
-    FUNCTION_POINTER(NPN_MemFreeFP) memfree;
-    FUNCTION_POINTER(NPN_MemFlushFP) memflush;
-    FUNCTION_POINTER(NPN_ReloadPluginsFP) reloadplugins;
-    FUNCTION_POINTER(NPN_GetJavaEnvFP) getJavaEnv;
-    FUNCTION_POINTER(NPN_GetJavaPeerFP) getJavaPeer;
-    FUNCTION_POINTER(NPN_GetURLNotifyFP) geturlnotify;
-    FUNCTION_POINTER(NPN_PostURLNotifyFP) posturlnotify;
-    FUNCTION_POINTER(NPN_GetValueFP) getvalue;
-    FUNCTION_POINTER(NPN_SetValueFP) setvalue;
-    FUNCTION_POINTER(NPN_InvalidateRectFP) invalidaterect;
-    FUNCTION_POINTER(NPN_InvalidateRegionFP) invalidateregion;
-    FUNCTION_POINTER(NPN_ForceRedrawFP) forceredraw;
-    FUNCTION_POINTER(NPN_GetStringIdentifierFP) getstringidentifier;
-    FUNCTION_POINTER(NPN_GetStringIdentifiersFP) getstringidentifiers;
-    FUNCTION_POINTER(NPN_GetIntIdentifierFP) getintidentifier;
-    FUNCTION_POINTER(NPN_IdentifierIsStringFP) identifierisstring;
-    FUNCTION_POINTER(NPN_UTF8FromIdentifierFP) utf8fromidentifier;
-    FUNCTION_POINTER(NPN_IntFromIdentifierFP) intfromidentifier;
-    FUNCTION_POINTER(NPN_CreateObjectFP) createobject;
-    FUNCTION_POINTER(NPN_RetainObjectFP) retainobject;
-    FUNCTION_POINTER(NPN_ReleaseObjectFP) releaseobject;
-    FUNCTION_POINTER(NPN_InvokeFP) invoke;
-    FUNCTION_POINTER(NPN_InvokeDefaultFP) invokedefault;
-    FUNCTION_POINTER(NPN_EvaluateFP) evaluate;
-    FUNCTION_POINTER(NPN_GetPropertyFP) getproperty;
-    FUNCTION_POINTER(NPN_SetPropertyFP) setproperty;
-    FUNCTION_POINTER(NPN_RemovePropertyFP) removeproperty;
-    FUNCTION_POINTER(NPN_HasPropertyFP) hasproperty;
-    FUNCTION_POINTER(NPN_HasMethodFP) hasmethod;
-    FUNCTION_POINTER(NPN_ReleaseVariantValueFP) releasevariantvalue;
-    FUNCTION_POINTER(NPN_SetExceptionFP) setexception;
-};
-
-#ifdef Q_WS_X11
-}
-#endif
-
-#endif
diff --git a/x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc b/x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc
deleted file mode 100644
index c037281..0000000
--- a/x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc
+++ /dev/null
@@ -1,37 +0,0 @@
-1 TYPELIB "x2goplugin.rc"
-
-1 VERSIONINFO
- FILEVERSION 4.1.2.0
- PRODUCTVERSION 4.1.2.0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904e4"
-        BEGIN
-            VALUE "CompanyName", "Obviously Nice\0"
-            VALUE "FileDescription", "Allows you to start X2Go session in a webbrowser\0"
-            VALUE "FileExtents", "x2go\0"
-            VALUE "FileOpenName", "Configuration File for X2Go Session (*.x2go)\0"
-            VALUE "FileVersion", "4, 1, 2, 0\0"
-            VALUE "InternalName", "x2goplugin\0"
-            VALUE "LegalCopyright", "Copyright � 2010-2018 X2Go Project\0"
-            VALUE "MIMEType", "application/x2go\0"
-            VALUE "OriginalFilename", "npx2goplugin.dll\0"
-            VALUE "ProductName", "X2GoClient Plug-in 4.1.2.0\0"
-            VALUE "ProductVersion", "4, 1, 2, 0\0"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1252
-    END
-END

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git


More information about the x2go-commits mailing list