mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-30 08:45:25 +00:00
* Fix #148: Show elapsed time of running analysis. * OptionsDialog: Add missing space after elapsed hours. * OptionsDialog: Hide elapsed label when showing the dialog.
This commit is contained in:
parent
134c0ebb39
commit
c03f3395cd
@ -24,6 +24,7 @@ OptionsDialog::OptionsDialog(MainWindow *main):
|
|||||||
setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint));
|
setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint));
|
||||||
ui->progressBar->setVisible(0);
|
ui->progressBar->setVisible(0);
|
||||||
ui->statusLabel->setVisible(0);
|
ui->statusLabel->setVisible(0);
|
||||||
|
ui->elapsedLabel->setVisible(0);
|
||||||
|
|
||||||
QString logoFile = (palette().window().color().value() < 127) ? ":/img/cutter_white_plain.svg" : ":/img/cutter_plain.svg";
|
QString logoFile = (palette().window().color().value() < 127) ? ":/img/cutter_white_plain.svg" : ":/img/cutter_plain.svg";
|
||||||
ui->logoSvgWidget->load(logoFile);
|
ui->logoSvgWidget->load(logoFile);
|
||||||
@ -131,6 +132,7 @@ void OptionsDialog::setupAndStartAnalysis(int level, QList<QString> advanced)
|
|||||||
ui->statusLabel->setEnabled(1);
|
ui->statusLabel->setEnabled(1);
|
||||||
ui->progressBar->setVisible(1);
|
ui->progressBar->setVisible(1);
|
||||||
ui->statusLabel->setVisible(1);
|
ui->statusLabel->setVisible(1);
|
||||||
|
ui->elapsedLabel->setVisible(1);
|
||||||
|
|
||||||
ui->statusLabel->setText(tr("Starting analysis"));
|
ui->statusLabel->setText(tr("Starting analysis"));
|
||||||
//ui->progressBar->setValue(5);
|
//ui->progressBar->setValue(5);
|
||||||
@ -139,12 +141,42 @@ void OptionsDialog::setupAndStartAnalysis(int level, QList<QString> advanced)
|
|||||||
|
|
||||||
core->resetDefaultAsmOptions();
|
core->resetDefaultAsmOptions();
|
||||||
|
|
||||||
|
// Timer for showing elapsed analysis time.
|
||||||
|
analTimer.setInterval(1000);
|
||||||
|
analTimer.setSingleShot(false);
|
||||||
|
analTimer.start();
|
||||||
|
analElapsedTimer.start();
|
||||||
|
|
||||||
|
updateProgressTimer();
|
||||||
|
connect(&analTimer, SIGNAL(timeout()), this, SLOT(updateProgressTimer()));
|
||||||
|
|
||||||
// Threads stuff
|
// Threads stuff
|
||||||
// connect signal/slot
|
// connect signal/slot
|
||||||
connect(&analThread, &AnalThread::updateProgress, this, &OptionsDialog::updateProgress);
|
connect(&analThread, &AnalThread::updateProgress, this, &OptionsDialog::updateProgress);
|
||||||
analThread.start(main, level, advanced);
|
analThread.start(main, level, advanced);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OptionsDialog::updateProgressTimer()
|
||||||
|
{
|
||||||
|
int secondsElapsed = (analElapsedTimer.elapsed()+500)/1000;
|
||||||
|
int minutesElapsed = secondsElapsed / 60;
|
||||||
|
int hoursElapsed = minutesElapsed / 60;
|
||||||
|
|
||||||
|
QString label = tr("Running since") + " ";
|
||||||
|
if(hoursElapsed)
|
||||||
|
{
|
||||||
|
label += tr("%n hour", "%n hours", hoursElapsed);
|
||||||
|
label += " ";
|
||||||
|
}
|
||||||
|
if(minutesElapsed)
|
||||||
|
{
|
||||||
|
label += tr("%n minute", "%n minutes", minutesElapsed % 60);
|
||||||
|
label += " ";
|
||||||
|
}
|
||||||
|
label += tr("%n seconds", "%n second", secondsElapsed % 60);
|
||||||
|
ui->elapsedLabel->setText(label);
|
||||||
|
}
|
||||||
|
|
||||||
void OptionsDialog::updateProgress(const QString &status)
|
void OptionsDialog::updateProgress(const QString &status)
|
||||||
{
|
{
|
||||||
ui->statusLabel->setText(status);
|
ui->statusLabel->setText(status);
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QElapsedTimer>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "cutter.h"
|
#include "cutter.h"
|
||||||
#include "AnalThread.h"
|
#include "AnalThread.h"
|
||||||
@ -32,6 +34,8 @@ private slots:
|
|||||||
void on_archComboBox_currentIndexChanged(int index);
|
void on_archComboBox_currentIndexChanged(int index);
|
||||||
void on_pdbSelectButton_clicked();
|
void on_pdbSelectButton_clicked();
|
||||||
|
|
||||||
|
void updateProgressTimer();
|
||||||
|
|
||||||
void updatePDBLayout();
|
void updatePDBLayout();
|
||||||
|
|
||||||
void anal_finished();
|
void anal_finished();
|
||||||
@ -51,6 +55,8 @@ public:
|
|||||||
QString getSelectedCPU();
|
QString getSelectedCPU();
|
||||||
int getSelectedBits();
|
int getSelectedBits();
|
||||||
QString getSelectedOS();
|
QString getSelectedOS();
|
||||||
|
QTimer analTimer;
|
||||||
|
QElapsedTimer analElapsedTimer;
|
||||||
void reject() override;
|
void reject() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>598</width>
|
<width>598</width>
|
||||||
<height>460</height>
|
<height>524</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -900,6 +900,25 @@
|
|||||||
<property name="topMargin">
|
<property name="topMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="elapsedLabel">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Timer label</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_3">
|
<spacer name="horizontalSpacer_3">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
Loading…
Reference in New Issue
Block a user