#include <projecteditor.h>


Public Member Functions | |
| SensorEditor (QWidget *parent=0) | |
Protected Member Functions | |
| virtual void | onCurrentRecordChange (int row) |
| virtual void | updateButtons () |
| virtual void | onQueryChange () |
Editor for sensors.
| SensorEditor::SensorEditor | ( | QWidget * | parent = 0 |
) | [inline] |
:
MappedBaseEditor(parent), channelView(new SensorChannelView(this)) {
setObjectName("SesnorEditor");
setWindowTitle("Sensor editor");
// set source
setTable("tbl_sensors");
// widget setup
QLabel *type = new QLabel("&Type*:", this);
QLabel *sn = new QLabel("&Serial number*:", this);
QLabel *name = new QLabel("&Name:", this);
QLabel *category = new QLabel("&Category*:", this);
QLabel *unit = new QLabel("&Unit*:", this);
QLabel *desc = new QLabel("Description:", this);
QLineEdit *typeEdit = new QLineEdit(this);
QLineEdit *snEdit = new QLineEdit(this);
QLineEdit *nameEdit = new QLineEdit(this);
QComboBox *categoryEdit = new QComboBox(this);
QComboBox *unitEdit = new QComboBox(this);
QTextEdit *descEdit = new QTextEdit(this);
type->setBuddy(typeEdit);
sn->setBuddy(snEdit);
name->setBuddy(nameEdit);
category->setBuddy(categoryEdit);
unit->setBuddy(unitEdit);
desc->setBuddy(descEdit);
// add channels widget
QLabel *channels = new QLabel("&Channels:\n(Doubleclick to edit/add/delete)", this);
channels->setBuddy(channelView);
channelView->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); //descEdit is enige met QSizePolicy::ExpandFlag
// add widgets
addWidget(type, 0, 0, 1, 1);
addWidget(typeEdit, 0, 1, 1, 1, "sens_type");
addWidget(sn, 1, 0, 1, 1);
addWidget(snEdit, 1, 1, 1, 1, "sens_serialnr");
addWidget(name, 2, 0, 1, 1);
addWidget(nameEdit, 2, 1, 1, 1, "sens_name");
addWidget(category, 3, 0, 1, 1);
addWidget(categoryEdit, 3, 1, 1, 1, QSqlRelation("tbl_sensor_categories", "sens_cate_id", "sens_cate_name"));
addWidget(unit, 4, 0, 1, 1);
addWidget(unitEdit, 4, 1, 1, 1, QSqlRelation("vew_sensor_units", "unit_id", "unit_symbol"));
addWidget(channels, 0, 2, 1, 1);
addWidget(channelView, 1, 2, 4, 1);
addWidget(desc, 5, 0, 1, 3);
addWidget(descEdit, 6, 0, 1, 3, "sens_desc", "plainText");
// setup connections
connect(typeEdit, SIGNAL(textChanged(QString)), this, SLOT(updateButtons()));
connect(snEdit, SIGNAL(textChanged(QString)), this, SLOT(updateButtons()));
connect(nameEdit, SIGNAL(textChanged(QString)), this, SLOT(updateButtons()));
connect(categoryEdit, SIGNAL(currentIndexChanged(int)), this, SLOT(updateButtons()));
connect(unitEdit, SIGNAL(currentIndexChanged(int)), this, SLOT(updateButtons()));
connect(descEdit, SIGNAL(textChanged()), this, SLOT(updateButtons()));
// update changes
select();
}
| virtual void SensorEditor::onCurrentRecordChange | ( | int | row | ) | [inline, protected, virtual] |
Reimplemented from MappedBaseEditor.
{
MappedBaseEditor::onCurrentRecordChange(row);
updateSensorChannelView();
}
| virtual void SensorEditor::onQueryChange | ( | ) | [inline, protected, virtual] |
This function is primarily due to a bug in Qt where the mappers indexes become invalid after Model::select() is called, which also emits queryChanged(). cf. http://bugreports.qt.nokia.com/browse/QTBUG-1086 One consequence of this is that mapper->currentIndex() == -1 so it can not be used as currentIndex.
Reimplemented from MappedBaseEditor.
{
MappedBaseEditor::onQueryChange();
updateSensorChannelView();
}
| virtual void SensorEditor::updateButtons | ( | ) | [inline, protected, virtual] |
Reimplemented from MappedBaseEditor.
Referenced by SensorEditor().
{
MappedBaseEditor::updateButtons();
channelView->setDisabled(isCurrentRecordNew() || model()->rowCount() == 0);
}
1.7.1