Annotation of imach/imach-gui/dialog.cpp, revision 1.1

1.1     ! brouard     1: // dialog.cpp
        !             2: 
        !             3: #include "dialog.h"
        !             4: #include "ui_dialog.h"
        !             5: #include <QDebug>
        !             6: #include <QString>
        !             7: #include <QProcess>
        !             8: #include <QScrollBar>
        !             9: #include <QMessageBox>
        !            10: #include <QFileInfo>
        !            11: #include <QFileDialog>
        !            12: 
        !            13: #include <QTextStream>
        !            14: #include <QFile>
        !            15: #include <QDesktopServices>
        !            16: #include <QUrl>
        !            17: 
        !            18: Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog)
        !            19: {
        !            20:     ui->setupUi(this);
        !            21: 
        !            22:     // Play button for output - initially disabled
        !            23:     //ui->playOutputButton->setEnabled(false);
        !            24:     ui->openGnuplotButton->setEnabled(false);
        !            25: 
        !            26:     // Create three processes
        !            27:     // 1.imachexec, 2.input play 3.output play
        !            28:     mImachexecProcess = new QProcess(this);
        !            29:     mGnuplotProcess = new QProcess(this);
        !            30:     //mOutputPlayProcess = new QProcess(this);
        !            31: 
        !            32:     connect(mImachexecProcess, SIGNAL(started()), this, SLOT(processStarted()));
        !            33: 
        !            34:     connect(mImachexecProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(readyReadStandardOutput()));
        !            35:     connect(mImachexecProcess, SIGNAL(finished(int)), this, SLOT(imachexecFinished()));
        !            36: }
        !            37: 
        !            38: Dialog::~Dialog()
        !            39: {
        !            40:     delete ui;
        !            41: }
        !            42: 
        !            43: void Dialog::processStarted()
        !            44: {
        !            45:     qDebug() << "processStarted()";
        !            46: }
        !            47: 
        !            48: // imach start
        !            49: void Dialog::on_startButton_clicked()
        !            50: {
        !            51:     QString program = "imach";
        !            52: 
        !            53:     QStringList arguments;
        !            54: 
        !            55:     QString input = ui->fromLineEdit->text();
        !            56:     if(input.isEmpty()) {
        !            57:         qDebug() << "No input";
        !            58:         QMessageBox::information(this,
        !            59:                      tr("imach"),tr("Input file not specified"));
        !            60:         return;
        !            61:     }
        !            62:     QString output = input;
        !            63: //    QString output = ui->toLineEdit->text();
        !            64: //    if(output.isEmpty()) {
        !            65: //        qDebug() << "No output";
        !            66: //        QMessageBox::information(this,
        !            67: //                     tr("imach"),tr("Output file not specified"));
        !            68: //        return;
        !            69: //    }
        !            70: 
        !            71: //    QString fileName = ui->toLineEdit->text();
        !            72: //    qDebug() << "output file check " << fileName;
        !            73: //    qDebug() << "QFile::exists(fileName) = " << QFile::exists(fileName);
        !            74: //    if (QFile::exists(fileName)) {
        !            75: //         if (QMessageBox::question(this, tr("imach"),
        !            76: //                    tr("There already exists a file called %1 in "
        !            77: //                    "the current directory. Overwrite?").arg(fileName),
        !            78: //                    QMessageBox::Yes|QMessageBox::No, QMessageBox::No)
        !            79: //             == QMessageBox::No)
        !            80: //             return;
        !            81: //         QFile::remove(fileName);
        !            82: //         while(QFile::exists(fileName)) {
        !            83: //             qDebug() << "output file still there";
        !            84: //         }
        !            85: //     }
        !            86: 
        !            87: //    arguments << input << output;
        !            88:       arguments << input << " q";
        !            89: 
        !            90:     qDebug() << arguments;
        !            91: 
        !            92:     mImachexecProcess->setProcessChannelMode(QProcess::MergedChannels);
        !            93:     mImachexecProcess->start(program, arguments);
        !            94: }
        !            95: 
        !            96: void Dialog::readyReadStandardOutput()
        !            97: {
        !            98:     mOutputString.append(mImachexecProcess->readAllStandardOutput());
        !            99:     ui->textEdit->setText(mOutputString);
        !           100: 
        !           101:     // put the slider at the bottom
        !           102:     ui->textEdit->verticalScrollBar()
        !           103:             ->setSliderPosition(
        !           104:                 ui->textEdit->verticalScrollBar()->maximum());
        !           105: }
        !           106: 
        !           107: void Dialog::imachexecFinished()
        !           108: {
        !           109:     // Set the imachexec status by checking output gnuplot file's existence
        !           110:     //QString fileName = ui->toLineEdit->text();
        !           111:     QString fichnom = ui->fromLineEdit->text();
        !           112:     QFileInfo fileInfor(fichnom);
        !           113:     QString NomComplet = fileInfor.completeBaseName();
        !           114:     //QString NomSuffix = fileInfor.suffix();
        !           115:     //QString NomCheminsansEx = fileInfor.canonicalPath()+NomComplet;
        !           116:     QString NomCompGp = fileInfor.canonicalPath()+"/"+NomComplet+".gp";
        !           117:     //QFileInfo fileInfoGp(NomCompGp);
        !           118: 
        !           119:     //if (QFile::exists(fileName)) {
        !           120:     if (QFile::exists(NomCompGp)) {
        !           121:         ui->imachStatusLabel
        !           122:                 ->setText("IMaCh Status: Successful!");
        !           123:         //ui->playOutputButton->setEnabled(true);
        !           124:         ui->openGnuplotButton->setEnabled(true);
        !           125:     }
        !           126:     else {
        !           127:         ui->imachStatusLabel
        !           128:                 ->setText("IMaCh Status: Failed!");
        !           129:     }
        !           130: }
        !           131: 
        !           132: // Browse... button clicked - this is for input file
        !           133: void Dialog::on_fileOpenButton_clicked()
        !           134: {
        !           135:     QString fileName =
        !           136:         QFileDialog::getOpenFileName(
        !           137:                 this,
        !           138:                 tr("Open File"),
        !           139:                 "/tmp/test",
        !           140:                 tr("imach parameter files (*.imach *.txt *.log *.gp)"));
        !           141:     QFileInfo fileInfor(fileName);
        !           142:     if (!fileName.isEmpty()) {
        !           143:         ui->fromLineEdit->setText(fileName);
        !           144:     }
        !           145: 
        !           146: }
        !           147: 
        !           148: void Dialog::on_openLogButton_clicked()
        !           149: {
        !           150:     QString fichnom = ui->fromLineEdit->text();
        !           151:     QFileInfo fileInfor(fichnom);
        !           152:     QString NomComplet = fileInfor.completeBaseName();
        !           153:     QString NomCompLog = fileInfor.canonicalPath()+"/"+NomComplet+".log";
        !           154:     //QFileInfo fileInfolog(NomCompLog);
        !           155:     QDesktopServices::openUrl(QUrl("file://"+NomCompLog,QUrl::TolerantMode));
        !           156: }
        !           157: 
        !           158: void Dialog::on_launchbrowButton_clicked()
        !           159: {
        !           160:     QString fichnom = ui->fromLineEdit->text();
        !           161:     QFileInfo fileInfor(fichnom);
        !           162:     QString NomComplet = fileInfor.completeBaseName();
        !           163:     QString NomCompLaunch = fileInfor.canonicalPath()+"/"+NomComplet+".htm";
        !           164:     //QFileInfo fileInfolog(NomCompLaunch;
        !           165:     QDesktopServices::openUrl(QUrl("file://"+NomCompLaunch,QUrl::TolerantMode));
        !           166: }
        !           167: 
        !           168: void Dialog::on_openGnuplotButton_clicked()
        !           169: {
        !           170:  //   QString program = "ffplay";
        !           171:  //   QStringList arguments;
        !           172:     QString fichnom = ui->fromLineEdit->text();
        !           173:     QFileInfo fileInfor(fichnom);
        !           174:     QString NomComplet = fileInfor.completeBaseName();
        !           175:     //QString NomSuffix = fileInfor.suffix();
        !           176:     //QString NomCheminsansEx = fileInfor.canonicalPath()+NomComplet;
        !           177:     QString NomCompGp = fileInfor.canonicalPath()+"/"+NomComplet+".gp";
        !           178:     QFileInfo fileInfoGp(NomCompGp);
        !           179:     //QString input = NomCheminsansEx;
        !           180:     //   arguments << input;
        !           181:  //   mInputPlayProcess->start(program, arguments);
        !           182:   //  QFile file(NomCompLog);
        !           183:   //  if(!file.open(QIODevice::ReadOnly))
        !           184:   //      QMessageBox::information(0,"info",file.errorString());
        !           185: 
        !           186:     QDesktopServices::openUrl(QUrl("file://"+NomCompGp,QUrl::TolerantMode));
        !           187: //o    QTextStream in(&file);
        !           188: //o    ui->playInputButton->setText(in.readAll());
        !           189: }
        !           190: 
        !           191: 
        !           192: void Dialog::on_runGnuplotButton_clicked()
        !           193: {
        !           194:     QString program = "gnuplot";
        !           195:     QStringList arguments;
        !           196:     QString fichnom = ui->fromLineEdit->text();
        !           197:     QFileInfo fileInfor(fichnom);
        !           198:     QString NomComplet = fileInfor.completeBaseName();
        !           199:     QString NomCompGp = fileInfor.canonicalPath()+"/"+NomComplet+".gp";
        !           200:     //QFileInfo fileInfoGp(NomCompGp);
        !           201:     //QString input = NomCheminsansEx;
        !           202:     arguments << NomCompGp;
        !           203:     mGnuplotProcess->start(program, arguments);
        !           204:   //  QFile file(NomCompLog);
        !           205:   //  if(!file.open(QIODevice::ReadOnly))
        !           206:   //      QMessageBox::information(0,"info",file.errorString());
        !           207: 
        !           208:     //QDesktopServices::openUrl(QUrl("file://"+NomCompGp,QUrl::TolerantMode));
        !           209: //o    QTextStream in(&file);
        !           210: //o    ui->playInputButton->setText(in.readAll());
        !           211: }
        !           212: 
        !           213: //void Dialog::on_playOutputButton_clicked()
        !           214: //{
        !           215: //    QString program = "ffplay";
        !           216: //    QStringList arguments;
        !           217: //    QString output = ui->toLineEdit->text();
        !           218: //    arguments << output;
        !           219: //    mInputPlayProcess->start(program, arguments);
        !           220: //}
        !           221: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>