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);
This file has the OverlayWidget class.
void updateSliderBarSize()
te::qt::widgets::Pan * m_panTool
Pan tool.
void onVSliderChanged(int value)
void onOpacityChanged(int value)
This class implements a concrete tool to geographic zoom operation using the mouse wheel...
This class implements a concrete tool to geographic pan operation.
void setDevice(QPaintDevice *device, bool takeOwnerShip)
It sets new device as QPrinter.
te::qt::widgets::MultiThreadMapDisplay * m_mapDisplay
void onApplyToolButtonClicked()
A canvas built on top of Qt.
Q_DECLARE_METATYPE(te::map::AbstractLayerPtr)
te::qt::widgets::ZoomWheel * m_zoomTool
Zoom tool.
A multi thread Qt4 widget to control the display of a set of layers.
std::auto_ptr< Ui::OverlayWidgetForm > m_ui
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
void setList(std::list< te::map::AbstractLayerPtr > &layerList)
Ui::OverlayWidgetForm * getForm() const
void onHSliderChanged(int value)
OverlayWidget(QWidget *parent=0, Qt::WindowFlags f=0)
An Envelope defines a 2D rectangular region.
void onHideToolButtonClicked(bool flag)
void onMapDisplayExtentChanged()