98 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "mainwindow.h"
 | |
| #include "ui_mainwindow.h"
 | |
| #include "worker.h"
 | |
| #include "utils.h"
 | |
| 
 | |
| #include <QDateTime>
 | |
| #include <QMessageBox>
 | |
| 
 | |
| MainWindow::MainWindow(Worker *worker, QWidget *parent)
 | |
|     : QMainWindow(parent)
 | |
|     , ui(new Ui::MainWindow)
 | |
|     , m_worker(worker)
 | |
|     , m_width(52) {
 | |
|     ui->setupUi(this);
 | |
| 
 | |
|     ui->updateProgress->setRange(1, 100);
 | |
|     ui->updateProgress->reset();
 | |
| 
 | |
|     m_startTimer = new QTimer(this);
 | |
|     connect(m_startTimer, SIGNAL(timeout()), ui->start, SLOT(click()));
 | |
|     m_startTimer->setSingleShot(true);
 | |
|     m_startTimer->start(5 * 1000);
 | |
| 
 | |
|     m_exitTimer = new QTimer(this);
 | |
|     connect(m_exitTimer, SIGNAL(timeout()), ui->exit, SLOT(click()));
 | |
|     m_exitTimer->setSingleShot(true);
 | |
|     m_exitTimer->start(1800 * 1000);
 | |
| 
 | |
|     connect(m_startTimer, SIGNAL(timeout()), ui->start, SLOT(click()));
 | |
|     connect(m_exitTimer, SIGNAL(timeout()), ui->exit, SLOT(click()));
 | |
|     connect(ui->start, SIGNAL(clicked()), m_worker, SLOT(update()));
 | |
|     connect(ui->exit, SIGNAL(clicked()), this, SLOT(onQuit()));
 | |
|     connect(m_worker, SIGNAL(stopStartTimer()), this, SLOT(onStopStartTimer()));
 | |
|     connect(m_worker, SIGNAL(restartExitTimer()), this, SLOT(onRestartExitTimer()));
 | |
|     connect(m_worker, SIGNAL(appendText(QString, QString)), this, SLOT(onAppendText(QString, QString)));
 | |
|     connect(m_worker, SIGNAL(showErrorMessage(QString,QString)), this, SLOT(onShowErrorMessage(QString,QString)));
 | |
|     connect(m_worker, SIGNAL(setProgress(quint8)), this, SLOT(onSetProgress(quint8)));
 | |
| 
 | |
|     QStringList lst;
 | |
|     QString start = QDateTime::currentDateTime().toString(Qt::ISODate);
 | |
|     lst << QString("Start: ") + start.leftJustified(m_width-10);
 | |
|     lst << QString("").leftJustified(m_width-3, '=');
 | |
|     lst << QString("Machine number  : %1 ").arg(m_worker->machineNr()).leftJustified(m_width-3);
 | |
|     lst << QString("Customer number : %1 ").arg(m_worker->customerNr()).leftJustified(m_width-3);
 | |
|     lst << QString("Zone number     : %1 (%2)").arg(m_worker->zoneNr()).arg(Utils::zoneName(m_worker->zoneNr())).leftJustified(m_width-3);
 | |
|     lst << QString("").leftJustified(m_width-3, '=');
 | |
| 
 | |
|     ui->updateStatus->setText(lst.join('\n'));
 | |
|     ui->updateStatus->setEnabled(true);
 | |
| }
 | |
| 
 | |
| MainWindow::~MainWindow() {
 | |
|     delete m_startTimer;
 | |
|     delete m_exitTimer;
 | |
|     delete ui;
 | |
| }
 | |
| 
 | |
| void MainWindow::onStopStartTimer() {
 | |
|     m_startTimer->stop();
 | |
| }
 | |
| 
 | |
| void MainWindow::onRestartExitTimer() {
 | |
|     m_exitTimer->stop();
 | |
|     m_exitTimer->start(5 * 1000);
 | |
| }
 | |
| 
 | |
| void MainWindow::onQuit() {
 | |
|     if (!m_worker->updateProcessRunning()) {
 | |
|         qApp->quit();
 | |
|     }
 | |
| }
 | |
| 
 | |
| void MainWindow::onSetProgress(quint8 v) {
 | |
|     qCritical() << "SET VAL" << v;
 | |
|     ui->updateProgress->setValue(v);
 | |
| }
 | |
| 
 | |
| void MainWindow::onAppendText(QString text, QString suffix) {
 | |
|     QString editText = ui->updateStatus->toPlainText();
 | |
|     QStringList lines = editText.split('\n');
 | |
|     for (int i=0; i<lines.size(); ++i) {
 | |
|         qCritical() << lines.at(i);
 | |
|     }
 | |
|     if (!suffix.contains("[SUCCESS]")) {
 | |
|         editText += text.leftJustified(m_width-9) + suffix;
 | |
|         ui->updateStatus->setPlainText(editText);
 | |
|     } else {
 | |
|         editText += QString("\n").leftJustified(m_width-3, '=');
 | |
|         editText += QString("\n").leftJustified(m_width-12) + " [SUCCESS]";
 | |
|     }
 | |
|     ui->updateStatus->setText(editText);
 | |
|     ui->updateStatus->setEnabled(true);
 | |
| }
 | |
| 
 | |
| void MainWindow::onShowErrorMessage(QString title, QString text) {
 | |
|     QMessageBox::critical(this, title, text, QMessageBox::Ok);
 | |
| }
 |