/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2010-2012 University of Bonn. All rights reserved. * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. */ /* * QtElementList.cpp * * Created on: Mar 6, 2012 * Author: ankele */ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "Views/Qt4/QtElementList.hpp" #include #include "CodePatterns/MemDebug.hpp" #include "Atom/atom.hpp" #include "Formula.hpp" #include "molecule.hpp" #include "MoleculeListClass.hpp" #include "Element/element.hpp" #include "Element/periodentafel.hpp" using namespace std; const int QtElementList::COLUMNCOUNT = COLUMNTYPES_MAX; const char *QtElementList::COLUMNNAMES[QtElementList::COLUMNCOUNT]={"Number","Name","Symbol","Mass"}; QtElementList::QtElementList(QWidget * _parent) : QTreeWidget (_parent), Observer("QtElementList") { setColumnCount(COLUMNCOUNT); QStringList header; for(int i=0; isignOn(this); update(molecules); periodentafel *&periode = World::getInstance().getPeriode(); int i; periodentafel::const_iterator iter; for(iter = periode->begin(),i=0; iter != periode->end(); ++i,++iter) { const element *e = iter->second; QTreeWidgetItem *treeItem = new QTreeWidgetItem(this); treeItem->setText(0, QString::number(e->getAtomicNumber())); treeItem->setText(1, QString(e->getName().c_str())); treeItem->setText(2, QString(e->getSymbol().c_str())); treeItem->setText(3, QString::number(e->getMass())); /*QTableWidgetItem *indexWidget = new QTableWidgetItem(); //std::cout << "Creating index item " << indexWidget << "." << std::endl; indexWidget->setText(QString::number(e->getAtomicNumber())); indexWidget->setData(Qt::UserRole,QVariant(e->getAtomicNumber())); setItem(i,NUMBER,indexWidget); const string name = e->getName(); QTableWidgetItem *nameWidget = new QTableWidgetItem(); //std::cout << "Creating name item " << nameWidget << " at " << i << "," << NAME << "." << std::endl; nameWidget->setText(QString(name.c_str())); setItem(i,NAME,nameWidget); const string symbol = e->getSymbol(); QTableWidgetItem *symWidget = new QTableWidgetItem(); //std::cout << "Creating symbol item " << symWidget << " at " << i << "," << NAME << "." << std::endl; symWidget->setText(QString(symbol.c_str())); setItem(i,SYMBOL,symWidget); const double mass = e->getMass(); QTableWidgetItem *massWidget= new QTableWidgetItem(); //std::cout << "Creating mass item " << massWidget << " at " << i << "," << ATOMCOUNT << "." << std::endl; massWidget->setText(QString::number(mass)); massWidget->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); setItem(i,MASS,massWidget);*/ } connect(this,SIGNAL(cellChanged(int,int)),this,SLOT(moleculeChanged(int,int))); connect(this,SIGNAL(cellClicked(int,int)),this,SLOT(cellSelected(int,int))); } QtElementList::~QtElementList() { molecules->signOff(this); } void QtElementList::update(Observable *publisher) { } void QtElementList::subjectKilled(Observable *publisher) { } void QtElementList::moleculeChanged(int row, int column) { } void QtElementList::cellSelected(int row, int column) { }