From 8c764745102f776df5669a687acec19e155489c6 Mon Sep 17 00:00:00 2001 From: Carsten Niehaus Date: Sun, 13 Mar 2005 18:47:22 +0000 Subject: [PATCH] * xml-conversion is done. I hope everything works, I didn't see any bugs. One more thing left to do: Ionisationenergy is not yet read from the xml-file. * make more use of KalziumDataObject svn path=/trunk/kdeedu/kalzium/src/element.cpp; revision=397341 --- kalzium/src/element.cpp | 39 ++++++++++++++++----------------------- kalzium/src/element.h | 10 ++++++---- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/kalzium/src/element.cpp b/kalzium/src/element.cpp index e9767b8..68f7659 100644 --- a/kalzium/src/element.cpp +++ b/kalzium/src/element.cpp @@ -37,19 +37,8 @@ #define ELEMENTSIZE 45 -Element::Element( int num ) -{ - m_number = num; - -//X m_IE=config.readDoubleNumEntry( "IE", -1 ); -//X m_IE2=config.readDoubleNumEntry( "IE2", -1 ); - - setupXY(); -} - Element::Element() { - setupXY(); }; QString Element::parsedOrbits() @@ -356,7 +345,7 @@ void Element::drawSelf( QPainter* p, bool useSimpleView ) int h_small = 15; //the size for the small units like elementnumber //The X-coordiante - int X = 0; + int X; if ( useSimpleView ) {//use the small periodic table without the d- and f-Block @@ -463,22 +452,16 @@ KalziumDataObject::KalziumDataObject() layoutFile.close(); ElementList = readData( doc ); - - kdDebug() << ElementList.count() << " elements read" << endl; - - //X for( int i = 1 ; i < 112 ; ++i ) - //X { - //X Element *e = new Element( i ); - //X coordinate point; point.x = e->x; point.y = e->y; - //X - //X CoordinateList.append( point ); - //X ElementList.append( e ); - //X } } KalziumDataObject::~KalziumDataObject() {} +Element* KalziumDataObject::element( int number ) +{ + return *( ElementList.at( number-1 ) ); +} + EList KalziumDataObject::readData( QDomDocument &dataDocument ) { EList list; @@ -491,6 +474,10 @@ EList KalziumDataObject::readData( QDomDocument &dataDocument ) for ( uint i = 0; i < elementNodes.count(); ++i ) {//iterate through all elements domElement = ( const QDomElement& ) elementNodes.item( i ).toElement(); + +//TODO IE +//X m_IE=config.readDoubleNumEntry( "IE", -1 ); +//X m_IE2=config.readDoubleNumEntry( "IE2", -1 ); double weight = domElement.namedItem( "weight" ).toElement().text().toDouble(); double en = domElement.namedItem( "electronegativity" ).toElement().text().toDouble(); @@ -502,6 +489,7 @@ EList KalziumDataObject::readData( QDomDocument &dataDocument ) int bio = domElement.namedItem( "biologicalmeaning" ).toElement().text().toInt(); int az = domElement.namedItem( "aggregation" ).toElement().text().toInt(); int date = domElement.namedItem( "date" ).toElement().text().toInt(); + int number = domElement.namedItem( "number" ).toElement().text().toInt(); QString scientist = domElement.namedItem( "date" ).toElement().attributeNode( "scientist" ).value(); QString name = domElement.namedItem( "name" ).toElement().text(); @@ -518,6 +506,7 @@ EList KalziumDataObject::readData( QDomDocument &dataDocument ) e->setDate(date); e->setBiologicalMeaning(bio); e->setAggregation(az); + e->setNumber( number ); e->setScientist(scientist); e->setName(name); @@ -537,7 +526,11 @@ EList KalziumDataObject::readData( QDomDocument &dataDocument ) e->setDensity( density ); e->setAtomicRadius( atomic_radius ); + e->setupXY(); + list.append( e ); + coordinate point; point.x = e->x; point.y = e->y; + CoordinateList.append( point ); } return list; diff --git a/kalzium/src/element.h b/kalzium/src/element.h index 3a47ead..4653473 100644 --- a/kalzium/src/element.h +++ b/kalzium/src/element.h @@ -49,6 +49,8 @@ class KalziumDataObject CList CoordinateList; + Element* element( int number ); + private: EList readData( QDomDocument &dataDocument ); }; @@ -67,8 +69,7 @@ struct coordinate{ */ class Element{ public: - Element( int ); - Element( ); + Element(); virtual ~Element(); @@ -89,6 +90,7 @@ class Element{ void setDate( int date ) { m_date = date; } void setBiologicalMeaning( int value ) { m_biological = value; } void setAggregation( int value ) { m_az = value; } + void setNumber( int num ){ m_number = num; } void setScientist( QString value ) { m_scientist = value; } void setName( QString value ) { m_name = value; } @@ -303,10 +305,10 @@ class Element{ QColor elementColor() const { return m_Color; } + + void setupXY(); private: - void setupXY(); - /* * the integer num represents the number of the element */ -- 2.47.3