From d5db444cb70986baceda8ad1e01b0fb8384d12b4 Mon Sep 17 00:00:00 2001 From: cniehaus Date: Fri, 20 Sep 2002 21:45:30 +0000 Subject: 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. --- (limited to 'noncore/apps/oxygen') 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 @@ -59,6 +59,7 @@ void OxydataWidget::setElement( int el ) middle->setText( configobj.readEntry( "Name" ) ); right->setText( QString::number( el+1 ) ); + DataTable->setText( 0,1,configobj.readEntry( "Weight" ) ); DataTable->setText( 1,1,configobj.readEntry( "Block" ) ); DataTable->setText( 2,1,configobj.readEntry( "Group" ) ); @@ -68,6 +69,7 @@ void OxydataWidget::setElement( int el ) DataTable->setText( 6,1,configobj.readEntry( "Density" ) ); DataTable->setText( 7,1,configobj.readEntry( "BP" ) ); DataTable->setText( 8,1,configobj.readEntry( "MP" ) ); + } void OxydataWidget::setTable() const @@ -81,11 +83,21 @@ void OxydataWidget::setTable() const 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) + 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(); @@ -94,13 +106,6 @@ OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, this->setLeftMargin( 0 ); } -int OxydataTable::alignment() const -{ - return AlignLeft | AlignVCenter; -}; - - - void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) { if ( cr.width() == 0 || cr.height() == 0 ) @@ -120,3 +125,17 @@ void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, b 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 00063d4..a4a3b18 100644 --- a/noncore/apps/oxygen/dataTable.h +++ b/noncore/apps/oxygen/dataTable.h @@ -16,7 +16,6 @@ class QLabel; class OxydataTable; -class QTableItem; /* * A OxydataWidget shows all known data of an element. It can @@ -60,9 +59,6 @@ class OxydataTable : public QTable OxydataTable( int numRows, int numCols, QWidget *parent = 0, const char *name = 0 ); - virtual int alignment() const; -// virtual QTableItem *item( int row, int col ) const; - protected: /* * This method is reimplemented form QTable. It implements the colourisation @@ -70,12 +66,19 @@ class OxydataTable : public QTable */ 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 + */ -//X class OxydataQTI : QTableItem -//X { -//X Q_OBJECT -//X -//X public: -//X OxydataQTI( +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 4dab109..422b6f8 100644 --- a/noncore/apps/oxygen/datawidgetui.cpp +++ b/noncore/apps/oxygen/datawidgetui.cpp @@ -43,7 +43,7 @@ dataWidgetUI::dataWidgetUI() : QWidget() OxydataWidget *oxyDW = new OxydataWidget(this); connect ( dataCombo, SIGNAL( activated(int) ), oxyDW, SLOT( setElement(int) ) ); - oxyDW->setElement( 1 ); + oxyDW->setElement( 0 ); qgrid->addWidget( dataCombo, 0,0); qgrid->addWidget( oxyDW , 1,0 ); 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 @@ -47,7 +47,7 @@ PSEWidget::PSEWidget() : QWidget() } oxyDW = new OxydataWidget(this); - oxyDW->setElement( 1 ); + oxyDW->setElement( 0 ); vlay->addLayout( grid ); vlay->addWidget( oxyDW ); -- cgit v0.9.0.2