27 #include "../../../../common/progress/ProgressManager.h" 28 #include "../../../../common/progress/TaskProgress.h" 29 #include "../../../../common/STLUtils.h" 30 #include "../../../../qt/widgets/progress/ProgressViewerDialog.h" 31 #include "../../../../qt/widgets/utils/ScopedCursor.h" 32 #include "../core/GeopackagePublisher.h" 34 #include "ui_GeoPackagePublisherDialogForm.h" 37 #include <QFileDialog> 38 #include <QMessageBox> 45 m_ui(new
Ui::GeoPackagePublisherDialogForm)
67 if (
m_ui->m_importURLLineEdit->text().isEmpty())
69 m_ui->m_importTableWidget->setRowCount(0);
71 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Server not defined."));
75 m_ui->m_importTableWidget->setRowCount(0);
84 for (std::size_t t = 0; t < gpkgFiles.size(); ++t)
86 int row =
m_ui->m_importTableWidget->rowCount();
87 m_ui->m_importTableWidget->insertRow(row);
91 QTableWidgetItem* nameItem =
new QTableWidgetItem(gpkgFile.
m_name.c_str());
92 nameItem->setFlags(Qt::ItemIsSelectable);
93 m_ui->m_importTableWidget->setItem(row, 0, nameItem);
95 QTableWidgetItem* objIdItem =
new QTableWidgetItem(gpkgFile.
m_objId.c_str());
96 objIdItem->setFlags(Qt::ItemIsSelectable);
97 m_ui->m_importTableWidget->setItem(row, 1, objIdItem);
99 QTableWidgetItem* descItem =
new QTableWidgetItem(gpkgFile.
m_desc.c_str());
100 descItem->setFlags(Qt::ItemIsSelectable);
101 m_ui->m_importTableWidget->setItem(row, 2, descItem);
104 m_ui->m_importTableWidget->resizeColumnsToContents();
106 #if (QT_VERSION >= 0x050000) 107 m_ui->m_importTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
109 m_ui->m_importTableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
115 QString dirName = QFileDialog::getExistingDirectory(
this, tr(
"Output GeoPackage File location"));
117 if (dirName.isEmpty())
118 m_ui->m_importOutputLineEdit->clear();
121 QString path = dirName.replace(QRegExp(
"\\\\"),
"/");
123 m_ui->m_importOutputLineEdit->setText(path);
129 if (
m_ui->m_importOutputLineEdit->text().isEmpty())
131 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Output directory not defined."));
135 std::string dir =
m_ui->m_importOutputLineEdit->text().toUtf8().data();
137 QItemSelectionModel* select =
m_ui->m_importTableWidget->selectionModel();
139 if (select->selectedRows().isEmpty())
141 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Select at least one geopackage file to import."));
145 std::string url =
m_ui->m_importURLLineEdit->text().toUtf8().data();
155 connect(&gpkgPub, SIGNAL(setCurrentStep(
double,
double, std::string)),
this, SLOT(
onSetCurrentStep(
double,
double, std::string)));
157 for (
int i = 0; i <
m_ui->m_importTableWidget->rowCount(); ++i)
159 if (
m_ui->m_importTableWidget->item(i, 0)->isSelected())
163 gpkgFile.
m_name =
m_ui->m_importTableWidget->item(i, 0)->text().toUtf8().data();
164 gpkgFile.
m_objId =
m_ui->m_importTableWidget->item(i, 1)->text().toUtf8().data();
165 gpkgFile.
m_desc =
m_ui->m_importTableWidget->item(i, 2)->text().toUtf8().data();
171 catch (std::exception
const& e)
173 QMessageBox::warning(
this, tr(
"Warning"), e.what());
178 QMessageBox::warning(
this, tr(
"Warning"), gpkgPub.
getErrorMessage().c_str());
186 QMessageBox::information(
this, tr(
"Information"), tr(
"Downloaded Successfully"));
191 QString fileName = QFileDialog::getOpenFileName(
this, tr(
"Open GeoPackage File"),
"", tr(
"GeoPackage File (*.gpkg *.GPKG)"));
193 if (fileName.isEmpty())
194 m_ui->m_exportFileLineEdit->clear();
196 m_ui->m_exportFileLineEdit->setText(fileName);
201 if (
m_ui->m_exportFileLineEdit->text().isEmpty())
203 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Geopackage File not selected."));
207 std::string pathFile =
m_ui->m_exportFileLineEdit->text().toUtf8().data();
209 if (
m_ui->m_exportServerLineEdit->text().isEmpty())
211 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Server not defined."));
215 std::string url =
m_ui->m_exportServerLineEdit->text().toUtf8().data();
218 QFileInfo
file(
m_ui->m_exportFileLineEdit->text());
228 connect(&gpkgPub, SIGNAL(setCurrentStep(
double,
double, std::string)),
this, SLOT(
onSetCurrentStep(
double,
double, std::string)));
234 catch (std::exception
const& e)
236 QMessageBox::warning(
this, tr(
"Warning"), e.what());
241 QMessageBox::warning(
this, tr(
"Warning"), gpkgPub.
getErrorMessage().c_str());
247 QMessageBox::information(
this, tr(
"Information"), tr(
"Uploaded Successfully"));
261 int nStep = (100. * curStep) / totalStep;
265 if (curStep == totalStep)
void onExportFilePushButtonClicked()
~GeoPackagePublisherDialog()
void onImportSearchPushButtonClicked()
void uploadGeopackageFile(std::string url, std::string filePath, std::string fileName)
std::string getErrorMessage()
This class can be used to inform the progress of a task.
void onImportOutputPushButtonClicked()
std::auto_ptr< Ui::GeoPackagePublisherDialogForm > m_ui
void setTotalSteps(int value)
Set the task total stepes.
void onExportPushButtonClicked()
Q_DECLARE_METATYPE(te::map::AbstractLayerPtr)
void removeViewer(int viewerId)
Dettach a progress viewer (AbstractProgressViewer destructor calls this method).
static ProgressManager & getInstance()
It returns a reference to the singleton instance.
void downloadGeopackageFile(std::string url, GeopackageFile gpkgFile, std::string pathDir)
te::common::TaskProgress * m_task
int addViewer(AbstractProgressViewer *apv)
Attach a progress viewer.
void setCurrentStep(int value)
Set the task current step.
std::vector< GeopackageFile > GeopackageFiles
void onImportPushButtonClicked()
GeopackageFiles getGeopackageFiles(std::string url)
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
GeoPackagePublisherDialog(QWidget *parent=0, Qt::WindowFlags f=0)
file(WRITE ${CMAKE_BINARY_DIR}/config_qhelp.cmake"configure_file (${TERRALIB_ABSOLUTE_ROOT_DIR}/doc/qhelp/help.qhcp.in ${CMAKE_BINARY_DIR}/share/terraview/help/help.qhcp @ONLY)") add_custom_command(OUTPUT del_dir COMMAND $
void onSetCurrentStep(double curStep, double totalStep, std::string msg)