From: Carsten Niehaus Date: Fri, 2 Jun 2006 13:39:20 +0000 (+0000) Subject: * adding demo-xml for r/s phrases. emc2[]: please hand me the real data X-Git-Tag: v3.80.2~83 X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=b37a2ce00075a2a17447c056f37c26cb6b27c134;p=libqmvoc.git * adding demo-xml for r/s phrases. emc2[]: please hand me the real data * adding the reading code in the parser * adding a demo in the datadialog so taht emc2[] sees how to do it svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=547536 --- diff --git a/libscience/chemicaldataobject.cpp b/libscience/chemicaldataobject.cpp index 8cdcbe6..edd303f 100644 --- a/libscience/chemicaldataobject.cpp +++ b/libscience/chemicaldataobject.cpp @@ -224,6 +224,15 @@ QString ChemicalDataObject::dictRef() const case density: botype ="density"; break; + case dangerSymbol: + botype ="dangerSymbol"; + break; + case RPhrase: + botype ="RPhrase"; + break; + case SPhrase: + botype ="SPhrase"; + break; } botype = botype.prepend( "bo:" ); diff --git a/libscience/chemicaldataobject.h b/libscience/chemicaldataobject.h index 6b109eb..fdb9bdd 100644 --- a/libscience/chemicaldataobject.h +++ b/libscience/chemicaldataobject.h @@ -81,7 +81,10 @@ class EDUSCIENCE_EXPORT ChemicalDataObject betaminuspercentage/**< The percentage of betaminusdecay */, betaminusDecay/**< The decayenergy of betaminusdecay in MeV */, ecpercentage/**< The percentage of ecdecay */, - ecDecay/**< The decayenergy of ecminusdecay in MeV */ + ecDecay/**< The decayenergy of ecminusdecay in MeV */, + dangerSymbol/**< the danger symbols are the dangers associated with an element, for example Xn,T+ */, + RPhrase/**< */, + SPhrase/**< */ }; /** diff --git a/libscience/data/elements.xml b/libscience/data/elements.xml index 6300ff5..b48f929 100644 --- a/libscience/data/elements.xml +++ b/libscience/data/elements.xml @@ -58,6 +58,9 @@    1    1s1    Non-Metal +    Xn,T+,T +    1,2,34-45 +    3,5,6 2 @@ -82,6 +85,9 @@    8    1s2    Noblegas +    F,T +    1,2,34-45 +    3,5,6 3 diff --git a/libscience/elementparser.cpp b/libscience/elementparser.cpp index 6c37e1f..45443a8 100644 --- a/libscience/elementparser.cpp +++ b/libscience/elementparser.cpp @@ -47,7 +47,10 @@ public: inFamily( false ), inGroup( false ), inElectronicconfiguration( false ), - inDensity( false ) + inDensity( false ), + inDangerSymbol( false ), + inRPhrase( false ), + inSPhrase( false ) { } @@ -81,6 +84,9 @@ public: bool inGroup; bool inElectronicconfiguration; bool inDensity; + bool inDangerSymbol; + bool inRPhrase; + bool inSPhrase; }; ElementSaxParser::ElementSaxParser() @@ -151,6 +157,12 @@ bool ElementSaxParser::startElement(const QString&, const QString &localName, co d->inElectronicconfiguration = true; else if (attrs.value(i) == "bo:density") d->inDensity = true; + else if (attrs.value(i) == "bo:dangerSymbol") + d->inDangerSymbol = true; + else if (attrs.value(i) == "bo:RPhrase") + d->inRPhrase = true; + else if (attrs.value(i) == "bo:SPhrase") + d->inSPhrase = true; } } else if (d->inElement && localName == "label") { @@ -311,6 +323,21 @@ bool ElementSaxParser::characters(const QString &ch) type = ChemicalDataObject::density; d->inDensity = false; } + else if (d->inDangerSymbol){ + value = ch; + type = ChemicalDataObject::dangerSymbol; + d->inDangerSymbol = false; + } + else if (d->inRPhrase){ + value = ch; + type = ChemicalDataObject::RPhrase; + d->inRPhrase = false; + } + else if (d->inSPhrase){ + value = ch; + type = ChemicalDataObject::SPhrase; + d->inSPhrase = false; + } else//it is a non known value. Do not create a wrong object but return return true;