-rw-r--r-- | noncore/apps/oxygen/dataTable.cpp | 9 | ||||
-rw-r--r-- | noncore/apps/oxygen/dataTable.h | 5 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.cpp | 225 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.h | 2 |
4 files changed, 124 insertions, 117 deletions
diff --git a/noncore/apps/oxygen/dataTable.cpp b/noncore/apps/oxygen/dataTable.cpp index 661eb5a..951788b 100644 --- a/noncore/apps/oxygen/dataTable.cpp +++ b/noncore/apps/oxygen/dataTable.cpp @@ -1,151 +1,156 @@ /*************************************************************************** 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> #include <qstringlist.h> -OxydataWidget::OxydataWidget(QWidget *parent, const char *name, QStringList *list ) : QWidget( parent,name ) +OxydataWidget::OxydataWidget(QWidget *parent, const char *name, const QStringList &list ) : QWidget( parent,name ) { + names = list; + QStringList::ConstIterator it = names.at(10); + qDebug( *it ); 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 ) { + QStringList::ConstIterator it = names.at(el+1); + qDebug( *it ); 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" ) ); + middle->setText( *it ); 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:" ) ); DataTable->setText( 1,0, tr( "Block" )) ; DataTable->setText( 2,0, tr( "Group" )) ; DataTable->setText( 3,0, tr( "Electronegativity" )) ; DataTable->setText( 4,0, tr( "Atomic radius" )) ; DataTable->setText( 5,0, tr( "Ionizationenergie" )) ; DataTable->setText( 6,0, tr( "Density" )) ; DataTable->setText( 7,0, tr( "Boilingpoint" ) ); DataTable->setText( 8,0, tr( "Meltingpoint" ) ); } void OxydataWidget::setLayout() { #warning this is not working and I have no idea why! // DataTable->setColumnWidth ( 0 , this->width()/2 ); // DataTable->setColumnWidth ( 1 , this->width()/2 ); //X DataTable->setColumnWidth ( 0 , 110 ); //X DataTable->setColumnWidth ( 1 , 110 ); } OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, const char *name) : QTable(numRows, numCols,parent, name) { for (int zeile = 0; zeile < numRows; zeile++) for ( int spalte = 0; spalte < numCols; spalte++ ) { OxydataQTI *testus = new OxydataQTI (this, OxydataQTI::Never, "hm" ); setItem(zeile, spalte, (QTableItem*)testus); } this->setShowGrid( false ); this->setHScrollBarMode(QScrollView::AlwaysOff); this->horizontalHeader()->hide(); this->verticalHeader()->hide(); this->setTopMargin( 0 ); this->setLeftMargin( 0 ); } void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) { if ( cr.width() == 0 || cr.height() == 0 ) return; selected = FALSE; QTableItem *itm = item( row, col ); QColorGroup colgrp = colorGroup(); if ( itm ) { if ( row%2 ) colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) ); else colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) ); p->save(); itm->paint( p, colgrp, cr, selected ); p->restore(); } } OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text ) : QTableItem ( table, et, text ) { } int OxydataQTI::alignment() const { if ( col()%2 ) { return AlignRight | AlignVCenter; }else return AlignLeft | AlignVCenter; }; diff --git a/noncore/apps/oxygen/dataTable.h b/noncore/apps/oxygen/dataTable.h index a8c9b6e..8be78a9 100644 --- a/noncore/apps/oxygen/dataTable.h +++ b/noncore/apps/oxygen/dataTable.h @@ -1,86 +1,87 @@ /*************************************************************************** * * * 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; +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, const char *name=0, QStringList *list =0 ); + OxydataWidget(QWidget *parent=0, const char *name=0, const QStringList &list =0 ); QLabel *left, *middle, *right; void setLayout(); + QStringList names; 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; }; #endif diff --git a/noncore/apps/oxygen/datawidgetui.cpp b/noncore/apps/oxygen/datawidgetui.cpp index 68c025f..e28ee4d 100644 --- a/noncore/apps/oxygen/datawidgetui.cpp +++ b/noncore/apps/oxygen/datawidgetui.cpp @@ -1,167 +1,168 @@ /*************************************************************************** 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(); + + names = 0; 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 int i = 0; - for ( QStringList::Iterator it = names->begin() ; it != names->end() ; ++it,i++) + for ( QStringList::ConstIterator it = names.begin() ; it != names.end() ; ++it,i++) { dataCombo->insertItem( QString::number( i+1 )+" - "+*it ); } - + 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") ); + 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 154f4be..a2b48fa 100644 --- a/noncore/apps/oxygen/datawidgetui.h +++ b/noncore/apps/oxygen/datawidgetui.h @@ -1,46 +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; + QStringList names; private: OxydataTable *DataTable; QComboBox *dataCombo; OxydataWidget *oxyDW; void loadNames(); }; #endif |