Public Member Functions
ViewParamDelegate Class Reference

#include <ViewParamEditor.h>

List of all members.

Public Member Functions

QWidget * createEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
void setEditorData (QWidget *editor, const QModelIndex &index) const
void setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
 ViewParamDelegate (QObject *parent=0)

Constructor & Destructor Documentation

ViewParamDelegate::ViewParamDelegate ( QObject *  parent = 0)

References TRACE.

    : QItemDelegate(parent)
{
  TRACE;
  _tableFieldList=MetaDataFactory::instance()->registeredNames();
}

Member Function Documentation

QWidget * ViewParamDelegate::createEditor ( QWidget *  parent,
const QStyleOptionViewItem &  option,
const QModelIndex &  index 
) const

References GeopsyCore::MetaDataIndex::id(), GeopsyCore::MetaDataIndex::index(), GeopsyCore::MetaData::indexList(), GeopsyCore::MetaDataIndex::subId(), and w.

{
  switch(index.column()) {
  case 0: {
      QComboBox *w=new QComboBox (parent);
      w->addItems(_tableFieldList);
      connect(w, SIGNAL(activated(int)), this, SLOT(commit()));
      return w;
    }
  case 1: {
      QComboBox * w=new QComboBox(parent);
      QModelIndex metaDataNameIndex=static_cast<const QAbstractTableModel *>(index.model())->index(index.row(), 0, index.parent());
      MetaDataIndex dataIndex=MetaDataFactory::instance()->index(index.model()->data(metaDataNameIndex).toString());
      MetaData * d=MetaDataFactory::instance()->create(dataIndex.id());
      ASSERT(d);
      w->addItems(d->indexList(dataIndex.subId()));
      delete d;
      w->setEditable(true);
      connect(w, SIGNAL(textChanged(QString)), this, SLOT(commit()));
      return w;
    }
  default:
    QLineEdit * w=new QLineEdit(parent);
    return w;
  }
}
void ViewParamDelegate::setEditorData ( QWidget *  editor,
const QModelIndex &  index 
) const

References TRACE.

{
  TRACE;
  switch(index.column()) {
  case 0: {
      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 1: {
      QComboBox * w=qobject_cast<QComboBox *>(editor);
      if(!w) return;
      w->setEditText(index.model()->data(index).toString());
      break;
    }
  default:
    QLineEdit * w=qobject_cast<QLineEdit *>(editor);
    if( !w) return;
    w->setText(index.model() ->data(index).toString());
    w->selectAll();
    break;
  }
}
void ViewParamDelegate::setModelData ( QWidget *  editor,
QAbstractItemModel *  model,
const QModelIndex &  index 
) const

References TRACE.

{
  TRACE;
  switch(index.column()) {
  case 0: {
      QComboBox *w=qobject_cast<QComboBox *>(editor);
      if(!w) return;
      model->setData(index, w->currentText());
      break;
    }
  case 1: {
      QComboBox * w=qobject_cast<QComboBox *>(editor);
      if(!w) return;
      model->setData(index, w->currentText());
      break;
    }
  default:
    QLineEdit * w=qobject_cast<QLineEdit *>(editor);
    if( !w) return;
    model->setData(index, w->text());
    break;
  }
}

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