#include <SignalTableItem.h>
Public Slots | |
void | subPoolChanged () |
Signals | |
void | dataChanged (Signal *sig) |
Public Member Functions | |
virtual int | columnCount (const QModelIndex &parent=QModelIndex()) const |
virtual QVariant | data (const QModelIndex &index, int role) const |
MetaDataFieldList & | dataFields () |
const MetaDataIndex & | dataIndex (int column) const |
virtual Qt::ItemFlags | flags (const QModelIndex &) const |
virtual QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const |
virtual QModelIndex | index (int, 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) |
SignalTableItem (const SubSignalPool *subPool, QObject *parent=0) | |
const SubSignalPool * | subPool () const |
~SignalTableItem () |
SignalTableItem::SignalTableItem | ( | const SubSignalPool * | subPool, |
QObject * | parent = 0 |
||
) |
References GeopsyCore::geopsyCore, GeopsyCore::GeopsyCoreEngine::preferences(), subPool(), GeopsyCore::GeopsyPreferences::tableFields(), and TRACE.
: QAbstractItemModel(parent) { TRACE; _subPool=subPool; _dataFields=geopsyCore->preferences()->tableFields(); }
int SignalTableItem::columnCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
References GeopsyCore::MetaDataFieldList::count(), and TRACE.
Referenced by SignalTableView::refresh().
QVariant SignalTableItem::data | ( | const QModelIndex & | index, |
int | role | ||
) | const [virtual] |
References GeopsyCore::MetaDataFieldList::at(), GeopsyCore::SubSignalPool::at(), GeopsyCore::Signal::comments(), GeopsyCore::Signal::header(), GeopsyCore::MetaDataIndex::id(), and TRACE.
{ TRACE; if( !index.isValid()) return QVariant(); Signal * sig=_subPool->at(index.row()); switch (role) { case Qt::DisplayRole: { const MetaDataField& field=_dataFields.at(index.column()); switch (field.id()) { case MetaDataFactory::T0: case MetaDataFactory::EndTime: case MetaDataFactory::Duration: return Number::secondsToTime(sig->header(field).toDouble()); default: return sig->header(field); } } case Qt::ToolTipRole: { QString cmt=sig->comments(); if(cmt.isEmpty()) { return QVariant(); } else { return cmt; } } break; default: return QVariant(); } }
void SignalTableItem::dataChanged | ( | Signal * | sig | ) | [signal] |
Referenced by setData().
MetaDataFieldList& SignalTableItem::dataFields | ( | ) | [inline] |
Referenced by SignalTableView::dataFields().
{return _dataFields;}
const MetaDataIndex& SignalTableItem::dataIndex | ( | int | column | ) | const [inline] |
References GeopsyCore::MetaDataFieldList::at().
Referenced by SignalTableDelegate::createEditor(), SignalTableDelegate::setEditorData(), and SignalTableDelegate::setModelData().
{return _dataFields.at(column);}
virtual Qt::ItemFlags SignalTableItem::flags | ( | const QModelIndex & | ) | const [inline, virtual] |
{return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled;}
QVariant SignalTableItem::headerData | ( | int | section, |
Qt::Orientation | orientation, | ||
int | role = Qt::DisplayRole |
||
) | const [virtual] |
QModelIndex SignalTableItem::index | ( | int | row, |
int | column, | ||
const QModelIndex & | parent = QModelIndex() |
||
) | const [virtual] |
References GeopsyCore::MetaDataFieldList::count(), GeopsyCore::SubSignalPool::count(), and TRACE.
Referenced by SignalTableView::refresh().
QModelIndex SignalTableItem::parent | ( | const QModelIndex & | index | ) | const [virtual] |
int SignalTableItem::rowCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
References GeopsyCore::SubSignalPool::count(), and TRACE.
bool SignalTableItem::setData | ( | const QModelIndex & | index, |
const QVariant & | value, | ||
int | role = Qt::EditRole |
||
) | [virtual] |
References GeopsyCore::MetaDataFieldList::at(), GeopsyCore::SubSignalPool::at(), GeopsyCore::MetaDataFieldList::count(), GeopsyCore::SubSignalPool::count(), dataChanged(), GeopsyCore::geopsyCore, GeopsyCore::Signal::header(), GeopsyCore::MetaDataIndex::id(), GeopsyCore::Signal::setHeader(), GeopsyCore::Signal::setHeaderModified(), GeopsyCore::GeopsyCoreEngine::showMessage(), QGpCoreTools::tr(), and TRACE.
{ TRACE; if( !index.isValid() || index.row() >= _subPool->count() || index.column() >=_dataFields.count()) return false; Signal * sig=_subPool->at(index.row()); switch (role) { case Qt::EditRole: { const MetaDataField& field=_dataFields.at(index.column()); QVariant originalContent=sig->header(field); QVariant filteredValue; switch (field.id()) { case MetaDataFactory::T0: filteredValue=Number::timeToSeconds(value.toString()); break; default: filteredValue=value; break; } if(filteredValue!=originalContent) { if(sig->setHeader(field, filteredValue) ) { sig->setHeaderModified(true); emit dataChanged(sig); } else { geopsyCore->showMessage(tr( "Modifying headers of signals: %1 is a read only field.") .arg(MetaDataFactory::instance()->name(field))); } } } default: return false; } }
const SubSignalPool* SignalTableItem::subPool | ( | ) | const [inline] |
Referenced by SignalTableView::getSelection(), SignalTableView::refresh(), and SignalTableItem().
{return _subPool;}
void SignalTableItem::subPoolChanged | ( | ) | [slot] |