Public Member Functions
SignalTableDelegate Class Reference

#include <SignalTableDelegate.h>

Inheritance diagram for SignalTableDelegate:
QGpGuiTools::LineEditDelegate

List of all members.

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)

Constructor & Destructor Documentation

SignalTableDelegate::SignalTableDelegate ( QObject *  parent = 0) [inline]
: LineEditDelegate(parent) {}

Member Function Documentation

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

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines