From 7f6e54fdc8ff4a06fdcd3c510a37add337f04bac Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Thu, 18 Nov 2021 13:52:25 -0500 Subject: Refactor main area to use pane system --- ui/sidebar.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'ui/sidebar.h') diff --git a/ui/sidebar.h b/ui/sidebar.h index 7d8d1b02..52ea38de 100644 --- a/ui/sidebar.h +++ b/ui/sidebar.h @@ -11,6 +11,7 @@ class SidebarEntry; class MainWindow; class ContextMenuManager; +class SplitPaneWidget; struct SidebarIcon { @@ -125,6 +126,7 @@ class BINARYNINJAUIAPI SidebarWidgetContainer: public QWidget QSplitter* m_contentSplitter; QStackedWidget* m_contentStackedWidget; QStackedWidget* m_referenceStackedWidget; + SplitPaneWidget* m_panes; ViewFrame* m_frame; QString m_dataType; BinaryViewRef m_data; @@ -133,9 +135,9 @@ class BINARYNINJAUIAPI SidebarWidgetContainer: public QWidget SidebarWidgetType* m_referenceActive = nullptr; SidebarWidgetType* m_pendingReferenceType = nullptr; std::map>> m_widgets; - std::map>> m_priorWidgets; - std::map>> m_priorContentSplitterSizes; - std::map>> m_priorParentSplitterSizes; + std::map>> m_priorWidgets; + std::map>> m_priorContentSplitterSizes; + std::map>> m_priorParentSplitterSizes; std::optional> m_pendingContentSplitterSizes; std::optional> m_pendingParentSplitterSizes; std::map>> m_currentViewLocation; @@ -150,8 +152,9 @@ public: SidebarWidgetContainer(); void setSplitter(QSplitter* splitter); - void setActiveContext(ViewFrame* frame, const QString& dataType, BinaryViewRef data); + void setActiveContext(SplitPaneWidget* panes, ViewFrame* frame, const QString& dataType, BinaryViewRef data); void destroyContext(ViewFrame* frame); + void destroyContext(SplitPaneWidget* panes); bool isContentActive() const { return m_contentActive != nullptr; } bool isActive(SidebarWidgetType* type) const { return m_contentActive == type || m_referenceActive == type; } @@ -178,7 +181,8 @@ public: void toggleSidebar(); - void moveContextToContainer(ViewFrame* frame, SidebarWidgetContainer* target); + void moveContextToContainer(SplitPaneWidget* panes, const std::vector& frames, + SidebarWidgetContainer* target); Q_SIGNALS: void showContents(); @@ -208,13 +212,15 @@ public: SidebarWidgetContainer* container() const { return m_currentContainer; } void setContainer(SidebarWidgetContainer* container); - void setActiveContext(ViewFrame* frame, const QString& dataType, BinaryViewRef data); + void setActiveContext(SplitPaneWidget* panes, ViewFrame* frame, const QString& dataType, BinaryViewRef data); SidebarWidget* widget(SidebarWidgetType* type); SidebarWidget* widget(const QString& name); void activate(SidebarWidgetType* type); void activate(const QString& name); + void deactivate(SidebarWidgetType* type); + void deactivate(const QString& name); void updateTheme(); void updateFonts(); -- cgit v1.3.1