diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /lib/kofficecore/KoOasisSettings.cpp | |
download | koffice-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 'lib/kofficecore/KoOasisSettings.cpp')
-rw-r--r-- | lib/kofficecore/KoOasisSettings.cpp | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/lib/kofficecore/KoOasisSettings.cpp b/lib/kofficecore/KoOasisSettings.cpp new file mode 100644 index 00000000..99f63524 --- /dev/null +++ b/lib/kofficecore/KoOasisSettings.cpp @@ -0,0 +1,224 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Laurent Montel <montel@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., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#include "KoOasisSettings.h" +#include "KoXmlNS.h" +#include "KoDom.h" +#include <kdebug.h> + +KoOasisSettings::KoOasisSettings( const QDomDocument& doc ) + : m_settingsElement( KoDom::namedItemNS( doc.documentElement(), KoXmlNS::office, "settings" ) ), + m_configNSURI( KoXmlNS::config ) +{ + const QDomElement contents = doc.documentElement(); + if ( m_settingsElement.isNull() ) + kdDebug() << " document doesn't have tag 'office:settings'\n"; +} + +KoOasisSettings::KoOasisSettings( const QDomDocument& doc, const char* officeNSURI, const char* configNSURI ) + : m_settingsElement( KoDom::namedItemNS( doc.documentElement(), officeNSURI, "settings" ) ), + m_configNSURI( configNSURI ) +{ + const QDomElement contents = doc.documentElement(); + if ( m_settingsElement.isNull() ) + kdDebug() << " document doesn't have tag 'office:settings'\n"; +} + +KoOasisSettings::Items KoOasisSettings::itemSet( const QString& itemSetName ) const +{ + QDomElement e; + forEachElement( e, m_settingsElement ) + { + if ( e.localName() == "config-item-set" && + e.namespaceURI() == m_configNSURI && + e.attributeNS( m_configNSURI, "name", QString::null ) == itemSetName ) + { + return Items( e, this ); + } + } + + return Items( QDomElement(), this ); +} + +KoOasisSettings::IndexedMap KoOasisSettings::Items::indexedMap( const QString& itemMapName ) const +{ + QDomElement configItem; + forEachElement( configItem, m_element ) + { + if ( configItem.localName() == "config-item-map-indexed" && + configItem.namespaceURI() == m_settings->m_configNSURI && + configItem.attributeNS( m_settings->m_configNSURI, "name", QString::null ) == itemMapName ) + { + return IndexedMap( configItem, m_settings ); + } + } + return IndexedMap( QDomElement(), m_settings ); +} + +KoOasisSettings::NamedMap KoOasisSettings::Items::namedMap( const QString& itemMapName ) const +{ + QDomElement configItem; + forEachElement( configItem, m_element ) + { + if ( configItem.localName() == "config-item-map-named" && + configItem.namespaceURI() == m_settings->m_configNSURI && + configItem.attributeNS( m_settings->m_configNSURI, "name", QString::null ) == itemMapName ) + { + return NamedMap( configItem, m_settings ); + } + } + return NamedMap( QDomElement(), m_settings ); +} + +KoOasisSettings::Items KoOasisSettings::IndexedMap::entry( int entryIndex ) const +{ + int i = 0; + QDomElement entry; + forEachElement( entry, m_element ) + { + if ( entry.localName() == "config-item-map-entry" && + entry.namespaceURI() == m_settings->m_configNSURI ) + { + if ( i == entryIndex ) + return Items( entry, m_settings ); + else + ++i; + } + } + return Items( QDomElement(), m_settings ); +} + +KoOasisSettings::Items KoOasisSettings::NamedMap::entry( const QString& entryName ) const +{ + QDomElement entry; + forEachElement( entry, m_element ) + { + if ( entry.localName() == "config-item-map-entry" && + entry.namespaceURI() == m_settings->m_configNSURI && + entry.attributeNS( m_settings->m_configNSURI, "name", QString::null ) == entryName ) + { + return Items( entry, m_settings ); + } + } + return Items( QDomElement(), m_settings ); +} + +// helper method +QString KoOasisSettings::Items::findConfigItem( const QDomElement& element, + const QString& item, bool* ok ) const +{ + QDomElement it; + forEachElement( it, element ) + { + if ( it.localName() == "config-item" && + it.namespaceURI() == m_settings->m_configNSURI && + it.attributeNS( m_settings->m_configNSURI, "name", QString::null ) == item ) + { + *ok = true; + return it.text(); + } + } + *ok = false; + return QString::null; +} + + +QString KoOasisSettings::Items::findConfigItem( const QString& item, bool* ok ) const +{ + return findConfigItem( m_element, item, ok ); +} + +#if 0 // does anyone need this one? passing a default value does the job, too +bool KoOasisSettings::Items::hasConfigItem( const QString& configName ) const +{ + bool ok; + (void)findConfigItem( configName, &ok ); + return ok; +} +#endif + +QString KoOasisSettings::Items::parseConfigItemString( const QString& configName, const QString& defValue ) const +{ + bool ok; + const QString str = findConfigItem( configName, &ok ); + return ok ? str : defValue; +} + +int KoOasisSettings::Items::parseConfigItemInt( const QString& configName, int defValue ) const +{ + bool ok; + const QString str = findConfigItem( configName, &ok ); + int value; + if ( ok ) { + value = str.toInt( &ok ); + if ( ok ) + return value; + } + return defValue; +} + +double KoOasisSettings::Items::parseConfigItemDouble( const QString& configName, double defValue ) const +{ + bool ok; + const QString str = findConfigItem( configName, &ok ); + double value; + if ( ok ) { + value = str.toDouble( &ok ); + if ( ok ) + return value; + } + return defValue; +} + +bool KoOasisSettings::Items::parseConfigItemBool( const QString& configName, bool defValue ) const +{ + bool ok; + const QString str = findConfigItem( configName, &ok ); + if ( str == "true" ) + return true; + else if ( str == "false" ) + return false; + return defValue; +} + +short KoOasisSettings::Items::parseConfigItemShort( const QString& configName, short defValue ) const +{ + bool ok; + const QString str = findConfigItem( configName, &ok ); + short value; + if ( ok ) { + value = str.toShort( &ok ); + if ( ok ) + return value; + } + return defValue; +} + +long KoOasisSettings::Items::parseConfigItemLong( const QString& configName, long defValue ) const +{ + bool ok; + const QString str = findConfigItem( configName, &ok ); + long value; + if ( ok ) { + value = str.toLong( &ok ); + if ( ok ) + return value; + } + return defValue; +} |