Public Member Functions

UnitConversionEditor Class Reference
[Editors]

Table based unit conversions editor. More...

#include <calibrationeditor.h>

Inheritance diagram for UnitConversionEditor:
Inheritance graph
[legend]
Collaboration diagram for UnitConversionEditor:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 UnitConversionEditor (QWidget *parent=0)

Detailed Description

Table based unit conversions editor.


Constructor & Destructor Documentation

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()));
    }


The documentation for this class was generated from the following file: