22 #include "../../../dataaccess/dataset/DataSet.h"
23 #include "../../../dataaccess/utils/Utils.h"
24 #include "../../widgets/datasource/selector/DataSourceSelectorDialog.h"
26 #include "ui_VectorizationWizardPageForm.h"
30 #include <QFileDialog>
31 #include <QIntValidator>
34 #include <boost/algorithm/string.hpp>
35 #include <boost/filesystem.hpp>
36 #include <boost/lexical_cast.hpp>
41 m_ui.reset(
new Ui::VectorizationWizardPageForm);
46 this->setTitle(tr(
"Vectorization"));
47 this->setSubTitle(tr(
"Define the vectorization parameters."));
49 m_ui->m_targetDatasourceToolButton->setIcon(QIcon::fromTheme(
"datasource"));
54 m_ui->m_maxGeomLineEdit->setValidator(
new QIntValidator(
this));
71 m_ui->m_layerLineEdit->setText(m_layer->getTitle().c_str());
74 m_ui->m_bandComboBox->clear();
77 std::auto_ptr<te::da::DataSet> ds = m_layer->getData();
83 std::auto_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
87 for(
unsigned int i = 0; i < inputRst->getNumberOfBands(); ++i)
89 m_ui->m_bandComboBox->addItem(QString::number(i));
97 assert(m_layer.get());
100 std::auto_ptr<te::da::DataSet> ds = m_layer->getData();
104 return ds->getRaster(rpos);
109 return m_ui->m_bandComboBox->currentText().toUInt();
114 if(!m_ui->m_maxGeomLineEdit->text().isEmpty())
115 maxGeom = m_ui->m_maxGeomLineEdit->text().toInt();
117 return m_ui->m_maxGeomCheckBox->isChecked();
127 return m_outputDatasource;
132 if(m_ui->m_newLayerNameLineEdit->text().isEmpty())
135 return m_ui->m_newLayerNameLineEdit->text().toStdString();
140 if(m_ui->m_repositoryLineEdit->text().isEmpty())
143 return m_ui->m_repositoryLineEdit->text().toStdString();
148 m_ui->m_newLayerNameLineEdit->clear();
149 m_ui->m_newLayerNameLineEdit->setEnabled(
true);
153 std::list<te::da::DataSourceInfoPtr> dsPtrList = dlg.
getSelecteds();
155 if(dsPtrList.size() <= 0)
158 std::list<te::da::DataSourceInfoPtr>::iterator it = dsPtrList.begin();
160 m_ui->m_repositoryLineEdit->setText(QString(it->get()->getTitle().c_str()));
162 m_outputDatasource = *it;
169 m_ui->m_newLayerNameLineEdit->clear();
170 m_ui->m_repositoryLineEdit->clear();
172 QString fileName = QFileDialog::getSaveFileName(
this, tr(
"Save as..."),
173 QString(), tr(
"Shapefile (*.shp *.SHP);;"),0, QFileDialog::DontConfirmOverwrite);
175 if(fileName.isEmpty())
178 boost::filesystem::path outfile(fileName.toStdString());
179 std::string aux = outfile.leaf().string();
180 m_ui->m_newLayerNameLineEdit->setText(aux.c_str());
181 aux = outfile.string();
182 m_ui->m_repositoryLineEdit->setText(aux.c_str());
185 m_ui->m_newLayerNameLineEdit->setEnabled(
false);
bool outputDataSourceToFile()
void setLayer(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for vectorization operation.
VectorizationWizardPage(QWidget *parent=0)
te::da::DataSourceInfoPtr getDataSourceInfo()
bool hasMaxGeom(unsigned int &maxGeom)
void onTargetDatasourceToolButtonPressed()
std::auto_ptr< te::rst::Raster > getRaster()
std::string getLayerName()
std::auto_ptr< Ui::VectorizationWizardPageForm > m_ui
~VectorizationWizardPage()
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
void onTargetFileToolButtonPressed()
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr
std::string getRepositoryName()