summaryrefslogtreecommitdiff
path: root/ui/sidebar.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2021-11-18 13:52:25 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2022-01-10 15:25:18 -0700
commit7f6e54fdc8ff4a06fdcd3c510a37add337f04bac (patch)
tree60cce5955fcc05fc84f35f9662d49c7e0790dde1 /ui/sidebar.h
parentd9661f34eec6855d495a10eaafc2a8e2679756a7 (diff)
Refactor main area to use pane system
Diffstat (limited to 'ui/sidebar.h')
-rw-r--r--ui/sidebar.h18
1 files changed, 12 insertions, 6 deletions
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<ViewFrame*, std::map<QString, std::map<SidebarWidgetType*, SidebarWidgetAndHeader*>>> m_widgets;
- std::map<ViewFrame*, std::map<QString, std::pair<SidebarWidgetType*, SidebarWidgetType*>>> m_priorWidgets;
- std::map<ViewFrame*, std::map<QString, QList<int>>> m_priorContentSplitterSizes;
- std::map<ViewFrame*, std::map<QString, QList<int>>> m_priorParentSplitterSizes;
+ std::map<SplitPaneWidget*, std::map<QString, std::pair<SidebarWidgetType*, SidebarWidgetType*>>> m_priorWidgets;
+ std::map<SplitPaneWidget*, std::map<QString, QList<int>>> m_priorContentSplitterSizes;
+ std::map<SplitPaneWidget*, std::map<QString, QList<int>>> m_priorParentSplitterSizes;
std::optional<QList<int>> m_pendingContentSplitterSizes;
std::optional<QList<int>> m_pendingParentSplitterSizes;
std::map<ViewFrame*, std::map<QString, std::pair<View*, ViewLocation>>> 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<ViewFrame*>& 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();