LibreCAD
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
layermodel.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QAbstractTableModel>
4 #include <QIcon>
5 
6 #include <cad/meta/layer.h>
7 
11 class LayerModel : public QAbstractTableModel {
12  Q_OBJECT
13 
14  public:
15  enum columns {
20  };
21 
26  LayerModel(QObject* parent = 0);
27 
32  void setLayers(std::vector<lc::Layer_CSPtr> layers);
33 
39  lc::Layer_CSPtr layerAt(int row);
40 
46  unsigned int indexOf(lc::Layer_CSPtr layer);
47 
52  int rowCount(const QModelIndex& parent = QModelIndex()) const;
53  int columnCount(const QModelIndex& parent = QModelIndex()) const;
54  QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
55  Qt::ItemFlags flags(const QModelIndex &index) const;
56  bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
57 
58  signals:
62  void nameChanged(lc::Layer_CSPtr& layer, const std::string& name);
63 
64  private:
65  std::vector<lc::Layer_CSPtr> _layers;
66 
67  QIcon _editIcon;
68  QIcon _lockedIcon;
70 };
lc::Layer_CSPtr layerAt(int row)
Get layer at specific row.
Definition: layermodel.cpp:71
QIcon _editIcon
Definition: layermodel.h:67
Qt::ItemFlags flags(const QModelIndex &index) const
Definition: layermodel.cpp:53
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.
Definition: layermodel.cpp:3
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: layermodel.cpp:27
unsigned int indexOf(lc::Layer_CSPtr layer)
Give the index of the given layer.
Definition: layermodel.cpp:80
QIcon _lockedIcon
Definition: layermodel.h:68
std::vector< lc::Layer_CSPtr > _layers
Definition: layermodel.h:65
Model to display a list of layers in a QTableView.
Definition: layermodel.h:11
int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: layermodel.cpp:23
QIcon _unlockedIcon
Definition: layermodel.h:69
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Definition: layermodel.cpp:62
void setLayers(std::vector< lc::Layer_CSPtr > layers)
Update the list of layers.
Definition: layermodel.cpp:11
int rowCount(const QModelIndex &parent=QModelIndex()) const
Get number of layers.
Definition: layermodel.cpp:19