diff options
author | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-05-29 13:19:16 -0300 |
---|---|---|
committer | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-05-29 13:19:16 -0300 |
commit | c38ea439c0779806288a1fa5bc6801c350623c6a (patch) | |
tree | d218ae62eaea36dd0ee4f545eb8bb09d4227c437 /staging/koffice | |
parent | 629b4bffc68b6a0cd11dadd5a5e7a5609c1d28ce (diff) |
Removed evil trees
Diffstat (limited to 'staging/koffice')
-rw-r--r-- | staging/koffice/PKGBUILD | 301 | ||||
-rw-r--r-- | staging/koffice/filters.install | 11 | ||||
-rw-r--r-- | staging/koffice/gcc46.patch | 23 | ||||
-rw-r--r-- | staging/koffice/kde4-koffice-libwpg02.patch | 1323 | ||||
-rw-r--r-- | staging/koffice/koffice.install | 11 | ||||
-rw-r--r-- | staging/koffice/krita.install | 12 |
6 files changed, 0 insertions, 1681 deletions
diff --git a/staging/koffice/PKGBUILD b/staging/koffice/PKGBUILD deleted file mode 100644 index 1884dd92c..000000000 --- a/staging/koffice/PKGBUILD +++ /dev/null @@ -1,301 +0,0 @@ -# $Id: PKGBUILD 125678 2011-05-28 00:58:39Z andrea $ -# Maintainer: Ronald van Haren <ronald.archlinux.org> -# Contributor: Andrea Scarpino <andrea@archlinux.org> -# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com > - -pkgbase=koffice -pkgname=( - 'koffice-filters' - 'koffice-interfaces' - 'koffice-libs' - 'koffice-plugins' - 'koffice-pics' - 'koffice-servicetypes' - 'koffice-templates' - 'koffice-tools' - 'koffice-karbon' - 'koffice-karbon-doc' -# 'koffice-kchart' -# 'koffice-kchart-doc' - 'koffice-kexi' - 'koffice-kexi-doc' - 'koffice-kformula' - 'koffice-kformula-doc' - 'koffice-kounavail' - 'koffice-kplato' -# 'koffice-kplato-doc' - 'koffice-kpresenter' - 'koffice-kpresenter-doc' - 'koffice-krita' -# 'koffice-krita-doc' # no krita-doc anymore upstream - 'koffice-kspread' - 'koffice-kspread-doc' - 'koffice-kword' -# 'koffice-kword-doc' # see http://userbase.kde.org/KWord/Manual for documentation (not supplied by upstream anymore in the sources) - 'koffice-handbook' - 'koffice-thesaurus-doc' -# 'koffice-kdgantt' # still an empty package -) -pkgver=2.3.3 -pkgrel=4 -arch=('i686' 'x86_64') -url='http://koffice.kde.org' -license=('GPL' 'LGPL' 'FDL') -makedepends=('pkg-config' 'cmake' 'automoc4' 'boost' 'eigen' 'gsl' 'lcms' - 'glew' 'qimageblitz' 'kdepimlibs' 'pstoedit' 'poppler-qt' 'libwpd' - 'libwpg' 'opengtl' 'kdegraphics-libs') -groups=('koffice') -source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2" - 'kde4-koffice-libwpg02.patch' 'gcc46.patch') -sha256sums=('31ba0d98c0d29c7b8ab97efdeb6c618b82177b2b0ec85da088178254da43c099' - '69106deb4081d71b5bd8f2e4f5af67ca689e4ce9f2bb49c11dbce5fb3409d612' - 'e095c0b2bbedf41da6535a68b2275464dafd3f194566028d0135322f596e4739') - -build() { - cd "${srcdir}/${pkgbase}-${pkgver}" - - patch -p1 -i "${srcdir}/kde4-koffice-libwpg02.patch" - patch -p1 -i "${srcdir}"/gcc46.patch - - cd "${srcdir}" - mkdir build - cd build - cmake ../${pkgbase}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_SKIP_RPATH=ON \ - -DCMAKE_INSTALL_PREFIX=/usr - make -} - -##### 1st package common files, depends, optdepends of the koffice applications ##### - -package_koffice-filters(){ - pkgdesc="Filters for the KDE office suite" - optdepends=('libgsf: Microsoft Word document importer' 'libwpd: WordPerfect document importer' - 'libwpg: Corel WordPerfect Graphics image importer' 'pstoedit: Karbon EPS import filter' - 'kdegraphics-libs: support for raw images') - install=filters.install - cd "${srcdir}/build/filters" - make DESTDIR="${pkgdir}" install -} - -package_koffice-interfaces(){ - pkgdesc="Interfaces for the KDE office suite" - depends=('kdelibs' 'koffice-libs') - cd "${srcdir}/build/interfaces" - make DESTDIR="${pkgdir}" install -} - -package_koffice-libs(){ - pkgdesc="Libs for the KDE office suite" - depends=('kdepimlibs' 'qca' 'lcms' 'koffice-servicetypes') - cd "${srcdir}/build/libs" - make DESTDIR="${pkgdir}" install -} - -package_koffice-plugins(){ - pkgdesc="Plugins for the KDE office suite" - depends=('koffice-libs') - replaces=('koffice-kchart') - conflicts=('koffice-kchart') - cd "${srcdir}/build/plugins" - make DESTDIR="${pkgdir}" install -} - -package_koffice-pics(){ - pkgdesc="Icons for the KDE office suite" - install=koffice.install - cd "${srcdir}/build/pics" - make DESTDIR="${pkgdir}" install -} - -package_koffice-servicetypes(){ - pkgdesc="Servicetypes for the KDE office suite" - cd "${srcdir}/build/servicetypes" - make DESTDIR="${pkgdir}" install -} - -package_koffice-templates(){ - pkgdesc="Templates for the KDE office suite" - cd "${srcdir}/build/templates" - make DESTDIR="${pkgdir}" install -} - -package_koffice-tools(){ - pkgdesc="Tools for the KDE office suite" - depends=('koffice-libs') - cd "${srcdir}/build/tools" - make DESTDIR="${pkgdir}" install -} - -#### package common files done ##### - -#### package apps and their docs ##### - -package_koffice-karbon(){ - pkgdesc="Vector drawing application for KDE" - depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates') - optdepends=('koffice-filters: import/export filters') - install=koffice.install - cd "${srcdir}/build/karbon" - make DESTDIR="${pkgdir}" install -} - -package_koffice-karbon-doc(){ - pkgdesc="Documentation for karbon" - cd "${srcdir}/build/doc/karbon" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kexi(){ - pkgdesc="Integrated data management application for the KDE office suite" - depends=('kdelibs' 'koffice-libs' 'koffice-kspread' 'sqlite3') - cd "${srcdir}/build/kexi" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kexi-doc(){ - pkgdesc="Documentation for kexi" - cd "${srcdir}/build/doc/kexi" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kformula(){ - pkgdesc="Formula editor for the KDE office suite" - depends=('kdelibs' 'koffice-libs') - cd "${srcdir}/build/kformula" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kformula-doc() { - pkgdesc="Documentation for koffice-kformula" - cd "${srcdir}/build/doc/kformula" - make DESTDIR="${pkgdir}" install -} - - -package_koffice-kounavail(){ - pkgdesc="Kounavail for the KDE office suite" - depends=('kdelibs' 'koffice-libs') - cd "${srcdir}/build/kounavail" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kplato(){ - pkgdesc="Project management application for KDE" - depends=('hicolor-icon-theme' 'koffice-libs' 'kdepimlibs' 'koffice-templates' \ - 'koffice-plugins' 'koffice-kword') - install=koffice.install - cd "${srcdir}/build/kplato" - make DESTDIR="${pkgdir}" install -} - -#package_koffice-kplato-doc(){ -# pkgdesc="Documentation for kplato" -# cd ${srcdir}/build/doc/kplato -# make DESTDIR="${pkgdir}" install -#} - -package_koffice-kpresenter(){ - pkgdesc="Presentation tool for KDE" - depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates') - optdepends=('koffice-filters: import/export filters') - install=koffice.install - cd "${srcdir}/build/kpresenter" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kpresenter-doc(){ - pkgdesc="Documentation for kpresenter" - cd "${srcdir}/build/doc/kpresenter" - make DESTDIR="${pkgdir}" install -} - -package_koffice-krita(){ - pkgdesc="Graphics editor for KDE" - depends=('hicolor-icon-theme' 'glew' 'qimageblitz' 'koffice-libs' \ - 'koffice-templates' 'koffice-plugins' 'poppler-qt' 'shared-mime-info' \ - 'openexr' 'opengtl') - optdepends=('koffice-filters: import/export filters') - install=krita.install - cd "${srcdir}/build/krita" - make DESTDIR="${pkgdir}" install -} - -#package_koffice-krita-doc(){ -# pkgdesc="Documentation for krita" -# cd ${srcdir}/build/doc/krita -# make DESTDIR="${pkgdir}" install -#} - - -package_koffice-kspread(){ - pkgdesc="Spreadsheet application for KDE" - depends=('hicolor-icon-theme' 'gsl' 'koffice-libs' 'koffice-templates' 'koffice-plugins') - optdepends=('koffice-filters: import/export filters') - install=koffice.install - cd "${srcdir}/build/kspread" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kspread-doc(){ - pkgdesc="Documentation for kspread" - cd "${srcdir}/build/doc/kspread" - make DESTDIR="${pkgdir}" install -} - -package_koffice-kword(){ - pkgdesc="Wordprocessor for KDE" - depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates' 'koffice-pics' \ - 'koffice-kounavail' 'koffice-plugins') - optdepends=('koffice-filters: import/export filters') - install=koffice.install - cd "${srcdir}/build/kword" - make DESTDIR="${pkgdir}" install - - # some sed lines to have python2 in extension scripts - sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/oouno.py" - sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/importdoxyxml.py" - sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/onlinehelp.py" -} - -#package_koffice-kword-doc(){ -# pkgdesc="Documentation for kword" -# cd ${srcdir}/build/doc/kword -# make DESTDIR="${pkgdir}" install -#} - -##### package apps done ##### - -#package_koffice-kchart(){ -# pkgdesc="Charting tool for KDE" -# depends=('hicolor-icon-theme' 'koffice-interfaces' 'koffice-templates') -# optdepends=('koffice-filters: import/export filters') -# install=koffice.install -# cd "${srcdir}/build/kchart" -# make DESTDIR="${pkgdir}" install -#} - -#package_koffice-kchart-doc(){ -# pkgdesc="Documentation for kchart" -# cd "${srcdir}/build/doc/kchart" -# make DESTDIR="${pkgdir}" install -#} - -#package_koffice-kdgantt(){ -# pkgdesc="Gantt for KDE" -# cd "${srcdir}/build/kdgantt" -# make DESTDIR="${pkgdir}" install -#} - -package_koffice-handbook() { - pkgdesc="Documentation for koffice" - cd "${srcdir}/build/doc/koffice" - make DESTDIR="${pkgdir}" install -} - -package_koffice-thesaurus-doc(){ - pkgdesc="Documentation for koffice-thesaurus" - cd "${srcdir}/build/doc/thesaurus" - make DESTDIR="${pkgdir}" install -} diff --git a/staging/koffice/filters.install b/staging/koffice/filters.install deleted file mode 100644 index 7c8a8bd2b..000000000 --- a/staging/koffice/filters.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - update-mime-database usr/share/mime &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/staging/koffice/gcc46.patch b/staging/koffice/gcc46.patch deleted file mode 100644 index dcf8a4f85..000000000 --- a/staging/koffice/gcc46.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc.gcc46 koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc ---- koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc.gcc46 2011-02-17 06:13:40.000000000 -0600 -+++ koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc 2011-02-19 21:15:56.597142885 -0600 -@@ -80,6 +80,9 @@ ImageType imfTypeToKisType(Imf::PixelTyp - return IT_FLOAT16; - case Imf::FLOAT: - return IT_FLOAT32; -+ default: -+ // shouldn't reach here -+ return IT_UNSUPPORTED; - } - } - -@@ -93,6 +96,9 @@ const KoColorSpace* kisTypeToColorSpace( - case IT_UNKNOWN: - case IT_UNSUPPORTED: - return 0; -+ default: -+ // shouldn't reach here -+ return 0; - } - } - diff --git a/staging/koffice/kde4-koffice-libwpg02.patch b/staging/koffice/kde4-koffice-libwpg02.patch deleted file mode 100644 index e2a55a216..000000000 --- a/staging/koffice/kde4-koffice-libwpg02.patch +++ /dev/null @@ -1,1323 +0,0 @@ -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/CMakeLists.txt koffice-2.3.1-libwpg02/filters/karbon/wpg/import/CMakeLists.txt ---- koffice-2.3.1/filters/karbon/wpg/import/CMakeLists.txt 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/CMakeLists.txt 2011-01-18 07:40:25.000000000 +0100 -@@ -1,16 +1,11 @@ - -- - include_directories(${CMAKE_BINARY_DIR}/filters/ ${WPD_INCLUDE_DIR} ${LIBWPG_INCLUDE_DIR}/) - --set(wpgimport_PART_SRCS --WPGImport.cpp --OdgExporter.cxx --FileOutputHandler.cxx --GraphicsElement.cxx) -+set(wpgimport_PART_SRCS WPGImport.cpp) - - kde4_add_plugin(wpgimport ${wpgimport_PART_SRCS}) - --target_link_libraries(wpgimport komain ${LIBWPG_LIBRARIES} ${LIBWPG_STREAM_LIBRARIES}) -+target_link_libraries(wpgimport komain ${LIBWPG_LIBRARIES} ${LIBWPG_STREAM_LIBRARIES} ${WPD_LIBRARIES}) - - install(TARGETS wpgimport DESTINATION ${PLUGIN_INSTALL_DIR}) - install(FILES karbon_wpg_import.desktop DESTINATION ${SERVICES_INSTALL_DIR}) -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.cxx ---- koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.cxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.cxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,95 +0,0 @@ --/* libwpg -- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch) -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Library General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * For further information visit http://libwpg.sourceforge.net -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ -- --#include "FileOutputHandler.hxx" -- --FileOutputHandler::FileOutputHandler(std::ostringstream &contentStream) : -- mbIsTagOpened(false), -- mContentStream(contentStream) --{ --} -- --void FileOutputHandler::startDocument() --{ --} -- --void FileOutputHandler::startElement(const char *psName, const std::vector<std::pair<std::string, std::string> > &xPropList) --{ -- if (mbIsTagOpened) -- { -- mContentStream << ">"; -- mbIsTagOpened = false; -- } -- mContentStream << "<" << psName; -- -- for (std::vector<std::pair<std::string, std::string> >::const_iterator i = xPropList.begin(); i != xPropList.end(); i++) -- { -- mContentStream << " " << (*i).first.c_str() << "=\"" << (*i).second.c_str() << "\""; -- } -- mbIsTagOpened = true; -- msOpenedTagName = psName; --} -- --void FileOutputHandler::endElement(const char *psName) --{ -- if (mbIsTagOpened) -- { -- if( msOpenedTagName == psName ) -- { -- mContentStream << "/>"; -- mbIsTagOpened = false; -- } -- else // should not happen, but handle it -- { -- mContentStream << ">"; -- mContentStream << "</" << psName << ">"; -- mbIsTagOpened = false; -- } -- } -- else -- { -- mContentStream << "</" << psName << ">"; -- mbIsTagOpened = false; -- } --} -- --void FileOutputHandler::characters(const std::string &sCharacters) --{ -- if (mbIsTagOpened) -- { -- mContentStream << ">"; -- mbIsTagOpened = false; -- } -- mContentStream << sCharacters.c_str(); --} -- --void FileOutputHandler::endDocument() --{ -- if (mbIsTagOpened) -- { -- mContentStream << ">"; -- mbIsTagOpened = false; -- } --} -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.hxx ---- koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.hxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.hxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,49 +0,0 @@ --/* libwpg -- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch) -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Library General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * For further information visit http://libwpg.sourceforge.net -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ -- --#ifndef FILEOUTPUTHANDLER_H --#define FILEOUTPUTHANDLER_H -- --#include <iostream> --#include <sstream> --#include <string> --#include "GraphicsHandler.hxx" -- --class FileOutputHandler : public GraphicsHandler --{ -- public: -- explicit FileOutputHandler(std::ostringstream &contentStream); -- virtual void startDocument(); -- virtual void endDocument(); -- virtual void startElement(const char *psName, const std::vector<std::pair<std::string, std::string> > &xPropList); -- virtual void endElement(const char *psName); -- virtual void characters(const std::string &sCharacters); -- -- private: -- bool mbIsTagOpened; -- std::string msOpenedTagName; -- std::ostringstream &mContentStream; --}; --#endif -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.cxx ---- koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.cxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.cxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,66 +0,0 @@ --/* GraphicsElement: The items we are collecting to be put into the Writer -- * document: paragraph and spans of text, as well as section breaks. -- * -- * Copyright (C) 2002-2003 William Lachance (william.lachance@sympatico.ca) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Lesser General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * For further information visit http://libwpg.sourceforge.net -- * -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ -- --#include "GraphicsElement.hxx" --#include "GraphicsHandler.hxx" --#include <string.h> -- --#define ASCII_SPACE 0x0020 -- --void TagGraphicsElement::print() const --{ --} -- --void OpenTagGraphicsElement::write(GraphicsHandler *pHandler) const --{ -- pHandler->startElement(getTagName().c_str(), maAttrList); --} -- --void OpenTagGraphicsElement::print() const --{ -- TagGraphicsElement::print(); --} -- --void OpenTagGraphicsElement::addAttribute(const std::string &szAttributeName, const std::string &sAttributeValue) --{ -- std::pair<std::string, std::string> tmpAttribute; -- tmpAttribute.first = szAttributeName; -- tmpAttribute.second = sAttributeValue; -- maAttrList.push_back(tmpAttribute); --} -- --void CloseTagGraphicsElement::write(GraphicsHandler *pHandler) const --{ -- -- pHandler->endElement(getTagName().c_str()); --} -- --void CharDataGraphicsElement::write(GraphicsHandler *pHandler) const --{ -- pHandler->characters(msData); --} -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.hxx ---- koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.hxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.hxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,84 +0,0 @@ --/* GraphicsElement: The items we are collecting to be put into the Writer -- * document: paragraph and spans of text, as well as section breaks. -- * -- * Copyright (C) 2002-2003 William Lachance (william.lachance@sympatico.ca) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Lesser General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * For further information visit http://libwpd.sourceforge.net -- * -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ -- --#ifndef _GRAPHICSELEMENT_H --#define _GRAPHICSELEMENT_H --#include <string> --#include <map> --#include <vector> -- --#include "GraphicsHandler.hxx" -- --class GraphicsElement --{ --public: -- virtual ~GraphicsElement() {} -- virtual void write(GraphicsHandler *pHandler) const = 0; -- virtual void print() const {} --}; -- --class TagGraphicsElement : public GraphicsElement --{ --public: -- explicit TagGraphicsElement(const char *szTagName) : msTagName(szTagName) {} -- const std::string &getTagName() const { return msTagName; } -- virtual void print() const; --private: -- const std::string msTagName; --}; -- --class OpenTagGraphicsElement : public TagGraphicsElement --{ --public: -- explicit OpenTagGraphicsElement(const char *szTagName) : TagGraphicsElement(szTagName) {} -- ~OpenTagGraphicsElement() {} -- void addAttribute(const std::string &szAttributeName, const std::string &sAttributeValue); -- virtual void write(GraphicsHandler *pHandler) const; -- virtual void print () const; --private: -- std::vector<std::pair<std::string, std::string> > maAttrList; --}; -- --class CloseTagGraphicsElement : public TagGraphicsElement --{ --public: -- explicit CloseTagGraphicsElement(const char *szTagName) : TagGraphicsElement(szTagName) {} -- virtual void write(GraphicsHandler *pHandler) const; --}; -- --class CharDataGraphicsElement : public GraphicsElement --{ --public: -- CharDataGraphicsElement(const char *sData) : GraphicsElement(), msData(sData) {} -- virtual void write(GraphicsHandler *pHandler) const; --private: -- std::string msData; --}; -- -- --#endif -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsHandler.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsHandler.hxx ---- koffice-2.3.1/filters/karbon/wpg/import/GraphicsHandler.hxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsHandler.hxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,43 +0,0 @@ --/* -- * Copyright (C) 2004 William Lachance (wlach@interlog.com) -- * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License -- * as published by the Free Software Foundation; either version 2 -- * of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * Contributor(s): Martin Gallwey (gallwey@sun.com) -- * -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ --#ifndef _GRAPHICSHANDLER_H --#define _GRAPHICSHANDLER_H --#include <string> --#include <map> --#include <vector> -- --class GraphicsHandler --{ --public: -- virtual ~GraphicsHandler() {} -- virtual void startDocument() = 0; -- virtual void endDocument() = 0; -- virtual void startElement(const char *psName, const std::vector< std::pair <std::string, std::string> > &xPropList) = 0; -- virtual void endElement(const char *psName) = 0; -- virtual void characters(const std::string &sCharacters) = 0; --}; --#endif -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.cxx ---- koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.cxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.cxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,662 +0,0 @@ --/* libwpg -- * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org) -- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch) -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Library General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * For further information visit http://libwpg.sourceforge.net -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ -- --#include "OdgExporter.hxx" --#include "GraphicsElement.hxx" --#include "GraphicsHandler.hxx" --#include <locale.h> -- --static std::string doubleToString(const double value) --{ -- std::ostringstream tempStream; -- tempStream << value; -- std::string decimalPoint(localeconv()->decimal_point); -- if ((decimalPoint.size() == 0) || (decimalPoint == ".")) -- return tempStream.str(); -- std::string stringValue(tempStream.str()); -- if (!stringValue.empty()) -- { -- std::string::size_type pos; -- while ((pos = stringValue.find(decimalPoint)) != std::string::npos) -- stringValue.replace(pos,decimalPoint.size(),"."); -- } -- return stringValue; --} -- -- --OdgExporter::OdgExporter(GraphicsHandler *pHandler, const bool isFlatXML): -- mpHandler(pHandler), -- m_fillRule(AlternatingFill), -- m_gradientIndex(1), -- m_dashIndex(1), -- m_styleIndex(1), -- m_width(0.0f), -- m_height(0.0f), -- m_isFlatXML(isFlatXML) --{ --} -- --OdgExporter::~OdgExporter() --{ -- for (std::vector <GraphicsElement *>::iterator iterStroke = mStrokeDashElements.begin(); -- iterStroke != mStrokeDashElements.end(); iterStroke++) -- delete (*iterStroke); -- -- for (std::vector <GraphicsElement *>::iterator iterGradient = mGradientElements.begin(); -- iterGradient != mGradientElements.end(); iterGradient++) -- delete (*iterGradient); -- -- for (std::vector <GraphicsElement *>::iterator iterAutomaticStyles = mAutomaticStylesElements.begin(); -- iterAutomaticStyles != mAutomaticStylesElements.end(); iterAutomaticStyles++) -- delete (*iterAutomaticStyles); -- -- for (std::vector<GraphicsElement *>::iterator bodyIter = mBodyElements.begin(); -- bodyIter != mBodyElements.end(); bodyIter++) -- delete (*bodyIter); --} -- --void OdgExporter::startGraphics(double width, double height) --{ -- m_gradientIndex = 1; -- m_dashIndex = 1; -- m_styleIndex = 1; -- m_width = width; -- m_height = height; -- -- -- mpHandler->startDocument(); -- OpenTagGraphicsElement tmpOfficeDocumentContent("office:document"); -- tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/"); -- tmpOfficeDocumentContent.addAttribute("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0"); -- tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office"); -- tmpOfficeDocumentContent.addAttribute("office:version", "1.0"); -- if (m_isFlatXML) -- tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/x-vnd.oasis.openoffice.drawing"); -- tmpOfficeDocumentContent.write(mpHandler); -- -- OpenTagGraphicsElement("office:settings").write(mpHandler); -- -- OpenTagGraphicsElement configItemSetOpenElement("config:config-item-set"); -- configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings"); -- configItemSetOpenElement.write(mpHandler); -- -- OpenTagGraphicsElement configItemOpenElement1("config:config-item"); -- configItemOpenElement1.addAttribute("config:name", "VisibleAreaTop"); -- configItemOpenElement1.addAttribute("config:type", "int"); -- configItemOpenElement1.write(mpHandler); -- mpHandler->characters("0"); -- mpHandler->endElement("config:config-item"); -- -- OpenTagGraphicsElement configItemOpenElement2("config:config-item"); -- configItemOpenElement2.addAttribute("config:name", "VisibleAreaLeft"); -- configItemOpenElement2.addAttribute("config:type", "int"); -- configItemOpenElement2.write(mpHandler); -- mpHandler->characters("0"); -- mpHandler->endElement("config:config-item"); -- -- OpenTagGraphicsElement configItemOpenElement3("config:config-item"); -- configItemOpenElement3.addAttribute("config:name", "VisibleAreaWidth"); -- configItemOpenElement3.addAttribute("config:type", "int"); -- configItemOpenElement3.write(mpHandler); -- m_value.str(""); -- m_value << (unsigned)(2540 * width); -- mpHandler->characters(m_value.str()); -- mpHandler->endElement("config:config-item"); -- -- OpenTagGraphicsElement configItemOpenElement4("config:config-item"); -- configItemOpenElement4.addAttribute("config:name", "VisibleAreaHeight"); -- configItemOpenElement4.addAttribute("config:type", "int"); -- configItemOpenElement4.write(mpHandler); -- m_value.str(""); -- m_value << (unsigned)(2540 * height); -- mpHandler->characters(m_value.str()); -- mpHandler->endElement("config:config-item"); -- -- mpHandler->endElement("config:config-item-set"); -- -- mpHandler->endElement("office:settings"); -- --} -- --void OdgExporter::endGraphics() --{ -- OpenTagGraphicsElement("office:styles").write(mpHandler); -- -- for (std::vector <GraphicsElement *>::const_iterator iterStroke = mStrokeDashElements.begin(); -- iterStroke != mStrokeDashElements.end(); iterStroke++) -- (*iterStroke)->write(mpHandler); -- -- for (std::vector <GraphicsElement *>::const_iterator iterGradient = mGradientElements.begin(); -- iterGradient != mGradientElements.end(); iterGradient++) -- (*iterGradient)->write(mpHandler); -- -- mpHandler->endElement("office:styles"); -- -- OpenTagGraphicsElement("office:automatic-styles").write(mpHandler); -- -- for (std::vector <GraphicsElement *>::const_iterator iterAutomaticStyles = mAutomaticStylesElements.begin(); -- iterAutomaticStyles != mAutomaticStylesElements.end(); iterAutomaticStyles++) -- (*iterAutomaticStyles)->write(mpHandler); -- -- OpenTagGraphicsElement tmpStylePageLayoutOpenElement("style:page-layout"); -- tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0"); -- tmpStylePageLayoutOpenElement.write(mpHandler); -- -- OpenTagGraphicsElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties"); -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in"); -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in"); -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in"); -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in"); -- m_value.str(""); -- m_value << doubleToString(m_width) << "in"; -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(m_height) << "in"; -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", m_value.str()); -- m_value.str(""); -- tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait"); -- tmpStylePageLayoutPropertiesOpenElement.write(mpHandler); -- -- mpHandler->endElement("style:page-layout-properties"); -- -- mpHandler->endElement("style:page-layout"); -- -- OpenTagGraphicsElement tmpStyleStyleOpenElement("style:style"); -- tmpStyleStyleOpenElement.addAttribute("style:name", "dp1"); -- tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page"); -- tmpStyleStyleOpenElement.write(mpHandler); -- -- OpenTagGraphicsElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties"); -- // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border"); -- tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none"); -- tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler); -- -- mpHandler->endElement("style:drawing-page-properties"); -- -- mpHandler->endElement("style:style"); -- -- mpHandler->endElement("office:automatic-styles"); -- -- OpenTagGraphicsElement("office:master-styles").write(mpHandler); -- -- OpenTagGraphicsElement tmpStyleMasterPageOpenElement("style:master-page"); -- tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default"); -- tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0"); -- tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1"); -- tmpStyleMasterPageOpenElement.write(mpHandler); -- -- mpHandler->endElement("style:master-page"); -- -- mpHandler->endElement("office:master-styles"); -- -- OpenTagGraphicsElement("office:body").write(mpHandler); -- -- OpenTagGraphicsElement("office:drawing").write(mpHandler); -- -- OpenTagGraphicsElement tmpDrawPageOpenElement("draw:page"); -- tmpDrawPageOpenElement.addAttribute("draw:name", "page1"); -- tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1"); -- tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default"); -- tmpDrawPageOpenElement.write(mpHandler); -- -- for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin(); -- bodyIter != mBodyElements.end(); bodyIter++) -- { -- (*bodyIter)->write(mpHandler); -- } -- -- mpHandler->endElement("draw:page"); -- mpHandler->endElement("office:drawing"); -- mpHandler->endElement("office:body"); -- mpHandler->endElement("office:document"); -- -- mpHandler->endDocument(); --} -- --void OdgExporter::setPen(const libwpg::WPGPen& pen) --{ -- m_pen = pen; --} -- --void OdgExporter::setBrush(const libwpg::WPGBrush& brush) --{ -- m_brush = brush; --} -- --void OdgExporter::setFillRule(FillRule rule) --{ -- m_fillRule = rule; --} -- --void OdgExporter::startLayer(unsigned int) --{ --} -- --void OdgExporter::endLayer(unsigned int) --{ --} -- --void OdgExporter::drawRectangle(const libwpg::WPGRect& rect, double rx, double ) --{ -- writeStyle(); -- OpenTagGraphicsElement *pDrawRectElement = new OpenTagGraphicsElement("draw:rect"); -- m_value.str(""); -- m_value << "gr" << m_styleIndex-1; -- pDrawRectElement->addAttribute("draw:style-name", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(rect.x1) << "in"; -- pDrawRectElement->addAttribute("svg:x", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(rect.y1) << "in"; -- pDrawRectElement->addAttribute("svg:y", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(rect.x2-rect.x1) << "in"; -- pDrawRectElement->addAttribute("svg:width", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(rect.y2-rect.y1) << "in"; -- pDrawRectElement->addAttribute("svg:height", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(rx) << "in"; -- // FIXME: what to do when rx != ry ? -- pDrawRectElement->addAttribute("draw:corner-radius", m_value.str()); -- m_value.str(""); -- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawRectElement)); -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:rect"))); --} -- --void OdgExporter::drawEllipse(const libwpg::WPGPoint& center, double rx, double ry) --{ -- writeStyle(); -- OpenTagGraphicsElement *pDrawEllipseElement = new OpenTagGraphicsElement("draw:ellipse"); -- m_value.str(""); -- m_value << "gr" << m_styleIndex-1; -- pDrawEllipseElement->addAttribute("draw:style-name", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(center.x - rx) << "in"; -- pDrawEllipseElement->addAttribute("svg:x", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(center.y - ry) << "in"; -- pDrawEllipseElement->addAttribute("svg:y", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(2 * rx) << "in"; -- pDrawEllipseElement->addAttribute("svg:width", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(2 * ry) << "in"; -- pDrawEllipseElement->addAttribute("svg:height", m_value.str()); -- m_value.str(""); -- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawEllipseElement)); -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:ellipse"))); --} -- --void OdgExporter::drawPolygon(const libwpg::WPGPointArray& vertices) --{ -- if(vertices.count() < 2) -- return; -- -- if(vertices.count() == 2) -- { -- const libwpg::WPGPoint& p1 = vertices[0]; -- const libwpg::WPGPoint& p2 = vertices[1]; -- -- writeStyle(); -- OpenTagGraphicsElement *pDrawLineElement = new OpenTagGraphicsElement("draw:line"); -- m_value.str(""); -- m_value << "gr" << m_styleIndex-1; -- pDrawLineElement->addAttribute("draw:style-name", m_value.str()); -- m_value.str(""); -- pDrawLineElement->addAttribute("draw:text-style-name", "P1"); -- pDrawLineElement->addAttribute("draw:layer", "layout"); -- m_value << doubleToString(p1.x) << "in"; -- pDrawLineElement->addAttribute("svg:x1", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(p1.y) << "in"; -- pDrawLineElement->addAttribute("svg:y1", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(p2.x) << "in"; -- pDrawLineElement->addAttribute("svg:x2", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(p2.y) << "in"; -- pDrawLineElement->addAttribute("svg:y2", m_value.str()); -- m_value.str(""); -- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawLineElement)); -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:line"))); -- } -- else -- { -- // draw as path -- libwpg::WPGPath path; -- path.moveTo(vertices[0]); -- for(unsigned long ii = 1; ii < vertices.count(); ii++) -- path.lineTo(vertices[ii]); -- path.closed = true; -- drawPath(path); -- } --} -- --void OdgExporter::drawPath(const libwpg::WPGPath& path) --{ -- if(path.count() == 0) -- return; -- -- // try to find the bounding box -- // this is simple convex hull technique, the bounding box might not be -- // accurate but that should be enough for this purpose -- libwpg::WPGPoint p = path.element(0).point; -- libwpg::WPGPoint q = path.element(0).point; -- for(unsigned k = 0; k < path.count(); k++) -- { -- libwpg::WPGPathElement element = path.element(k); -- p.x = (p.x > element.point.x) ? element.point.x : p.x; -- p.y = (p.y > element.point.y) ? element.point.y : p.y; -- q.x = (q.x < element.point.x) ? element.point.x : q.x; -- q.y = (q.y < element.point.y) ? element.point.y : q.y; -- if(element.type == libwpg::WPGPathElement::CurveToElement) -- { -- p.x = (p.x > element.extra1.x) ? element.extra1.x : p.x; -- p.y = (p.y > element.extra1.y) ? element.extra1.y : p.y; -- q.x = (q.x < element.extra1.x) ? element.extra1.x : q.x; -- q.y = (q.y < element.extra1.y) ? element.extra1.y : q.y; -- p.x = (p.x > element.extra2.x) ? element.extra2.x : p.x; -- p.y = (p.y > element.extra2.y) ? element.extra2.y : p.y; -- q.x = (q.x < element.extra2.x) ? element.extra2.x : q.x; -- q.y = (q.y < element.extra2.y) ? element.extra2.y : q.y; -- } -- } -- double vw = q.x - p.x; -- double vh = q.y - p.y; -- -- writeStyle(); -- -- OpenTagGraphicsElement *pDrawPathElement = new OpenTagGraphicsElement("draw:path"); -- m_value.str(""); -- m_value << "gr" << m_styleIndex-1; -- pDrawPathElement->addAttribute("draw:style-name", m_value.str()); -- m_value.str(""); -- pDrawPathElement->addAttribute("draw:text-style-name", "P1"); -- pDrawPathElement->addAttribute("draw:layer", "layout"); -- m_value << doubleToString(p.x) << "in"; -- pDrawPathElement->addAttribute("svg:x", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(p.y) << "in"; -- pDrawPathElement->addAttribute("svg:y", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(vw) << "in"; -- pDrawPathElement->addAttribute("svg:width", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(vh) << "in"; -- pDrawPathElement->addAttribute("svg:height", m_value.str()); -- m_value.str(""); -- m_value << "0 0 " << (int)(vw*2540) << " " << (int)(vh*2540); -- pDrawPathElement->addAttribute("svg:viewBox", m_value.str()); -- m_value.str(""); -- -- for(unsigned i = 0; i < path.count(); i++) -- { -- libwpg::WPGPathElement element = path.element(i); -- libwpg::WPGPoint point = element.point; -- switch(element.type) -- { -- // 2540 is 2.54*1000, 2.54 in = 1 in -- case libwpg::WPGPathElement::MoveToElement: -- m_value << "M" << (int)((point.x-p.x)*2540) << " "; -- m_value << (int)((point.y-p.y)*2540); -- break; -- -- case libwpg::WPGPathElement::LineToElement: -- m_value << "L" << (int)((point.x-p.x)*2540) << " "; -- m_value << (int)((point.y-p.y)*2540); -- break; -- -- case libwpg::WPGPathElement::CurveToElement: -- m_value << "C" << (int)((element.extra1.x-p.x)*2540) << " "; -- m_value << (int)((element.extra1.y-p.y)*2540) << " "; -- m_value << (int)((element.extra2.x-p.x)*2540) << " "; -- m_value << (int)((element.extra2.y-p.y)*2540) << " "; -- m_value << (int)((point.x-p.x)*2540) << " "; -- m_value << (int)((point.y-p.y)*2540); -- break; -- -- default: -- break; -- } -- } -- if(path.closed) -- m_value << " Z"; -- pDrawPathElement->addAttribute("svg:d", m_value.str()); -- m_value.str(""); -- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawPathElement)); -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:path"))); --} -- -- --void OdgExporter::drawBitmap(const libwpg::WPGBitmap& bitmap) --{ -- OpenTagGraphicsElement *pDrawFrameElement = new OpenTagGraphicsElement("draw:frame"); -- m_value.str(""); -- m_value << doubleToString(bitmap.rect.x1) << "in"; -- pDrawFrameElement->addAttribute("svg:x", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(bitmap.rect.y1) << "in"; -- pDrawFrameElement->addAttribute("svg:y", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(bitmap.rect.height()) << "in"; -- pDrawFrameElement->addAttribute("svg:height", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(bitmap.rect.width()) << "in"; -- pDrawFrameElement->addAttribute("svg:width", m_value.str()); -- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawFrameElement)); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("draw:image"))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("office:binary-data"))); -- -- libwpg::WPGString base64Binary; -- bitmap.generateBase64DIB(base64Binary); -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CharDataGraphicsElement(base64Binary.cstr()))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("office:binary-data"))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:image"))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:frame"))); --} -- --void OdgExporter::drawImageObject(const libwpg::WPGBinaryData& binaryData) --{ -- if (binaryData.mimeType.length() <= 0) -- return; -- OpenTagGraphicsElement *pDrawFrameElement = new OpenTagGraphicsElement("draw:frame"); -- m_value.str(""); -- m_value << doubleToString(binaryData.rect.x1) << "in"; -- pDrawFrameElement->addAttribute("svg:x", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(binaryData.rect.y1) << "in"; -- pDrawFrameElement->addAttribute("svg:y", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(binaryData.rect.height()) << "in"; -- pDrawFrameElement->addAttribute("svg:height", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(binaryData.rect.width()) << "in"; -- pDrawFrameElement->addAttribute("svg:width", m_value.str()); -- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawFrameElement)); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("draw:image"))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("office:binary-data"))); -- -- libwpg::WPGString base64Binary = binaryData.getBase64Data(); -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CharDataGraphicsElement(base64Binary.cstr()))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("office:binary-data"))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:image"))); -- -- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:frame"))); --} -- -- --static std::string colorToHex(const libwpg::WPGColor& color) --{ -- char hexdigits[] = "0123456789abcdef"; -- char buffer[] = "123456"; -- buffer[0] = hexdigits[(color.red >> 4) & 15]; -- buffer[1] = hexdigits[color.red & 15]; -- buffer[2] = hexdigits[(color.green >> 4) & 15]; -- buffer[3] = hexdigits[color.green & 15]; -- buffer[4] = hexdigits[(color.blue >> 4) & 15]; -- buffer[5] = hexdigits[color.blue & 15]; -- return std::string(buffer); --} -- --void OdgExporter::writeStyle() --{ -- m_value.str(""); -- m_name.str(""); -- -- if(!m_pen.solid && (m_pen.dashArray.count() >=2 ) ) -- { -- // ODG only supports dashes with the same length of spaces inbetween -- // here we take the first space and assume everything else the same -- // note that dash length is written in percentage -- double distance = m_pen.dashArray.at(1); -- OpenTagGraphicsElement *tmpDrawStrokeDashElement = new OpenTagGraphicsElement("draw:stroke-dash"); -- tmpDrawStrokeDashElement->addAttribute("draw:style", "rect"); -- m_value << "Dash_" << m_dashIndex++; -- tmpDrawStrokeDashElement->addAttribute("draw:name", m_value.str()); -- m_value.str(""); -- m_value << doubleToString(distance*100) << "%"; -- tmpDrawStrokeDashElement->addAttribute("draw:distance", m_value.str()); -- m_value.str(""); -- for(unsigned i = 0; i < m_pen.dashArray.count()/2; i++) -- { -- m_name << "draw:dots" << i+1; -- tmpDrawStrokeDashElement->addAttribute(m_name.str(), "1"); -- m_name.str(""); -- m_name << "draw:dots" << i+1 << "-length"; -- m_value << doubleToString(100*m_pen.dashArray.at(i*2)) << "%"; -- tmpDrawStrokeDashElement->addAttribute(m_name.str(), m_value.str()); -- m_name.str(""); -- m_value.str(""); -- } -- mStrokeDashElements.push_back(static_cast<GraphicsElement *>(tmpDrawStrokeDashElement)); -- mStrokeDashElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:stroke-dash"))); -- } -- -- if(m_brush.style == libwpg::WPGBrush::Gradient) -- { -- OpenTagGraphicsElement *tmpDrawGradientElement = new OpenTagGraphicsElement("draw:gradient"); -- tmpDrawGradientElement->addAttribute("draw:style", "linear"); -- m_value << "Gradient_" << m_gradientIndex++; -- tmpDrawGradientElement->addAttribute("draw:name", m_value.str()); -- m_value.str(""); -- -- // ODG angle unit is 0.1 degree -- double angle = -m_brush.gradient.angle(); -- while(angle < 0) -- angle += 360; -- while(angle > 360) -- angle -= 360; -- -- m_value << (unsigned)(angle*10); -- tmpDrawGradientElement->addAttribute("draw:angle", m_value.str()); -- m_value.str(""); -- -- libwpg::WPGColor startColor = m_brush.gradient.stopColor(0); -- libwpg::WPGColor stopColor = m_brush.gradient.stopColor(1); -- m_value << "#" << colorToHex(startColor); -- tmpDrawGradientElement->addAttribute("draw:start-color", m_value.str()); -- m_value.str(""); -- m_value << "#" << colorToHex(stopColor); -- tmpDrawGradientElement->addAttribute("draw:end-color", m_value.str()); -- m_value.str(""); -- tmpDrawGradientElement->addAttribute("draw:start-intensity", "100%"); -- tmpDrawGradientElement->addAttribute("draw:end-intensity", "100%"); -- tmpDrawGradientElement->addAttribute("draw:border", "0%"); -- mGradientElements.push_back(static_cast<GraphicsElement *>(tmpDrawGradientElement)); -- mGradientElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:gradient"))); -- } -- -- OpenTagGraphicsElement *tmpStyleStyleElement = new OpenTagGraphicsElement("style:style"); -- m_value << "gr" << m_styleIndex; -- tmpStyleStyleElement->addAttribute("style:name", m_value.str()); -- m_value.str(""); -- tmpStyleStyleElement->addAttribute("style:family", "graphic"); -- tmpStyleStyleElement->addAttribute("style:parent-style-name", "standard"); -- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(tmpStyleStyleElement)); -- -- OpenTagGraphicsElement *tmpStyleGraphicPropertiesElement = new OpenTagGraphicsElement("style:graphic-properties"); -- -- if(m_pen.width > 0.0) -- { -- m_value << doubleToString(m_pen.width) << "in"; -- tmpStyleGraphicPropertiesElement->addAttribute("svg:stroke-width", m_value.str()); -- m_value.str(""); -- m_value << "#" << colorToHex(m_pen.foreColor); -- tmpStyleGraphicPropertiesElement->addAttribute("svg:stroke-color", m_value.str()); -- m_value.str(""); -- -- if(!m_pen.solid) -- { -- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke", "dash"); -- m_value << "Dash_" << m_dashIndex-1; -- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke-dash", m_value.str()); -- m_value.str(""); -- } -- } -- else -- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke", "none"); -- -- if(m_brush.style == libwpg::WPGBrush::NoBrush) -- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "none"); -- -- if(m_brush.style == libwpg::WPGBrush::Solid) -- { -- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "solid"); -- m_value << "#" << colorToHex(m_brush.foreColor); -- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill-color", m_value.str()); -- m_value.str(""); -- } -- -- if(m_brush.style == libwpg::WPGBrush::Gradient) -- { -- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "gradient"); -- m_value << "Gradient_" << m_gradientIndex-1; -- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill-gradient-name", m_value.str()); -- m_value.str(""); -- } -- -- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(tmpStyleGraphicPropertiesElement)); -- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("style:graphic-properties"))); -- -- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("style:style"))); -- m_styleIndex++; --} -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.hxx ---- koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.hxx 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.hxx 1970-01-01 01:00:00.000000000 +0100 -@@ -1,116 +0,0 @@ --/* libwpg -- * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org) -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Library General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public -- * License along with this library; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02111-1301 USA -- * -- * For further information visit http://libwpg.sourceforge.net -- */ -- --/* "This product is not manufactured, approved, or supported by -- * Corel Corporation or Corel Corporation Limited." -- */ -- --#ifndef __ODGEXPORTER_H__ --#define __ODGEXPORTER_H__ -- --#include <iostream> --#include <sstream> --#include <string> -- --#include <libwpg/libwpg.h> --#include "GraphicsElement.hxx" -- --class OdgExporter : public libwpg::WPGPaintInterface { --public: -- explicit OdgExporter(GraphicsHandler *pHandler, -- const bool isFlatXML = false); -- ~OdgExporter(); -- --#if LIBWPG_VERSION_MINOR<2 -- void startGraphics(double imageWidth, double imageHeight); -- void endGraphics(); -- void startLayer(unsigned int id); -- void endLayer(unsigned int id); -- -- void setPen(const libwpg::WPGPen& pen); -- void setBrush(const libwpg::WPGBrush& brush); -- void setFillRule(FillRule rule); -- -- void drawRectangle(const libwpg::WPGRect& rect, double rx, double ry); -- void drawEllipse(const libwpg::WPGPoint& center, double rx, double ry); -- void drawPolygon(const libwpg::WPGPointArray& vertices); -- void drawPath(const libwpg::WPGPath& path); -- void drawBitmap(const libwpg::WPGBitmap& bitmap); -- void drawImageObject(const libwpg::WPGBinaryData& binaryData); -- --private: -- std::vector <GraphicsElement *> mBodyElements; -- std::vector <GraphicsElement *> mAutomaticStylesElements; -- std::vector <GraphicsElement *> mStrokeDashElements; -- std::vector <GraphicsElement *> mGradientElements; -- GraphicsHandler *mpHandler; -- -- libwpg::WPGPen m_pen; -- libwpg::WPGBrush m_brush; -- FillRule m_fillRule; -- int m_gradientIndex; -- int m_dashIndex; -- int m_styleIndex; -- void writeStyle(); -- std::ostringstream m_value, m_name; -- double m_width, m_height; -- const bool m_isFlatXML; --#else -- virtual void startGraphics(const ::WPXPropertyList &propList); -- virtual void endGraphics(); -- virtual void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient); -- virtual void startLayer(const ::WPXPropertyList &propList); -- virtual void endLayer(); -- virtual void drawRectangle(const ::WPXPropertyList& propList); -- virtual void drawEllipse(const ::WPXPropertyList& propList); -- virtual void drawPolygon(const ::WPXPropertyListVector &vertices); -- virtual void drawPath(const ::WPXPropertyListVector &path); -- virtual void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData); -- virtual void startEmbeddedGraphics(const ::WPXPropertyList &propList); -- virtual void endEmbeddedGraphics(); -- virtual void drawPolyline(const ::WPXPropertyListVector &vertices); -- virtual void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path); -- virtual void endTextObject(); -- virtual void startTextLine(const ::WPXPropertyList &propList); -- virtual void endTextLine(); -- virtual void startTextSpan(const ::WPXPropertyList &propList); -- virtual void endTextSpan(); -- virtual void insertText(const ::WPXString &str); -- -- --private: -- std::vector <GraphicsElement *> mBodyElements; -- std::vector <GraphicsElement *> mAutomaticStylesElements; -- std::vector <GraphicsElement *> mStrokeDashElements; -- std::vector <GraphicsElement *> mGradientElements; -- GraphicsHandler *mpHandler; -- -- int m_gradientIndex; -- int m_dashIndex; -- int m_styleIndex; -- void writeStyle(); -- std::ostringstream m_value, m_name; -- double m_width, m_height; -- const bool m_isFlatXML; --#endif --}; -- --#endif // __ODGEXPORTER_H__ -diff -Nur koffice-2.3.1/filters/karbon/wpg/import/WPGImport.cpp koffice-2.3.1-libwpg02/filters/karbon/wpg/import/WPGImport.cpp ---- koffice-2.3.1/filters/karbon/wpg/import/WPGImport.cpp 2011-01-15 21:05:35.000000000 +0100 -+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/WPGImport.cpp 2011-01-02 17:46:15.000000000 +0100 -@@ -20,28 +20,26 @@ - #include <WPGImport.h> - #include <WPGImport.moc> - --#include <QBuffer> --#include <QByteArray> --#include <QString> -- --#include <kdebug.h> - #include <KoFilterChain.h> - #include <KoGlobal.h> - #include <KoUnit.h> -+#include <KoXmlWriter.h> -+ - #include <kpluginfactory.h> -+#include <KDebug> - --#include <KoXmlWriter.h> -+ -+#include <QtCore/QString> -+#include <QtCore/QFile> - - #include <libwpg/libwpg.h> - #if LIBWPG_VERSION_MINOR<2 - #include <libwpg/WPGStreamImplementation.h> - #else - #include <libwpd-stream/libwpd-stream.h> -+#include <libwpd/libwpd.h> - #endif - --#include "FileOutputHandler.hxx" --#include "OdgExporter.hxx" -- - #include <iostream> - - K_PLUGIN_FACTORY(WPGImportFactory, registerPlugin<WPGImport>();) -@@ -56,35 +54,13 @@ - { - } - --static QByteArray createManifest() --{ -- KoXmlWriter* manifestWriter; -- QByteArray manifestData; -- QBuffer manifestBuffer(&manifestData); -- -- manifestBuffer.open(QIODevice::WriteOnly); -- manifestWriter = new KoXmlWriter(&manifestBuffer); -- -- manifestWriter->startDocument("manifest:manifest"); -- manifestWriter->startElement("manifest:manifest"); -- manifestWriter->addAttribute("xmlns:manifest", "urn:oasis:names:tc:openoffice:xmlns:manifest:1.0"); -- manifestWriter->addManifestEntry("/", "application/vnd.oasis.opendocument.graphics"); -- //manifestWriter->addManifestEntry( "styles.xml", "text/xml" ); -- manifestWriter->addManifestEntry("content.xml", "text/xml"); -- manifestWriter->endElement(); -- manifestWriter->endDocument(); -- delete manifestWriter; -- -- return manifestData; --} -- - - KoFilter::ConversionStatus WPGImport::convert(const QByteArray& from, const QByteArray& to) - { - if (from != "application/x-wpg") - return KoFilter::NotImplemented; - -- if (to != "application/vnd.oasis.opendocument.graphics") -+ if (to != "image/svg+xml") - return KoFilter::NotImplemented; - - #if LIBWPG_VERSION_MINOR<2 -@@ -96,6 +72,7 @@ - input = olestream; - } - } -+ libwpg::WPGString output; - #else - WPXInputStream* input = new WPXFileStream(m_chain->inputFile().toLocal8Bit()); - if (input->isOLEStream()) { -@@ -105,59 +82,31 @@ - input = olestream; - } - } -+ ::WPXString output; - #endif - - if (!libwpg::WPGraphics::isSupported(input)) { -- std::cerr << "ERROR: Unsupported file format (unsupported version) or file is encrypted!" << std::endl; -+ kWarning() << "ERROR: Unsupported file format (unsupported version) or file is encrypted!"; - delete input; - return KoFilter::NotImplemented; - } - -- // do the conversion -- std::ostringstream tmpStringStream; -- FileOutputHandler tmpHandler(tmpStringStream); -- OdgExporter exporter(&tmpHandler); -- libwpg::WPGraphics::parse(input, &exporter); -- delete input; -- -- -- // create output store -- KoStore* storeout; -- storeout = KoStore::createStore(m_chain->outputFile(), KoStore::Write, -- "application/vnd.oasis.opendocument.graphics", KoStore::Zip); -- -- if (!storeout) { -- kWarning() << "Couldn't open the requested file."; -- return KoFilter::FileNotFound; -- } -- --#if 0 -- if (!storeout->open("styles.xml")) { -- kWarning() << "Couldn't open the file 'styles.xml'."; -- return KoFilter::CreationError; -+ if (!libwpg::WPGraphics::generateSVG(input, output)) { -+ kWarning() << "ERROR: SVG Generation failed!"; -+ delete input; -+ return KoFilter::ParsingError; - } -- //storeout->write( createStyles() ); -- storeout->close(); --#endif - -- if (!storeout->open("content.xml")) { -- kWarning() << "Couldn't open the file 'content.xml'."; -- return KoFilter::CreationError; -- } -- storeout->write(tmpStringStream.str().c_str()); -- storeout->close(); -+ delete input; - -- // store document manifest -- storeout->enterDirectory("META-INF"); -- if (!storeout->open("manifest.xml")) { -- kWarning() << "Couldn't open the file 'META-INF/manifest.xml'."; -- return KoFilter::CreationError; -+ QFile outputFile(m_chain->outputFile()); -+ if(!outputFile.open(QIODevice::WriteOnly | QIODevice::Text)) { -+ kWarning() << "ERROR: Could not open output file" << m_chain->outputFile(); -+ return KoFilter::InternalError; - } -- storeout->write(createManifest()); -- storeout->close(); - -- // we are done! -- delete storeout; -+ outputFile.write(output.cstr()); -+ outputFile.close(); - - return KoFilter::OK; - } - diff --git a/staging/koffice/koffice.install b/staging/koffice/koffice.install deleted file mode 100644 index e70c054ec..000000000 --- a/staging/koffice/koffice.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/staging/koffice/krita.install b/staging/koffice/krita.install deleted file mode 100644 index ce5c32e1b..000000000 --- a/staging/koffice/krita.install +++ /dev/null @@ -1,12 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null - update-mime-database usr/share/mime &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -}
\ No newline at end of file |