#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; } }