Brief description of class still missing. More...
#include <SourceItemModel.h>
Public Member Functions | |
void | addSource () |
virtual int | columnCount (const QModelIndex &parent=QModelIndex()) const |
virtual QVariant | data (const QModelIndex &index, int role) const |
virtual Qt::ItemFlags | flags (const QModelIndex &) const |
virtual QVariant | headerData (int section, Qt::Orientation orientation, int role) const |
void | removeSource (int index) |
virtual int | rowCount (const QModelIndex &parent=QModelIndex()) const |
virtual bool | setData (const QModelIndex &index, const QVariant &value, int role) |
void | setSourceType (SourceParameters::Type t) |
SourceItemModel (QList< SourceParameters > *sources, QObject *parent=0) | |
~SourceItemModel () |
Brief description of class still missing.
Full description of class still missing
SourceItemModel::SourceItemModel | ( | QList< SourceParameters > * | sources, |
QObject * | parent = 0 |
||
) |
Description of constructor still missing
References SourceParameters::PlaneWaves, and TRACE.
: QAbstractTableModel(parent) { TRACE; _sources=sources; _sourceType=SourceParameters::PlaneWaves; }
void SourceItemModel::addSource | ( | ) |
References SourceParameters::setName(), QGpCoreTools::tr(), and TRACE.
{ TRACE; beginInsertRows(QModelIndex(), _sources->count(), _sources->count()); if(_sources->isEmpty()) { SourceParameters s; s.setName(tr("source_%1").arg(_sources->count()+1)); _sources->append(s); } else { _sources->append(_sources->last()); _sources->last().setName(tr("source_%1").arg(_sources->count())); } endInsertRows(); }
int SourceItemModel::columnCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
References SourceParameters::CircularWaves, SourceParameters::PlaneWaves, and TRACE.
{ TRACE; switch(_sourceType) { case SourceParameters::PlaneWaves: break; case SourceParameters::CircularWaves: return 9; } return 6; }
QVariant SourceItemModel::data | ( | const QModelIndex & | index, |
int | role | ||
) | const [virtual] |
References SourceParameters::amplitude(), SourceParameters::azimuth(), SourceParameters::CircularWaves, SourceParameters::color(), SourceParameters::distance(), SourceParameters::name(), SourceParameters::phase(), SourceParameters::PlaneWaves, SourceParameters::sourcePoint(), TRACE, SourceParameters::velocity(), QGpCoreTools::Point2D::x(), and QGpCoreTools::Point2D::y().
{ TRACE; if(!index.isValid()) return QVariant(); const SourceParameters& p=_sources->at(index.row()); switch (role) { case Qt::DisplayRole: switch(_sourceType) { case SourceParameters::PlaneWaves: switch(index.column()) { case 0: return p.name(); case 1: return p.azimuth(); case 2: return p.amplitude(); case 3: return p.phase(); case 4: return p.velocity(); case 5: return p.color(); default: return QVariant(); } case SourceParameters::CircularWaves: switch(index.column()) { case 0: return p.name(); case 1: return p.azimuth(); case 2: return p.distance(); case 3: return p.sourcePoint().x(); case 4: return p.sourcePoint().y(); case 5: return p.amplitude(); case 6: return p.phase(); case 7: return p.velocity(); case 8: return p.color(); default: return QVariant(); } } default: return QVariant(); } }
Qt::ItemFlags SourceItemModel::flags | ( | const QModelIndex & | index | ) | const [virtual] |
{ if(index.column()==colorColumn()) { return Qt::ItemIsSelectable | Qt::ItemIsEnabled; } else { return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled; } }
QVariant SourceItemModel::headerData | ( | int | section, |
Qt::Orientation | orientation, | ||
int | role | ||
) | const [virtual] |
References SourceParameters::CircularWaves, SourceParameters::PlaneWaves, QGpCoreTools::tr(), and TRACE.
{ TRACE; if(role!=Qt::DisplayRole) return QVariant(); if(orientation==Qt::Horizontal) { switch(_sourceType) { case SourceParameters::PlaneWaves: switch (section) { case 0: return tr("Name"); case 1: return tr("Azimuth"); case 2: return tr("Amplitude"); case 3: return tr("Phase"); case 4: return tr("Velocity"); case 5: return tr("Color"); default: break; } break; case SourceParameters::CircularWaves: switch (section) { case 0: return tr("Name"); case 1: return tr("Azimuth"); case 2: return tr("Distance"); case 3: return tr("X"); case 4: return tr("Y"); case 5: return tr("Amplitude"); case 6: return tr("Phase"); case 7: return tr("Velocity"); case 8: return tr("Color"); default: break; } break; } } else { return section+1; } return QVariant(); }
void SourceItemModel::removeSource | ( | int | index | ) |
int SourceItemModel::rowCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
bool SourceItemModel::setData | ( | const QModelIndex & | index, |
const QVariant & | value, | ||
int | role | ||
) | [virtual] |
References SourceParameters::CircularWaves, SourceParameters::PlaneWaves, SourceParameters::setAmplitude(), SourceParameters::setAzimuth(), SourceParameters::setColor(), SourceParameters::setDistance(), SourceParameters::setName(), SourceParameters::setPhase(), SourceParameters::setSourceX(), SourceParameters::setSourceY(), SourceParameters::setVelocity(), and TRACE.
{ TRACE; SourceParameters& p=(*_sources)[index.row()]; switch(role) { case Qt::EditRole: switch(_sourceType) { case SourceParameters::PlaneWaves: switch(index.column()) { case 0: p.setName(value.toString()); break; case 1: p.setAzimuth(value.toDouble()); break; case 2: p.setAmplitude(value.toDouble()); break; case 3: p.setPhase(value.toDouble()); break; case 4: p.setVelocity(value.toDouble()); break; case 5: p.setColor(value.value<QColor>()); break; default: break; } emit dataChanged(index, index); break; case SourceParameters::CircularWaves: switch(index.column()) { case 0: p.setName(value.toString()); break; case 1: p.setAzimuth(value.toDouble()); break; case 2: p.setDistance(value.toDouble()); break; case 3: p.setSourceX(value.toDouble()); break; case 4: p.setSourceY(value.toDouble()); break; case 5: p.setAmplitude(value.toDouble()); break; case 6: p.setPhase(value.toDouble()); break; case 7: p.setVelocity(value.toDouble()); break; case 8: p.setColor(value.value<QColor>()); break; default: break; } emit dataChanged(createIndex(index.row(), 0), createIndex(index.row(), 9)); break; } return true; default: return false; } }