summaryrefslogtreecommitdiff
path: root/libopie2/opiepim
authorzecke <zecke>2004-03-14 17:00:05 (UTC)
committer zecke <zecke>2004-03-14 17:00:05 (UTC)
commit59106c8ffcf25181925281c519a2b49d6835ef9e (patch) (side-by-side diff)
tree810ff3af82ffb109ad662bf86e2d669b27ef9a32 /libopie2/opiepim
parent5bf53ecde573239a07faaa713f2a6f8392fa364a (diff)
downloadopie-59106c8ffcf25181925281c519a2b49d6835ef9e.zip
opie-59106c8ffcf25181925281c519a2b49d6835ef9e.tar.gz
opie-59106c8ffcf25181925281c519a2b49d6835ef9e.tar.bz2
but XML Parser back to OPie Core as libtinykate uses it as well
Diffstat (limited to 'libopie2/opiepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/backends.pro6
-rw-r--r--libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp5
-rw-r--r--libopie2/opiepim/core/backends/private/xmltree.cc323
-rw-r--r--libopie2/opiepim/core/backends/private/xmltree.h122
4 files changed, 4 insertions, 452 deletions
diff --git a/libopie2/opiepim/backend/backends.pro b/libopie2/opiepim/backend/backends.pro
index d4867ba..953d928 100644
--- a/libopie2/opiepim/backend/backends.pro
+++ b/libopie2/opiepim/backend/backends.pro
@@ -7,14 +7,13 @@ SOURCES += core/backends/ocontactaccessbackend_sql.cpp \
core/backends/otodoaccessbackend.cpp \
core/backends/otodoaccess.cpp \
core/backends/otodoaccesssql.cpp \
core/backends/otodoaccessvcal.cpp \
core/backends/otodoaccessxml.cpp \
core/backends/odatebookaccess.cpp \
- core/backends/odatebookaccessbackend_sql.cpp \
- core/backends/private/xmltree.cc
+ core/backends/odatebookaccessbackend_sql.cpp
HEADERS += core/backends/obackendfactory.h \
core/backends/ocontactaccessbackend.h \
core/backends/ocontactaccessbackend_sql.h \
core/backends/ocontactaccessbackend_vcard.h \
core/backends/ocontactaccessbackend_xml.h \
@@ -26,8 +25,7 @@ HEADERS += core/backends/obackendfactory.h \
core/backends/opimaccesstemplate.h \
core/backends/otodoaccessbackend.h \
core/backends/otodoaccess.h \
core/backends/otodoaccesssql.h \
core/backends/otodoaccessvcal.h \
core/backends/otodoaccessxml.h \
- core/backends/odatebookaccess.h \
- core/backends/private/xmltree.h
+ core/backends/odatebookaccess.h
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp b/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
index f5e76d5..2b467c3 100644
--- a/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
+++ b/libopie2/opiepim/backend/ocontactaccessbackend_xml.cpp
@@ -38,21 +38,20 @@
#include <qregexp.h>
#include <qarray.h>
#include <qmap.h>
#include <qpe/global.h>
-#include "private/xmltree.h"
+#include <opie2/xmltree.h>
#include <opie2/ocontactaccessbackend.h>
#include <opie2/ocontactaccess.h>
#include <stdlib.h>
#include <errno.h>
-using namespace Opie;
-using namespace Opie::Pim::Private;
+using namespace Opie::Core;
namespace Opie {
OPimContactAccessBackend_XML::OPimContactAccessBackend_XML ( const QString& appname, const QString& filename ):
m_changed( false )
{
diff --git a/libopie2/opiepim/core/backends/private/xmltree.cc b/libopie2/opiepim/core/backends/private/xmltree.cc
deleted file mode 100644
index 40749ca..0000000
--- a/libopie2/opiepim/core/backends/private/xmltree.cc
+++ b/dev/null
@@ -1,323 +0,0 @@
-/* This file is part of the KDE project
- Copyright (C) 2001 Simon Hausmann <hausmann@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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-
-#include "xmltree.h"
-
-#include <qpe/stringutil.h>
-
-#include <qxml.h>
-
-#include <assert.h>
-
-using namespace Opie::Pim::Private;
-
-XMLElement::XMLElement()
- : m_parent( 0 ), m_next( 0 ), m_prev( 0 ), m_first( 0 ), m_last( 0 )
-{
-}
-
-XMLElement::~XMLElement()
-{
- XMLElement *n = m_first;
-
- while ( n )
- {
- XMLElement *tmp = n;
- n = n->m_next;
- delete tmp;
- }
-}
-
-void XMLElement::appendChild( XMLElement *child )
-{
- if ( child->m_parent )
- child->m_parent->removeChild( child );
-
- child->m_parent = this;
-
- if ( m_last )
- m_last->m_next = child;
-
- child->m_prev = m_last;
-
- if ( !m_first )
- m_first = child;
-
- m_last = child;
-}
-
-void XMLElement::insertAfter( XMLElement *newChild, XMLElement *refChild )
-{
- assert( newChild != refChild );
-
- if ( refChild == m_last )
- {
- appendChild( newChild );
- return;
- }
-
- assert( refChild );
- assert( refChild->m_parent );
- assert( refChild->m_parent == this );
-
- if ( newChild->m_parent && newChild != refChild )
- newChild->m_parent->removeChild( newChild );
-
- newChild->m_parent = this;
-
- XMLElement *next = refChild->m_next;
-
- refChild->m_next = newChild;
-
- newChild->m_prev = refChild;
- newChild->m_next = next;
-
- if ( next )
- next->m_prev = newChild;
-}
-
-QString XMLElement::attribute( const QString &attr ) const
-{
- AttributeMap::ConstIterator it = m_attributes.find( attr );
- if ( it == m_attributes.end() )
- return QString::null;
- return it.data();
-}
-
-void XMLElement::setAttribute( const QString &attr, const QString &value )
-{
- m_attributes.replace( attr, value );
-}
-
-void XMLElement::insertBefore( XMLElement *newChild, XMLElement *refChild )
-{
- assert( refChild );
- assert( refChild->m_parent );
- assert( refChild->m_parent == this );
- assert( newChild != refChild );
-
- if ( newChild->m_parent && newChild != refChild )
- newChild->m_parent->removeChild( newChild );
-
- newChild->m_parent = this;
-
- XMLElement *prev = refChild->m_prev;
-
- refChild->m_prev = newChild;
-
- newChild->m_prev = prev;
- newChild->m_next = refChild;
-
- if ( prev )
- prev->m_next = newChild;
-
- if ( refChild == m_first )
- m_first = newChild;
-}
-
-void XMLElement::removeChild( XMLElement *child )
-{
- if ( child->m_parent != this )
- return;
-
- if ( m_first == child )
- m_first = child->m_next;
-
- if ( m_last == child )
- m_last = child->m_prev;
-
- if ( child->m_prev )
- child->m_prev->m_next = child->m_next;
-
- if ( child->m_next )
- child->m_next->m_prev = child->m_prev;
-
- child->m_parent = 0;
- child->m_prev = 0;
- child->m_next = 0;
-}
-
-void XMLElement::save( QTextStream &s, uint indent )
-{
- if ( !m_value.isEmpty() )
- {
- s << Qtopia::escapeString( m_value );
- return;
- }
-
- for ( uint i = 0; i < indent; ++i )
- s << " ";
-
- s << "<" << m_tag;
-
- if ( !m_attributes.isEmpty() )
- {
- s << " ";
- AttributeMap::ConstIterator it = m_attributes.begin();
- AttributeMap::ConstIterator end = m_attributes.end();
- for (; it != end; ++it )
- {
- s << it.key() << "=\"" << Qtopia::escapeString( it.data() ) << "\"";
- s << " ";
- }
- }
-
- if ( m_last )
- {
- if ( ( m_first && !m_first->value().isEmpty() ) || !m_parent )
- s << ">";
- else
- s << ">" << endl;
-
- int newIndent = indent;
- if ( m_parent )
- newIndent++;
-
- XMLElement *n = m_first;
- while ( n )
- {
- n->save( s, newIndent );
- n = n->nextChild();
- }
-
- if ( m_last && m_last->value().isEmpty() && m_parent )
- for ( uint i = 0; i < indent; ++i )
- s << " ";
-
- if ( m_parent )
- s << "</" << m_tag << ">" << endl;
- }
- else
- s << "/>" << endl;
-}
-
-class Handler : public QXmlDefaultHandler
-{
-public:
- Handler() : m_node( 0 ), m_root( 0 ) {}
-
- XMLElement *root() const { return m_root; }
-
- virtual bool startDocument();
- virtual bool endDocument();
- virtual bool startElement( const QString &ns, const QString &ln, const QString &qName,
- const QXmlAttributes &attr );
- virtual bool endElement( const QString &ns, const QString &ln, const QString &qName );
- virtual bool characters( const QString &ch );
-
-private:
- XMLElement *m_node;
- XMLElement *m_root;
-};
-
-bool Handler::startDocument()
-{
- m_root = m_node = new XMLElement;
-
- return true;
-}
-
-bool Handler::endDocument()
-{
- return m_root == m_node;
-}
-
-bool Handler::startElement( const QString &, const QString &, const QString &qName,
- const QXmlAttributes &attr )
-{
- XMLElement *bm = new XMLElement;
-
- XMLElement::AttributeMap attributes;
- for ( int i = 0; i < attr.length(); ++i )
- attributes[ attr.qName( i ) ] = attr.value( i );
-
- bm->setAttributes( attributes );
-
- bm->setTagName( qName );
-
- m_node->appendChild( bm );
- m_node = bm;
-
- return true;
-}
-
-bool Handler::endElement( const QString &, const QString &, const QString & )
-{
- if ( m_node == m_root )
- return false;
-
- m_node = m_node->parent();
- return true;
-}
-
-bool Handler::characters( const QString &ch )
-{
- XMLElement *textNode = new XMLElement;
- textNode->setValue( ch );
- m_node->appendChild( textNode );
- return true;
-}
-
-XMLElement *XMLElement::namedItem( const QString &name )
-{
- XMLElement *e = m_first;
-
- for (; e; e = e->nextChild() )
- if ( e->tagName() == name )
- return e;
-
- return 0;
-}
-
-XMLElement *XMLElement::clone() const
-{
- XMLElement *res = new XMLElement;
-
- res->setTagName( m_tag );
- res->setValue( m_value );
- res->setAttributes( m_attributes );
-
- XMLElement *e = m_first;
- for (; e; e = e->m_next )
- res->appendChild( e->clone() );
-
- return res;
-}
-
-XMLElement *XMLElement::load( const QString &fileName )
-{
- QFile f( fileName );
- if ( !f.open( IO_ReadOnly ) )
- return 0;
-
- QTextStream stream( &f );
- stream.setEncoding( QTextStream::UnicodeUTF8 );
- QXmlInputSource src( stream );
- QXmlSimpleReader reader;
- Handler handler;
-
- reader.setFeature( "http://trolltech.com/xml/features/report-whitespace-only-CharData", false );
- reader.setContentHandler( &handler );
- reader.parse( src );
-
- return handler.root();;
-}
-
-/* vim: et sw=4
- */
diff --git a/libopie2/opiepim/core/backends/private/xmltree.h b/libopie2/opiepim/core/backends/private/xmltree.h
deleted file mode 100644
index 9817a02..0000000
--- a/libopie2/opiepim/core/backends/private/xmltree.h
+++ b/dev/null
@@ -1,122 +0,0 @@
-/* This file is part of the KDE project
- Copyright (C) 2000,2001 Simon Hausmann <hausmann@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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-
-
-#ifndef __bookmarks_h__
-#define __bookmarks_h__
-
-#include <qstring.h>
-#include <qmap.h>
-#include <qtextstream.h>
-
-namespace Opie {
-namespace Pim {
-namespace Private{
-
-/**
- * A small xml lib written by Simon Hausmann.
- */
-class XMLElement
-{
-public:
- typedef QMap<QString, QString> AttributeMap;
-
- /**
- * The constructor of XMLElement
- */
- XMLElement();
- ~XMLElement();
-
- /** appendChild appends a child to the XMLElement behind the last element.
- * The ownership of the child get's transfered to the
- * this XMLElement.
- * If child is already the child of another parent
- * it's get removed from the other parent first.
- */
- void appendChild( XMLElement *child );
-
- /** inserts newChild after refChild. If newChild is the child
- * of another parent the child will get removed.
- * The ownership of child gets transfered.
- *
- */
- void insertAfter( XMLElement *newChild, XMLElement *refChild );
-
- /** same as insertAfter but the element get's inserted before refChild.
- *
- */
- void insertBefore( XMLElement *newChild, XMLElement *refChild );
-
- /** removeChild removes the child from the XMLElement.
- * The ownership gets dropped. You need to delete the
- * child yourself.
- */
- void removeChild( XMLElement *child );
-
- /** parent() returns the parent of this XMLElement
- * If there is no parent 0l gets returned
- */
- XMLElement *parent() const { return m_parent; }
- XMLElement *firstChild() const { return m_first; }
- XMLElement *nextChild() const { return m_next; }
- XMLElement *prevChild() const { return m_prev; }
- XMLElement *lastChild() const { return m_last; }
-
- void setTagName( const QString &tag ) { m_tag = tag; }
- QString tagName() const { return m_tag; }
-
- void setValue( const QString &val ) { m_value = val; }
- QString value() const { return m_value; }
-
- void setAttributes( const AttributeMap &attrs ) { m_attributes = attrs; }
- AttributeMap attributes() const { return m_attributes; }
- AttributeMap &attributes() { return m_attributes; }
-
- QString attribute( const QString & ) const;
- void setAttribute( const QString &attr, const QString &value );
- void save( QTextStream &stream, uint indent = 0 );
-
- XMLElement *namedItem( const QString &name );
-
- XMLElement *clone() const;
-
- static XMLElement *load( const QString &fileName );
-
-private:
- QString m_tag;
- QString m_value;
- AttributeMap m_attributes;
-
- XMLElement *m_parent;
- XMLElement *m_next;
- XMLElement *m_prev;
- XMLElement *m_first;
- XMLElement *m_last;
-
- XMLElement( const XMLElement &rhs );
- XMLElement &operator=( const XMLElement &rhs );
- class Private;
- Private* d;
-};
-
-}
-}
-} // namespace Opie
-
-#endif