#include <SignalTableDelegate.h>
Public Member Functions | |
| virtual QWidget * | createEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const |
| virtual void | setEditorData (QWidget *editor, const QModelIndex &index) const |
| virtual void | setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const |
| SignalTableDelegate (QObject *parent=0) | |
| SignalTableDelegate::SignalTableDelegate | ( | QObject * | parent = 0 | ) | [inline] |
: LineEditDelegate(parent) {}
| QWidget * SignalTableDelegate::createEditor | ( | QWidget * | parent, |
| const QStyleOptionViewItem & | option, | ||
| const QModelIndex & | index | ||
| ) | const [virtual] |
Reimplemented from QGpGuiTools::LineEditDelegate.
References SignalTableItem::dataIndex(), GeopsyCore::MetaDataIndex::id(), QGpCoreTools::tr(), TRACE, and w.
{
TRACE;
const SignalTableItem * tableItem=qobject_cast<const SignalTableItem *>(index.model());
ASSERT(tableItem);
MetaDataIndex i=tableItem->dataIndex(index.column());
switch (i.id()) {
case MetaDataFactory::Component: {
QComboBox * w=new QComboBox(parent);
w->addItem(tr( "Vertical" ));
w->addItem(tr( "North" ));
w->addItem(tr( "East" ));
w->addItem(tr( "Horizontal" ));
w->addItem(tr( "All" ));
w->addItem(tr( "Undefined" ));
return w;
}
case MetaDataFactory::AmplitudeUnit: {
QComboBox * w=new QComboBox(parent);
w->addItem(tr( "Displacement" ));
w->addItem(tr( "Velocity" ));
w->addItem(tr( "Acceleration" ));
w->addItem(tr( "Custom" ));
return w;
}
case MetaDataFactory::TimeReference: {
QDateTimeEdit * w=new QDateTimeEdit(parent);
w->setDisplayFormat(tr("dd/MM/yyyy hh:mm:ss"));
return w;
}
default: { // Not using base class to implement the read only feature
QLineEdit * w=new QLineEdit(parent);
if(MetaDataFactory::instance()->isReadOnly(i)) {
w->setReadOnly(true);
}
return w;
}
}
}
| void SignalTableDelegate::setEditorData | ( | QWidget * | editor, |
| const QModelIndex & | index | ||
| ) | const [virtual] |
Reimplemented from QGpGuiTools::LineEditDelegate.
References SignalTableItem::dataIndex(), GeopsyCore::MetaDataIndex::id(), QGpCoreTools::tr(), TRACE, and w.
{
TRACE;
const SignalTableItem * tableItem=qobject_cast<const SignalTableItem *>(index.model());
ASSERT(tableItem);
MetaDataIndex i=tableItem->dataIndex(index.column());
switch (i.id()) {
case MetaDataFactory::Component:
case MetaDataFactory::AmplitudeUnit: {
QComboBox * w=qobject_cast<QComboBox *>(editor);
if( !w) return;
int pos=w->findText(index.model() ->data(index).toString(), Qt::MatchExactly);
w->setCurrentIndex(pos);
}
break;
case MetaDataFactory::TimeReference: {
QDateTimeEdit * w=qobject_cast<QDateTimeEdit *>(editor);
if( !w) return;
QDateTime dt;
dt=QDateTime::fromString(index.model() ->data(index).toString(), tr("dd/MM/yyyy hh:mm:ss"));
w->setDateTime(dt);
}
break;
default:
LineEditDelegate::setEditorData(editor, index);
break;
}
}
| void SignalTableDelegate::setModelData | ( | QWidget * | editor, |
| QAbstractItemModel * | model, | ||
| const QModelIndex & | index | ||
| ) | const [virtual] |
Reimplemented from QGpGuiTools::LineEditDelegate.
References SignalTableItem::dataIndex(), GeopsyCore::MetaDataIndex::id(), QGpCoreTools::tr(), TRACE, and w.
{
TRACE;
const SignalTableItem * tableItem=qobject_cast<const SignalTableItem *>(index.model());
ASSERT(tableItem);
MetaDataIndex i=tableItem->dataIndex(index.column());
switch (i.id()) {
case MetaDataFactory::Component:
case MetaDataFactory::AmplitudeUnit: {
QComboBox * w=qobject_cast<QComboBox *>(editor);
if( !w) return;
model->setData(index, w->currentText());
}
break;
case MetaDataFactory::TimeReference: {
QDateTimeEdit * w=qobject_cast<QDateTimeEdit *>(editor);
if( !w) return;
model->setData(index, w->dateTime().toString(tr("dd/MM/yyyy hh:mm:ss")));
}
break;
default: {
if(MetaDataFactory::instance()->isReadOnly(i)) {
return;
}
LineEditDelegate::setModelData(editor, model, index);
}
break;
}
}