diff options
Diffstat (limited to 'examples/triage/sections.h')
| -rw-r--r-- | examples/triage/sections.h | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/examples/triage/sections.h b/examples/triage/sections.h index 00285df8..d4cdb29e 100644 --- a/examples/triage/sections.h +++ b/examples/triage/sections.h @@ -14,11 +14,43 @@ class SegmentsWidget : public QWidget }; -class SectionsWidget : public QWidget +class SectionsModel : public QObject, public BinaryNinja::BinaryDataNotification { + Q_OBJECT + + BinaryViewRef m_data; std::vector<SectionRef> m_sections; + void updateSections(); + +signals: + void sectionsChanged(); + public: - SectionsWidget(QWidget* parent, BinaryViewRef data); + SectionsModel(QObject* parent, BinaryViewRef data); + virtual ~SectionsModel(); + const std::vector<SectionRef>& GetSections() const { return m_sections; } + + virtual void OnSectionAdded(BinaryNinja::BinaryView* data, BinaryNinja::Section* section) override; + virtual void OnSectionRemoved(BinaryNinja::BinaryView* data, BinaryNinja::Section* section) override; + virtual void OnSectionUpdated(BinaryNinja::BinaryView* data, BinaryNinja::Section* section) override; +}; + + +class SectionsWidget : public QWidget +{ + Q_OBJECT + + BinaryViewRef m_data; + SectionsModel* m_model; + QGridLayout* m_layout; + bool m_isRebuilding; + + void rebuildLayout(); + + public: + SectionsWidget(QWidget* parent, BinaryViewRef data); + virtual ~SectionsWidget(); + const std::vector<SectionRef>& GetSections() const { return m_model->GetSections(); } }; |
