Table based unit conversions editor. More...
#include <calibrationeditor.h>
Public Member Functions | |
UnitConversionEditor (QWidget *parent=0) |
Table based unit conversions editor.
UnitConversionEditor::UnitConversionEditor | ( | QWidget * | parent = 0 |
) | [inline] |
: TableBaseEditor(parent) { setObjectName("UnitConversionEditor"); setWindowTitle("Unit conversion editor"); model()->setTable("tbl_unit_conversions"); model()->setRelation(model()->record().indexOf("unit_id_from"), QSqlRelation("tbl_units", "unit_id", "unit_symbol")); model()->setRelation(model()->record().indexOf("unit_id_to"), QSqlRelation("tbl_units", "unit_id", "unit_symbol")); model()->setSort(0, Qt::AscendingOrder); model()->select(); model()->setHeaderData(0, Qt::Horizontal, "From*", Qt::DisplayRole); model()->setHeaderData(1, Qt::Horizontal, "To*", Qt::DisplayRole); model()->setHeaderData(2, Qt::Horizontal, "Factor*", Qt::DisplayRole); model()->setHeaderData(3, Qt::Horizontal, "Offset*", Qt::DisplayRole); editor = new QTableView(this); editor->setItemDelegate(new QSqlRelationalDelegate()); editor->setModel(model()); SqlQueryModel *m = new SqlQueryModel(this); m->setQuery(Database::execStatic("SELECT f.unit_symbol AS \"From*\", t.unit_symbol AS \"To*\", unit_conv_factor as \"Factor\", unit_conv_offset AS \"Offset\" " "FROM vew_unit_conversions AS c INNER JOIN tbl_units AS f ON (unit_id_from = f.unit_id) INNER JOIN tbl_units AS t ON (unit_id_to = t.unit_id) " "WHERE f.unit_symbol <> t.unit_symbol " "ORDER BY 1, 2")); QTableView *view = new QTableView(this); view->setModel(m); QGroupBox *eView = new QGroupBox("Editable conversions"); eView->setLayout(new QHBoxLayout()); eView->layout()->addWidget(editor); QGroupBox *sView = new QGroupBox("Derived conversions"); sView->setLayout(new QHBoxLayout()); sView->layout()->addWidget(view); QSplitter *splitter = new QSplitter(this); splitter->addWidget(sView); splitter->addWidget(eView); //splitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // main layout setup mainLayout()->addWidget(splitter, 0, 0, 1, 1); // setup connections connect(editor->itemDelegate(), SIGNAL(closeEditor(QWidget*)), this, SLOT(updateButtons())); connect(model(), SIGNAL(queryChanged()), m, SLOT(reQuery())); }