#include <GraphContentLayerProperties.h>
Public Member Functions | |
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=Qt::DisplayRole) const |
virtual QModelIndex | index (int, int column, const QModelIndex &parent=QModelIndex()) const |
LayerPropertiesItem (QObject *parent=0) | |
void | moveLayersDown (QModelIndexList l) |
void | moveLayersUp (QModelIndexList l) |
virtual QModelIndex | parent (const QModelIndex &) const |
int | removeLayers (QModelIndexList l) |
virtual int | rowCount (const QModelIndex &parent=QModelIndex()) const |
void | selectAllLayers (bool s) |
void | selectLayers (QModelIndexList l) |
virtual bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) |
void | setGraph (GraphContent *g) |
SciFigs::LayerPropertiesItem::LayerPropertiesItem | ( | QObject * | parent = 0 | ) | [inline] |
: QAbstractItemModel(parent) {_graph=0;}
int SciFigs::LayerPropertiesItem::columnCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
QVariant SciFigs::LayerPropertiesItem::data | ( | const QModelIndex & | index, |
int | role | ||
) | const [virtual] |
References SciFigs::GraphContent::layerCount(), SciFigs::GraphContentLayer::objectName, SciFigs::GraphContentLayer::opacity, TRACE, and SciFigs::GraphContentLayer::xml_tagName().
{ TRACE; if( !index.isValid() || index.row() >= _graph->layerCount() || index.column() >=3) return QVariant(); const GraphContentLayer * layer=_graph->layer(_graph->layerCount()-index.row()-1); switch (role) { case Qt::DisplayRole: switch(index.column()) { case 0: return layer->xml_tagName(); case 1: return layer->objectName(); default: return layer->opacity(); } default: return QVariant(); } }
Qt::ItemFlags SciFigs::LayerPropertiesItem::flags | ( | const QModelIndex & | index | ) | const [virtual] |
QVariant SciFigs::LayerPropertiesItem::headerData | ( | int | section, |
Qt::Orientation | orientation, | ||
int | role = Qt::DisplayRole |
||
) | const [virtual] |
References SciFigs::GraphContent::layerCount(), QGpCoreTools::tr(), and TRACE.
{ TRACE; if(role!=Qt::DisplayRole) return QVariant(); if(orientation==Qt::Horizontal) { switch(section) { case 0: return tr("Type"); case 1: return tr("Name"); default: return tr("Opacity"); } } else { return _graph->layerCount() - section; } }
QModelIndex SciFigs::LayerPropertiesItem::index | ( | int | row, |
int | column, | ||
const QModelIndex & | parent = QModelIndex() |
||
) | const [virtual] |
References TRACE.
Referenced by moveLayersDown(), moveLayersUp(), removeLayers(), and selectLayers().
{ TRACE; return createIndex(row, column); }
void SciFigs::LayerPropertiesItem::moveLayersDown | ( | QModelIndexList | l | ) |
References index(), SciFigs::GraphContent::layerCount(), SciFigs::GraphContent::moveLayerDown(), and TRACE.
{ TRACE; QList<int> indexList; QModelIndex index; foreach(index, l) indexList << _graph->layerCount()-index.row()-1; qSort(indexList); if(indexList.first()==0) { return; // Selected layers are already on bottom } int n=indexList.count(); QList<GraphContentLayer *> layers; for(int i=0;i<n;i++) { layers << _graph->layer(indexList.at(i)); } for(int i=0;i<n;i++) { _graph->moveLayerDown(layers.at(i)); } reset(); }
void SciFigs::LayerPropertiesItem::moveLayersUp | ( | QModelIndexList | l | ) |
References index(), SciFigs::GraphContent::layerCount(), SciFigs::GraphContent::moveLayerUp(), and TRACE.
{ TRACE; QList<int> indexList; QModelIndex index; foreach(index, l) indexList << _graph->layerCount()-index.row()-1; qSort(indexList); if(indexList.last()==_graph->layerCount()-1) { return; // Selected layers are already on top } int n=indexList.count(); QList<GraphContentLayer *> layers; for(int i=n-1;i>=0;i--) { layers << _graph->layer(indexList.at(i)); } for(int i=0;i<n;i++) { _graph->moveLayerUp(layers.at(i)); } reset(); }
virtual QModelIndex SciFigs::LayerPropertiesItem::parent | ( | const QModelIndex & | ) | const [inline, virtual] |
{return QModelIndex();}
int SciFigs::LayerPropertiesItem::removeLayers | ( | QModelIndexList | l | ) |
References index(), SciFigs::GraphContentLayer::isRemovable(), SciFigs::GraphContent::layerCount(), SciFigs::GraphContent::removeLayer(), and TRACE.
{ TRACE; int nRemoved=0; QList<GraphContentLayer *> layers; // First convert index list to layer pointers QModelIndex index; foreach(index, l) { GraphContentLayer * layer=_graph->layer(_graph->layerCount()-index.row()-1); if(layer->isRemovable()) { layers.append(layer); nRemoved++; } } int n=layers.count(); for(int i=0;i<n;i++) { const QModelIndex& index=l.at(i); beginRemoveRows(index.parent(), index.row(), index.row()); _graph->removeLayer(layers.at(i)); endRemoveRows(); } return nRemoved; }
int SciFigs::LayerPropertiesItem::rowCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const [virtual] |
References SciFigs::GraphContent::layerCount(), and TRACE.
{ TRACE; if( !parent.isValid() && _graph) return _graph->layerCount(); return 0; }
void SciFigs::LayerPropertiesItem::selectAllLayers | ( | bool | s | ) |
References SciFigs::GraphContent::layerCount(), SciFigs::GraphContentLayer::setSelected(), and TRACE.
{ TRACE; for(int i=_graph->layerCount()-1;i>=0;i--) { _graph->layer(i)->setSelected(s); } }
void SciFigs::LayerPropertiesItem::selectLayers | ( | QModelIndexList | l | ) |
References index(), SciFigs::GraphContent::layerCount(), and TRACE.
{ TRACE; QModelIndex index; foreach(index, l) _graph->layer(_graph->layerCount()-index.row()-1)->setSelected(true); }
bool SciFigs::LayerPropertiesItem::setData | ( | const QModelIndex & | index, |
const QVariant & | value, | ||
int | role = Qt::EditRole |
||
) | [virtual] |
References SciFigs::GraphContentLayer::deepUpdate(), SciFigs::GraphContent::layerCount(), SciFigs::GraphContentLayer::setOpacity(), and TRACE.
{ TRACE; if( !index.isValid() || index.row() >= _graph->layerCount() || index.column() >=3) return false; GraphContentLayer * layer=_graph->layer(_graph->layerCount()-index.row()-1); switch (role) { case Qt::EditRole: switch(index.column()) { case 1: layer->setObjectName(value.toString()); return true; case 2: layer->setOpacity(value.toDouble()); layer->deepUpdate(); return true; default: return false; } default: return false; } }
void SciFigs::LayerPropertiesItem::setGraph | ( | GraphContent * | g | ) |