LibreCAD
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
layers.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cad/document/document.h>
4 
5 #include <QDockWidget>
6 #include <QVBoxLayout>
7 #include <QMdiArea>
8 #include <QTableView>
9 #include <QMdiSubWindow>
10 
11 #include "dialogs/addlayerdialog.h"
12 #include "layermodel.h"
13 #include <cad/operations/layerops.h>
14 
15 namespace Ui {
16  class Layers;
17 }
18 
22 class Layers : public QDockWidget {
23  Q_OBJECT
24 
25  public:
29  Layers(CadMdiChild* mdiChild = nullptr, QWidget* parent = 0);
30  ~Layers();
31 
37  void setMdiChild(CadMdiChild* mdiChild = nullptr);
38 
39  signals:
40  void layerChanged(lc::Layer_CSPtr layer);
41 
42  private slots:
43  void onSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
44  void on_newButton_clicked();
46  void on_layerList_clicked(const QModelIndex& index);
47 
48  void changeLayerName(lc::Layer_CSPtr& layer, const std::string& name);
49 
50  protected:
51  Ui::Layers* ui;
53 
54  void createLayer(lc::Layer_CSPtr layer);
55  void deleteLayer(lc::Layer_CSPtr layer);
56  void replaceLayer(lc::Layer_CSPtr oldLayer, lc::Layer_CSPtr newLayer);
57 
58  private:
60 
61  void updateLayerList();
62 
63  void on_addLayerEvent(const lc::AddLayerEvent&);
64  void on_removeLayerEvent(const lc::RemoveLayerEvent&);
65  void on_replaceLayerEvent(const lc::ReplaceLayerEvent&);
66 };
CadMdiChild * _mdiChild
Definition: layers.h:59
void on_layerList_clicked(const QModelIndex &index)
Definition: layers.cpp:66
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition: layers.cpp:185
void createLayer(lc::Layer_CSPtr layer)
Definition: layers.cpp:116
void on_addLayerEvent(const lc::AddLayerEvent &)
Definition: layers.cpp:163
void updateLayerList()
Definition: layers.cpp:142
Layers(CadMdiChild *mdiChild=nullptr, QWidget *parent=0)
Create widget.
Definition: layers.cpp:6
void changeLayerName(lc::Layer_CSPtr &layer, const std::string &name)
Definition: layers.cpp:100
void replaceLayer(lc::Layer_CSPtr oldLayer, lc::Layer_CSPtr newLayer)
Definition: layers.cpp:135
void on_replaceLayerEvent(const lc::ReplaceLayerEvent &)
Definition: layers.cpp:177
~Layers()
Definition: layers.cpp:25
Model to display a list of layers in a QTableView.
Definition: layermodel.h:11
void on_deleteButton_clicked()
Definition: layers.cpp:60
Widget which shows a list of layers.
Definition: layers.h:22
void setMdiChild(CadMdiChild *mdiChild=nullptr)
Set new document.
Definition: layers.cpp:29
void deleteLayer(lc::Layer_CSPtr layer)
Definition: layers.cpp:123
void on_removeLayerEvent(const lc::RemoveLayerEvent &)
Definition: layers.cpp:169
void layerChanged(lc::Layer_CSPtr layer)
LayerModel * model
Definition: layers.h:52
Ui::Layers * ui
Definition: layers.h:51
void on_newButton_clicked()
Definition: layers.cpp:49