void TimeWidget::startState() { // Save selected values saveValues(); // Get max value const auto time_to_wait = timeToWait(); // Protection against wrong value if( time_to_wait <= 0 ) { QMessageBox::warning(this, tr("Wrong values"), tr("You need to specify a time superior to 0")); return; } // Set active and update button text m_active = true; m_widget_button->setText(tr("Cancel")); // Update the progresss bar m_widget_progress->setMaximum(time_to_wait); m_widget_progress->setValue(time_to_wait); updateProgressText(timesFromSeconds( remainingSeconds() )); m_widget_progress->setTextVisible(true); // Start the timer m_timer->start(1000); // In milliseconds emit started(); }
void MainWindow::onFilesUpdated(uint64_t files, uint64_t maxFiles) { Q_D(MainWindow); d->files = files; d->maxFiles = maxFiles; updateProgressText(); }
void TimeWidget::updateTime() { // Update progress bar value m_widget_progress->setValue( m_widget_progress->value() - 1 ); if(m_widget_progress->value() == 0) countdownReached(); const auto remaining_secs = remainingSeconds(); const auto times = timesFromSeconds(remaining_secs); // Update progress bar text updateProgressText(times); // Update window's title updateWindowTitle(progressText(times, true)); emit countdownUpdated(m_widget_progress->value()); }
void MainWindow::solveFEA() { rapidjson::Document configDoc = createConfigDoc(); feaTerminated = false; try { writeConfigDocToFile(configDoc, feaTmpConfigFilename); QStringList feaProgramArgs; feaProgramArgs << "-c" << feaTmpConfigFilename.c_str(); feaProcess = new QProcess(this); connect(progress, SIGNAL(canceled()), this, SLOT(handleCanceledFEA())); connect(feaProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(handleFinishedFEA(int, QProcess::ExitStatus))); connect(feaProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(updateProgressText())); connect(feaProcess, SIGNAL(readyReadStandardError()), this, SLOT(handleCanceledFEA())); feaProcess->start(QString::fromStdString(feaProgram), feaProgramArgs); } catch (std::exception &e) { std::cerr << "error: " << e.what(); QString message_title("Error"); QString message_text(e.what()); QMessageBox::critical(this, message_title, message_text); setEnabled(true); } }
void MainWindow::onProgressUpdated(uint64_t bytes, uint64_t maxBytes) { Q_D(MainWindow); // Normalize values to 1000000 static const int normalize = 1000000; int value; int max; if (maxBytes == 0) { value = 0; max = 0; } else { value = (double) bytes / maxBytes * normalize; max = normalize; } d->progressBar->setMaximum(max); d->progressBar->setValue(value); d->bytes = bytes; d->maxBytes = maxBytes; updateProgressText(); }