author | cniehaus <cniehaus> | 2002-09-20 21:45:30 (UTC) |
---|---|---|
committer | cniehaus <cniehaus> | 2002-09-20 21:45:30 (UTC) |
commit | d5db444cb70986baceda8ad1e01b0fb8384d12b4 (patch) (unidiff) | |
tree | 65cab6b3cfb9c67336ce4f3e61d3e9df2476d8ca | |
parent | 20c93734a4eada53d056f13558cbf60d6eff5bac (diff) | |
download | opie-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.
-rw-r--r-- | noncore/apps/oxygen/dataTable.cpp | 35 | ||||
-rw-r--r-- | noncore/apps/oxygen/dataTable.h | 23 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/oxygen/psewidget.cpp | 2 |
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 | ||
53 | void OxydataWidget::setElement( int el ) | 53 | void 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 | ||
73 | void OxydataWidget::setTable() const | 75 | void 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 | ||
86 | OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, | 89 | OxydataTable::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 | ||
97 | int OxydataTable::alignment() const | ||
98 | { | ||
99 | return AlignLeft | AlignVCenter; | ||
100 | }; | ||
101 | |||
102 | |||
103 | |||
104 | void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) | 109 | void 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 | |||
129 | OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text ) | ||
130 | : QTableItem ( table, et, text ) | ||
131 | { | ||
132 | } | ||
133 | |||
134 | int 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 | ||
17 | class QLabel; | 17 | class QLabel; |
18 | class OxydataTable; | 18 | class OxydataTable; |
19 | class 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 | ||
30 | class OxydataWidget : public QWidget | 29 | class 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 | ||
55 | class OxydataTable : public QTable | 54 | class 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 | 76 | class 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 | ||
56 | QColor PSEWidget::PSEColor( QString block ) | 56 | QColor 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 ); |