-rw-r--r-- | noncore/apps/oxygen/dataTable.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/oxygen/dataTable.h | 3 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.cpp | 126 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.h | 5 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxygen.cpp | 115 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxygen.h | 3 |
6 files changed, 130 insertions, 126 deletions
diff --git a/noncore/apps/oxygen/dataTable.cpp b/noncore/apps/oxygen/dataTable.cpp index f3984be..661eb5a 100644 --- a/noncore/apps/oxygen/dataTable.cpp +++ b/noncore/apps/oxygen/dataTable.cpp @@ -1,76 +1,78 @@ /*************************************************************************** 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 "dataTable.h" #include <qwidget.h> #include <qhbox.h> #include <qlabel.h> #include <qfont.h> #include <qlayout.h> #include <qpe/qpeapplication.h> -OxydataWidget::OxydataWidget(QWidget *parent) : QWidget(parent) +#include <qstringlist.h> + +OxydataWidget::OxydataWidget(QWidget *parent, const char *name, QStringList *list ) : QWidget( parent,name ) { QGridLayout *qgrid = new QGridLayout( this, 2,1 ); QHBox *hbox = new QHBox( this ); left = new QLabel( hbox ); middle = new QLabel( hbox ); right = new QLabel( hbox ); right->setAlignment( AlignRight ); middle->setAlignment( AlignHCenter ); QFont bf; bf.setBold( true ); bf.setPointSize( bf.pointSize()+2 ); middle->setFont( bf ); DataTable = new OxydataTable( 9,2, this ); setTable(); qgrid->addWidget( hbox,0,0 ); qgrid->addWidget( DataTable,1,0 ); } void OxydataWidget::setElement( int el ) { Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); configobj.setGroup( QString::number( el+1 )); left->setText( configobj.readEntry( "Symbol" ) ); middle->setText( configobj.readEntry( "Name" ) ); right->setText( QString::number( el+1 ) ); DataTable->setText( 0,1,tr( "%1 u" ).arg( configobj.readEntry( "Weight" ) ) ); DataTable->setText( 1,1,configobj.readEntry( "Block" ) ); DataTable->setText( 2,1,configobj.readEntry( "Group" ) ); DataTable->setText( 3,1,configobj.readEntry( "EN" ) ); DataTable->setText( 4,1,tr( "%1 pm" ).arg( configobj.readEntry( "AR" ) ) ) ; DataTable->setText( 5,1,tr( "%1 J" ).arg( configobj.readEntry( "IE" ) ) ); DataTable->setText( 6,1,tr( "%1 g/cm^3" ).arg( configobj.readEntry( "Density" ) ) ); DataTable->setText( 7,1,tr( "%1 K" ).arg( configobj.readEntry( "BP" ) ) ); DataTable->setText( 8,1,tr( "%1 K" ).arg( configobj.readEntry( "MP" ) ) ); } void OxydataWidget::setTable() const { DataTable->setText( 0,0, tr( "Weight:" ) ); diff --git a/noncore/apps/oxygen/dataTable.h b/noncore/apps/oxygen/dataTable.h index f2eb71d..a8c9b6e 100644 --- a/noncore/apps/oxygen/dataTable.h +++ b/noncore/apps/oxygen/dataTable.h @@ -1,82 +1,83 @@ /*************************************************************************** * * * 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 _DATATABLE_H #define _DATATABLE_H #include <qwidget.h> #include <qtable.h> class QLabel; class OxydataTable; +//class QStringList; /* * A OxydataWidget shows all known data of an element. It can * be used for both the PSE and the pure Data-Dialog. It is * a simple QHBox with 2 QStrings in it plus a OxydataTable * which contains the rest of the data. * * Author: Carsten Niehaus <cniehaus@handhelds.org> */ class OxydataWidget : public QWidget { Q_OBJECT public: - OxydataWidget(QWidget *parent=0); + OxydataWidget(QWidget *parent=0, const char *name=0, QStringList *list =0 ); QLabel *left, *middle, *right; void setLayout(); private: void setTable() const; OxydataTable *DataTable; public slots: void setElement( int ); }; /* * A OxydataTable is derived from QTable. I recoded the paintCell to have * different colors in the backgound. Furthermore this widget never has a * grid, thus I removed that code in paintCell. * * Author: Carsten Niehaus <cniehaus@handhelds.org> */ class OxydataTable : public QTable { Q_OBJECT public: OxydataTable( int numRows, int numCols, QWidget *parent = 0, const char *name = 0 ); protected: /* * This method is reimplemented form QTable. It implements the colourisation * of every second row. */ virtual void paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected ); }; /* * A OxydataQTI is a QTableItem which has the ability to set an alignment. * In Oxygen we only have two colums so I can use the simple col()%2. * * Author: Robert Gogolok <robertgogolok@gmx.de> */ class OxydataQTI : public QTableItem { public: OxydataQTI(QTable * table, EditType et, const QString & text ); virtual int alignment() const; diff --git a/noncore/apps/oxygen/datawidgetui.cpp b/noncore/apps/oxygen/datawidgetui.cpp index 99c4fd7..b9000fa 100644 --- a/noncore/apps/oxygen/datawidgetui.cpp +++ b/noncore/apps/oxygen/datawidgetui.cpp @@ -1,53 +1,167 @@ /*************************************************************************** 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() { + names = new QStringList(); + loadNames(); + this->setCaption( tr( "Chemical Data" )); QGridLayout *qgrid = new QGridLayout( this, 2,1 ); dataCombo = new QComboBox( this ); //read in all names of the 118 elements - Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); - for ( int i = 1 ; i < 119 ; i++ ) + int i = 0; + for ( QStringList::Iterator it = names->begin() ; it != names->end() ; ++it,i++) { - configobj.setGroup( QString::number( i ) ); - QString foo = configobj.readEntry( "Name" ); - dataCombo->insertItem( QString::number( i )+" - "+foo ); + dataCombo->insertItem( QString::number( i )+" - "+*it ); } - OxydataWidget *oxyDW = new OxydataWidget(this); + 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->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 cd716ad..154f4be 100644 --- a/noncore/apps/oxygen/datawidgetui.h +++ b/noncore/apps/oxygen/datawidgetui.h @@ -1,41 +1,46 @@ #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; private: OxydataTable *DataTable; QComboBox *dataCombo; OxydataWidget *oxyDW; + + void loadNames(); }; #endif diff --git a/noncore/apps/oxygen/oxygen.cpp b/noncore/apps/oxygen/oxygen.cpp index b1b5db5..22d1833 100644 --- a/noncore/apps/oxygen/oxygen.cpp +++ b/noncore/apps/oxygen/oxygen.cpp @@ -1,157 +1,42 @@ /*************************************************************************** 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 <qvaluelist.h> #include "calcdlg.h" #include "calcdlgui.h" #include "datawidgetui.h" #include "psewidget.h" Oxygen::Oxygen() : QMainWindow() { PSEWidget *pse = new PSEWidget(); calcDlgUI *CalcDlgUI = new calcDlgUI(); dataWidgetUI *DataWidgetUI = new dataWidgetUI(); 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 ); - - names = new QStringList(); } -void Oxygen::loadNames() -{ - 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 0b7655a..36ee9bc 100644 --- a/noncore/apps/oxygen/oxygen.h +++ b/noncore/apps/oxygen/oxygen.h @@ -1,24 +1,21 @@ /*************************************************************************** * * * 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 <qmainwindow.h> -class QStringList; - class Oxygen : public QMainWindow { Q_OBJECT public: Oxygen(); - QStringList *names; private: void loadNames(); }; |