summaryrefslogtreecommitdiff
authorcniehaus <cniehaus>2002-09-20 21:45:30 (UTC)
committer cniehaus <cniehaus>2002-09-20 21:45:30 (UTC)
commitd5db444cb70986baceda8ad1e01b0fb8384d12b4 (patch) (unidiff)
tree65cab6b3cfb9c67336ce4f3e61d3e9df2476d8ca
parent20c93734a4eada53d056f13558cbf60d6eff5bac (diff)
downloadopie-d5db444cb70986baceda8ad1e01b0fb8384d12b4.zip
opie-d5db444cb70986baceda8ad1e01b0fb8384d12b4.tar.gz
opie-d5db444cb70986baceda8ad1e01b0fb8384d12b4.tar.bz2
from now on I consider Oxygen as almost done :)
* the strange display-bug in the QTable is fixed. Now there are really only two colums and not a million or so * now the alingment is correct. I reimplemented virtual void alignment() in a class derived from QTableItem * s/setElement( 1 )/setElement( 0 )/ as that method starts with 0 and not 1 Credits to Robert Gogolok who did most of the reimplementation of the alignment.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/oxygen/dataTable.cpp35
-rw-r--r--noncore/apps/oxygen/dataTable.h23
-rw-r--r--noncore/apps/oxygen/datawidgetui.cpp2
-rw-r--r--noncore/apps/oxygen/psewidget.cpp2
4 files changed, 42 insertions, 20 deletions
diff --git a/noncore/apps/oxygen/dataTable.cpp b/noncore/apps/oxygen/dataTable.cpp
index ff01417..f034c45 100644
--- a/noncore/apps/oxygen/dataTable.cpp
+++ b/noncore/apps/oxygen/dataTable.cpp
@@ -50,73 +50,92 @@ OxydataWidget::OxydataWidget(QWidget *parent) : QWidget(parent)
50 qgrid->addWidget( DataTable,1,0 ); 50 qgrid->addWidget( DataTable,1,0 );
51} 51}
52 52
53void OxydataWidget::setElement( int el ) 53void OxydataWidget::setElement( int el )
54{ 54{
55 Config configobj( "oxygendata" ); 55 Config configobj( "oxygendata" );
56 configobj.setGroup( QString::number( el+1 )); 56 configobj.setGroup( QString::number( el+1 ));
57 57
58 left->setText( configobj.readEntry( "Symbol" ) ); 58 left->setText( configobj.readEntry( "Symbol" ) );
59 middle->setText( configobj.readEntry( "Name" ) ); 59 middle->setText( configobj.readEntry( "Name" ) );
60 right->setText( QString::number( el+1 ) ); 60 right->setText( QString::number( el+1 ) );
61 61
62
62 DataTable->setText( 0,1,configobj.readEntry( "Weight" ) ); 63 DataTable->setText( 0,1,configobj.readEntry( "Weight" ) );
63 DataTable->setText( 1,1,configobj.readEntry( "Block" ) ); 64 DataTable->setText( 1,1,configobj.readEntry( "Block" ) );
64 DataTable->setText( 2,1,configobj.readEntry( "Group" ) ); 65 DataTable->setText( 2,1,configobj.readEntry( "Group" ) );
65 DataTable->setText( 3,1,configobj.readEntry( "EN" ) ); 66 DataTable->setText( 3,1,configobj.readEntry( "EN" ) );
66 DataTable->setText( 4,1,configobj.readEntry( "AR" ) ) ; 67 DataTable->setText( 4,1,configobj.readEntry( "AR" ) ) ;
67 DataTable->setText( 5,1,configobj.readEntry( "IE" ) ); 68 DataTable->setText( 5,1,configobj.readEntry( "IE" ) );
68 DataTable->setText( 6,1,configobj.readEntry( "Density" ) ); 69 DataTable->setText( 6,1,configobj.readEntry( "Density" ) );
69 DataTable->setText( 7,1,configobj.readEntry( "BP" ) ); 70 DataTable->setText( 7,1,configobj.readEntry( "BP" ) );
70 DataTable->setText( 8,1,configobj.readEntry( "MP" ) ); 71 DataTable->setText( 8,1,configobj.readEntry( "MP" ) );
72
71} 73}
72 74
73void OxydataWidget::setTable() const 75void OxydataWidget::setTable() const
74{ 76{
75 DataTable->setText( 0,0, tr( "Weight:" ) ); 77 DataTable->setText( 0,0, tr( "Weight:" ) );
76 DataTable->setText( 1,0, tr( "Block" )) ; 78 DataTable->setText( 1,0, tr( "Block" )) ;
77 DataTable->setText( 2,0, tr( "Group" )) ; 79 DataTable->setText( 2,0, tr( "Group" )) ;
78 DataTable->setText( 3,0, tr( "Electronegativity" )) ; 80 DataTable->setText( 3,0, tr( "Electronegativity" )) ;
79 DataTable->setText( 4,0, tr( "Atomic radius" )) ; 81 DataTable->setText( 4,0, tr( "Atomic radius" )) ;
80 DataTable->setText( 5,0, tr( "Ionizationenergie" )) ; 82 DataTable->setText( 5,0, tr( "Ionizationenergie" )) ;
81 DataTable->setText( 6,0, tr( "Density" )) ; 83 DataTable->setText( 6,0, tr( "Density" )) ;
82 DataTable->setText( 7,0, tr( "Boilingpoint" ) ); 84 DataTable->setText( 7,0, tr( "Boilingpoint" ) );
83 DataTable->setText( 8,0, tr( "Meltingpoint" ) ); 85 DataTable->setText( 8,0, tr( "Meltingpoint" ) );
86
84} 87}
85 88
86OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, 89OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent,
87 const char *name) : QTable(numRows, numRows, parent, name) 90 const char *name) : QTable(numRows, numCols,parent, name)
88{ 91{
92
93 for (int zeile = 0; zeile < numRows; zeile++)
94 for ( int spalte = 0; spalte < numCols; spalte++ )
95 {
96 OxydataQTI *testus = new OxydataQTI (this, OxydataQTI::Never, "hm" );
97 setItem(zeile, spalte, (QTableItem*)testus);
98 }
99
100
89 this->setShowGrid( false ); 101 this->setShowGrid( false );
90 this->setHScrollBarMode(QScrollView::AlwaysOff); 102 this->setHScrollBarMode(QScrollView::AlwaysOff);
91 this->horizontalHeader()->hide(); 103 this->horizontalHeader()->hide();
92 this->verticalHeader()->hide(); 104 this->verticalHeader()->hide();
93 this->setTopMargin( 0 ); 105 this->setTopMargin( 0 );
94 this->setLeftMargin( 0 ); 106 this->setLeftMargin( 0 );
95} 107}
96 108
97int OxydataTable::alignment() const
98{
99 return AlignLeft | AlignVCenter;
100};
101
102
103
104void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) 109void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected)
105{ 110{
106 if ( cr.width() == 0 || cr.height() == 0 ) 111 if ( cr.width() == 0 || cr.height() == 0 )
107 return; 112 return;
108 selected = FALSE; 113 selected = FALSE;
109 114
110 QTableItem *itm = item( row, col ); 115 QTableItem *itm = item( row, col );
111 QColorGroup colgrp = colorGroup(); 116 QColorGroup colgrp = colorGroup();
112 if ( itm ) 117 if ( itm )
113 { 118 {
114 if ( row%2 ) 119 if ( row%2 )
115 colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) ); 120 colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) );
116 else 121 else
117 colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) ); 122 colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) );
118 p->save(); 123 p->save();
119 itm->paint( p, colgrp, cr, selected ); 124 itm->paint( p, colgrp, cr, selected );
120 p->restore(); 125 p->restore();
121 } 126 }
122} 127}
128
129OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text )
130 : QTableItem ( table, et, text )
131{
132}
133
134int OxydataQTI::alignment() const
135{
136 if ( col()%2 )
137 {
138 return AlignRight | AlignVCenter;
139 }else return AlignLeft | AlignVCenter;
140};
141
diff --git a/noncore/apps/oxygen/dataTable.h b/noncore/apps/oxygen/dataTable.h
index 00063d4..a4a3b18 100644
--- a/noncore/apps/oxygen/dataTable.h
+++ b/noncore/apps/oxygen/dataTable.h
@@ -7,25 +7,24 @@
7 * ( at your option ) any later version. * 7 * ( at your option ) any later version. *
8 * * 8 * *
9 **************************************************************************/ 9 **************************************************************************/
10 10
11#ifndef _DATATABLE_H 11#ifndef _DATATABLE_H
12#define _DATATABLE_H 12#define _DATATABLE_H
13 13
14#include <qwidget.h> 14#include <qwidget.h>
15#include <qtable.h> 15#include <qtable.h>
16 16
17class QLabel; 17class QLabel;
18class OxydataTable; 18class OxydataTable;
19class QTableItem;
20 19
21/* 20/*
22 * A OxydataWidget shows all known data of an element. It can 21 * A OxydataWidget shows all known data of an element. It can
23 * be used for both the PSE and the pure Data-Dialog. It is 22 * be used for both the PSE and the pure Data-Dialog. It is
24 * a simple QHBox with 2 QStrings in it plus a OxydataTable 23 * a simple QHBox with 2 QStrings in it plus a OxydataTable
25 * which contains the rest of the data. 24 * which contains the rest of the data.
26 * 25 *
27 * Author: Carsten Niehaus <cniehaus@handhelds.org> 26 * Author: Carsten Niehaus <cniehaus@handhelds.org>
28 */ 27 */
29 28
30class OxydataWidget : public QWidget 29class OxydataWidget : public QWidget
31{ 30{
@@ -51,31 +50,35 @@ class OxydataWidget : public QWidget
51 * 50 *
52 * Author: Carsten Niehaus <cniehaus@handhelds.org> 51 * Author: Carsten Niehaus <cniehaus@handhelds.org>
53 */ 52 */
54 53
55class OxydataTable : public QTable 54class OxydataTable : public QTable
56{ 55{
57 Q_OBJECT 56 Q_OBJECT
58 57
59 public: 58 public:
60 OxydataTable( int numRows, int numCols, 59 OxydataTable( int numRows, int numCols,
61 QWidget *parent = 0, const char *name = 0 ); 60 QWidget *parent = 0, const char *name = 0 );
62 61
63 virtual int alignment() const;
64// virtual QTableItem *item( int row, int col ) const;
65
66 protected: 62 protected:
67 /* 63 /*
68 * This method is reimplemented form QTable. It implements the colourisation 64 * This method is reimplemented form QTable. It implements the colourisation
69 * of every second row. 65 * of every second row.
70 */ 66 */
71 virtual void paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected ); 67 virtual void paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected );
72}; 68};
69/*
70 * A OxydataQTI is a QTableItem which has the ability to set an alignment.
71 * In Oxygen we only have two colums so I can use the simple col()%2.
72 *
73 * Author: Robert Gogolok <robertgogolok@gmx.de>
74 */
73 75
74//X class OxydataQTI : QTableItem 76class OxydataQTI : public QTableItem
75//X { 77{
76//X Q_OBJECT 78 public:
77//X 79 OxydataQTI(QTable * table, EditType et, const QString & text );
78//X public: 80
79//X OxydataQTI( 81 virtual int alignment() const;
82};
80 83
81#endif 84#endif
diff --git a/noncore/apps/oxygen/datawidgetui.cpp b/noncore/apps/oxygen/datawidgetui.cpp
index 4dab109..422b6f8 100644
--- a/noncore/apps/oxygen/datawidgetui.cpp
+++ b/noncore/apps/oxygen/datawidgetui.cpp
@@ -34,18 +34,18 @@ dataWidgetUI::dataWidgetUI() : QWidget()
34 34
35 //read in all names of the 118 elements 35 //read in all names of the 118 elements
36 Config configobj( "oxygendata" ); 36 Config configobj( "oxygendata" );
37 for ( int i = 1 ; i < 119 ; i++ ) 37 for ( int i = 1 ; i < 119 ; i++ )
38 { 38 {
39 configobj.setGroup( QString::number( i ) ); 39 configobj.setGroup( QString::number( i ) );
40 QString foo = configobj.readEntry( "Name" ); 40 QString foo = configobj.readEntry( "Name" );
41 dataCombo->insertItem( foo ); 41 dataCombo->insertItem( foo );
42 } 42 }
43 43
44 OxydataWidget *oxyDW = new OxydataWidget(this); 44 OxydataWidget *oxyDW = new OxydataWidget(this);
45 connect ( dataCombo, SIGNAL( activated(int) ), oxyDW, SLOT( setElement(int) ) ); 45 connect ( dataCombo, SIGNAL( activated(int) ), oxyDW, SLOT( setElement(int) ) );
46 oxyDW->setElement( 1 ); 46 oxyDW->setElement( 0 );
47 47
48 qgrid->addWidget( dataCombo, 0,0); 48 qgrid->addWidget( dataCombo, 0,0);
49 qgrid->addWidget( oxyDW , 1,0 ); 49 qgrid->addWidget( oxyDW , 1,0 );
50} 50}
51 51
diff --git a/noncore/apps/oxygen/psewidget.cpp b/noncore/apps/oxygen/psewidget.cpp
index a3bb505..449afef 100644
--- a/noncore/apps/oxygen/psewidget.cpp
+++ b/noncore/apps/oxygen/psewidget.cpp
@@ -38,25 +38,25 @@ PSEWidget::PSEWidget() : QWidget()
38 configobj.setGroup( QString::number( n+1 )); 38 configobj.setGroup( QString::number( n+1 ));
39 39
40 position( n+1,h,v ); 40 position( n+1,h,v );
41 QList<OxyFrame> PSEframe; 41 QList<OxyFrame> PSEframe;
42 PSEframe.append( new OxyFrame( this , QString::number(n) ) ); 42 PSEframe.append( new OxyFrame( this , QString::number(n) ) );
43 grid->addWidget( PSEframe.current() , v/40+1 , h/40 ); 43 grid->addWidget( PSEframe.current() , v/40+1 , h/40 );
44 PSEframe.current()->setMinimumHeight( 11 ); 44 PSEframe.current()->setMinimumHeight( 11 );
45 PSEframe.current()->setPalette( QPalette( PSEColor( configobj.readEntry( "Block" ) ) ) ); 45 PSEframe.current()->setPalette( QPalette( PSEColor( configobj.readEntry( "Block" ) ) ) );
46 connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( slotShowElement(QString) )); 46 connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( slotShowElement(QString) ));
47 } 47 }
48 48
49 oxyDW = new OxydataWidget(this); 49 oxyDW = new OxydataWidget(this);
50 oxyDW->setElement( 1 ); 50 oxyDW->setElement( 0 );
51 51
52 vlay->addLayout( grid ); 52 vlay->addLayout( grid );
53 vlay->addWidget( oxyDW ); 53 vlay->addWidget( oxyDW );
54} 54}
55 55
56QColor PSEWidget::PSEColor( QString block ) 56QColor PSEWidget::PSEColor( QString block )
57{ 57{
58 QColor c; 58 QColor c;
59 if ( block == "s" ) c.setRgb( 213 , 233 , 231 ); 59 if ( block == "s" ) c.setRgb( 213 , 233 , 231 );
60 else if ( block == "d" ) c.setRgb( 200,230,160 ); 60 else if ( block == "d" ) c.setRgb( 200,230,160 );
61 else if ( block == "p" ) c.setRgb( 238,146,138 ); 61 else if ( block == "p" ) c.setRgb( 238,146,138 );
62 else if ( block == "f" ) c.setRgb( 190 , 190 , 190 ); 62 else if ( block == "f" ) c.setRgb( 190 , 190 , 190 );