All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Signals | Public Member Functions
QGpGuiTools::ColumnTextItem Class Reference

Brief description of class still missing. More...

#include <ColumnTextItem.h>

List of all members.

Signals

void typeChanged ()

Public Member Functions

virtual int columnCount (const QModelIndex &parent=QModelIndex()) const
 ColumnTextItem (QObject *parent=0)
virtual QVariant data (const QModelIndex &index, int role) const
virtual Qt::ItemFlags flags (const QModelIndex &index) const
virtual QVariant headerData (int section, Qt::Orientation orientation, int role) const
virtual QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const
virtual QModelIndex parent (const QModelIndex &index) const
virtual int rowCount (const QModelIndex &parent=QModelIndex()) const
virtual bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
void setParser (ColumnTextParser *p)
 ~ColumnTextItem ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References TRACE.

    : QAbstractItemModel(parent)
{
  TRACE;
  _parser=0;
}

Description of destructor still missing

References TRACE.

{
  TRACE;
}

Member Function Documentation

int QGpGuiTools::ColumnTextItem::columnCount ( const QModelIndex &  parent = QModelIndex()) const [virtual]

Currently return only 1 but may evolve in the future

References QGpCoreTools::ColumnTextParser::columnCount(), and TRACE.

{
  TRACE;
  if(parent.isValid() || !_parser)
    return 0;
  else {
    return _parser->columnCount();
  }
}
QVariant QGpGuiTools::ColumnTextItem::data ( const QModelIndex &  index,
int  role 
) const [virtual]

References QGpCoreTools::ColumnTextParser::factor(), QGpCoreTools::ColumnTextParser::replaceAfter(), QGpCoreTools::ColumnTextParser::replaceRx(), QGpCoreTools::ColumnTextParser::sectionBeginRow(), QGpCoreTools::ColumnTextParser::sectionComments(), QGpCoreTools::ColumnTextParser::sectionIndexOf(), QGpCoreTools::ColumnTextParser::text(), QGpCoreTools::tr(), TRACE, and QGpCoreTools::ColumnTextParser::typeName().

{
  TRACE;
  if( !index.isValid()) return QVariant();
  switch (role) {
  case Qt::DisplayRole:
    switch(index.row()) {
    case 0:
      return _parser->typeName(index.column());
    case 1:
      return _parser->factor(index.column());
    case 2:
      return _parser->replaceRx(index.column());
    case 3:
      return _parser->replaceAfter(index.column());
    default:
      return _parser->text(index.row()-4, index.column());
    }
  case Qt::ToolTipRole:
    switch(index.row()) {
    case 0:
      return tr("Associate columns to data fields");
    case 1:
      return tr("Factors to convert values shown below to the standard units");
    case 2:
    case 3:
      return tr("A 'Regular Expression' can be searched in cell contents and replaced\n"
                "See online documentation for more details.");
    default: {
        int row=index.row()-4;
        int sec=_parser->sectionIndexOf(row);
        if(_parser->sectionBeginRow(sec)==row) {
          return _parser->sectionComments(sec);
        } else {
          return QVariant();
        }
      }
    }
  case Qt::BackgroundRole:
    if(index.row()>=4) {
      int row=index.row()-4;
      int sec=_parser->sectionIndexOf(row);
      if(_parser->sectionBeginRow(sec)==row) {
        return QColor(200,200,200);
      } else {
        return QVariant();
      }
    } else {
      return QColor(239,239,239);
    }
  case Qt::TextAlignmentRole:
    if(index.row()>=2) {
      return QVariant();
    } else {
      return Qt::AlignHCenter;
    }
  default:
    return QVariant();
  }
}
Qt::ItemFlags QGpGuiTools::ColumnTextItem::flags ( const QModelIndex &  index) const [virtual]

References QGpCoreTools::ColumnTextParser::type().

{
  if(index.row()<4) {
    return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
  } else if(_parser->type(index.column())==0) {
    return 0;
  } else {
    return Qt::ItemIsEnabled;
  }
}
QVariant QGpGuiTools::ColumnTextItem::headerData ( int  section,
Qt::Orientation  orientation,
int  role 
) const [virtual]

References QGpCoreTools::ColumnTextParser::lineNumber(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  if(role!=Qt::DisplayRole) return QVariant();
  switch(orientation) {
  case Qt::Horizontal:
    return section+1;
  case Qt::Vertical:
    switch(section) {
    case 0:
      return tr("Type");
    case 1:
      return tr("Factor");
    case 2:
      return tr("Find");
    case 3:
      return tr("Replace");
    default:
      return _parser->lineNumber(section-4);
    }
  }
  return QVariant();
}
QModelIndex QGpGuiTools::ColumnTextItem::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex() 
) const [virtual]

References TRACE.

{
  TRACE;
  if( !parent.isValid())
    return createIndex(row, column);
  else
    return QModelIndex();
}
QModelIndex QGpGuiTools::ColumnTextItem::parent ( const QModelIndex &  index) const [virtual]

References TRACE.

{
  TRACE;
  return QModelIndex();
}
int QGpGuiTools::ColumnTextItem::rowCount ( const QModelIndex &  parent = QModelIndex()) const [virtual]

References QGpCoreTools::ColumnTextParser::rowCount(), and TRACE.

{
  TRACE;
  if(parent.isValid() || !_parser)
    return 4;
  else {
    return _parser->rowCount()+4;
  }
}
bool QGpGuiTools::ColumnTextItem::setData ( const QModelIndex &  index,
const QVariant &  value,
int  role = Qt::EditRole 
) [virtual]

References QGpCoreTools::ColumnTextParser::setFactor(), QGpCoreTools::ColumnTextParser::setReplaceAfter(), QGpCoreTools::ColumnTextParser::setReplaceRx(), QGpCoreTools::ColumnTextParser::setTypeName(), QGpCoreTools::ColumnTextParser::startUpdates(), QGpCoreTools::ColumnTextParser::stopUpdates(), TRACE, and typeChanged().

{
  TRACE;
  if( !index.isValid()) return false;
  if(role==Qt::EditRole) {
    switch(index.row()) {
    case 0:
      _parser->setTypeName(index.column(), value.toString());
      emit typeChanged();
      return true;
    case 1:
      _parser->stopUpdates();
      _parser->setFactor(index.column(), value.toDouble());
      _parser->startUpdates();
      return true;
    case 2:
      _parser->stopUpdates();
      _parser->setReplaceRx(index.column(), value.toString());
      _parser->startUpdates();
      return true;
    case 3:
      _parser->stopUpdates();
      _parser->setReplaceAfter(index.column(), value.toString());
      _parser->startUpdates();
      return true;
    default:
      return false;
    }
  } else {
    return false;
  }
}

References TRACE.

Referenced by QGpGuiTools::ColumnTextWidget::ColumnTextWidget().

{
  TRACE;
  _parser=p;
  connect(p, SIGNAL(dataAvailable()), this, SLOT(updateData()));
}

Referenced by setData().


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