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