[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