27 #include "../../../maptools/Utils.h"
28 #include "../../widgets/tools/Pan.h"
29 #include "../../widgets/tools/ZoomWheel.h"
30 #include "../canvas/Canvas.h"
31 #include "../canvas/MultiThreadMapDisplay.h"
33 #include "ui_OverlayWidgetForm.h"
39 m_ui(new Ui::OverlayWidgetForm),
40 m_panTool(0), m_zoomTool(0),
41 m_draft(0), m_draftOriginal(0)
46 m_ui->m_applyToolButton->setIcon(QIcon::fromTheme(
"check"));
48 connect(
m_ui->m_opacityHorizontalSlider, SIGNAL(valueChanged(
int)),
this, SLOT(
onOpacityChanged(
int)));
54 QGridLayout* displayLayout =
new QGridLayout(
m_ui->m_widget);
57 displayLayout->setContentsMargins(0,0,0,0);
73 delete m_draftOriginal;
83 std::list<te::map::AbstractLayerPtr>::iterator it = layerList.begin();
85 while(it != layerList.end())
89 m_ui->m_upperComboBox->addItem(l->getTitle().c_str(), QVariant::fromValue(l));
90 m_ui->m_lowerComboBox->addItem(l->getTitle().c_str(), QVariant::fromValue(l));
99 int lowerIdx = m_ui->m_lowerComboBox->currentIndex();
100 QVariant lowerV = m_ui->m_lowerComboBox->itemData(lowerIdx, Qt::UserRole);
104 std::list<te::map::AbstractLayerPtr> list;
105 list.push_back(lowerLayer);
109 m_mapDisplay->setMouseTracking(
true);
110 m_mapDisplay->setLayerList(list);
111 m_mapDisplay->setSRID(lowerLayer->getSRID(),
false);
112 m_mapDisplay->setExtent(e,
true);
115 int upperIdx = m_ui->m_upperComboBox->currentIndex();
116 QVariant upperV = m_ui->m_upperComboBox->itemData(upperIdx, Qt::UserRole);
121 m_draft = m_mapDisplay->getDraftPixmap();
122 m_draft->fill(Qt::transparent);
125 Canvas canvas(m_mapDisplay->width(), m_mapDisplay->height());
127 canvas.setWindow(env.m_llx, env.m_lly, env.m_urx, env.m_ury);
129 upperLayer->draw(&canvas, env, m_mapDisplay->getSRID());
131 m_mapDisplay->repaint();
137 int upperIdx = m_ui->m_upperComboBox->currentIndex();
138 QVariant upperV = m_ui->m_upperComboBox->itemData(upperIdx, Qt::UserRole);
143 m_draft = m_mapDisplay->getDraftPixmap();
144 m_draft->fill(Qt::transparent);
148 Canvas canvas(m_mapDisplay->width(), m_mapDisplay->height());
150 canvas.setWindow(env.m_llx, env.m_lly, env.m_urx, env.m_ury);
152 upperLayer->draw(&canvas, env, m_mapDisplay->getSRID());
155 m_draftOriginal =
new QPixmap(*m_mapDisplay->getDraftPixmap());
157 updateSliderBarSize();
159 m_mapDisplay->repaint();
171 m_draft->fill(Qt::transparent);
172 m_mapDisplay->repaint();
182 if(m_ui->m_hideToolButton->isChecked())
185 QImage img = m_draftOriginal->toImage();
187 m_draft->fill(Qt::transparent);
190 p.setOpacity(m_ui->m_opacityHorizontalSlider->value() / 255.);
191 p.drawImage(0, 0, img, 0, 0, m_ui->m_horizontalSlider->value(), m_ui->m_verticalSlider->value());
194 m_mapDisplay->repaint();
199 m_ui->m_horizontalSlider->setMaximum(m_mapDisplay->getWidth() - 1);
200 m_ui->m_horizontalSlider->setValue(m_mapDisplay->getWidth() - 1);
201 m_ui->m_verticalSlider->setMaximum(m_mapDisplay->getHeight() - 1);
202 m_ui->m_verticalSlider->setValue(m_mapDisplay->getHeight() - 1);
An Envelope defines a 2D rectangular region.
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr