summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2019-03-20 15:59:37 -0400
committerBrian Potchik <brian@vector35.com>2019-03-20 15:59:37 -0400
commitbc226a8d813b48042581b745068771f6817753ed (patch)
treee9ea93db7e451770718e696b93c53113f5dce462
parent8e943538fcfaed733e813175db8ba8d8f6fdcc91 (diff)
Add data sensitivity to dock widget system.
-rw-r--r--ui/dockhandler.h2
-rw-r--r--ui/featuremap.h3
-rw-r--r--ui/functionlist.h5
-rw-r--r--ui/minigraph.h1
-rw-r--r--ui/viewframe.h9
5 files changed, 10 insertions, 10 deletions
diff --git a/ui/dockhandler.h b/ui/dockhandler.h
index 08392532..737eba5a 100644
--- a/ui/dockhandler.h
+++ b/ui/dockhandler.h
@@ -62,10 +62,10 @@ public:
QWidget* getParentWindow() { return m_parentWindow; }
virtual void focusInput() { };
- virtual bool isAvailable(ViewFrame* /*frame*/) { return true; };
virtual void notifyViewChanged(ViewFrame* /*frame*/) { };
virtual bool shouldBeVisible(ViewFrame* /*frame*/) { return true; };
virtual void updateFonts() { };
+ virtual void updateTheme() { };
};
class BINARYNINJAUIAPI DockHandler: public QObject
diff --git a/ui/featuremap.h b/ui/featuremap.h
index bc2a13cd..eb8970d3 100644
--- a/ui/featuremap.h
+++ b/ui/featuremap.h
@@ -71,7 +71,8 @@ public:
void backgroundRefresh();
std::pair<uint64_t, bool> getOffsetForAddress(uint64_t addr);
void setCurrentLocation(uint64_t address);
- void updateTheme();
+
+ virtual void updateTheme() override;
void renderDataVariable(const BinaryNinja::DataVariable& var, bool ignoreString = false);
diff --git a/ui/functionlist.h b/ui/functionlist.h
index 893a09ce..c9119d3e 100644
--- a/ui/functionlist.h
+++ b/ui/functionlist.h
@@ -13,6 +13,8 @@
#define FUNCTION_LIST_UPDATE_INTERVAL 250
+class FunctionsView;
+
class BINARYNINJAUIAPI FunctionListModel: public QAbstractItemModel, public BinaryNinja::BinaryDataNotification
{
Q_OBJECT
@@ -103,12 +105,13 @@ class BINARYNINJAUIAPI FunctionList: public QListView, public FilterTarget
ViewFrame* m_view;
BinaryViewRef m_data;
+ FunctionsView* m_functionsView;
FunctionListModel* m_list;
QTimer* m_updateTimer;
bool m_disableScrollToFunction;
public:
- FunctionList(QWidget* parent, ViewFrame* frame, BinaryViewRef data);
+ FunctionList(FunctionsView* parent, ViewFrame* frame, BinaryViewRef data);
void updateFonts();
void setCurrentFunction(FunctionRef func);
diff --git a/ui/minigraph.h b/ui/minigraph.h
index 25baa58c..d0a1c0cb 100644
--- a/ui/minigraph.h
+++ b/ui/minigraph.h
@@ -23,7 +23,6 @@ public:
MiniGraph(QWidget* parent);
~MiniGraph();
- virtual bool isAvailable(ViewFrame* frame) override;
virtual void notifyViewChanged(ViewFrame* frame) override;
virtual bool shouldBeVisible(ViewFrame* frame) override;
diff --git a/ui/viewframe.h b/ui/viewframe.h
index 402c95c9..6217fffa 100644
--- a/ui/viewframe.h
+++ b/ui/viewframe.h
@@ -157,7 +157,7 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget
Q_OBJECT
private:
- QWidget* createView(const QString& typeName, ViewType* type, BinaryViewRef data);
+ QWidget* createView(const QString& typeName, ViewType* type, BinaryViewRef data, bool createExtendedViews = true);
HistoryEntry* getHistoryEntry();
FileContext* m_context;
@@ -165,15 +165,12 @@ private:
QWidget* m_view;
QWidget* m_viewContainer;
QVBoxLayout* m_viewLayout;
- std::map<QString, QPointer<QWidget>> m_extendedViewCache;
+ std::map<QString, std::map<QString, QPointer<QWidget>>> m_extViewCache;
std::map<QString, QWidget*> m_viewCache;
std::stack<BinaryNinja::Ref<HistoryEntry>> m_back, m_forward;
bool m_graphViewPreferred = false;
std::vector<QString> m_viewTypePriority;
- FunctionsView* m_funcs = nullptr;
- FeatureMap* m_featureMap = nullptr;
-
UIActionHandler m_actionHandler;
protected:
@@ -190,7 +187,6 @@ public:
virtual ~ViewFrame();
FileContext* getFileContext() const { return m_context; }
- FunctionsView* getFunctionsView() const { return m_funcs; }
QString getTabName();
QString getShortFileName();
@@ -220,6 +216,7 @@ public:
bool navigateToFunction(FunctionRef func, uint64_t offset, bool updateInfo = true);
bool goToReference(BinaryViewRef data, FunctionRef func, uint64_t source, uint64_t target);
QString getTypeForView(QWidget* view);
+ QString getDataTypeForView(const QString& type);
QString getDataTypeForView(QWidget* view);
bool closeRequest();