36 files changed, 210 insertions, 488 deletions
diff --git a/libopie2/opiecore/device/odevice.cpp b/libopie2/opiecore/device/odevice.cpp index 27b0e53..f3e2cfb 100644 --- a/libopie2/opiecore/device/odevice.cpp +++ b/libopie2/opiecore/device/odevice.cpp @@ -62,3 +62,3 @@ const char* PATH_PROC_CPUINFO = "/proc/cpuinfo"; -using namespace Opie; +using namespace Opie::Core; @@ -83,7 +83,7 @@ ODevice *ODevice::inst() qDebug( "ODevice() - found '%s'", (const char*) line ); - if ( line.contains( "sharp", false ) ) dev = new Zaurus(); - else if ( line.contains( "ipaq", false ) ) dev = new iPAQ(); - else if ( line.contains( "simpad", false ) ) dev = new SIMpad(); - else if ( line.contains( "jornada", false ) ) dev = new Jornada(); - else if ( line.contains( "ramses", false ) ) dev = new Ramses(); + if ( line.contains( "sharp", false ) ) dev = new Private::Zaurus(); + else if ( line.contains( "ipaq", false ) ) dev = new Private::iPAQ(); + else if ( line.contains( "simpad", false ) ) dev = new Private::SIMpad(); + else if ( line.contains( "jornada", false ) ) dev = new Private::Jornada(); + else if ( line.contains( "ramses", false ) ) dev = new Private::Ramses(); else qWarning( "ODevice() - unknown hardware - using default." ); @@ -626,2 +626,5 @@ void ODevice::sendSuspendmsg() { + if ( isQWS() ) + return; + QCopEnvelope ( "QPE/System", "aboutToSuspend()" ); diff --git a/libopie2/opiecore/device/odevice.h b/libopie2/opiecore/device/odevice.h index bccb449..5ee9cca 100644 --- a/libopie2/opiecore/device/odevice.h +++ b/libopie2/opiecore/device/odevice.h @@ -42,4 +42,5 @@ _;:, .> :=|. This program is free software; you can -namespace Opie -{ +namespace Opie{ +namespace Core{ + class ODeviceData; @@ -316,2 +317,3 @@ class ODeviceData { } +} @@ -330,2 +332,3 @@ static QCString makeChannel ( const char *str ) + #endif diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp index 8ecea1b..177fd4c 100644 --- a/libopie2/opiecore/device/odevice_ipaq.cpp +++ b/libopie2/opiecore/device/odevice_ipaq.cpp @@ -55,2 +55,6 @@ + +using namespace Opie::Core; +using namespace Opie::Core::Private; + /* KERNEL */ diff --git a/libopie2/opiecore/device/odevice_ipaq.h b/libopie2/opiecore/device/odevice_ipaq.h index f512344..4f4af46 100644 --- a/libopie2/opiecore/device/odevice_ipaq.h +++ b/libopie2/opiecore/device/odevice_ipaq.h @@ -37,3 +37,5 @@ -using namespace Opie; +namespace Opie { +namespace Core { +namespace Private { @@ -83,2 +85,6 @@ struct i_button { +} +} +} + #endif diff --git a/libopie2/opiecore/device/odevice_jornada.cpp b/libopie2/opiecore/device/odevice_jornada.cpp index 37bd6e9..b79b0b5 100644 --- a/libopie2/opiecore/device/odevice_jornada.cpp +++ b/libopie2/opiecore/device/odevice_jornada.cpp @@ -79,3 +79,3 @@ typedef struct { -using namespace Opie; +using namespace Opie::Core::Private; diff --git a/libopie2/opiecore/device/odevice_jornada.h b/libopie2/opiecore/device/odevice_jornada.h index 59be8da..c37d75e 100644 --- a/libopie2/opiecore/device/odevice_jornada.h +++ b/libopie2/opiecore/device/odevice_jornada.h @@ -34,4 +34,5 @@ -using namespace Opie; - +namespace Opie { +namespace Core { +namespace Private { class Jornada : public ODevice @@ -47,3 +48,5 @@ class Jornada : public ODevice }; - +} +} +} #endif diff --git a/libopie2/opiecore/device/odevice_ramses.cpp b/libopie2/opiecore/device/odevice_ramses.cpp index 5bcf6a9..77de8c5 100644 --- a/libopie2/opiecore/device/odevice_ramses.cpp +++ b/libopie2/opiecore/device/odevice_ramses.cpp @@ -55,2 +55,5 @@ +using namespace Opie::Core; +using namespace Opie::Core::Private; + struct r_button ramses_buttons [] = { diff --git a/libopie2/opiecore/device/odevice_ramses.h b/libopie2/opiecore/device/odevice_ramses.h index 1b660ab..e673b1a 100644 --- a/libopie2/opiecore/device/odevice_ramses.h +++ b/libopie2/opiecore/device/odevice_ramses.h @@ -36,3 +36,5 @@ -using namespace Opie; +namespace Opie { +namespace Core { +namespace Private { @@ -70,2 +72,5 @@ struct r_button { }; +} +} +} diff --git a/libopie2/opiecore/device/odevice_simpad.cpp b/libopie2/opiecore/device/odevice_simpad.cpp index 90aca2f..80d40a3 100644 --- a/libopie2/opiecore/device/odevice_simpad.cpp +++ b/libopie2/opiecore/device/odevice_simpad.cpp @@ -55,3 +55,4 @@ _;:, .> :=|. This program is free software; you can -using namespace Opie; +using namespace Opie::Core; +using namespace Opie::Core::Private; diff --git a/libopie2/opiecore/device/odevice_simpad.h b/libopie2/opiecore/device/odevice_simpad.h index 3287ee8..1848151 100644 --- a/libopie2/opiecore/device/odevice_simpad.h +++ b/libopie2/opiecore/device/odevice_simpad.h @@ -37,3 +37,5 @@ -using namespace Opie; +namespace Opie { +namespace Core { +namespace Private { @@ -80,2 +82,6 @@ struct s_button { +} +} +} + #endif diff --git a/libopie2/opiecore/device/odevice_yopy.cpp b/libopie2/opiecore/device/odevice_yopy.cpp index d241db8..f7a4025 100644 --- a/libopie2/opiecore/device/odevice_yopy.cpp +++ b/libopie2/opiecore/device/odevice_yopy.cpp @@ -55,3 +55,4 @@ _;:, .> :=|. This program is free software; you can -using namespace Opie; +using namespace Opie::Core; +using namespace Opie::Core::Private; diff --git a/libopie2/opiecore/device/odevice_yopy.h b/libopie2/opiecore/device/odevice_yopy.h index be8f62c..7d85479 100644 --- a/libopie2/opiecore/device/odevice_yopy.h +++ b/libopie2/opiecore/device/odevice_yopy.h @@ -34,4 +34,5 @@ _;:, .> :=|. This program is free software; you can -using namespace Opie; - +namespace Opie { +namespace Core { +namespace Private { class Yopy : public ODevice @@ -61,2 +62,6 @@ struct yopy_button +} +} +} + #endif diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp index 8ab3cbe..0d21f26 100644 --- a/libopie2/opiecore/device/odevice_zaurus.cpp +++ b/libopie2/opiecore/device/odevice_zaurus.cpp @@ -55,3 +55,4 @@ _;:, .> :=|. This program is free software; you can -using namespace Opie; +using namespace Opie::Core; +using namespace Opie::Core::Private; diff --git a/libopie2/opiecore/device/odevice_zaurus.h b/libopie2/opiecore/device/odevice_zaurus.h index f5c5172..ffb648f 100644 --- a/libopie2/opiecore/device/odevice_zaurus.h +++ b/libopie2/opiecore/device/odevice_zaurus.h @@ -47,4 +47,6 @@ -using namespace Opie; +namespace Opie { +namespace Core { +namespace Private { class Zaurus : public ODevice @@ -94,3 +96,5 @@ struct z_button { }; - +} +} +} #endif diff --git a/libopie2/opiecore/device/odevicebutton.cpp b/libopie2/opiecore/device/odevicebutton.cpp index 0b593d5..a081b7f 100644 --- a/libopie2/opiecore/device/odevicebutton.cpp +++ b/libopie2/opiecore/device/odevicebutton.cpp @@ -35,3 +35,6 @@ -using namespace Opie; + +namespace Opie { +namespace Core { +namespace Private { @@ -44,3 +47,6 @@ class OQCopMessageData }; +} +using namespace Opie::Core; +using namespace Opie::Core::Private; @@ -126,4 +132,4 @@ void OQCopMessage::setData ( const QByteArray &data ) -/*! \class Opie::ODeviceButton - \brief The Opie::ODeviceButton class represents a physical user mappable button on a Qtopia device. +/*! \class Opie::Core::ODeviceButton + \brief The Opie::Core::ODeviceButton class represents a physical user mappable button on a Qtopia device. @@ -246 +252,4 @@ void ODeviceButton::setHeldAction(const OQCopMessage& action) } + +} +} diff --git a/libopie2/opiecore/device/odevicebutton.h b/libopie2/opiecore/device/odevicebutton.h index a66b88f..4000144 100644 --- a/libopie2/opiecore/device/odevicebutton.h +++ b/libopie2/opiecore/device/odevicebutton.h @@ -25,6 +25,8 @@ -class OQCopMessageData; -namespace Opie -{ +namespace Opie{ +namespace Core{ +namespace Private { +class OQCopMessageData; +} @@ -54,3 +56,3 @@ private: - OQCopMessageData *d; + Private::OQCopMessageData *d; class Private; @@ -106,2 +108,3 @@ class ODeviceButton } +} diff --git a/libopie2/opiecore/oapplication.cpp b/libopie2/opiecore/oapplication.cpp index d340c0e..e2f6e82 100644 --- a/libopie2/opiecore/oapplication.cpp +++ b/libopie2/opiecore/oapplication.cpp @@ -36,2 +36,5 @@ +using namespace Opie::Core; + + OApplication* OApplication::_instance = 0; @@ -42,2 +45,5 @@ OApplication* OApplication::_instance = 0; +namespace Opie { +namespace Core { +namespace Private { class OApplicationPrivate @@ -48,2 +54,3 @@ class OApplicationPrivate }; +} @@ -86,3 +93,3 @@ void OApplication::init() { - d = new OApplicationPrivate(); + d = new Private::OApplicationPrivate(); if ( !OApplication::_instance ) @@ -127 +134,3 @@ void OApplication::setTitle( const QString& title ) const +} +} diff --git a/libopie2/opiecore/oapplication.h b/libopie2/opiecore/oapplication.h index cc506a2..c1e32a6 100644 --- a/libopie2/opiecore/oapplication.h +++ b/libopie2/opiecore/oapplication.h @@ -32,3 +32,3 @@ -#define oApp OApplication::oApplication() +#define oApp Opie::Core::OApplication::oApplication() @@ -37,4 +37,8 @@ - +namespace Opie { +namespace Core { +namespace Private { class OApplicationPrivate; +} // private class + class OConfig; @@ -100,5 +104,8 @@ class OApplication : public QPEApplication OConfig* _config; - OApplicationPrivate* d; + Private::OApplicationPrivate* d; }; +} // Core +} // Opie + #endif // OAPPLICATION_H diff --git a/libopie2/opiecore/oconfig.cpp b/libopie2/opiecore/oconfig.cpp index fb5eabb..05d8070 100644 --- a/libopie2/opiecore/oconfig.cpp +++ b/libopie2/opiecore/oconfig.cpp @@ -40,2 +40,4 @@ +using namespace Opie::Core; + OConfig::OConfig( const QString &name, Domain domain ) diff --git a/libopie2/opiecore/oconfig.h b/libopie2/opiecore/oconfig.h index becf70d..29c1f86 100644 --- a/libopie2/opiecore/oconfig.h +++ b/libopie2/opiecore/oconfig.h @@ -42,2 +42,5 @@ class QFont; +namespace Opie { +namespace Core { + /** @@ -64,2 +67,3 @@ class OConfig : public Config * The current group is used for searching keys and accessing entries. + * @todo make const */ @@ -74,2 +78,6 @@ class OConfig : public Config QFont readFontEntry( const QString& key, const QFont* pDefault ) const; + +private: + class Private; + Private *d; }; @@ -138,3 +146,8 @@ class OConfigGroupSaver OConfigGroupSaver& operator=( const OConfigGroupSaver& ); + + class Private; + Private *d; }; +} +} diff --git a/libopie2/opiecore/odebug.cpp b/libopie2/opiecore/odebug.cpp index a40ef53..cac985b 100644 --- a/libopie2/opiecore/odebug.cpp +++ b/libopie2/opiecore/odebug.cpp @@ -67,3 +67,4 @@ - +namespace Opie { +namespace Core { /*====================================================================================== @@ -616,2 +617,3 @@ void odClearDebugConfig() + #ifdef OPIE_NO_DEBUG @@ -620 +622,4 @@ void odClearDebugConfig() #endif + +} +}
\ No newline at end of file diff --git a/libopie2/opiecore/odebug.h b/libopie2/opiecore/odebug.h index 85941fd..a5c9ded 100644 --- a/libopie2/opiecore/odebug.h +++ b/libopie2/opiecore/odebug.h @@ -49,2 +49,5 @@ class QBrush; +namespace Opie { +namespace Core { + class odbgstream; @@ -396,2 +399,6 @@ class ondbgstream { ondbgstream& operator<<( const QBrush & ) { return *this; } + +private: + class Private; + Private *d; }; @@ -474 +481,3 @@ void odClearDebugConfig(); +} +} diff --git a/libopie2/opiecore/oglobal.cpp b/libopie2/opiecore/oglobal.cpp index 1aa206e..ea02058 100644 --- a/libopie2/opiecore/oglobal.cpp +++ b/libopie2/opiecore/oglobal.cpp @@ -40,2 +40,4 @@ +using namespace Opie::Core; + static const char Base64EncMap[64] = @@ -314,3 +316,3 @@ bool OGlobal::isAppLnkFileName( const QString& str ) { - if (str.length()==0||str.at(str.length()-1)==QDir::separator()) return false; + if (str.isEmpty()||str.at(str.length()-1)==QDir::separator()) return false; return str.startsWith(MimeType::appsFolderName()+QDir::separator()); @@ -325,3 +327,3 @@ bool OGlobal::isDocumentFileName( const QString& file ) { - if (file.length()==0||file.at(file.length()-1)==QDir::separator()) return false; + if (file.isEmpty()||file.at(file.length()-1)==QDir::separator()) return false; if (file.startsWith(QPEApplication::documentDir()+QDir::separator())) return true; diff --git a/libopie2/opiecore/oglobal.h b/libopie2/opiecore/oglobal.h index aeee75e..e6a6c46 100644 --- a/libopie2/opiecore/oglobal.h +++ b/libopie2/opiecore/oglobal.h @@ -54,2 +54,7 @@ class QString; class DateFormat; + + + +namespace Opie { +namespace Core { /** @@ -148,4 +153,7 @@ private: static OConfig* _qpe_config; + class Private; + Private *d; }; - +} +} #endif // OGLOBAL_H diff --git a/libopie2/opiecore/oglobalsettings.cpp b/libopie2/opiecore/oglobalsettings.cpp index 192e55b..f34c531 100644 --- a/libopie2/opiecore/oglobalsettings.cpp +++ b/libopie2/opiecore/oglobalsettings.cpp @@ -46,2 +46,5 @@ + +using namespace Opie::Core; + QString* OGlobalSettings::s_desktopPath = 0; diff --git a/libopie2/opiecore/oglobalsettings.h b/libopie2/opiecore/oglobalsettings.h index e3ac148..8eea709 100644 --- a/libopie2/opiecore/oglobalsettings.h +++ b/libopie2/opiecore/oglobalsettings.h @@ -38,2 +38,5 @@ +/** + * \todo make real const values + */ #define OPIE_DEFAULT_SINGLECLICK true @@ -51,2 +54,5 @@ +namespace Opie { +namespace Core { + /** @@ -370,4 +376,10 @@ private: friend class OApplication; +private: + class Private; + Private *d; }; +} +} + #endif diff --git a/libopie2/opiecore/opiecore.pro b/libopie2/opiecore/opiecore.pro index 523d6a7..ff3c036 100644 --- a/libopie2/opiecore/opiecore.pro +++ b/libopie2/opiecore/opiecore.pro @@ -11,4 +11,3 @@ HEADERS = oapplication.h \ osmartpointer.h \ - ostorageinfo.h \ - xmltree.h + ostorageinfo.h @@ -21,4 +20,3 @@ SOURCES = oapplication.cpp \ oprocctrl.cpp \ - ostorageinfo.cpp \ - xmltree.cc + ostorageinfo.cpp @@ -28,3 +26,3 @@ INTERFACES = TARGET = opiecore2 -VERSION = 1.8.5 +VERSION = 1.9.0 INCLUDEPATH += $(OPIEDIR)/include diff --git a/libopie2/opiecore/oprocctrl.cpp b/libopie2/opiecore/oprocctrl.cpp index 0403526..46708ba 100644 --- a/libopie2/opiecore/oprocctrl.cpp +++ b/libopie2/opiecore/oprocctrl.cpp @@ -43,2 +43,4 @@ +using namespace Opie::Core::Private; + OProcessController *OProcessController::theOProcessController = 0; diff --git a/libopie2/opiecore/oprocctrl.h b/libopie2/opiecore/oprocctrl.h index 44b8a48..4922ba2 100644 --- a/libopie2/opiecore/oprocctrl.h +++ b/libopie2/opiecore/oprocctrl.h @@ -36,5 +36,10 @@ -class OProcessControllerPrivate; class QSocketNotifier; + +namespace Opie { +namespace Core { +namespace Private { +class OProcessControllerPrivate; + /** @@ -117,2 +122,5 @@ private: +} +} +} diff --git a/libopie2/opiecore/oprocess.cpp b/libopie2/opiecore/oprocess.cpp index 6349c83..dfde74a 100644 --- a/libopie2/opiecore/oprocess.cpp +++ b/libopie2/opiecore/oprocess.cpp @@ -63,2 +63,7 @@ _;:, .> :=|. This program is free software; you can +using namespace Opie::Core::Private; + +namespace Opie { +namespace Core { +namespace Private { class OProcessPrivate @@ -74,3 +79,3 @@ public: }; - +} @@ -943 +948,4 @@ int OProcess::processPID( const QString& process ) } + +} +} diff --git a/libopie2/opiecore/oprocess.h b/libopie2/opiecore/oprocess.h index 1a2472d..eb56b03 100644 --- a/libopie2/opiecore/oprocess.h +++ b/libopie2/opiecore/oprocess.h @@ -45,3 +45,9 @@ _;:, .> :=|. This program is free software; you can class QSocketNotifier; + +namespace Opie { +namespace Core { +namespace Private { +class OProcessController; class OProcessPrivate; +} @@ -399,2 +405,3 @@ public: * Lets you see what your arguments are for debugging. + * \todo make const */ @@ -718,3 +725,3 @@ protected: */ - friend class OProcessController; + friend class Private::OProcessController; @@ -747,4 +754,6 @@ private: void init ( ); - OProcessPrivate *d; + Private::OProcessPrivate *d; }; +} +} diff --git a/libopie2/opiecore/osmartpointer.h b/libopie2/opiecore/osmartpointer.h index 9000e71..8f9da7f 100644 --- a/libopie2/opiecore/osmartpointer.h +++ b/libopie2/opiecore/osmartpointer.h @@ -42,2 +42,3 @@ _;:, .> :=|. This program is free software; you can namespace Opie { +namespace Core { @@ -142,2 +143,3 @@ public: } +} diff --git a/libopie2/opiecore/ostorageinfo.cpp b/libopie2/opiecore/ostorageinfo.cpp index aa8d2fc..8fcf5fc 100644 --- a/libopie2/opiecore/ostorageinfo.cpp +++ b/libopie2/opiecore/ostorageinfo.cpp @@ -31,2 +31,4 @@ +using namespace Opie::Core; + OStorageInfo::OStorageInfo( QObject *parent ) diff --git a/libopie2/opiecore/ostorageinfo.h b/libopie2/opiecore/ostorageinfo.h index 740fa85..4e1097f 100644 --- a/libopie2/opiecore/ostorageinfo.h +++ b/libopie2/opiecore/ostorageinfo.h @@ -34,2 +34,5 @@ +namespace Opie { +namespace Core { + class OStorageInfo : public StorageInfo @@ -58,4 +61,9 @@ class OStorageInfo : public StorageInfo QString mmcPath() const; +private: + class Private; + Private *d; }; +} +} #endif // OSTORAGE_H diff --git a/libopie2/opiecore/xmltree.cc b/libopie2/opiecore/xmltree.cc deleted file mode 100644 index 059791b..0000000 --- a/libopie2/opiecore/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 <opie2/xmltree.h> - -#include <qpe/stringutil.h> - -#include <qxml.h> - -#include <assert.h> - -using namespace Opie; - -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/opiecore/xmltree.h b/libopie2/opiecore/xmltree.h deleted file mode 100644 index 4b6bdfa..0000000 --- a/libopie2/opiecore/xmltree.h +++ b/dev/null @@ -1,119 +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 -{ - -/** - * 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 |