diff options
| author | Brian Potchik <brian@vector35.com> | 2022-11-03 16:52:25 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2022-11-10 16:19:13 -0500 |
| commit | f647755655df27af2e5b55af12e19d06acb76930 (patch) | |
| tree | 24c66b9c866e3dcfb1390fdba0996767523adced | |
| parent | d67d5b63f3a17d10b7b7ca722b7192220447209a (diff) | |
Add ability to quiesce views not active in a ViewFrame.
| -rw-r--r-- | ui/disassemblyview.h | 7 | ||||
| -rw-r--r-- | ui/flowgraphwidget.h | 4 | ||||
| -rw-r--r-- | ui/hexeditor.h | 4 | ||||
| -rw-r--r-- | ui/linearview.h | 4 | ||||
| -rw-r--r-- | ui/sidebar.h | 6 | ||||
| -rw-r--r-- | ui/viewframe.h | 27 |
6 files changed, 26 insertions, 26 deletions
diff --git a/ui/disassemblyview.h b/ui/disassemblyview.h index f7cadb2a..54d3a71d 100644 --- a/ui/disassemblyview.h +++ b/ui/disassemblyview.h @@ -55,6 +55,8 @@ class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget explicit DisassemblyView(DisassemblyContainer* parent, BinaryViewRef data, FunctionRef func = nullptr, bool navToAddr = false, uint64_t addr = 0); + virtual void notifyRefresh() override; + virtual void updateFonts() override; virtual bool navigate(uint64_t pos) override; @@ -172,7 +174,6 @@ class BINARYNINJAUIAPI DisassemblyFunctionHeader : public QWidget FunctionRef m_func; QProgressIndicator* m_updateIndicator; - QTimer* m_updateTimer; GraphTypeLabel* m_graphType = nullptr; RenderContext m_render; @@ -182,9 +183,6 @@ class BINARYNINJAUIAPI DisassemblyFunctionHeader : public QWidget void adjustSize(int width, int height); - private Q_SLOTS: - void updateTimerEvent(); - protected: virtual void paintEvent(QPaintEvent* event) override; virtual void resizeEvent(QResizeEvent* event) override; @@ -199,6 +197,7 @@ class BINARYNINJAUIAPI DisassemblyFunctionHeader : public QWidget void setCurrentFunction(FunctionRef func); void setILViewType(BNFunctionGraphType ilViewType); void setHighlightToken(const HighlightTokenState& state); + void notifyRefresh(); virtual QSize sizeHint() const override; }; diff --git a/ui/flowgraphwidget.h b/ui/flowgraphwidget.h index 9ee41e65..3d529433 100644 --- a/ui/flowgraphwidget.h +++ b/ui/flowgraphwidget.h @@ -100,7 +100,6 @@ class BINARYNINJAUIAPI FlowGraphWidget : bool m_ready; QTimer* m_loadingTimer; - QTimer* m_updateTimer; QTimer* m_zoomTimer; QTimer* m_zoomPauseTimer; @@ -209,6 +208,8 @@ class BINARYNINJAUIAPI FlowGraphWidget : FlowGraphWidget(QWidget* parent, BinaryViewRef view, FlowGraphRef graph = FlowGraphRef()); ~FlowGraphWidget(); + virtual void notifyRefresh() override; + virtual void OnAnalysisFunctionUpdated(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override; virtual void OnAnalysisFunctionUpdateRequested(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override; virtual void OnDataMetadataUpdated(BinaryNinja::BinaryView* data, uint64_t offset) override; @@ -322,7 +323,6 @@ class BINARYNINJAUIAPI FlowGraphWidget : private Q_SLOTS: void loadingTimerEvent(); - void updateTimerEvent(); void hoverTimerEvent(); void zoomTimerEvent(); bool zoomDisabled(); diff --git a/ui/hexeditor.h b/ui/hexeditor.h index b971a1cb..1a485be9 100644 --- a/ui/hexeditor.h +++ b/ui/hexeditor.h @@ -33,6 +33,8 @@ class BINARYNINJAUIAPI HexEditor : explicit HexEditor(BinaryViewRef data, ViewFrame* view, uint64_t startAddr = 0); virtual ~HexEditor(); + virtual void notifyRefresh() override; + virtual bool canAssemble() override { return true; } virtual bool canCompile() override { return true; } @@ -195,7 +197,6 @@ class BINARYNINJAUIAPI HexEditor : bool m_insertMode; QString m_status; QTimer* m_cursorTimer; - QTimer* m_updateTimer; Qt::KeyboardModifiers m_ctrl, m_command; RenderContext m_render; @@ -226,7 +227,6 @@ class BINARYNINJAUIAPI HexEditor : void scrollBarMoved(int value); void scrollBarAction(int action); void cursorTimerEvent(); - void updateTimerEvent(); }; /*! diff --git a/ui/linearview.h b/ui/linearview.h index 3c5ce9eb..4cf67bdb 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -196,7 +196,6 @@ class BINARYNINJAUIAPI LinearView : public QAbstractScrollArea, public View, pub size_t m_topLine; std::optional<double> m_topOrderingIndexOffset; - QTimer* m_updateTimer; QTimer* m_hoverTimer; QPointF m_previewPos; @@ -347,7 +346,6 @@ private Q_SLOTS: void scrollBarMoved(int value); void scrollBarAction(int action); - void updateTimerEvent(); void hoverTimerEvent(); void setStackAdjustment(); @@ -365,6 +363,8 @@ public: explicit LinearView(BinaryViewRef data, ViewFrame* view); virtual ~LinearView(); + virtual void notifyRefresh() override; + virtual bool canAssemble() override { return true; } virtual bool canCompile() override { return true; } diff --git a/ui/sidebar.h b/ui/sidebar.h index 79dcb3a8..ead1ca8d 100644 --- a/ui/sidebar.h +++ b/ui/sidebar.h @@ -44,11 +44,17 @@ class BINARYNINJAUIAPI SidebarWidget : public QWidget ContextMenuManager* m_contextMenuManager = nullptr; Menu* m_menu = nullptr; + QTimer* m_updateTimer = nullptr; + public: SidebarWidget(const QString& title); const QString& title() const { return m_title; } + void enableRefreshTimer(int interval); + void setRefreshQuiesce(bool enable); + virtual void notifyRefresh() {}; + virtual void notifyFontChanged() {} virtual void notifyOffsetChanged(uint64_t /*offset*/) {} virtual void notifyThemeChanged(); diff --git a/ui/viewframe.h b/ui/viewframe.h index 341caf2e..7be57ed1 100644 --- a/ui/viewframe.h +++ b/ui/viewframe.h @@ -121,6 +121,8 @@ class BINARYNINJAUIAPI View bool m_binaryDataNavigable = false; QPointer<TransformParameterDialog> m_transformParamDialog; + QTimer* m_updateTimer = nullptr; + bool writeDataToClipboard(const BinaryNinja::DataBuffer& data, bool binary, TransformRef xform); BinaryNinja::DataBuffer readDataFromClipboard(TransformRef xform); @@ -137,6 +139,10 @@ class BINARYNINJAUIAPI View View(); virtual ~View() {} + void enableRefreshTimer(QWidget* owner, int interval); + void setRefreshQuiesce(bool enable); + virtual void notifyRefresh() {}; + void setupView(QWidget* widget); virtual bool canAssemble() { return false; } @@ -244,16 +250,8 @@ class BINARYNINJAUIAPI View void forceSyncFromView(ViewFrame* frame = nullptr); virtual void clearRelatedHighlights() {} - virtual void setRelatedIndexHighlights(FunctionRef func, const std::set<size_t>& related) - { - (void)func; - (void)related; - } - virtual void setRelatedInstructionHighlights(FunctionRef func, const std::set<uint64_t>& related) - { - (void)func; - (void)related; - } + virtual void setRelatedIndexHighlights(FunctionRef func, const std::set<size_t>& related) { (void)func; (void)related; } + virtual void setRelatedInstructionHighlights(FunctionRef func, const std::set<uint64_t>& related) { (void)func; (void)related; } static void registerActions(); static void registerLateActions(); @@ -441,14 +439,11 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget } bool navigate(const QString& type, uint64_t offset, bool updateInfo = true, bool addHistoryEntry = true); - bool navigate(const QString& type, const std::function<bool(View*)>& handler, bool updateInfo = true, - bool addHistoryEntry = true); + bool navigate(const QString& type, const std::function<bool(View*)>& handler, bool updateInfo = true, bool addHistoryEntry = true); bool navigate(BinaryViewRef data, uint64_t offset, bool updateInfo = true, bool addHistoryEntry = true); bool navigateToFunction(FunctionRef func, uint64_t offset, bool updateInfo = true, bool addHistoryEntry = true); - bool goToReference( - BinaryViewRef data, FunctionRef func, uint64_t source, uint64_t target, bool addHistoryEntry = true); - bool navigateToViewLocation( - BinaryViewRef data, const ViewLocation& viewLocation, bool addHistoryEntry = true, bool center = false); + bool goToReference(BinaryViewRef data, FunctionRef func, uint64_t source, uint64_t target, bool addHistoryEntry = true); + bool navigateToViewLocation(BinaryViewRef data, const ViewLocation& viewLocation, bool addHistoryEntry = true, bool center = false); bool navigateToHistoryEntry(BinaryNinja::Ref<HistoryEntry> entry); QString getTypeForView(QWidget* view) const; QString getDataTypeForView(const QString& type) const; |
