summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2020-10-24 22:18:28 -0400
committerBrian Potchik <brian@vector35.com>2020-10-24 22:18:28 -0400
commit905382cc267cc1d0ee5e3c6e122819b869f46701 (patch)
tree1c8b911942d53c4c0a149f5a188874b7c158501e /ui
parent798ff5b7e7b2de73d70017ddb0fc5e52150d9584 (diff)
PossibleValueSet dialog pulls existing values and miscellaneous cleanup.
Diffstat (limited to 'ui')
-rw-r--r--ui/commands.h2
-rw-r--r--ui/possiblevaluesetdialog.h58
2 files changed, 17 insertions, 43 deletions
diff --git a/ui/commands.h b/ui/commands.h
index d033fd21..d0e8b981 100644
--- a/ui/commands.h
+++ b/ui/commands.h
@@ -23,7 +23,7 @@ bool BINARYNINJAUIAPI createInferredMember(QWidget* parent, BinaryViewRef data,
FunctionRef func, BNFunctionGraphType type);
bool BINARYNINJAUIAPI inputPossibleValueSet(QWidget* parent, BinaryViewRef data, FunctionRef currentFunction,
- HighlightTokenState& highlight, uint64_t defSiteAddress);
+ HighlightTokenState& highlight, uint64_t defSiteAddress, size_t ilInstructionIndex = BN_INVALID_EXPR);
bool BINARYNINJAUIAPI overwriteCode(BinaryViewRef data, ArchitectureRef arch,
uint64_t addr, size_t len, const BinaryNinja::DataBuffer& buffer);
diff --git a/ui/possiblevaluesetdialog.h b/ui/possiblevaluesetdialog.h
index 5b5550a3..d2229de7 100644
--- a/ui/possiblevaluesetdialog.h
+++ b/ui/possiblevaluesetdialog.h
@@ -2,59 +2,33 @@
#include <QtWidgets/QDialog>
#include <QtWidgets/QLabel>
-#include <QtCore/QStringListModel>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QLineEdit>
-#include <QtCore/QTimer>
-#include <QtCore/QThread>
-#include <QToolTip>
-#include "binaryninjaapi.h"
-#include "dialogtextedit.h"
-#include "clickablelabel.h"
+
+#include "uitypes.h"
class BINARYNINJAUIAPI PossibleValueSetDialog: public QDialog
{
Q_OBJECT
- QComboBox* m_combo;
- QLineEdit* m_value;
- QStringListModel* m_model;
- QLabel* m_prompt;
- QString m_promptText;
- ClickableLabel* m_valueLabel;
BinaryViewRef m_view;
- bool m_resultValid;
- QStringList m_historyEntries;
- int m_historySize;
- QFont m_defaultFont;
- bool m_initialTextSelection;
- BinaryNinja::PossibleValueSet m_valueSet;
+ uint64_t m_addr;
+
+ QComboBox* m_combo;
+ QLineEdit* m_input;
QPushButton* m_acceptButton;
- QPalette m_defaultPalette;
- QString m_parseError;
- uint64_t m_here;
- QTimer* m_updateTimer;
+ QLabel* m_formatLabel;
-private Q_SLOTS:
- void accepted();
- void checkParse();
- void updateTimerEvent();
- void showHelp();
- void stateChanged(const QString&);
+ std::map<BNRegisterValueType, QString> m_typeText;
+ std::map<BNRegisterValueType, QString> m_formatText;
+ std::map<QString, BNRegisterValueType> m_regValueTypes;
+ BNRegisterValueType m_curRegValueType;
+
+ BinaryNinja::PossibleValueSet m_valueSet;
public:
- PossibleValueSetDialog(QWidget* parent, BinaryViewRef view, uint64_t here);
- BinaryNinja::PossibleValueSet getPossibleValueSet() const { return m_valueSet; }
- static BNRegisterValueType getRegisterValueTypeFromString(const std::string& stateStr);
-};
+ PossibleValueSetDialog(QWidget* parent, BinaryViewRef view, uint64_t addr, BinaryNinja::PossibleValueSet existingValue);
-static const QStringList valueSets = {
- "ConstantValue",
- "ConstantPointerValue",
- "StackFrameOffset",
- "SignedRangeValue",
- "UnsignedRangeValue",
- "InSetOfValues",
- "NotInSetOfValues",
- "UndeterminedValue",
+ BinaryNinja::PossibleValueSet getPossibleValueSet() const { return m_valueSet; }
+ void validate(const QString& input);
};