-rw-r--r-- | noncore/apps/oxygen/datawidgetui.cpp | 120 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.h | 6 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxyframe.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxygen.cpp | 119 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxygen.h | 3 | ||||
-rw-r--r-- | noncore/apps/oxygen/psewidget.cpp | 5 | ||||
-rw-r--r-- | noncore/apps/oxygen/psewidget.h | 5 |
7 files changed, 132 insertions, 128 deletions
diff --git a/noncore/apps/oxygen/datawidgetui.cpp b/noncore/apps/oxygen/datawidgetui.cpp index 91d669f..e1d6e41 100644 --- a/noncore/apps/oxygen/datawidgetui.cpp +++ b/noncore/apps/oxygen/datawidgetui.cpp @@ -1,169 +1,53 @@ /*************************************************************************** application: : Oxygen begin : September 2002 copyright : ( C ) 2002 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 "datawidgetui.h" #include "dataTable.h" #include <qpe/config.h> #include <qstring.h> #include <qcombobox.h> #include <qlayout.h> #include <qhbox.h> #include <qlabel.h> #include <qpe/qpeapplication.h> -dataWidgetUI::dataWidgetUI() : QWidget() +dataWidgetUI::dataWidgetUI(const QStringList &list) : QWidget() { - - names = 0; - loadNames(); + names = list; this->setCaption( tr( "Chemical Data" )); QGridLayout *qgrid = new QGridLayout( this, 2,1 ); dataCombo = new QComboBox( this ); //read in all names of the 118 elements int i = 0; for ( QStringList::ConstIterator it = names.begin() ; it != names.end() ; ++it,i++) { dataCombo->insertItem( QString::number( i+1 )+" - "+*it ); } - QStringList::ConstIterator it = names.begin(); OxydataWidget *oxyDW = new OxydataWidget(this, "OxydataWidget_oxyDW", names); connect ( dataCombo, SIGNAL( activated(int) ), oxyDW, SLOT( setElement(int) ) ); oxyDW->setElement( 0 ); oxyDW->setLayout(); qgrid->addWidget( dataCombo, 0,0); qgrid->addWidget( oxyDW , 1,0 ); } -void dataWidgetUI::loadNames() -{ - names.clear(); - names.append( tr("Hydrogen") ); - names.append( tr("Helium") ); - names.append( tr("Lithium") ); - names.append( tr("Beryllium") ); - names.append( tr("Boron") ); - names.append( tr("Carbon") ); - names.append( tr("Nitrogen") ); - names.append( tr("Oxygen") ); - names.append( tr("Fluorine") ); - names.append( tr("Neon") ); - names.append( tr("Sodium") ); - names.append( tr("Magnesium") ); - names.append( tr("Aluminum") ); - names.append( tr("Silicon") ); - names.append( tr("Phosphorus") ); - names.append( tr("Sulfur") ); - names.append( tr("Chlorine") ); - names.append( tr("Argon") ); - names.append( tr("Potassium") ); - names.append( tr("Calcium") ); - names.append( tr("Scandium") ); - names.append( tr("Titanium") ); - names.append( tr("Vanadium") ); - names.append( tr("Chromium") ); - names.append( tr("Manganese") ); - names.append( tr("Iron") ); - names.append( tr("Cobalt") ); - names.append( tr("Nickel") ); - names.append( tr("Copper") ); - names.append( tr("Zinc") ); - names.append( tr("Gallium") ); - names.append( tr("Germanium") ); - names.append( tr("Arsenic") ); - names.append( tr("Selenium") ); - names.append( tr("Bromine") ); - names.append( tr("Krypton") ); - names.append( tr("Rubidium") ); - names.append( tr("Strontium") ); - names.append( tr("Yttrium") ); - names.append( tr("Zirconium") ); - names.append( tr("Niobium") ); - names.append( tr("Molybdenum") ); - names.append( tr("Technetium") ); - names.append( tr("Ruthenium") ); - names.append( tr("Rhodium") ); - names.append( tr("Palladium") ); - names.append( tr("Silver") ); - names.append( tr("Cadmium") ); - names.append( tr("Indium") ); - names.append( tr("Tin") ); - names.append( tr("Antimony") ); - names.append( tr("Tellurium") ); - names.append( tr("Iodine") ); - names.append( tr("Xenon") ); - names.append( tr("Cesium") ); - names.append( tr("Barium") ); - names.append( tr("Lanthanum") ); - names.append( tr("Cerium") ); - names.append( tr("Praseodymium") ); - names.append( tr("Neodymium") ); - names.append( tr("Promethium") ); - names.append( tr("Samarium") ); - names.append( tr("Europium") ); - names.append( tr("Gadolinium") ); - names.append( tr("Terbium") ); - names.append( tr("Dysprosium") ); - names.append( tr("Holmium") ); - names.append( tr("Erbium") ); - names.append( tr("Thulium") ); - names.append( tr("Ytterbium") ); - names.append( tr("Lutetium") ); - names.append( tr("Hafnium") ); - names.append( tr("Tantalum") ); - names.append( tr("Tungsten") ); - names.append( tr("Rhenium") ); - names.append( tr("Osmium") ); - names.append( tr("Iridium") ); - names.append( tr("Platinum") ); - names.append( tr("Gold") ); - names.append( tr("Mercury") ); - names.append( tr("Thallium") ); - names.append( tr("Lead") ); - names.append( tr("Bismuth") ); - names.append( tr("Polonium") ); - names.append( tr("Astatine") ); - names.append( tr("Radon") ); - names.append( tr("Francium") ); - names.append( tr("Radium") ); - names.append( tr("Actinium") ); - names.append( tr("Thorium") ); - names.append( tr("Protactinium") ); - names.append( tr("Uranium") ); - names.append( tr("Neptunium") ); - names.append( tr("Plutonium") ); - names.append( tr("Americium") ); - names.append( tr("Curium") ); - names.append( tr("Berkelium") ); - names.append( tr("Californium") ); - names.append( tr("Einsteinium") ); - names.append( tr("Fermium") ); - names.append( tr("Mendelevium") ); - names.append( tr("Nobelium") ); - names.append( tr("Lawrencium") ); - names.append( tr("Rutherfordium") ); - names.append( tr("Dubnium") ); - names.append( tr("Seaborgium") ); - names.append( tr("Bohrium") ); - names.append( tr("Hassium") ); - names.append( tr("Meitnerium") ); -} diff --git a/noncore/apps/oxygen/datawidgetui.h b/noncore/apps/oxygen/datawidgetui.h index a2b48fa..3797418 100644 --- a/noncore/apps/oxygen/datawidgetui.h +++ b/noncore/apps/oxygen/datawidgetui.h @@ -1,46 +1,44 @@ #ifndef DATAWIDGETUI_H #define DATAWIDGETUI_H /*************************************************************************** application: : Oxygen begin : September 2002 copyright : ( C ) 2002 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. * * * **************************************************************************/ class OxydataWidget; class OxydataTable; class QComboBox; class QStringList; #include <qwidget.h> class dataWidgetUI : public QWidget { Q_OBJECT public: - dataWidgetUI(); - QStringList names; + dataWidgetUI(const QStringList &list=0); private: OxydataTable *DataTable; QComboBox *dataCombo; OxydataWidget *oxyDW; - - void loadNames(); + QStringList names; }; #endif diff --git a/noncore/apps/oxygen/oxyframe.cpp b/noncore/apps/oxygen/oxyframe.cpp index 2ce40e7..5a4dbbe 100644 --- a/noncore/apps/oxygen/oxyframe.cpp +++ b/noncore/apps/oxygen/oxyframe.cpp @@ -1,41 +1,41 @@ /*************************************************************************** application: : Oxygen begin : September 2002 copyright : ( C ) 2002 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 "oxygen.h" #include <qpe/config.h> #include "oxyframe.h" OxyFrame::OxyFrame(QWidget *parent, const char *name, QString symbol ) : QLabel(parent,name) { N = name; this->setFrameStyle( QFrame::Box ); this->setLineWidth( 0 ); this->setMidLineWidth( 1 ); this->setFrameShadow( QFrame::Sunken ); setMinimumSize(6,6); setScaledContents( true ); QFont font; font.setWeight(QFont::Light); font.setPixelSize(3); setFont( font ); setText( symbol ); } -void OxyFrame::mousePressEvent ( QMouseEvent * e ){ +void OxyFrame::mousePressEvent ( QMouseEvent* /*e*/ ){ emit num( N ); }; diff --git a/noncore/apps/oxygen/oxygen.cpp b/noncore/apps/oxygen/oxygen.cpp index 22d1833..215cc19 100644 --- a/noncore/apps/oxygen/oxygen.cpp +++ b/noncore/apps/oxygen/oxygen.cpp @@ -1,42 +1,157 @@ /*************************************************************************** application: : Oxygen begin : September 2002 copyright : ( C ) 2002 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 "oxygen.h" #include <qapplication.h> #include <qtabwidget.h> #include "calcdlg.h" #include "calcdlgui.h" #include "datawidgetui.h" #include "psewidget.h" Oxygen::Oxygen() : QMainWindow() { - PSEWidget *pse = new PSEWidget(); + loadNames(); calcDlgUI *CalcDlgUI = new calcDlgUI(); - dataWidgetUI *DataWidgetUI = new dataWidgetUI(); + PSEWidget *pse = new PSEWidget(names); + dataWidgetUI *DataWidgetUI = new dataWidgetUI(names); this->setCaption( tr( "Oxygen" ) ); QTabWidget *tabw = new QTabWidget( this , "qtab" ); tabw->addTab( pse, tr( "PSE" )); tabw->addTab( DataWidgetUI , tr( "Data" ) ); tabw->addTab( CalcDlgUI, tr( "Calculations" ) ); setCentralWidget( tabw ); } +void Oxygen::loadNames() +{ + names.clear(); + names.append( tr("Hydrogen") ); + names.append( tr("Helium") ); + names.append( tr("Lithium") ); + names.append( tr("Beryllium") ); + names.append( tr("Boron") ); + names.append( tr("Carbon") ); + names.append( tr("Nitrogen") ); + names.append( tr("Oxygen") ); + names.append( tr("Fluorine") ); + names.append( tr("Neon") ); + names.append( tr("Sodium") ); + names.append( tr("Magnesium") ); + names.append( tr("Aluminum") ); + names.append( tr("Silicon") ); + names.append( tr("Phosphorus") ); + names.append( tr("Sulfur") ); + names.append( tr("Chlorine") ); + names.append( tr("Argon") ); + names.append( tr("Potassium") ); + names.append( tr("Calcium") ); + names.append( tr("Scandium") ); + names.append( tr("Titanium") ); + names.append( tr("Vanadium") ); + names.append( tr("Chromium") ); + names.append( tr("Manganese") ); + names.append( tr("Iron") ); + names.append( tr("Cobalt") ); + names.append( tr("Nickel") ); + names.append( tr("Copper") ); + names.append( tr("Zinc") ); + names.append( tr("Gallium") ); + names.append( tr("Germanium") ); + names.append( tr("Arsenic") ); + names.append( tr("Selenium") ); + names.append( tr("Bromine") ); + names.append( tr("Krypton") ); + names.append( tr("Rubidium") ); + names.append( tr("Strontium") ); + names.append( tr("Yttrium") ); + names.append( tr("Zirconium") ); + names.append( tr("Niobium") ); + names.append( tr("Molybdenum") ); + names.append( tr("Technetium") ); + names.append( tr("Ruthenium") ); + names.append( tr("Rhodium") ); + names.append( tr("Palladium") ); + names.append( tr("Silver") ); + names.append( tr("Cadmium") ); + names.append( tr("Indium") ); + names.append( tr("Tin") ); + names.append( tr("Antimony") ); + names.append( tr("Tellurium") ); + names.append( tr("Iodine") ); + names.append( tr("Xenon") ); + names.append( tr("Cesium") ); + names.append( tr("Barium") ); + names.append( tr("Lanthanum") ); + names.append( tr("Cerium") ); + names.append( tr("Praseodymium") ); + names.append( tr("Neodymium") ); + names.append( tr("Promethium") ); + names.append( tr("Samarium") ); + names.append( tr("Europium") ); + names.append( tr("Gadolinium") ); + names.append( tr("Terbium") ); + names.append( tr("Dysprosium") ); + names.append( tr("Holmium") ); + names.append( tr("Erbium") ); + names.append( tr("Thulium") ); + names.append( tr("Ytterbium") ); + names.append( tr("Lutetium") ); + names.append( tr("Hafnium") ); + names.append( tr("Tantalum") ); + names.append( tr("Tungsten") ); + names.append( tr("Rhenium") ); + names.append( tr("Osmium") ); + names.append( tr("Iridium") ); + names.append( tr("Platinum") ); + names.append( tr("Gold") ); + names.append( tr("Mercury") ); + names.append( tr("Thallium") ); + names.append( tr("Lead") ); + names.append( tr("Bismuth") ); + names.append( tr("Polonium") ); + names.append( tr("Astatine") ); + names.append( tr("Radon") ); + names.append( tr("Francium") ); + names.append( tr("Radium") ); + names.append( tr("Actinium") ); + names.append( tr("Thorium") ); + names.append( tr("Protactinium") ); + names.append( tr("Uranium") ); + names.append( tr("Neptunium") ); + names.append( tr("Plutonium") ); + names.append( tr("Americium") ); + names.append( tr("Curium") ); + names.append( tr("Berkelium") ); + names.append( tr("Californium") ); + names.append( tr("Einsteinium") ); + names.append( tr("Fermium") ); + names.append( tr("Mendelevium") ); + names.append( tr("Nobelium") ); + names.append( tr("Lawrencium") ); + names.append( tr("Rutherfordium") ); + names.append( tr("Dubnium") ); + names.append( tr("Seaborgium") ); + names.append( tr("Bohrium") ); + names.append( tr("Hassium") ); + names.append( tr("Meitnerium") ); +} + diff --git a/noncore/apps/oxygen/oxygen.h b/noncore/apps/oxygen/oxygen.h index 36ee9bc..57fe9fe 100644 --- a/noncore/apps/oxygen/oxygen.h +++ b/noncore/apps/oxygen/oxygen.h @@ -1,21 +1,24 @@ /*************************************************************************** * * * 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. * * * **************************************************************************/ +class QStringList; + #include <qmainwindow.h> class Oxygen : public QMainWindow { Q_OBJECT public: Oxygen(); private: void loadNames(); + QStringList names; }; diff --git a/noncore/apps/oxygen/psewidget.cpp b/noncore/apps/oxygen/psewidget.cpp index d8e4086..b396046 100644 --- a/noncore/apps/oxygen/psewidget.cpp +++ b/noncore/apps/oxygen/psewidget.cpp @@ -1,116 +1,117 @@ /*************************************************************************** application: : Oxygen begin : September 2002 copyright : ( C ) 2002 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() : QWidget() +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); + oxyDW = new OxydataWidget(this, "PSEWidget_oxyDW", names); oxyDW->setElement( 0 ); oxyDW->setLayout(); vlay->addLayout( grid ); vlay->addWidget( oxyDW ); } QColor PSEWidget::PSEColor( QString block ) { 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; } diff --git a/noncore/apps/oxygen/psewidget.h b/noncore/apps/oxygen/psewidget.h index ddeab9d..42a2e38 100644 --- a/noncore/apps/oxygen/psewidget.h +++ b/noncore/apps/oxygen/psewidget.h @@ -1,53 +1,56 @@ /*************************************************************************** application: : Oxygen begin : September 2002 copyright : ( C ) 2002 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. * * * **************************************************************************/ #ifndef _PSEWIDGET_H #define _PSEWIDGET_H #include <qwidget.h> #include <qlist.h> #include "oxyframe.h" class QGridLayout; +class QStringList; + class OxydataWidget; class PSEframe; class PSEWidget : public QWidget { Q_OBJECT public: - PSEWidget(); + PSEWidget(const QStringList &list=0); QGridLayout *bottom_grid; OxydataWidget *oxyDW; QList<OxyFrame> PSEframe; int lastElement; private: QGridLayout *maingrid; void position( int, int&, int& ); QColor PSEColor( QString ); + QStringList names; public slots: void slotShowElement(QString); void inverseColor( QString ); }; #endif |