]> Git trees. - libqmvoc.git/commitdiff
* first steps of the drawing. More to come
authorCarsten Niehaus <cniehaus@gmx.de>
Thu, 26 May 2005 16:11:31 +0000 (16:11 +0000)
committerCarsten Niehaus <cniehaus@gmx.de>
Thu, 26 May 2005 16:11:31 +0000 (16:11 +0000)
* loading the data from xml

svn path=/trunk/KDE/kdeedu/kalzium/src/element.cpp; revision=418437

kalzium/src/element.cpp
kalzium/src/element.h

index e58d06f3667aa4096e7e17a4c3a8eed32cceea44..a2563b52dabd0775c45979332734b272da65964c 100644 (file)
@@ -234,6 +234,44 @@ const QString Element::adjustUnits( const int type )
        return v;
 }
 
+void Element::drawCrystalstructure( QPainter* p )
+{
+       //the height of a "line" inside an element
+       int h_small = 15; //the size for the small units like elementnumber
+       //The X-coordiante
+       int X = ( x-1 )*ELEMENTSIZE;
+
+       //The Y-coordinate
+       int Y = ( y-1 )*ELEMENTSIZE;
+       
+       QColor color = Qt::blue;
+       
+       p->setPen( color );
+       p->fillRect( X+3, Y+3,ELEMENTSIZE-6,ELEMENTSIZE-6, color );
+       p->drawRoundRect( X+2, Y+2,ELEMENTSIZE-4,ELEMENTSIZE-4 );
+       
+       QString text;
+       QFont symbol_font = p->font();
+       symbol_font.setPointSize( 18 );
+       QFont f = p->font();
+       f.setPointSize( 9 );
+               
+       p->setFont( f );
+
+       //top left
+       p->setPen( Qt::black );
+       text = crystalstructure();
+       p->drawText( X+5,Y+2 ,ELEMENTSIZE-2,h_small,Qt::AlignLeft, text );
+
+       p->setFont( symbol_font );
+       p->drawText( X+5,Y+2, ELEMENTSIZE,ELEMENTSIZE,Qt::AlignCenter, symbol() );
+       
+       //border
+       p->setPen( Qt::black );
+       p->drawRoundRect( X+1, Y+1,ELEMENTSIZE-2,ELEMENTSIZE-2);
+
+}
+
 void Element::drawStateOfMatter( QPainter* p, double temp )
 {
        //the height of a "line" inside an element
@@ -489,10 +527,6 @@ EList KalziumDataObject::readData(  QDomDocument &dataDocument )
        {//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();
                double mp = domElement.namedItem( "meltingpoint" ).toElement().text().toDouble();
@@ -506,6 +540,7 @@ EList KalziumDataObject::readData(  QDomDocument &dataDocument )
                int number = domElement.namedItem( "number" ).toElement().text().toInt();
                
                QString scientist = domElement.namedItem( "date" ).toElement().attributeNode( "scientist" ).value();
+               QString crystal = domElement.namedItem( "crystalstructure" ).toElement().text();
                QString name = domElement.namedItem( "name" ).toElement().text();
                QString block = domElement.namedItem( "block" ).toElement().text();
                QString group = domElement.namedItem( "group" ).toElement().text();
@@ -530,6 +565,7 @@ EList KalziumDataObject::readData(  QDomDocument &dataDocument )
                e->setNumber( number );
                
                e->setScientist(scientist);
+               e->setCrysatalstructure( crystal );
                e->setName(name);
                e->setBlock(block);
                e->setGroup(group);
index 301c8bb76588c8fc152484d156ea8752e2c8c141..02dce64711f10e90074b9d863f0093249a520ec6 100644 (file)
@@ -97,6 +97,7 @@ class Element{
                void setNumber( int num ){ m_number = num; }
 
                void setScientist( const QString& value ) { m_scientist = value; }
+               void setCrysatalstructure( const QString& value ) { m_crystalstructure = value; }
                void setName( const QString& value ) { m_name = value; }
                void setBlock( const QString& value ) { m_block = value; }
                void setGroup( const QString& value ) { m_group = value; }
@@ -160,6 +161,14 @@ class Element{
                QString symbol() const {
                        return m_symbol;
                }
+
+               /**
+                * @return the crystalstructure of the element
+                */
+               QString crystalstructure() const{
+                       return m_crystalstructure;
+               }
+               
                /**
                 * @return the name of the element
                 */
@@ -340,7 +349,8 @@ class Element{
                        m_acidbeh,
                        m_orbits,
                        m_isotopes,
-                       m_scientist;
+                       m_scientist,
+                       m_crystalstructure;
 
                doubleList m_ionenergies;
                
@@ -352,6 +362,8 @@ class Element{
                virtual void drawGradient( QPainter* p, const QString& value, const QColor& );
                
                virtual void drawSelf( QPainter* p );
+
+               virtual void drawCrystalstructure( QPainter* p );
                
                /**
                 * Highlight perdiods or groups.