summaryrefslogtreecommitdiff
path: root/examples/triage/sections.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/triage/sections.h')
-rw-r--r--examples/triage/sections.h36
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(); }
};