summaryrefslogtreecommitdiffstats
path: root/kpresenter/KPrTextDocument.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
commit8362bf63dea22bbf6736609b0f49c152f975eb63 (patch)
tree0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kpresenter/KPrTextDocument.cpp
downloadkoffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz
koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kpresenter/KPrTextDocument.cpp')
-rw-r--r--kpresenter/KPrTextDocument.cpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/kpresenter/KPrTextDocument.cpp b/kpresenter/KPrTextDocument.cpp
new file mode 100644
index 00000000..51a5be7f
--- /dev/null
+++ b/kpresenter/KPrTextDocument.cpp
@@ -0,0 +1,103 @@
+// -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*-
+/* This file is part of the KDE project
+ Copyright (C) 2001 Laurent Montel <lmontel@mandrakesoft.com>
+
+ 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; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include "KPrTextDocument.h"
+
+#include "KPrDocument.h"
+#include "KPrTextObject.h"
+#include <KoTextParag.h>
+#include <kdebug.h>
+
+#include "KPrVariableCollection.h"
+
+#include <KoOasisContext.h>
+#include <KoDom.h>
+#include <KoXmlNS.h>
+
+KPrTextDocument::KPrTextDocument( KPrTextObject * textobj, KoTextFormatCollection *fc, KoTextFormatter *formatter )
+ : KoTextDocument( textobj->kPresenterDocument()->zoomHandler(), fc, formatter, true ), m_textobj( textobj )
+{
+ //kdDebug(33001) << "KPrTextDocument constructed " << this << " KPrTextObject:" << textobj << endl;
+}
+
+KPrTextDocument::~KPrTextDocument()
+{
+}
+
+
+bool KPrTextDocument::loadSpanTag( const QDomElement& tag, KoOasisContext& context,
+ KoTextParag* parag, uint pos,
+ QString& textData, KoTextCustomItem* & customItem )
+{
+ const QString localName( tag.localName() );
+ const bool isTextNS = tag.namespaceURI() == KoXmlNS::text;
+ kdDebug( 32500 ) << "KPrTextDocument::loadSpanTag: " << localName << endl;
+
+ if ( isTextNS )
+ {
+ if ( localName == "a" )
+ {
+ QString href( tag.attributeNS( KoXmlNS::xlink, "href", QString::null ) );
+ if ( href.startsWith( "#" ) )
+ {
+ context.styleStack().save();
+ // We have a reference to a bookmark (### TODO)
+ // As we do not support it now, treat it as a <span> without formatting
+ parag->loadOasisSpan( tag, context, pos ); // recurse
+ context.styleStack().restore();
+ }
+ else
+ {
+ // The text is contained in a <span> inside the <a> element. In theory
+ // we could have multiple spans there, but OO ensures that there is always only one,
+ // splitting the hyperlink if necessary (at format changes).
+ // Note that we ignore the formatting of the span.
+ QDomElement spanElem = KoDom::namedItemNS( tag, KoXmlNS::text, "span" );
+ QString text;
+ if ( spanElem.isNull() )
+ text = tag.text();
+ if ( spanElem.isNull() )
+ text = tag.text();
+ else {
+ // The save/restore of the stack is done by the caller (KoTextParag::loadOasisSpan)
+ // This allows to use the span's format for the variable.
+ //kdDebug(32500) << "filling stack with " << spanElem.attributeNS( KoXmlNS::text, "style-name", QString::null ) << endl;
+ context.fillStyleStack( spanElem, KoXmlNS::text, "style-name", "text" );
+ text = spanElem.text();
+ }
+ textData = KoTextObject::customItemChar(); // hyperlink placeholder
+ // unused tag.attributeNS( KoXmlNS::office, "name", QString::null )
+ KoVariableCollection& coll = context.variableCollection();
+ customItem = new KoLinkVariable( this, text, href,
+ coll.formatCollection()->format( "STRING" ),
+ &coll );
+ }
+ return true;
+ }
+ }
+ else // non "text:" tags
+ {
+ kdDebug()<<"Extension found tagName : "<< localName <<endl;
+ }
+ return false;
+}
+
+
+#include "KPrTextDocument.moc"