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().