You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegraphics/kpovmodeler/pmxmlhelper.cpp

161 lines
3.7 KiB

/*
**************************************************************************
description
--------------------
copyright : (C) 2000-2002 by Andreas Zehender
email : zehender@kde.org
**************************************************************************
**************************************************************************
* *
* 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. *
* *
**************************************************************************/
#include "pmxmlhelper.h"
PMXMLHelper::PMXMLHelper( const TQDomElement& e, PMPart* p, PMParser* par,
int majorDocumentFormat, int minorDocumentFormat )
{
m_e = e;
m_pPart = p;
m_pParser = par;
m_major = majorDocumentFormat;
m_minor = minorDocumentFormat;
}
bool PMXMLHelper::hasAttribute( const TQString& name ) const
{
return m_e.hasAttribute( name );
}
int PMXMLHelper::intAttribute( const TQString& name, int def ) const
{
TQString str = m_e.attribute( name );
bool ok;
int res;
if( str.isNull( ) )
return def;
res = str.toInt( &ok );
if( ok )
return res;
return def;
}
double PMXMLHelper::doubleAttribute( const TQString& name, double def ) const
{
TQString str = m_e.attribute( name );
bool ok;
double res;
if( str.isNull( ) )
return def;
res = str.toDouble( &ok );
if( ok )
return res;
return def;
}
bool PMXMLHelper::boolAttribute( const TQString& name, bool def ) const
{
TQString str = m_e.attribute( name );
bool ok;
int res;
if( str.isNull( ) )
return def;
res = str.toInt( &ok );
if( ok )
return ( res != 0 );
return def;
}
PMThreeState PMXMLHelper::threeStateAttribute( const TQString& name ) const
{
TQString str = m_e.attribute( name );
bool ok;
int res;
if( str.isNull( ) )
return PMUnspecified;
res = str.toInt( &ok );
if( ok )
{
if( res == 0 )
return PMFalse;
else
return PMTrue;
}
return PMUnspecified;
}
TQString PMXMLHelper::stringAttribute( const TQString& name, const TQString& def ) const
{
return m_e.attribute( name, def );
}
PMVector PMXMLHelper::vectorAttribute( const TQString& name, const PMVector& def ) const
{
TQString str = m_e.attribute( name );
if( str.isNull( ) )
return def;
else
{
PMVector v;
if( v.loadXML( str ) )
return v;
}
return def;
}
PMMatrix PMXMLHelper::matrixAttribute( const TQString& name, const PMMatrix& def ) const
{
TQString str = m_e.attribute( name );
if( str.isNull( ) )
return def;
else
{
PMMatrix m;
if( m.loadXML( str ) )
return m;
}
return def;
}
PMColor PMXMLHelper::colorAttribute( const TQString& name, const PMColor& def ) const
{
TQString str = m_e.attribute( name );
if( str.isNull( ) )
return def;
else
{
PMColor c;
if( c.loadXML( str ) )
return c;
}
return def;
}
TQDomElement PMXMLHelper::extraData( ) const
{
TQDomNode c = m_e.firstChild( );
while( !c.isNull( ) )
{
if( c.isElement( ) )
{
TQDomElement ce = c.toElement( );
if( ce.tagName( ) == "extra_data" )
return ce;
}
c = c.nextSibling( );
}
return TQDomElement( );
}