4 QAbstractTableModel(parent) {
28 if (!index.isValid()) {
32 auto layer =
_layers.at(index.row());
34 if(role == Qt::DisplayRole && index.column() ==
NAME) {
35 return layer->name().c_str();
37 else if(role == Qt::DecorationRole) {
38 switch (index.column()) {
43 if (layer->isFrozen()) {
54 if(index.column() ==
NAME) {
55 return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled;
58 return Qt::ItemIsEnabled;
63 if(!index.isValid()) {
75 catch(std::out_of_range& e) {
81 for(
unsigned int i = 0; i <
_layers.size(); i++) {
lc::Layer_CSPtr layerAt(int row)
Get layer at specific row.
Qt::ItemFlags flags(const QModelIndex &index) const
void nameChanged(lc::Layer_CSPtr &layer, const std::string &name)
Signal when layer name was changed by double clicking.
LayerModel(QObject *parent=0)
Create widget.
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
unsigned int indexOf(lc::Layer_CSPtr layer)
Give the index of the given layer.
std::vector< lc::Layer_CSPtr > _layers
int columnCount(const QModelIndex &parent=QModelIndex()) const
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
void setLayers(std::vector< lc::Layer_CSPtr > layers)
Update the list of layers.
int rowCount(const QModelIndex &parent=QModelIndex()) const
Get number of layers.