[kdebase-workspace] Fix empty patch kde-workspace-4.7.80-wac-html-widgets.patch

Radek Novacek rnovacek at fedoraproject.org
Thu Nov 24 08:36:00 UTC 2011


commit 886ea3fc22e96c8190c1fdf2b2aa04ccee7bcec4
Author: Radek Novacek <rnovacek at redhat.com>
Date:   Thu Nov 24 09:35:50 2011 +0100

    Fix empty patch kde-workspace-4.7.80-wac-html-widgets.patch

 kde-workspace-4.7.80-wac-html-widgets.patch |  676 +++++++++++++++++++++++++++
 1 files changed, 676 insertions(+), 0 deletions(-)
---
diff --git a/kde-workspace-4.7.80-wac-html-widgets.patch b/kde-workspace-4.7.80-wac-html-widgets.patch
index e69de29..2eaeaca 100644
--- a/kde-workspace-4.7.80-wac-html-widgets.patch
+++ b/kde-workspace-4.7.80-wac-html-widgets.patch
@@ -0,0 +1,676 @@
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/CMakeLists.txt.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/CMakeLists.txt
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/CMakeLists.txt.wac-html-widgets	2011-07-27 20:35:44.000000000 +0200
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/CMakeLists.txt	2011-11-24 09:25:25.941032887 +0100
+@@ -26,8 +26,22 @@ kde4_add_plugin(plasma_packagestructure_
+ target_link_libraries(plasma_packagestructure_dashboard  ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${QT_QTWEBKIT_LIBRARY} )
+ install(TARGETS plasma_packagestructure_dashboard DESTINATION ${PLUGIN_INSTALL_DIR})
+ 
++set(wacapplet_SRCS
++    webpage.cpp webapplet.cpp wacapplet.cpp wacpackage.cpp)
++kde4_add_plugin(plasma_appletscriptengine_wac ${wacapplet_SRCS})
++target_link_libraries(plasma_appletscriptengine_wac ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${QT_QTWEBKIT_LIBRARY} )
++install(TARGETS plasma_appletscriptengine_wac DESTINATION ${PLUGIN_INSTALL_DIR})
++
++set(wacpackage_SRCS
++    wacpackage.cpp wac_plugin.cpp)
++kde4_add_plugin(plasma_packagestructure_wac ${wacpackage_SRCS})
++target_link_libraries(plasma_packagestructure_wac  ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${QT_QTWEBKIT_LIBRARY} )
++install(TARGETS plasma_packagestructure_wac DESTINATION ${PLUGIN_INSTALL_DIR})
++
+ install(FILES plasma-scriptengine-applet-web.desktop
+               plasma-scriptengine-applet-dashboard.desktop
++              plasma-scriptengine-applet-wac.desktop
+               plasma-packagestructure-dashboard.desktop
+               plasma-packagestructure-web.desktop
++              plasma-packagestructure-wac.desktop
+         DESTINATION ${SERVICES_INSTALL_DIR})
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-packagestructure-wac.desktop.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-packagestructure-wac.desktop
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-packagestructure-wac.desktop.wac-html-widgets	2011-11-24 09:25:25.941032887 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-packagestructure-wac.desktop	2011-11-24 09:25:25.941032887 +0100
+@@ -0,0 +1,18 @@
++[Desktop Entry]
++Name=Wac web Widgets
++Comment=Wac HTML widget
++Type=Service
++ServiceTypes=Plasma/PackageStructure
++
++X-KDE-Library=plasma_packagestructure_wac
++X-KDE-PluginInfo-Author=Marco Martin
++X-KDE-PluginInfo-Email=mart at kde.org
++X-KDE-PluginInfo-Name=wac
++X-KDE-PluginInfo-Version=pre0.1
++X-KDE-PluginInfo-Website=http://plasma.kde.org/
++X-KDE-PluginInfo-Category=Applet
++X-KDE-PluginInfo-Depends=
++X-KDE-PluginInfo-License=BSD
++X-KDE-PluginInfo-EnabledByDefault=true
++X-Plasma-PackageFileFilter=*
++X-Plasma-PackageFileMimetypes=application/zip
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-scriptengine-applet-wac.desktop.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-scriptengine-applet-wac.desktop
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-scriptengine-applet-wac.desktop.wac-html-widgets	2011-11-24 09:25:25.942032913 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/plasma-scriptengine-applet-wac.desktop	2011-11-24 09:25:25.942032913 +0100
+@@ -0,0 +1,20 @@
++[Desktop Entry]
++Name=Wac web widget
++Comment=Support for the Wac HTML5 widgets
++Type=Service
++ServiceTypes=Plasma/ScriptEngine
++Icon=internet-web-browser
++
++X-KDE-Library=plasma_appletscriptengine_wac
++X-KDE-PluginInfo-Author=Marco Martin
++X-KDE-PluginInfo-Email=mart at kde.org
++X-KDE-PluginInfo-Name=wac
++X-KDE-PluginInfo-Version=pre0.1
++X-KDE-PluginInfo-Website=http://plasma.kde.org/
++X-KDE-PluginInfo-Category=Applet
++X-KDE-PluginInfo-Depends=
++X-KDE-PluginInfo-License=BSD
++X-KDE-PluginInfo-EnabledByDefault=true
++X-Plasma-API=wac
++X-Plasma-ComponentTypes=Applet
++X-Plasma-PackageFormat=wac
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.cpp.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.cpp
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.cpp.wac-html-widgets	2011-11-24 09:25:25.942032913 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.cpp	2011-11-24 09:25:25.942032913 +0100
+@@ -0,0 +1,72 @@
++/*
++Copyright (c) 2007 Zack Rusin <zack at kde.org>
++Copyright (c) 2008 Beat Wolf <asraniel at fryx.ch>
++Copyright (C) 2011 Marco Martin <mart at kde.org>
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
++ */
++#include "wacapplet.h"
++
++#include <QWebFrame>
++#include <QFile>
++#include <QByteArray>
++
++#include <KGlobal>
++#include <KStandardDirs>
++
++#include <Plasma/WebView>
++#include <Plasma/Applet>
++#include <Plasma/Package>
++
++#include "dashboardjs.h"
++
++WacApplet::WacApplet(QObject *parent, const QVariantList &args)
++    : WebApplet(parent, args)
++{
++}
++
++WacApplet::~WacApplet()
++{
++}
++
++bool WacApplet::init()
++{
++    //applet()->setAspectRatioMode(Plasma::FixedSize);
++    return WebApplet::init();
++    applet()->setBackgroundHints(Plasma::Applet::StandardBackground);
++}
++
++void WacApplet::loadFinished(bool success)
++{
++    WebApplet::loadFinished(success);
++    if (success) {
++        view()->resize(view()->mainFrame()->contentsSize());
++        applet()->resize(view()->mainFrame()->contentsSize());
++    }
++}
++
++void WacApplet::constraintsEvent(Plasma::Constraints constraints)
++{
++    if (constraints & Plasma::FormFactorConstraint) {
++       // applet()->setBackgroundHints(Plasma::Applet::NoBackground);
++    }
++}
++
++
++#include "wacapplet.moc"
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.h.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.h
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.h.wac-html-widgets	2011-11-24 09:25:25.942032913 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacapplet.h	2011-11-24 09:25:25.942032913 +0100
+@@ -0,0 +1,51 @@
++/*
++Copyright (c) 2007 Zack Rusin <zack at kde.org>
++Copyright (C) 2011 Marco Martin <mart at kde.org>
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
++ */
++#ifndef WACAPPLET_H
++#define WACAPPLET_H
++
++#include "webapplet.h"
++#include "bundle.h"
++
++#include "dashboardjs.h"
++
++#include <Plasma/DataEngine>
++
++#include <QtGui/QWidget>
++
++class WacApplet : public WebApplet
++{
++    Q_OBJECT
++public:
++    WacApplet(QObject *parent, const QVariantList &args);
++    ~WacApplet();
++
++    bool init();
++
++protected Q_SLOTS:
++    virtual void loadFinished(bool success);
++    virtual void constraintsEvent(Plasma::Constraints constraints);
++};
++
++K_EXPORT_PLASMA_APPLETSCRIPTENGINE(wac, WacApplet)
++
++#endif
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.cpp.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.cpp
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.cpp.wac-html-widgets	2011-11-24 09:25:25.944032965 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.cpp	2011-11-24 09:25:25.944032965 +0100
+@@ -0,0 +1,331 @@
++/*
++Copyright (c) 2007 Zack Rusin <zack at kde.org>
++Copyright (C) 2011 Marco Martin <mart at kde.org>
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
++ */
++
++#include "wacpackage.h"
++
++#include <QBuffer>
++#include <QDebug>
++#include <QDir>
++#include <QFile>
++#include <QXmlStreamReader>
++
++#include <KDebug>
++
++#include <KIO/CopyJob>
++#include <KIO/Job>
++
++#include <Plasma/PackageMetadata>
++#include <Plasma/Package>
++
++void recursive_print(const KArchiveDirectory *dir, const QString &path)
++{
++    const QStringList l = dir->entries();
++    QStringList::const_iterator it = l.constBegin();
++    for (; it != l.end(); ++it)
++    {
++        const KArchiveEntry* entry = dir->entry((*it));
++        printf("mode=%07o %s %s size: %lld pos: %lld %s%s isdir=%d%s",
++               entry->permissions(),
++               entry->user().toLatin1().constData(),
++               entry->group().toLatin1().constData(),
++               entry->isDirectory() ? 0 : ((KArchiveFile*)entry)->size(),
++               entry->isDirectory() ? 0 : ((KArchiveFile*)entry)->position(),
++               path.toLatin1().constData(),
++               (*it).toLatin1().constData(), entry->isDirectory(),
++               entry->symLinkTarget().isEmpty() ? "" :
++               QString(" symlink: %1").arg(
++                   entry->symLinkTarget()).toLatin1().constData());
++
++        //if (!entry->isDirectory()) printf("%d",
++        //     ((KArchiveFile*)entry)->size());
++        printf("\n");
++        if (entry->isDirectory())
++            recursive_print((KArchiveDirectory *)entry, path+(*it)+'/');
++    }
++}
++
++
++WacPackage::WacPackage(const QString &path)
++    : PackageStructure(0, "WacWidget"),
++      m_isValid(false),
++      m_width(0), m_height(0)
++{
++    setContentsPrefix(QString());
++    QFile f(path);
++    f.open(QIODevice::ReadOnly);
++    m_data = f.readAll();
++    f.close();
++    initTempDir();
++    open();
++}
++
++WacPackage::WacPackage(const QByteArray &data)
++    : PackageStructure(0, "WacWidget"),
++      m_isValid(false),
++      m_width(0),
++      m_height(0)
++{
++    setContentsPrefix(QString());
++    m_data = data;
++    initTempDir();
++    open();
++}
++
++WacPackage::WacPackage(QObject *parent, QVariantList args)
++    : PackageStructure(parent, "WacWidget"),
++      m_isValid(false),
++      m_tempDir(0),
++      m_width(0),
++      m_height(0)
++{
++    Q_UNUSED(args)
++    setContentsPrefix(QString());
++}
++
++WacPackage::~WacPackage()
++{
++    close();
++}
++
++void WacPackage::setData(const QByteArray &data)
++{
++    m_data = data;
++    close();
++    open();
++}
++
++QByteArray WacPackage::data() const
++{
++    return m_data;
++}
++
++bool WacPackage::open()
++{
++    if (!m_tempDir) {
++        initTempDir();
++    }
++
++    if (m_data.isEmpty()) {
++        return false;
++    }
++
++    QBuffer buffer(&m_data);
++    KZip zip(&buffer);
++    if (!zip.open(QIODevice::ReadOnly)) {
++        qWarning("Couldn't open the bundle!");
++        return false;
++    }
++
++    const KArchiveDirectory *dir = zip.directory();
++
++    m_isValid = extractArchive(dir, QLatin1String(""));
++    qDebug()<<"Dir = "<<dir->name() << m_isValid;
++
++    if (m_isValid) {
++        setPath(m_tempDir->name());
++    }
++
++    zip.close();
++
++    return m_isValid;
++}
++
++bool WacPackage::close()
++{
++    bool ret = m_tempDir;
++    delete m_tempDir;
++    m_tempDir = 0;
++    return ret;
++}
++
++bool WacPackage::extractArchive(const KArchiveDirectory *dir, const QString &path)
++{
++    const QStringList l = dir->entries();
++
++    QStringList::const_iterator it;
++    for (it = l.constBegin(); it != l.constEnd(); ++it) {
++        const KArchiveEntry* entry = dir->entry((*it));
++        QString fullPath = QString("%1/%2").arg(path).arg(*it);
++        if (entry->isDirectory()) {
++            QString outDir = QString("%1%2").arg(m_tempDir->name()).arg(path);
++            QDir qdir(outDir);
++            qdir.mkdir(*it);
++            extractArchive(static_cast<const KArchiveDirectory*>(entry), fullPath);
++        } else if (entry->isFile()) {
++            QString outName = QString("%1%2").arg(m_tempDir->name()).arg(fullPath.remove(0, 1));
++            //qDebug()<<"-------- "<<outName;
++            QFile f(outName);
++            if (!f.open(QIODevice::WriteOnly)) {
++                qWarning("Couldn't create %s", qPrintable(outName));
++                continue;
++            }
++            const KArchiveFile *archiveFile = static_cast<const KArchiveFile*>(entry);
++            f.write(archiveFile->data());
++            f.close();
++        } else {
++            qWarning("Unidentified entry at %s", qPrintable(fullPath));
++        }
++    }
++    return true;
++}
++
++void WacPackage::pathChanged()
++{
++    //qDebug() << "path changed";
++    m_isValid = extractInfo();
++}
++
++bool WacPackage::extractInfo()
++{
++    QString configXml = QString("%1config.xml").arg(path());
++    if (QFile::exists(configXml)) {
++        return parseConfigXml(configXml);
++    }
++
++    return false;
++}
++
++bool WacPackage::installPackage(const QString &archivePath, const QString &packageRoot)
++{
++    //kDebug() << "??????????????" << archivePath << packageRoot;
++    QFile f(archivePath);
++    f.open(QIODevice::ReadOnly);
++    m_data = f.readAll();
++    f.close();
++    open();
++
++    if (m_isValid) {
++        m_tempDir->setAutoRemove(false);
++        QString pluginName = "wac_" + m_name;
++        //kDebug() << "valid, so going to move it in to" << pluginName;
++        KIO::CopyJob* job = KIO::move(m_tempDir->name(), QString(packageRoot + "/" + pluginName), KIO::HideProgressInfo);
++        m_isValid = job->exec();
++
++        if (m_isValid) {
++            //kDebug() << "still so good ... registering";
++            Plasma::PackageMetadata data;
++            data.setName(m_name);
++            data.setDescription(m_description);
++            data.setPluginName(pluginName);
++            data.setImplementationApi("wac");
++            Plasma::Package::registerPackage(data, m_iconLocation);
++        }
++    }
++
++    if (!m_isValid) {
++        // make sure we clean up after ourselves afterwards on failure
++        m_tempDir->setAutoRemove(true);
++    }
++
++    return m_isValid;
++}
++
++bool WacPackage::parseConfigXml(const QString &loc)
++{
++    QFile f(loc);
++    if (!f.open(QIODevice::ReadOnly)) {
++        qWarning("Couldn't open info file: '%s'", qPrintable(loc));
++        return false;
++    }
++
++    QMap<QString, QString> infoMap;
++    QString str = f.readAll();
++    QXmlStreamReader reader(str);
++    while (!reader.atEnd()) {
++        reader.readNext();
++        // do processing
++        if (reader.isStartElement()) {
++            qDebug() << reader.name().toString();
++            if (reader.name() == "icon") {
++                //infoMap.insert("icon", reader.attributes().value("src");
++                kDebug() << path();
++                m_iconLocation = QString("%1%2").arg(path()).arg(reader.attributes().value("src").toString());
++            } else if (reader.name() == "content") {
++                const QString src = reader.attributes().value("src").toString();
++                m_htmlLocation = QString("%1%2").arg(path()).arg(src);
++                addFileDefinition("mainscript", src, i18n("Main Webpage"));
++            } else if (reader.name() == "name") {
++                m_name = reader.attributes().value("short").toString();
++                m_description = reader.readElementText().trimmed();
++            }
++        }
++    }
++
++   
++    addDirectoryDefinition("html", "/", i18n("Root HTML directory"));
++
++    qDebug()<<"name = "<<m_name;
++    qDebug()<<"html = "<<m_htmlLocation;
++    qDebug()<<"icon = "<<m_iconLocation;
++
++    return !m_htmlLocation.isEmpty();
++}
++
++void WacPackage::initTempDir()
++{
++    m_tempDir = new KTempDir();
++    //make it explicit
++    m_tempDir->setAutoRemove(true);
++}
++
++QString WacPackage::name() const
++{
++    return m_name;
++}
++
++QString WacPackage::version() const
++{
++    return m_version;
++}
++
++QString WacPackage::description() const
++{
++    return m_description;
++}
++
++int WacPackage::width() const
++{
++    return m_width;
++}
++
++int WacPackage::height() const
++{
++    return m_height;
++}
++
++QString WacPackage::htmlLocation() const
++{
++    return m_htmlLocation;
++}
++
++QString WacPackage::iconLocation() const
++{
++    return m_iconLocation;
++}
++
++bool WacPackage::isValid() const
++{
++    return m_isValid;
++}
++
++
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.h.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.h
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.h.wac-html-widgets	2011-11-24 09:25:25.944032965 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wacpackage.h	2011-11-24 09:25:25.944032965 +0100
+@@ -0,0 +1,85 @@
++/*
++Copyright (c) 2007 Zack Rusin <zack at kde.org>
++Copyright (C) 2011 Marco Martin <mart at kde.org>
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
++ */
++#ifndef WACPACKAGE_H
++#define WACPACKAGE_H
++
++#include <KZip>
++#include <KTempDir>
++
++#include <Plasma/PackageStructure>
++
++class KArchiveDirectory;
++
++class WacPackage : public Plasma::PackageStructure
++{
++    Q_OBJECT
++public:
++    WacPackage(const QString &path);
++    WacPackage(const QByteArray &data);
++    WacPackage(QObject *parent, QVariantList args);
++    ~WacPackage();
++
++    bool isValid() const;
++
++    void setData(const QByteArray &fn);
++    QByteArray data() const;
++
++    QString bundleId() const;
++    QString name() const;
++    QString version() const;
++    QString description() const;
++    int     width() const;
++    int     height() const;
++    QString htmlLocation() const;
++    QString iconLocation() const;
++
++protected:
++    void pathChanged();
++
++private:
++    bool extractArchive(const KArchiveDirectory *dir, const QString &path);
++    bool extractInfo();
++
++    bool parseConfigXml(const QString &loc);
++
++    void initTempDir();
++
++    bool open();
++    bool close();
++    bool installPackage(const QString &archivePath, const QString &packageRoot);
++
++private:
++    QByteArray   m_data;
++    bool      m_isValid;
++    KTempDir *m_tempDir;
++
++    QString m_name;
++    QString m_version;
++    QString m_description;
++    int     m_width;
++    int     m_height;
++    QString m_htmlLocation;
++    QString m_iconLocation;
++};
++
++#endif
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wac_plugin.cpp.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wac_plugin.cpp
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wac_plugin.cpp.wac-html-widgets	2011-11-24 09:25:25.945032991 +0100
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/wac_plugin.cpp	2011-11-24 09:25:25.945032991 +0100
+@@ -0,0 +1,25 @@
++/*
++Copyright (c) 2007 Zack Rusin <zack at kde.org>
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
++ */
++#include "wacpackage.h"
++
++K_EXPORT_PLASMA_PACKAGESTRUCTURE(wac, WacPackage)
++
+diff -up kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/webapplet.cpp.wac-html-widgets kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/webapplet.cpp
+--- kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/webapplet.cpp.wac-html-widgets	2011-08-22 15:29:52.000000000 +0200
++++ kde-workspace-4.7.80/plasma/generic/scriptengines/webkit/webapplet.cpp	2011-11-24 09:26:21.773472132 +0100
+@@ -28,6 +28,7 @@ THE SOFTWARE.
+ #include <QWebFrame>
+ #include <QWebPage>
+ #include <QFile>
++#include <QGraphicsLinearLayout>
+ 
+ #include <KDebug>
+ 
+@@ -53,6 +54,8 @@ public:
+         applet->setAcceptsHoverEvents(true);
+ 
+         view = new Plasma::WebView(applet);
++        QGraphicsLinearLayout *lay = new QGraphicsLinearLayout(applet);
++        lay->addItem(view);
+         QObject::connect(view, SIGNAL(loadFinished(bool)),
+                          q, SLOT(loadFinished(bool)));
+         QObject::connect(view->page(), SIGNAL(frameCreated(QWebFrame*)),


More information about the scm-commits mailing list