cutter/src/dialogs/InitialOptionsDialog.h
Giovanni cf14fd1006
Add Tools > BaseFind + command line options (#3198)
* Add Tools > BaseFind
* Rewritten how cutter parses and stores the initial options
* Update docs and fixed comments
* Add missing endianness option
2023-06-25 11:42:23 +08:00

83 lines
2.1 KiB
C++

#ifndef OPTIONSDIALOG_H
#define OPTIONSDIALOG_H
#include <QDialog>
#include <QCheckBox>
#include <memory>
#include "common/InitialOptions.h"
namespace Ui {
class InitialOptionsDialog;
}
class CutterCore;
class MainWindow;
class InitialOptionsDialog : public QDialog
{
Q_OBJECT
public:
explicit InitialOptionsDialog(MainWindow *main);
~InitialOptionsDialog();
void setupAndStartAnalysis();
private slots:
void on_okButton_clicked();
void on_analysisSlider_valueChanged(int value);
void on_AdvOptButton_clicked();
void on_analysisCheckBox_clicked(bool checked);
void on_archComboBox_currentIndexChanged(int index);
void on_pdbSelectButton_clicked();
void on_scriptSelectButton_clicked();
void updatePDBLayout();
void updateScriptLayout();
protected:
void closeEvent(QCloseEvent *event) override;
private:
std::unique_ptr<Ui::InitialOptionsDialog> ui;
MainWindow *main;
CutterCore *core;
QString analysisDescription(int level);
QString shellcode;
int analysisLevel;
QList<RzAsmPluginDescription> asmPlugins;
void updateCPUComboBox();
struct AnalysisCommands
{
CommandDescription commandDesc;
QCheckBox *checkbox;
bool checked;
};
QList<AnalysisCommands> analysisCommands;
QList<QString> getAnalysisCommands(const InitialOptions &options);
QString getSelectedArch() const;
QString getSelectedCPU() const;
int getSelectedBits() const;
InitialOptions::Endianness getSelectedEndianness() const;
QString getSelectedOS() const;
QList<CommandDescription> getSelectedAdvancedAnalCmds() const;
/**
* @brief setTooltipWithConfigHelp is an helper function that add a tolltip to a widget with
* a description of a given Rizin eval config.
* @param w - a widget to which to add the tooltip
* @param config - name of a configuration variable such as "asm.bits".
*/
void setTooltipWithConfigHelp(QWidget *w, const char *config);
public:
void loadOptions(const InitialOptions &options);
void reject() override;
};
#endif // OPTIONSDIALOG_H