summaryrefslogtreecommitdiff
authorcniehaus <cniehaus>2003-01-03 16:07:22 (UTC)
committer cniehaus <cniehaus>2003-01-03 16:07:22 (UTC)
commit83acc7920179fba4b278bad9ba383ca8564b7278 (patch) (side-by-side diff)
treeedaf0e609a000cdb799981354cdb2bae13b6cc2a
parentdfd02afc1f3b3f0da39194d2224f56c5b7c1b12e (diff)
downloadopie-83acc7920179fba4b278bad9ba383ca8564b7278.zip
opie-83acc7920179fba4b278bad9ba383ca8564b7278.tar.gz
opie-83acc7920179fba4b278bad9ba383ca8564b7278.tar.bz2
fixing "content-bug"
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/oxygen/psewidget.cpp168
1 files changed, 84 insertions, 84 deletions
diff --git a/noncore/apps/oxygen/psewidget.cpp b/noncore/apps/oxygen/psewidget.cpp
index 4f990b0..be5185b 100644
--- a/noncore/apps/oxygen/psewidget.cpp
+++ b/noncore/apps/oxygen/psewidget.cpp
@@ -1,198 +1,198 @@
/***************************************************************************
application: : Oxygen
begin : September 2002
- copyright : ( C ) 2002 by Carsten Niehaus
+ copyright : ( C ) 2002, 2003 by Carsten Niehaus
email : cniehaus@handhelds.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 <qpe/config.h>
#include <qlayout.h>
#include <qpe/qpeapplication.h>
#include <qlist.h>
#include "dataTable.h"
#include "psewidget.h"
#include "oxyframe.h"
PSEWidget::PSEWidget(const QStringList &list) : QWidget()
{
this->setCaption( tr( "Periodic System" ) );
lastElement=1;
names = list;
QVBoxLayout *vlay = new QVBoxLayout( this );
QGridLayout *grid = new QGridLayout( 18,10 );
int h=0, v=0;
Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File );
for( int n = 0 ; n < 109 ; n++ )
{
configobj.setGroup( QString::number( n+1 ));
position( n+1,h,v );
PSEframe.append( new OxyFrame( this , QString::number(n), configobj.readEntry( "Symbol" ) ) );
grid->addWidget( PSEframe.current() , v/40+1 , h/40 );
PSEframe.current()->setMinimumHeight( 11 );
PSEframe.current()->setPalette( QPalette( PSEColor( configobj.readEntry( "Block" ) ) ) );
connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( slotShowElement(QString) ));
connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( inverseColor(QString) ));
}
oxyDW = new OxydataWidget(this, "PSEWidget_oxyDW", names);
oxyDW->setElement( 0 );
oxyDW->setLayout();
vlay->addLayout( grid );
vlay->addWidget( oxyDW );
}
QColor PSEWidget::PSEColor( QString block ) const
{
QColor c;
if ( block == "s" ) c.setRgb( 213 , 233 , 231 );
else if ( block == "d" ) c.setRgb( 200,230,160 );
else if ( block == "p" ) c.setRgb( 238,146,138 );
else if ( block == "f" ) c.setRgb( 190 , 190 , 190 );
return c;
};
void PSEWidget::inverseColor( QString number)
{
Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File );
configobj.setGroup( number );
QString block = configobj.readEntry( "Block" );
QColor c, d;
c = PSEColor( block );
d = c.dark();
PSEframe.at( number.toUInt() )->setPalette( QPalette( d ) );
configobj.setGroup( QString::number( lastElement+1 ) );
block = configobj.readEntry( "Block" );
c = PSEColor( block );
PSEframe.at( lastElement )->setPalette( QPalette( c ) );
lastElement=number.toInt();
}
void PSEWidget::slotShowElement(QString number)
{
oxyDW->setElement( number.toInt() );
};
void PSEWidget::position(int n, int& h, int& v)
{
- //Hydrogen
- if (n == 1)
- {
- h=0; v=0;
- }
-
-
- //Helium
- if (n == 2)
- {
- h=680; v=0;
- }
-
-
- //Lithium
- if (n == 3)
- {
- h=0; v=40;
- }
+ //Hydrogen
+ if (n == 1)
+ {
+ h=0; v=0;
+ }
- //Beryllium
- if (n == 4)
- {
- h=40; v=40;
- }
+ //Helium
+ if (n == 2)
+ {
+ h=680; v=0;
+ }
- //Boron-->Neon or Aluminum --> Argon
- if ((n >= 5 && n <= 10) || (n >= 13 && n <= 18))
- for (int i = 1; i <= (6-(10-n)); i++)
+ //Lithium
+ if (n == 3)
{
- h=((i*40)+440);
- v = 40;
- if (n >= 13)
- {
- v=80;
- h=(h-320);
- }
+ h=0; v=40;
}
- //Sodium
- if (n == 11)
- {
- h=0; v=80;
- }
+ //Beryllium
+ if (n == 4)
+ {
+ h=40; v=40;
+ }
- //Magnesium
- if (n == 12)
- {
- h=40; v=80;
- }
+ //Boron-->Neon or Aluminum --> Argon
+ if ((n >= 5 && n <= 10) || (n >= 13 && n <= 18))
+ for (int i = 1; i <= (6-(10-n)); i++)
+ {
+ h=((i*40)+440);
+ v = 40;
+ if (n >= 13)
+ {
+ v=80;
+ h=(h-320);
+ }
+ }
- //Potassium --> Uuo without La and Ac
- if ((n >= 19 && n <= 56) || (n >= 72 && n <= 88) || n >= 104)
- for (int i = 1; i <= 18; i++)
+ //Sodium
+ if (n == 11)
{
- int f = n;
- if (n > 18)
- f = n-18;
- if (n > 36)
- f = n-36;
- if (n > 54)
- f = n-54;
- if (n > 71)
- f = n-68;
- if (n > 86)
- f = n-86;
- if (n > 103)
- f = n-100;
-
- h=((f*40)-40);
-
- v = 120;
- if (n >= 37)
- v=160;
- if (n >= 55)
- v=200;
- if (n >= 87)
- v=240;
+ h=0; v=80;
}
- //Lanthanum --> Lutetium and Actinum --> Lawrencium
- if ((n >= 57 && n <= 71) || (n >= 89 && n <= 103))
- for (int i = 1; i <= 14; i++)
+ //Magnesium
+ if (n == 12)
{
- int f = n;
- if (n > 56)
- f = n-55;
- if (n > 88)
- f = n-87;
- h=(f*40);
- v = 290;
- if (n >= 89)
- v=330;
+ h=40; v=80;
}
- v += 10;
+
+
+ //Potassium --> Uuo without La and Ac
+ if ((n >= 19 && n <= 57) || (n >= 72 && n <= 89) || n >= 104)
+ for (int i = 1; i <= 18; i++)
+ {
+ int f = n;
+ if (n > 18)
+ f = n-18;
+ if (n > 36)
+ f = n-36;
+ if (n > 54)
+ f = n-54;
+ if (n > 71)
+ f = n-68;
+ if (n > 86)
+ f = n-86;
+ if (n > 103)
+ f = n-100;
+
+ h=((f*40)-40);
+
+ v = 120;
+ if (n >= 37)
+ v=160;
+ if (n >= 55)
+ v=200;
+ if (n >= 87)
+ v=240;
+ }
+
+
+ //Lanthanum --> Lutetium and Actinum --> Lawrencium
+ if ((n >= 58 && n <= 71) || (n >= 90 && n <= 103))
+ for (int i = 1; i <= 14; i++)
+ {
+ int f = n;
+ if (n > 57)
+ f = n-55;
+ if (n > 88)
+ f = n-87;
+ h=(f*40);
+ v = 290;
+ if (n >= 90)
+ v=330;
+ }
+ v += 10;
}