]> Shamusworld >> Repos - architektonas/blob - src/forms/layerdialog.cpp
798791021e4978327ac52618549673a7120ea7df
[architektonas] / src / forms / layerdialog.cpp
1 // layerdialog.cpp
2 //
3 // Originally part of QCad Community Edition by Andrew Mustun
4 // Extensively rewritten and refactored by James L. Hammons
5 // (C) 2010 Underground Software
6 //
7 // JLH = James L. Hammons <jlhamm@acm.org>
8 //
9 // Who  When        What
10 // ---  ----------  -----------------------------------------------------------
11 // JLH  05/10/2010  Created this file. :-)
12 //
13
14 #include "layerdialog.h"
15
16 #include "rs_layer.h"
17 #include "rs_layerlist.h"
18
19 LayerDialog::LayerDialog(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
20         QDialog(parent, flags), layer(NULL), layerList(NULL), layerName(""), editLayer(false)
21 {
22         ui.setupUi(this);
23 }
24
25 LayerDialog::~LayerDialog()
26 {
27 }
28
29 void LayerDialog::setLayer(RS_Layer * l)
30 {
31         layer = l;
32         layerName = layer->getName();
33         ui.leName->setText(layerName);
34         ui.wPen->setPen(layer->getPen(), false, false, tr("Default Pen"));
35
36         if (layer->getName() == "0")
37                 ui.leName->setEnabled(false);
38 }
39
40 void LayerDialog::setLayerList(RS_LayerList * ll)
41 {
42         layerList = ll;
43 }
44
45 void LayerDialog::setEditLayer(bool el)
46 {
47         editLayer = el;
48 }
49
50 void LayerDialog::updateLayer()
51 {
52         layer->setName(ui.leName->text());
53         layer->setPen(ui.wPen->getPen());
54 #if 0
55 //OK, the problem is the color widget is misreporting the color that's been set.
56 RS_Color c = ui.wPen->getPen().getColor();
57 printf("LayerDialog::updateLayer() -> selected pen is %u, %u, %u\n", c.red(), c.green(), c.blue());
58 std::cout << ui.wPen->getPen();
59 RS_Pen p = layer->getPen();
60 c = p.getColor();
61 printf("LayerDialog::updateLayer() -> selected pen is %u, %u, %u\n", c.red(), c.green(), c.blue());
62 std::cout << ui.wPen->getPen();
63 #endif
64 }
65
66 void LayerDialog::validate()
67 {
68         if (layerList != NULL && (editLayer == FALSE || layerName != ui.leName->text()))
69         {
70                 RS_Layer * l = layerList->find(ui.leName->text().toLatin1());
71
72                 if (l != NULL)
73                 {
74                         QMessageBox::information(parentWidget(), QMessageBox::tr("Layer Properties"),
75                                  QMessageBox::tr("Layer with a name \"%1\" already exists. Please specify "
76                                 "a different name.").arg(ui.leName->text()), QMessageBox::Ok);
77                         ui.leName->setFocus();
78                         ui.leName->selectAll();
79                 }
80                 else
81                         accept();
82         }
83         else
84                 accept();
85 }