Brief description of class still missing. More...
#include <SignalGroupItem.h>
Public Member Functions | |
virtual int | columnCount (const QModelIndex &parent=QModelIndex()) const |
virtual QVariant | data (const QModelIndex &index, int role) const |
virtual bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) |
virtual Qt::ItemFlags | flags (const QModelIndex &) const |
void | getSelection (SubSignalPool &sel, const QItemSelectionModel &sm, const QModelIndex &parent=QModelIndex()) |
void | getSelection (QList< AbstractSignalGroup * > &sel, const QItemSelectionModel &sm, const QModelIndex &parent=QModelIndex()) |
virtual QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const |
QModelIndex | index (AbstractSignalGroup *g) const |
virtual QMimeData * | mimeData (const QModelIndexList &indexes) const |
virtual QStringList | mimeTypes () 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 | setDatabase (SignalDB *db) |
SignalGroupItem (QObject *parent=0) | |
virtual Qt::DropActions | supportedDropActions () const |
~SignalGroupItem () | |
Static Public Member Functions | |
static AbstractSignalGroup * | group (const QModelIndex &index) |
Protected Attributes | |
SignalDB * | _db |
Brief description of class still missing.
Full description of class still missing
GeopsyGui::SignalGroupItem::SignalGroupItem | ( | QObject * | parent = 0 | ) |
GeopsyGui::SignalGroupItem::~SignalGroupItem | ( | ) | [inline] |
Description of destructor still missing
{}
int GeopsyGui::SignalGroupItem::columnCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
QVariant GeopsyGui::SignalGroupItem::data | ( | const QModelIndex & | index, |
int | role | ||
) | const [virtual] |
References GeopsyCore::AbstractSignalGroup::comments(), GeopsyCore::SubSignalPool::count(), group(), GeopsyCore::AbstractSignalGroup::hasOwnSignal(), GeopsyCore::AbstractSignalGroup::icon(), GeopsyCore::AbstractSignalGroup::name(), GeopsyCore::AbstractSignalGroup::subPool(), QGpCoreTools::tr(), TRACE, and QGpCoreTools::XMLClass::xml_inherits().
{ TRACE; if( !index.isValid()) return QVariant(); AbstractSignalGroup * g=group(index); switch (role) { case Qt::DisplayRole: return g->name(); case Qt::ToolTipRole: { const QString& c=g->comments(); if(c.isEmpty()) { return tr("%1 signal(s)").arg(g->subPool().count()); } else { return c; } } break; case Qt::DecorationRole: { const QIcon * i=g->icon(); if(i) { return *i; } else { // These basic group classes do not provide a QIcon if(g->xml_inherits(StationGroup::xmlStationGroupTag)) { static const QIcon stationIcon(":/images/station_20x20.png"); return stationIcon; } else if(g->hasOwnSignal()){ static const QIcon signalIcon(":/images/signal_20x20.png"); return signalIcon; } else { static const QIcon folderIcon(":/images/folder_20x20.png"); return folderIcon; } } } break; default: return QVariant(); } }
bool GeopsyGui::SignalGroupItem::dropMimeData | ( | const QMimeData * | data, |
Qt::DropAction | action, | ||
int | row, | ||
int | column, | ||
const QModelIndex & | parent | ||
) | [virtual] |
References group(), QGpCoreTools::TreeContainer::rank(), GeopsyCore::AbstractSignalGroup::setParent(), QGpCoreTools::TreeContainer::setRank(), and TRACE.
{ TRACE; Q_UNUSED(column); if(action==Qt::MoveAction) { QByteArray encodedData=data->data("geopsy/x-groups"); QDataStream stream(&encodedData, QIODevice::ReadOnly); while(!stream.atEnd()) { AbstractSignalGroup * g; stream >> (quint64&)g; g->setParent(group(parent)); int r=g->rank(); if(row>-1 && r!=row) { // Occurs when moving to new parent beginMoveRows(parent, r, r, parent, row); g->setRank(row); endMoveRows(); } } } return true; }
Qt::ItemFlags GeopsyGui::SignalGroupItem::flags | ( | const QModelIndex & | index | ) | const [virtual] |
Reimplemented in MonoStation::CategoryGroupItem, and SubtractGroupItem.
References group(), GeopsyCore::AbstractSignalGroup::readOnly(), GeopsyCore::AbstractSignalGroup::readOnlyChildren(), and TRACE.
{ TRACE; if(index.isValid()) { AbstractSignalGroup * g=group(index); if(g->readOnly()) { if(g->readOnlyChildren()) { return Qt::ItemIsSelectable | Qt::ItemIsEnabled; } else { return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled; } } else { return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled; } } else { return 0; } }
void GeopsyGui::SignalGroupItem::getSelection | ( | SubSignalPool & | sel, |
const QItemSelectionModel & | sm, | ||
const QModelIndex & | parent = QModelIndex() |
||
) |
References GeopsyCore::SubSignalPool::addGroup(), group(), index(), rowCount(), and TRACE.
Referenced by GroupView::getSelection(), and getSelection().
void GeopsyGui::SignalGroupItem::getSelection | ( | QList< AbstractSignalGroup * > & | sel, |
const QItemSelectionModel & | sm, | ||
const QModelIndex & | parent = QModelIndex() |
||
) |
References getSelection(), group(), index(), rowCount(), and TRACE.
AbstractSignalGroup * GeopsyGui::SignalGroupItem::group | ( | const QModelIndex & | index | ) | [static] |
References TRACE.
Referenced by data(), dropMimeData(), SubtractGroupItem::flags(), MonoStation::CategoryGroupItem::flags(), flags(), getSelection(), MonoStation::WinResults::groupsToCategories(), index(), mimeData(), parent(), rowCount(), and setData().
{ TRACE; return static_cast<AbstractSignalGroup *>(index.internalPointer()); }
QModelIndex GeopsyGui::SignalGroupItem::index | ( | int | row, |
int | column, | ||
const QModelIndex & | parent = QModelIndex() |
||
) | const [virtual] |
References _db, group(), GeopsyCore::SignalDB::masterGroup(), and TRACE.
Referenced by getSelection(), mimeData(), and GroupProperties::setValues().
QModelIndex GeopsyGui::SignalGroupItem::index | ( | AbstractSignalGroup * | g | ) | const |
References parent(), GeopsyCore::AbstractSignalGroup::parent(), QGpCoreTools::TreeContainer::rank(), and TRACE.
{ TRACE; AbstractSignalGroup * parent=g->parent(); if(parent) { return createIndex(parent->rank(g), 0, g); } else { return createIndex(0, 0, g); } }
QMimeData * GeopsyGui::SignalGroupItem::mimeData | ( | const QModelIndexList & | indexes | ) | const [virtual] |
References group(), index(), GeopsyCore::AbstractSignalGroup::readOnly(), and TRACE.
{ TRACE; QMimeData *mimeData=new QMimeData(); QByteArray encodedData; QDataStream stream(&encodedData, QIODevice::WriteOnly); foreach(QModelIndex index, indexes) { if (index.isValid()) { AbstractSignalGroup * g=group(index); if(!g->readOnly()) { stream << (quint64)g; } } } mimeData->setData("geopsy/x-groups", encodedData); return mimeData; }
QStringList GeopsyGui::SignalGroupItem::mimeTypes | ( | ) | const [virtual] |
QModelIndex GeopsyGui::SignalGroupItem::parent | ( | const QModelIndex & | index | ) | const [virtual] |
References group(), GeopsyCore::AbstractSignalGroup::parent(), QGpCoreTools::TreeContainer::rank(), and TRACE.
Referenced by index().
{ TRACE; if(!index.isValid()) return QModelIndex(); AbstractSignalGroup * g=group(index); AbstractSignalGroup * parent=g->parent(); if(parent) { AbstractSignalGroup * grandParent=parent->parent(); if(grandParent) { return createIndex(grandParent->rank(parent), 0, parent); } else { return createIndex(0, 0, parent); } } else { return QModelIndex(); } }
int GeopsyGui::SignalGroupItem::rowCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
References QGpCoreTools::TreeContainer::childrenCount(), group(), and TRACE.
Referenced by getSelection().
{ TRACE; if(!parent.isValid()) { return 1; } else { return group(parent)->childrenCount(); } }
bool GeopsyGui::SignalGroupItem::setData | ( | const QModelIndex & | index, |
const QVariant & | value, | ||
int | role = Qt::EditRole |
||
) | [virtual] |
void GeopsyGui::SignalGroupItem::setDatabase | ( | SignalDB * | db | ) |
References _db, GeopsyCore::SignalDB::masterGroup(), and TRACE.
Referenced by GroupProperties::GroupProperties(), MonoStation::WinResults::groupsToCategories(), GroupView::GroupView(), and SubtractSignals::setSubPool().
{ TRACE; if(_db!=db) { _db=db; MasterSignalGroup * m=_db->masterGroup(); connect(m, SIGNAL(destroyed()), this, SLOT(databaseDestroyed())); connect(m, SIGNAL(dataChanged(AbstractSignalGroup*)), this, SLOT(dataChanged(AbstractSignalGroup*))); connect(m, SIGNAL(parentAboutToBeChanged(AbstractSignalGroup*,AbstractSignalGroup*)), this, SLOT(parentAboutToBeChanged(AbstractSignalGroup*,AbstractSignalGroup*))); connect(m, SIGNAL(parentChanged(AbstractSignalGroup*,AbstractSignalGroup*)), this, SLOT(parentChanged(AbstractSignalGroup*,AbstractSignalGroup*))); } reset(); }
Qt::DropActions GeopsyGui::SignalGroupItem::supportedDropActions | ( | ) | const [virtual] |
SignalDB* GeopsyGui::SignalGroupItem::_db [protected] |
Referenced by index(), setDatabase(), and SignalGroupItem().