#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] |