コード例 #1
0
ファイル: time_widget.cpp プロジェクト: bdajeje/QtAlarm
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();
}
コード例 #2
0
void MainWindow::onFilesUpdated(uint64_t files, uint64_t maxFiles)
{
    Q_D(MainWindow);

    d->files = files;
    d->maxFiles = maxFiles;

    updateProgressText();
}
コード例 #3
0
ファイル: time_widget.cpp プロジェクト: bdajeje/QtAlarm
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());
}
コード例 #4
0
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);
    }
}
コード例 #5
0
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();
}