31 #include <QtGui/QtGui>
32 #include <QtGui/QComboBox>
33 #include <QtGui/QMessageBox>
34 #include <QtGui/QFileDialog>
35 #include <QtGui/QListView>
47 backPushButton->setEnabled(
false);
49 inComboBox->addItem(
"");
50 outComboBox->addItem(
"");
52 mainStackedWidget->setCurrentIndex(0);
54 connStackedWidget->setCurrentIndex(0);
55 connOutStackedWidget->setCurrentIndex(0);
59 for(
size_t i = 0; i < dictionary.size(); i++)
61 inComboBox->addItem(dictionary[i].c_str());
62 outComboBox->addItem(dictionary[i].c_str());
70 connect(inComboBox, SIGNAL(activated(
const QString&)),
this, SLOT(
inComboBox_activated(
const QString&)));
71 connect(outComboBox, SIGNAL(activated(
const QString&)),
this, SLOT(
outComboBox_activated(
const QString&)));
88 if(mainStackedWidget->currentIndex() == 2)
90 nextPushButton->setText(tr(
"&Next"));
91 mainStackedWidget->setCurrentIndex(1);
93 else if(mainStackedWidget->currentIndex() == 1)
95 backPushButton->setEnabled(
false);
96 mainStackedWidget->setCurrentIndex(0);
102 std::string errorMessage = std::string();
105 if(mainStackedWidget->currentIndex() == 0)
107 dsListWidget->clear();
109 if(inComboBox->currentText() ==
"")
112 if(connStackedWidget->currentIndex() == 1)
114 if(!inPathLineEdit->text().isEmpty())
116 if(!m_controller->setOriginConnectionInfo(inComboBox->currentText().toStdString(), inPathLineEdit->text().toStdString(), errorMessage))
118 QMessageBox::warning(
this, tr(
"Warning"), errorMessage.c_str());
124 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Select a path!"));
128 else if(connStackedWidget->currentIndex() == 2)
130 if(hostLineEdit->text().isEmpty() || portLineEdit->text().isEmpty()
131 || dsNameLineEdit->text().isEmpty() || userLineEdit->text().isEmpty() || pwLineEdit->text().isEmpty())
133 QString warning = tr(
"Some required information is missing:");
134 if(hostLineEdit->text().isEmpty())
135 warning += tr(
"\n - Host");
136 if(portLineEdit->text().isEmpty())
137 warning += tr(
"\n - Port");
138 if(dsNameLineEdit->text().isEmpty())
139 warning += tr(
"\n - Data Source Name");
140 if(userLineEdit->text().isEmpty())
141 warning += tr(
"\n - User");
142 if(pwLineEdit->text().isEmpty())
143 warning += tr(
"\n - Password");
145 QMessageBox::warning(
this, tr(
"Warning"), warning);
151 if(!m_controller->setOriginConnectionInfo(inComboBox->currentText().toStdString(),
152 hostLineEdit->text().toStdString(),
153 portLineEdit->text().toStdString(),
154 dsNameLineEdit->text().toStdString(),
155 userLineEdit->text().toStdString(),
156 pwLineEdit->text().toStdString(), errorMessage))
158 QMessageBox::warning(
this, tr(
"Warning"), errorMessage.c_str());
166 std::vector<std::string*> dataSetsNames = m_controller->getDatasetsName();
169 for(
size_t i = 0; i < dataSetsNames.size(); i++)
171 dsListWidget->addItem(
new QListWidgetItem((*dataSetsNames[i]).c_str()));
174 mainStackedWidget->setCurrentIndex(1);
179 else if(mainStackedWidget->currentIndex() == 1)
181 if(dsListWidget->selectedItems().empty())
183 QMessageBox::warning(
this, tr(
"Warnign"), tr(
"Select at least one Data Set"));
187 std::vector<std::string> datasetsToCopy;
188 for(
size_t i = 0; i < dsListWidget->selectedItems().count(); i++)
190 datasetsToCopy.push_back(dsListWidget->selectedItems().at(i)->text().toStdString());
193 m_controller->setDatasetsToCopy(datasetsToCopy);
195 mainStackedWidget->setCurrentIndex(2);
197 nextPushButton->setText(tr(
"Copy"));
201 else if(mainStackedWidget->currentIndex() == 2)
203 if(outComboBox->currentText() ==
"")
206 std::string errorMessage = std::string();
208 if(connOutStackedWidget->currentIndex() == 1)
210 if(!outPathLineEdit->text().isEmpty())
212 if(!m_controller->setDestinationConnectionInfo(outComboBox->currentText().toStdString(), outPathLineEdit->text().toStdString(), errorMessage))
214 QMessageBox::warning(
this, tr(
"Warning"), errorMessage.c_str());
220 QMessageBox::warning(
this, tr(
"Warning"), tr(
"Select a path!"));
224 else if(connOutStackedWidget->currentIndex() == 2)
226 if(outHostLineEdit->text().isEmpty() || outPortLineEdit->text().isEmpty()
227 || outDsNameLineEdit->text().isEmpty() || outUserLineEdit->text().isEmpty() || outPwLineEdit->text().isEmpty())
229 QString warning = tr(
"Some required information is missing:");
230 if(outHostLineEdit->text().isEmpty())
231 warning += tr(
"\n - Host");
232 if(outPortLineEdit->text().isEmpty())
233 warning += tr(
"\n - Port");
234 if(outDsNameLineEdit->text().isEmpty())
235 warning += tr(
"\n - Data Source Name");
236 if(outUserLineEdit->text().isEmpty())
237 warning += tr(
"\n - User");
238 if(outPwLineEdit->text().isEmpty())
239 warning += tr(
"\n - Password");
241 QMessageBox::warning(
this, tr(
"Warning"), warning);
247 if(!m_controller->setDestinationConnectionInfo(outComboBox->currentText().toStdString(),
248 outHostLineEdit->text().toStdString(),
249 outPortLineEdit->text().toStdString(),
250 outDsNameLineEdit->text().toStdString(),
251 outUserLineEdit->text().toStdString(),
252 outPwLineEdit->text().toStdString(), errorMessage))
254 QMessageBox::warning(
this, tr(
"Warning"), errorMessage.c_str());
261 if(!m_controller->copy(errorMessage))
263 QMessageBox::warning(
this, tr(
"ERROR"), errorMessage.c_str());
267 QMessageBox::information(
this, tr(
"Success"), tr(
"Copy executed successfully!"));
271 backPushButton->setEnabled(
true);
282 if(type ==
"OGR" || type ==
"GDAL")
283 connStackedWidget->setCurrentIndex(1);
284 else if(type ==
"POSTGIS")
285 connStackedWidget->setCurrentIndex(2);
287 connStackedWidget->setCurrentIndex(0);
292 if(type ==
"OGR" || type ==
"GDAL")
293 connOutStackedWidget->setCurrentIndex(1);
294 else if(type ==
"POSTGIS")
295 connOutStackedWidget->setCurrentIndex(2);
297 connOutStackedWidget->setCurrentIndex(0);
304 QFileDialog fd(
this);
305 fd.setFileMode(QFileDialog::DirectoryOnly);
307 path = QFileDialog::getExistingDirectory(
this, tr(
"Open Directory"),
"", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks).toStdString();
310 if(connStackedWidget->currentIndex() == 1)
311 inPathLineEdit->setText(path.c_str());
319 QFileDialog fd(
this);
320 fd.setFileMode(QFileDialog::DirectoryOnly);
322 path = QFileDialog::getExistingDirectory(
this, tr(
"Open Directory"),
"", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks).toStdString();
325 if(connOutStackedWidget->currentIndex() == 1)
326 outPathLineEdit->setText(path.c_str());
Data Source Copy GUI Controller.