1 // roomwidget.cpp: room tweaking widget
3 // Part of the GUEmap Project
4 // (C) 2019 Underground Software
5 // See the README and GPLv2 files for licensing and warranty information
8 #include "roomwidget.h"
9 //#include "mathconstants.h"
14 RoomWidget::RoomWidget(void): QWidget()
18 QListWidget * qlw = new QListWidget;
19 QListWidgetItem * qli1 = new QListWidgetItem(qlw);
20 QListWidgetItem * qli2 = new QListWidgetItem(qlw);
21 QListWidgetItem * qli3 = new QListWidgetItem(qlw);
22 QListWidgetItem * qli4 = new QListWidgetItem(qlw);
23 QListWidgetItem * qli5 = new QListWidgetItem(qlw);
28 QPushButton * pb1 = new QPushButton("+");
29 QPushButton * pb2 = new QPushButton("-");
30 QPushButton * pb3 = new QPushButton("Edit");
31 QPushButton * pb4 = new QPushButton("Import");
33 QToolButton * pb1 = new QToolButton;
34 QToolButton * pb2 = new QToolButton;
35 QToolButton * pb3 = new QToolButton;
36 QToolButton * pb4 = new QToolButton;
38 pb1->setIcon(QIcon(":/res/layer-add.png"));
39 pb2->setIcon(QIcon(":/res/layer-delete.png"));
40 pb3->setIcon(QIcon(":/res/layer-edit.png"));
41 pb4->setIcon(QIcon(":/res/block-import.png"));
43 pb1->setToolTip(tr("Add block"));
44 pb2->setToolTip(tr("Remove block"));
45 pb3->setToolTip(tr("Edit block"));
46 pb4->setToolTip(tr("Import block"));
49 QHBoxLayout * hbox1 = new QHBoxLayout;
50 hbox1->addWidget(pb1);
51 hbox1->addWidget(pb2);
52 hbox1->addWidget(pb3);
53 hbox1->addWidget(pb4);
56 QVBoxLayout * mainLayout = new QVBoxLayout;
57 mainLayout->addWidget(label);
58 mainLayout->addStretch();
59 mainLayout->addLayout(hbox1);
61 setLayout(mainLayout);
63 QFormLayout * fl = new QFormLayout;
65 fl->addRow("&Name:", &name);
66 fl->addRow("&Comment:", &comment);
67 fl->addRow("&Border:", &border);
69 // buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
71 // connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
72 // connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
74 QVBoxLayout * mainLayout = new QVBoxLayout;
75 mainLayout->addLayout(fl);
76 // mainLayout->addWidget(buttonBox);
77 setLayout(mainLayout);
79 setWindowTitle(tr("Room Settings"));
83 RoomWidget::~RoomWidget()
88 void RoomWidget::ShowInfo(MapDoc * doc, int roomNo)
90 MapRoom & rm = doc->room[roomNo];
92 name.setText(rm.name.c_str());
94 comment.insertPlainText(rm.note.c_str());
95 border.setChecked(bool((rm.flags & rfBorder) != 0));
99 void RoomWidget::ShowInfo(Object * obj)
101 const char objName[OTCount][16] = {
102 "None", "Line", "Circle", "Ellipse", "Arc", "Polygon", "Dimension", "Spline", "Text", "Container"
104 const char dimName[DTCount][32] = {
105 "Linear", "Vertical", "Horizontal", "Radial", "Diametric",
106 "Circumferential", "Angular", "Leader"
113 QString s = QString("<b>%1</b><br><br>").arg(QString(objName[obj->type]));
119 Vector line(obj->p[0], obj->p[1]);
120 s += QString("<%1, %2> to <%3, %4><br>Length: %5<br>Angle: %6°<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->p[1].x).arg(obj->p[1].y).arg(line.Magnitude()).arg(line.Angle() * RADIANS_TO_DEGREES);
125 s += QString("Center: <%1, %2><br>Radius: %3<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->radius[0]);
132 s += QString("Center: <%1, %2><br>Radius: %3<br>Start: %4°<br>Span: %5°<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->radius[0]).arg(obj->angle[0] * RADIANS_TO_DEGREES).arg(obj->angle[1] * RADIANS_TO_DEGREES);
140 Dimension * d = (Dimension *)obj;
141 s += QString("Type: %1<br>").arg(dimName[d->subtype]);
150 Text * t = (Text *)obj;
151 s += QString("<%1, %2><br>Width/Height: %3/%4<br>Angle: %5°<br>").arg(t->p[0].x).arg(t->p[0].y).arg(t->extents.Width()).arg(t->extents.Height()).arg(obj->angle[0] * RADIANS_TO_DEGREES);