From bc226a8d813b48042581b745068771f6817753ed Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Wed, 20 Mar 2019 15:59:37 -0400 Subject: Add data sensitivity to dock widget system. --- ui/dockhandler.h | 2 +- ui/featuremap.h | 3 ++- ui/functionlist.h | 5 ++++- ui/minigraph.h | 1 - ui/viewframe.h | 9 +++------ 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 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> m_extendedViewCache; + std::map>> m_extViewCache; std::map m_viewCache; std::stack> m_back, m_forward; bool m_graphViewPreferred = false; std::vector 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(); -- cgit v1.3.1