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());
 
void outComboBox_activated(const QString &)
 
void helpPushButton_clicked()
 
void inComboBox_activated(const QString &)
 
Data Source Copy GUI Controller. 
 
void backPushButton_clicked()
 
DSCopyDialog(QWidget *parent=0, Qt::WindowFlags f=0)
 
void inPathPushButton_clicked()
 
DSCopyDialogController * m_controller
 
std::vector< std::string > getDictionary()
 
void closeEvent(QCloseEvent *e)
 
void outPathPushButton_clicked()
 
void cancelPushButton_clicked()
 
void nextPushButton_clicked()