2017-03-29 10:18:37 +00:00
|
|
|
#ifndef OPTIONSDIALOG_H
|
|
|
|
#define OPTIONSDIALOG_H
|
|
|
|
|
|
|
|
#include <QDialog>
|
|
|
|
#include <QStringList>
|
2017-12-11 14:06:26 +00:00
|
|
|
#include <QTimer>
|
|
|
|
#include <QElapsedTimer>
|
2017-10-02 09:41:28 +00:00
|
|
|
#include <memory>
|
2018-03-04 17:42:02 +00:00
|
|
|
#include "Cutter.h"
|
2017-10-02 16:18:40 +00:00
|
|
|
#include "AnalThread.h"
|
2017-10-02 08:06:10 +00:00
|
|
|
#include "ui_OptionsDialog.h"
|
2017-03-29 10:18:37 +00:00
|
|
|
|
|
|
|
class MainWindow;
|
|
|
|
|
|
|
|
class OptionsDialog : public QDialog
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2017-05-13 18:09:36 +00:00
|
|
|
explicit OptionsDialog(MainWindow *main);
|
2017-03-29 10:18:37 +00:00
|
|
|
~OptionsDialog();
|
|
|
|
RAnalFunction functionAt(ut64 addr);
|
|
|
|
QStringList asm_plugins;
|
|
|
|
|
2017-07-24 11:05:28 +00:00
|
|
|
void setupAndStartAnalysis(int level, QList<QString> advanced);
|
2017-04-28 13:09:40 +00:00
|
|
|
|
2017-09-28 22:04:57 +00:00
|
|
|
public slots:
|
|
|
|
void updateProgress(const QString &str);
|
2017-03-29 10:18:37 +00:00
|
|
|
private slots:
|
|
|
|
void on_okButton_clicked();
|
|
|
|
void on_analSlider_valueChanged(int value);
|
|
|
|
void on_AdvOptButton_clicked();
|
2017-04-10 12:22:18 +00:00
|
|
|
void on_analCheckBox_clicked(bool checked);
|
2017-09-27 20:23:18 +00:00
|
|
|
void on_archComboBox_currentIndexChanged(int index);
|
|
|
|
void on_pdbSelectButton_clicked();
|
|
|
|
|
2017-12-11 14:06:26 +00:00
|
|
|
void updateProgressTimer();
|
|
|
|
|
2017-09-27 20:23:18 +00:00
|
|
|
void updatePDBLayout();
|
|
|
|
|
|
|
|
void anal_finished();
|
2017-04-10 12:22:18 +00:00
|
|
|
|
2018-03-09 12:57:57 +00:00
|
|
|
protected:
|
|
|
|
void closeEvent(QCloseEvent *event) override;
|
|
|
|
|
2017-03-29 10:18:37 +00:00
|
|
|
private:
|
2017-03-31 22:47:37 +00:00
|
|
|
AnalThread analThread;
|
2017-05-13 18:09:36 +00:00
|
|
|
MainWindow *main;
|
2017-10-09 18:08:35 +00:00
|
|
|
CutterCore *core;
|
2017-04-18 10:03:47 +00:00
|
|
|
int defaultAnalLevel;
|
2017-04-01 11:20:13 +00:00
|
|
|
|
2017-04-10 12:22:18 +00:00
|
|
|
QString analysisDescription(int level);
|
2017-09-27 20:23:18 +00:00
|
|
|
|
|
|
|
void updateCPUComboBox();
|
2017-12-21 11:29:58 +00:00
|
|
|
|
|
|
|
void setInteractionEnabled(bool enabled);
|
|
|
|
|
2017-09-28 22:04:57 +00:00
|
|
|
public:
|
2018-03-07 12:02:39 +00:00
|
|
|
enum class Endianness { Auto, Little, Big };
|
2018-01-20 10:35:31 +00:00
|
|
|
|
2017-10-02 09:41:28 +00:00
|
|
|
std::unique_ptr<Ui::OptionsDialog> ui;
|
2018-01-20 10:35:31 +00:00
|
|
|
|
2017-09-27 20:23:18 +00:00
|
|
|
QString getSelectedArch();
|
|
|
|
QString getSelectedCPU();
|
|
|
|
int getSelectedBits();
|
2018-03-07 12:02:39 +00:00
|
|
|
int getSelectedBBSize();
|
2018-01-20 10:35:31 +00:00
|
|
|
Endianness getSelectedEndianness();
|
2017-09-27 20:23:18 +00:00
|
|
|
QString getSelectedOS();
|
2017-12-11 14:06:26 +00:00
|
|
|
QTimer analTimer;
|
|
|
|
QElapsedTimer analElapsedTimer;
|
2017-12-06 12:32:35 +00:00
|
|
|
void reject() override;
|
2017-03-29 10:18:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // OPTIONSDIALOG_H
|