void UnitsDialog::loadConversionTable( ConversionTable *table, Unit::Type type ) { UnitList unitList; database->loadUnits( &unitList, type ); QStringList unitNames; IDList unitIDs; // We need to store these in the table, so rows and cols are identified by unitID, not name. table->clear(); for ( UnitList::const_iterator unit_it = unitList.constBegin(); unit_it != unitList.constEnd(); ++unit_it ) { unitNames.append( ( *unit_it ).name() ); unitIDs.append( ( *unit_it ).id() ); // append the element } // Resize the table table->resize( unitNames.count(), unitNames.count() ); // Set the table labels, and id's table->setRowLabels( unitNames ); table->setColumnLabels( unitNames ); table->setUnitIDs( unitIDs ); // Load and Populate the data into the table UnitRatioList ratioList; database->loadUnitRatios( &ratioList, type ); for ( UnitRatioList::const_iterator ratio_it = ratioList.constBegin(); ratio_it != ratioList.constEnd(); ++ratio_it ) { table->setRatio( ( *ratio_it ).unitId1(), ( *ratio_it ).unitId2(), ( *ratio_it ).ratio() ); } }
static IDList allIDs(QSqlDatabase db, const QString& tableName) { IDList ret; QSqlQuery query(QString("SELECT id FROM %1").arg(tableName), db); while(query.next()) { ret.append(query.record().value("id").toULongLong()); } return ret; }