2 #include <QtWidgets/QMessageBox>
17 ui->layerList->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
18 ui->layerList->horizontalHeader()->setSectionResizeMode(
LayerModel::NAME, QHeaderView::Stretch);
21 connect(
ui->layerList->selectionModel(), SIGNAL(selectionChanged(
const QItemSelection &,
const QItemSelection &)),
39 if(mdiChild !=
nullptr) {
40 auto document = mdiChild->
document();
61 QModelIndexList selection =
ui->layerList->selectionModel()->selectedRows();
67 if(!index.isValid() ||
_mdiChild ==
nullptr) {
73 auto locked = layer->isFrozen();
75 switch (index.column()) {
88 auto newLayer = std::make_shared<const lc::Layer>(
105 auto newLayer = std::make_shared<const lc::Layer>(
109 layer->linePattern(),
118 auto operation = std::make_shared<lc::operation::AddLayer>(
_mdiChild->
document(), layer);
119 operation->execute();
126 auto operation = std::make_shared<lc::operation::RemoveLayer>(
_mdiChild->
document(), layer);
127 operation->execute();
129 catch(
const char* message) {
130 QMessageBox::critical(
nullptr,
"Error", message);
137 auto operation = std::make_shared<lc::operation::ReplaceLayer>(
_mdiChild->
document(), oldLayer, newLayer);
138 operation->execute();
143 std::vector<lc::Layer_CSPtr> layersVector;
148 for (
auto layer : layersMap) {
149 layersVector.insert(layersVector.begin(), layer.second);
186 if(selected.isEmpty()) {
lc::Layer_CSPtr layerAt(int row)
Get layer at specific row.
void setActiveLayer(const lc::Layer_CSPtr &activeLayer)
void editLayer(lc::Layer_CSPtr oldLayer, lc::Layer_CSPtr newLayer)
void on_layerList_clicked(const QModelIndex &index)
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
void createLayer(lc::Layer_CSPtr layer)
void nameChanged(lc::Layer_CSPtr &layer, const std::string &name)
Signal when layer name was changed by double clicking.
void on_addLayerEvent(const lc::AddLayerEvent &)
unsigned int indexOf(lc::Layer_CSPtr layer)
Give the index of the given layer.
Layers(CadMdiChild *mdiChild=nullptr, QWidget *parent=0)
Create widget.
void changeLayerName(lc::Layer_CSPtr &layer, const std::string &name)
void replaceLayer(lc::Layer_CSPtr oldLayer, lc::Layer_CSPtr newLayer)
void on_replaceLayerEvent(const lc::ReplaceLayerEvent &)
Model to display a list of layers in a QTableView.
void on_deleteButton_clicked()
Widget which shows a list of layers.
void setMdiChild(CadMdiChild *mdiChild=nullptr)
Set new document.
void deleteLayer(lc::Layer_CSPtr layer)
void on_removeLayerEvent(const lc::RemoveLayerEvent &)
std::shared_ptr< lc::Document > document() const
void layerChanged(lc::Layer_CSPtr layer)
Create a dialog with all required fields to create a new layer.
void newLayer(lc::Layer_CSPtr)
void on_newButton_clicked()
void setLayers(std::vector< lc::Layer_CSPtr > layers)
Update the list of layers.
lc::Layer_CSPtr activeLayer() const
Get the selected layer.