18 |
18 |
19 #include <QGridLayout> |
19 #include <QGridLayout> |
20 #include <QPushButton> |
20 #include <QPushButton> |
21 #include <QFileDialog> |
21 #include <QFileDialog> |
22 #include <QCheckBox> |
22 #include <QCheckBox> |
|
23 #include <QRadioButton> |
23 |
24 |
24 #include "pagedrawmap.h" |
25 #include "pagedrawmap.h" |
25 #include "drawmapwidget.h" |
26 #include "drawmapwidget.h" |
26 |
27 |
27 |
28 |
30 QGridLayout * pageLayout = new QGridLayout(); |
31 QGridLayout * pageLayout = new QGridLayout(); |
31 |
32 |
32 cbEraser = new QCheckBox(tr("Eraser"), this); |
33 cbEraser = new QCheckBox(tr("Eraser"), this); |
33 pageLayout->addWidget(cbEraser, 0, 0); |
34 pageLayout->addWidget(cbEraser, 0, 0); |
34 pbUndo = addButton(tr("Undo"), pageLayout, 1, 0); |
35 pbUndo = addButton(tr("Undo"), pageLayout, 1, 0); |
35 pbClear = addButton(tr("Clear"), pageLayout, 2, 0); |
36 |
36 pbLoad = addButton(tr("Load"), pageLayout, 3, 0); |
37 rbPolyline = new QRadioButton(tr("Polyline"), this); |
37 pbSave = addButton(tr("Save"), pageLayout, 4, 0); |
38 pageLayout->addWidget(rbPolyline, 2, 0); |
|
39 rbRectangle = new QRadioButton(tr("Rectangle"), this); |
|
40 pageLayout->addWidget(rbRectangle, 3, 0); |
|
41 rbEllipse = new QRadioButton(tr("Ellipse"), this); |
|
42 pageLayout->addWidget(rbEllipse, 4, 0); |
|
43 |
|
44 rbPolyline->setChecked(true); |
|
45 |
|
46 pbClear = addButton(tr("Clear"), pageLayout, 5, 0); |
|
47 pbLoad = addButton(tr("Load"), pageLayout, 6, 0); |
|
48 pbSave = addButton(tr("Save"), pageLayout, 7, 0); |
38 |
49 |
39 drawMapWidget = new DrawMapWidget(this); |
50 drawMapWidget = new DrawMapWidget(this); |
40 pageLayout->addWidget(drawMapWidget, 0, 1, 6, 1); |
51 pageLayout->addWidget(drawMapWidget, 0, 1, 9, 1); |
41 |
52 |
42 return pageLayout; |
53 return pageLayout; |
43 } |
54 } |
44 |
55 |
45 void PageDrawMap::connectSignals() |
56 void PageDrawMap::connectSignals() |
47 connect(cbEraser, SIGNAL(toggled(bool)), drawMapWidget, SLOT(setErasing(bool))); |
58 connect(cbEraser, SIGNAL(toggled(bool)), drawMapWidget, SLOT(setErasing(bool))); |
48 connect(pbUndo, SIGNAL(clicked()), drawMapWidget, SLOT(undo())); |
59 connect(pbUndo, SIGNAL(clicked()), drawMapWidget, SLOT(undo())); |
49 connect(pbClear, SIGNAL(clicked()), drawMapWidget, SLOT(clear())); |
60 connect(pbClear, SIGNAL(clicked()), drawMapWidget, SLOT(clear())); |
50 connect(pbLoad, SIGNAL(clicked()), this, SLOT(load())); |
61 connect(pbLoad, SIGNAL(clicked()), this, SLOT(load())); |
51 connect(pbSave, SIGNAL(clicked()), this, SLOT(save())); |
62 connect(pbSave, SIGNAL(clicked()), this, SLOT(save())); |
|
63 |
|
64 connect(rbPolyline, SIGNAL(toggled(bool)), this, SLOT(pathTypeSwitched(bool))); |
|
65 connect(rbRectangle, SIGNAL(toggled(bool)), this, SLOT(pathTypeSwitched(bool))); |
|
66 connect(rbEllipse, SIGNAL(toggled(bool)), this, SLOT(pathTypeSwitched(bool))); |
52 } |
67 } |
53 |
68 |
54 PageDrawMap::PageDrawMap(QWidget* parent) : AbstractPage(parent) |
69 PageDrawMap::PageDrawMap(QWidget* parent) : AbstractPage(parent) |
55 { |
70 { |
56 initPage(); |
71 initPage(); |
69 QString fileName = QFileDialog::getSaveFileName(NULL, tr("Save drawn map"), "./map.hwmap", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)"); |
84 QString fileName = QFileDialog::getSaveFileName(NULL, tr("Save drawn map"), "./map.hwmap", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)"); |
70 |
85 |
71 if(!fileName.isEmpty()) |
86 if(!fileName.isEmpty()) |
72 drawMapWidget->save(fileName); |
87 drawMapWidget->save(fileName); |
73 } |
88 } |
|
89 |
|
90 void PageDrawMap::pathTypeSwitched(bool b) |
|
91 { |
|
92 if(b) |
|
93 { |
|
94 if(rbPolyline->isChecked()) drawMapWidget->setPathType(DrawMapScene::Polyline); |
|
95 else if(rbRectangle->isChecked()) drawMapWidget->setPathType(DrawMapScene::Rectangle); |
|
96 else if(rbEllipse->isChecked()) drawMapWidget->setPathType(DrawMapScene::Ellipse); |
|
97 } |
|
98 } |