summaryrefslogtreecommitdiff
path: root/noncore/apps/oxygen/dataTable.cpp
blob: 5c7b35cb37f0b056546474d46b28ae6a5536d05d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/***************************************************************************
 *                                                                         *
 * 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>

OxydataWidget::OxydataWidget(QWidget *parent) : QWidget(parent)
{
    QGridLayout *qgrid = new QGridLayout( this, 2,1 );
    QHBox *hbox = new QHBox( this );
    left = new QLabel( hbox );
    middle = new QLabel( hbox );
    right = new QLabel( hbox );
    
    DataTable = new OxydataTable( 9,2, this );

    QFont bf;
    bf.setBold( true );
    bf.setPointSize( bf.pointSize()+2 );
    middle->setFont( bf );

    setTable();

    qgrid->addWidget( hbox,0,0 );    
    qgrid->addWidget( DataTable,1,0 );    
}

void OxydataWidget::setElement( int el )
{
    Config configobj( "oxygendata" );
    configobj.setGroup( QString::number( el+1 ));
    
    left->setText( configobj.readEntry( "Symbol" ) );
    middle->setText( configobj.readEntry( "Name" ) );
    right->setText( QString::number( el+1 ) );

    QString weight = configobj.readEntry( "Weight" );
    DataTable->setText( 0,1,weight ); 
    QString block = configobj.readEntry( "Block" );
    DataTable->setText( 1,1,block ); 
    QString grp = configobj.readEntry( "Group" );
    DataTable->setText( 2,1,grp ); 
    QString en = configobj.readEntry( "EN" );
    DataTable->setText( 3,1,en ); 
    QString ar = configobj.readEntry( "AR" );
    DataTable->setText( 4,1,ar ) ; 
    QString ion = configobj.readEntry( "IE" );
    DataTable->setText( 5,1,ion ); 
    QString dens = configobj.readEntry( "Density" );
    DataTable->setText( 6,1,dens ); 
    QString bp = configobj.readEntry( "BP" );
    DataTable->setText( 7,1,bp ); 
    QString mp = configobj.readEntry( "MP" );
    DataTable->setText( 8,1,mp ); 
}

void OxydataWidget::setTable()
{
    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" ) );
}

OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent,
        const char *name) : QTable(numRows, numRows, parent, name)
{
    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( cyan ) );
        else
            colgrp.setColor(  QColorGroup::Base, QColor( white ) );
        p->save();
        itm->paint( p, colgrp, cr, selected );
        p->restore();
    }
}