This is an automated email from the git hooks/post-receive script. sebastic-guest pushed a commit to branch upstream-master in repository pktools.
commit b74e648716629b2a39c219be8506305f7d1f7831 Author: Pieter Kempeneers <pieter.kempene...@vito.be> Date: Tue Apr 1 12:18:06 2014 +0200 added pkextract_gui --- qt/pkextract_gui/main.cpp | 11 ++ qt/pkextract_gui/mainwindow.cpp | 177 +++++++++++++++++++++ qt/{pkextract => pkextract_gui}/mainwindow.h | 11 +- qt/{pkextract => pkextract_gui}/mainwindow.ui | 8 +- .../pkextract_gui.pro} | 3 +- 5 files changed, 197 insertions(+), 13 deletions(-) diff --git a/qt/pkextract_gui/main.cpp b/qt/pkextract_gui/main.cpp new file mode 100644 index 0000000..b48f94e --- /dev/null +++ b/qt/pkextract_gui/main.cpp @@ -0,0 +1,11 @@ +#include "mainwindow.h" +#include <QApplication> + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/qt/pkextract_gui/mainwindow.cpp b/qt/pkextract_gui/mainwindow.cpp new file mode 100644 index 0000000..324203e --- /dev/null +++ b/qt/pkextract_gui/mainwindow.cpp @@ -0,0 +1,177 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include <QFileDialog> +#include <QStandardItemModel> +#include <QMessageBox> +#include <QProcess> + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); + QStringList rulelist; + rulelist << "point" << "centroid" << "mean" << "proportion" << "minimum" << "minimum" << "maximum" << "maximum voting" << "sum"; + ui->rule->addItems(rulelist); + QStringList formatlist; + formatlist << "ESRI Shapefile" << "SQLite"; + ui->f->addItems(formatlist); + + setDefaults(); +} + +MainWindow::~MainWindow() +{ + delete ui; +} + +void MainWindow::setDefaults() +{ + //tab input/output + ui->msknodata->setText("0"); + ui->polygon->setChecked(false); + ui->f->setCurrentIndex(0); + //tab extract + ui->bname->setText("B"); + ui->rule->setCurrentIndex(0); + +} + +void MainWindow::on_actionInput_triggered() +{ + m_input = QFileDialog::getOpenFileName(this, "Input"); + ui->input->setText(m_input); +} + +void MainWindow::on_actionSample_triggered() +{ + m_sample = QFileDialog::getOpenFileName(this, "Sample"); + ui->sample->setText(m_sample); +} + +void MainWindow::on_actionMask_triggered() +{ + m_mask = QFileDialog::getOpenFileName(this, "Mask"); + ui->mask->setText(m_mask); +} + +void MainWindow::on_actionOutput_triggered() +{ + m_output = QFileDialog::getOpenFileName(this, "Output"); + ui->output->setText(m_output); +} + +void MainWindow::on_toolButton_input_clicked() +{ + on_actionInput_triggered(); +} + +void MainWindow::on_toolButton_sample_clicked() +{ + on_actionSample_triggered(); +} + +void MainWindow::on_toolButton_mask_clicked() +{ + on_actionMask_triggered(); +} + +void MainWindow::on_toolButton_output_clicked() +{ + on_actionOutput_triggered(); +} + +void MainWindow::setClassTable(const QStringList &labels) +{ + QStandardItemModel *model = new QStandardItemModel(labels.size(),2,this); //2 Rows and 3 Columns + model->setHorizontalHeaderItem(0, new QStandardItem(QString("label name"))); + model->setHorizontalHeaderItem(1, new QStandardItem(QString("select(%)"))); + for(int ilabel=0;ilabel<labels.size();++ilabel){ + QStandardItem *firstCol = new QStandardItem(QString(labels[ilabel])); + model->setItem(ilabel,0,firstCol); + QStandardItem *secondCol = new QStandardItem(QString::number(100)); + model->setItem(ilabel,1,secondCol); + } + ui->tableView_labels->setModel(model); +} + +void MainWindow::on_pushButton_run_clicked() +{ + try{ + QString program = "pkextract"; + if(m_sample.isEmpty()) + MainWindow::on_actionSample_triggered(); + + if(m_sample.isEmpty()){ + QString qsError="No sample file selected"; + throw(qsError); + } + + if(m_input.isEmpty()) + MainWindow::on_actionInput_triggered(); + + if(m_input.isEmpty()){ + QString qsError="No input file selected"; + throw(qsError); + } + + QList<QComboBox*> qcomboBoxList = this->findChildren<QComboBox *>(); + + for(QList<QComboBox*>::ConstIterator qcbit=qcomboBoxList.begin();qcbit!=qcomboBoxList.end();++qcbit){ + QString qsOption; + qsOption+=" --"; + qsOption+=(*qcbit)->objectName(); + program+=qsOption; + program+=" "; + program+=QString::number((*qcbit)->currentIndex()); + } + + QList<QLineEdit*> qlineEditList = this->findChildren<QLineEdit *>(); + + for(QList<QLineEdit*>::ConstIterator qlbit=qlineEditList.begin();qlbit!=qlineEditList.end();++qlbit){ + if(!((*qlbit)->text().isEmpty())){ + QString qsOption; + qsOption+=" --"; + qsOption+=(*qlbit)->objectName(); + qsOption+=" "; + qsOption+=(*qlbit)->text(); + program+=qsOption; + } + } + + ui->commandLineEdit->insert(program); + +// QProcess *myProcess = new QProcess(parent); + QProcess *myProcess = new QProcess(this); + + myProcess->start(program); + myProcess->waitForFinished(-1); + QString p_stdout = myProcess->readAll(); + ui->consoleEdit->clear(); + ui->consoleEdit->insertPlainText(p_stdout); + delete myProcess; + } + catch(QString qsError){ + QMessageBox msgBox; + msgBox.setText(qsError); + msgBox.exec(); + } +} + +void MainWindow::on_toolButton_createTable_clicked() +{ + int nclass=ui->nclass->text().toInt(); + QStringList labels; + for(int iclass=1;iclass<=nclass;++iclass){ + QString lstring="label"; + lstring+=QString::number(iclass); + labels << lstring; + } + setClassTable(labels); +} + +void MainWindow::on_pushButton_restore_clicked() +{ + setDefaults(); +} + diff --git a/qt/pkextract/mainwindow.h b/qt/pkextract_gui/mainwindow.h similarity index 81% rename from qt/pkextract/mainwindow.h rename to qt/pkextract_gui/mainwindow.h index de398a7..3ae124b 100644 --- a/qt/pkextract/mainwindow.h +++ b/qt/pkextract_gui/mainwindow.h @@ -18,7 +18,7 @@ public: private slots: void on_actionInput_triggered(); - void on_actionTraining_triggered(); + void on_actionSample_triggered(); void on_actionMask_triggered(); @@ -30,25 +30,22 @@ private slots: void on_toolButton_output_clicked(); - void on_toolButton_training_clicked(); - - void on_training_returnPressed(); + void on_toolButton_sample_clicked(); void on_pushButton_run_clicked(); - void on_lineEdit_2_returnPressed(); - void on_toolButton_createTable_clicked(); void on_pushButton_restore_clicked(); + private: void setClassTable(const QStringList &labels); void setDefaults(); Ui::MainWindow *ui; QString m_input; - QString m_training; + QString m_sample; QString m_mask; QString m_output; }; diff --git a/qt/pkextract/mainwindow.ui b/qt/pkextract_gui/mainwindow.ui similarity index 98% rename from qt/pkextract/mainwindow.ui rename to qt/pkextract_gui/mainwindow.ui index 5eb6f74..0144713 100644 --- a/qt/pkextract/mainwindow.ui +++ b/qt/pkextract_gui/mainwindow.ui @@ -24,7 +24,7 @@ </rect> </property> <property name="currentIndex"> - <number>1</number> + <number>0</number> </property> <widget class="QWidget" name="tab_2"> <attribute name="title"> @@ -279,7 +279,7 @@ <string>attribute (prefix) name for raster info</string> </property> </widget> - <widget class="QTableView" name="tableView_classes"> + <widget class="QTableView" name="tableView_labels"> <property name="geometry"> <rect> <x>160</x> @@ -487,7 +487,7 @@ </property> <addaction name="actionInput"/> <addaction name="actionMask"/> - <addaction name="actionTraining"/> + <addaction name="actionSample"/> <addaction name="actionOutput"/> </widget> <addaction name="menuFile"/> @@ -506,7 +506,7 @@ <string>Input</string> </property> </action> - <action name="actionTraining"> + <action name="actionSample"> <property name="text"> <string>Sample</string> </property> diff --git a/qt/pkextract/pkextract.pro b/qt/pkextract_gui/pkextract_gui.pro similarity index 95% rename from qt/pkextract/pkextract.pro rename to qt/pkextract_gui/pkextract_gui.pro index 3f6203f..8c25274 100644 --- a/qt/pkextract/pkextract.pro +++ b/qt/pkextract_gui/pkextract_gui.pro @@ -15,8 +15,7 @@ TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp -HEADERS += mainwindow.h \ - ../../src/imageclasses/ImgReaderOgr.h +HEADERS += mainwindow.h FORMS += mainwindow.ui -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel