mirror of
https://github.com/rizinorg/cutter.git
synced 2025-01-10 22:15:26 +00:00
64 lines
1.8 KiB
C
64 lines
1.8 KiB
C
|
#ifndef LINKTYPEDIALOG_H
|
||
|
#define LINKTYPEDIALOG_H
|
||
|
|
||
|
#include "core/Cutter.h"
|
||
|
#include <QDialog>
|
||
|
|
||
|
namespace Ui {
|
||
|
class LinkTypeDialog;
|
||
|
}
|
||
|
|
||
|
class LinkTypeDialog : public QDialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
|
explicit LinkTypeDialog(QWidget *parent = nullptr);
|
||
|
~LinkTypeDialog();
|
||
|
|
||
|
/*!
|
||
|
* \brief Sets the default type which will be displayed in the combo box
|
||
|
* \param type Default type to be used as default type
|
||
|
*/
|
||
|
void setDefaultType(const QString &type);
|
||
|
|
||
|
/*!
|
||
|
* \brief Sets the value of the default address which will be displayed
|
||
|
* If the given address is linked to a type, then it also sets the default
|
||
|
* type to the currently linked type
|
||
|
* \param address The address to be used as default address
|
||
|
*/
|
||
|
void setDefaultAddress(QString address);
|
||
|
|
||
|
private slots:
|
||
|
|
||
|
/*!
|
||
|
* \brief Overrides the done() method of QDialog
|
||
|
* On clicking the Ok button, it links a valid address to a type.
|
||
|
* If "(No Type)" is selected as type, it removes the link.
|
||
|
* In case of an invalid address, it displays error message
|
||
|
* \param r The value which will be returned by exec()
|
||
|
*/
|
||
|
void done(int r) override;
|
||
|
|
||
|
/*!
|
||
|
* \brief Executed whenever the text inside exprLineEdit changes
|
||
|
* If expression evaluates to valid address, it is displayed in addressLineEdit
|
||
|
* Otherwise "Invalid Address" is shown in addressLineEdit
|
||
|
* \param text The current value of exprLineEdit
|
||
|
*/
|
||
|
void on_exprLineEdit_textChanged(const QString &text);
|
||
|
|
||
|
private:
|
||
|
Ui::LinkTypeDialog *ui;
|
||
|
|
||
|
/*!
|
||
|
* \brief Used for finding the type which is linked to the given address
|
||
|
* \param address
|
||
|
* \return The type linked to "address" if it exists, or empty string otherwise
|
||
|
*/
|
||
|
QString findLinkedType(RVA address);
|
||
|
};
|
||
|
|
||
|
#endif // LINKTYPEDIALOG_H
|