summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2024-11-21 15:38:49 -0500
committerBrian Potchik <brian@vector35.com>2024-11-21 15:38:49 -0500
commitd707b4012c516e1aa15e0cc4b0b01ebdd3a7d184 (patch)
tree825f0e279902b23a4d104c03d1462c0579a4b8cf
parent07fac8b5f590f31f879dda36ecd7e943ae63f97c (diff)
Remove DockHandler and DockWidget support.
-rw-r--r--docs/guide/settings.md1
-rw-r--r--ui/dockhandler.h178
-rw-r--r--ui/featuremap.h3
-rw-r--r--ui/memorymap.h2
-rw-r--r--ui/scriptingconsole.h1
-rw-r--r--ui/stackview.h1
-rw-r--r--ui/tagtypelist.h1
-rw-r--r--ui/variablelist.h1
-rw-r--r--ui/viewframe.h11
9 files changed, 4 insertions, 195 deletions
diff --git a/docs/guide/settings.md b/docs/guide/settings.md
index cece3c51..0d5cc22e 100644
--- a/docs/guide/settings.md
+++ b/docs/guide/settings.md
@@ -295,7 +295,6 @@ All settings are uniquely identified with an identifier string. Identifiers are
|triage|Always Prefer Triage Summary View|Always prefer opening binaries in Triage Summary view, even when performing full analysis.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='triage.preferSummaryView'>triage.preferSummaryView</a>|
|triage|Prefer Triage Summary View for Raw Files|Prefer opening raw files in Triage Summary view.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='triage.preferSummaryViewForRaw'>triage.preferSummaryViewForRaw</a>|
|ui|Allow Welcome Popup|By default, the welcome window will only show up when it has changed and this install has not seen it. However, disabling this setting will prevent even that.|`boolean`|`True`|[`SettingsUserScope`]|<a id='ui.allowWelcome'>ui.allowWelcome</a>|
-|ui|Dock Window Title Bars|Enable to display title bars for dockable windows attached to a main window.|`boolean`|`True`|[`SettingsUserScope`]|<a id='ui.docks.titleBars'>ui.docks.titleBars</a>|
|ui|Typelib Explorer|Enables Type Library Explorer tools. Requires a restart and creates a new sidebar icon that can be enabled.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.experimental.typelibExplorer'>ui.experimental.typelibExplorer</a>|
|ui|Developer Tools|Enables Qt UI development tooling. Requires a restart and creates a new sidebar icon that can be enabled.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.experimental.uiDeveloperTools'>ui.experimental.uiDeveloperTools</a>|
|ui|Feature Map|Enable the feature map which displays a visual overview of the BinaryView.|`boolean`|`True`|[`SettingsUserScope`]|<a id='ui.featureMap.enable'>ui.featureMap.enable</a>|
diff --git a/ui/dockhandler.h b/ui/dockhandler.h
deleted file mode 100644
index 846fb883..00000000
--- a/ui/dockhandler.h
+++ /dev/null
@@ -1,178 +0,0 @@
-#pragma once
-
-#include <QtCore/QObject>
-#include <QtCore/QSettings>
-#include <QtWidgets/QDockWidget>
-#include <map>
-
-#include "binaryninjaapi.h"
-#include "action.h"
-#include "viewframe.h"
-#include "uitypes.h"
-
-class ContextMenuManager;
-class DockHandler;
-class Menu;
-
-/*!
-
- \defgroup dockhandler DockHandler
- \ingroup uiapi
-*/
-
-/*!
-
- \ingroup dockhandler
-*/
-struct BINARYNINJAUIAPI DockProperties
-{
- DockProperties() {};
- DockProperties(QDockWidget* dw, bool vis, Qt::DockWidgetArea dar, Qt::Orientation dor, bool dvis, bool vs) :
- dockWidget(dw), visibleState(vis), defaultArea(dar), defaultOrientation(dor), defaultVisibility(dvis),
- viewSensitive(vs), neverBeenVisible(true), sizeStash(0, 0), actionOnShow(nullptr)
- {}
- DockProperties(const DockProperties& dp) :
- dockWidget(dp.dockWidget), visibleState(dp.visibleState), defaultArea(dp.defaultArea),
- defaultOrientation(dp.defaultOrientation), defaultVisibility(dp.defaultVisibility),
- viewSensitive(dp.viewSensitive), neverBeenVisible(dp.neverBeenVisible), sizeStash(dp.sizeStash),
- actionOnShow(dp.actionOnShow)
- {}
- DockProperties& operator=(const DockProperties& dp)
- {
- dockWidget = dp.dockWidget;
- visibleState = dp.visibleState;
- defaultArea = dp.defaultArea;
- defaultOrientation = dp.defaultOrientation;
- defaultVisibility = dp.defaultVisibility;
- viewSensitive = dp.viewSensitive;
- neverBeenVisible = dp.neverBeenVisible;
- sizeStash = dp.sizeStash;
- actionOnShow = dp.actionOnShow;
- return *this;
- }
-
- QDockWidget* dockWidget;
- bool visibleState;
- Qt::DockWidgetArea defaultArea;
- Qt::Orientation defaultOrientation;
- bool defaultVisibility;
- bool viewSensitive;
- bool neverBeenVisible;
- QSize sizeStash;
- std::function<void()> actionOnShow;
-};
-
-/*!
-
- \ingroup dockhandler
-*/
-struct DockSizePrefs
-{
- DockSizePrefs() {}
- QList<QDockWidget*> docks;
- QList<int> hDockSizes;
- QList<int> vDockSizes;
- bool nonUniformVisibility = false;
-};
-
-/*!
-
- \ingroup dockhandler
-*/
-class BINARYNINJAUIAPI DockContextHandler
-{
- protected:
- QString m_name;
- UIActionHandler m_actionHandler;
- ContextMenuManager* m_contextMenuManager = nullptr;
- Menu* m_menu = nullptr;
- QWidget* m_parentWindow;
-
- public:
- DockContextHandler(QWidget* widget, const QString& name);
- virtual ~DockContextHandler();
-
- QString getName() const { return m_name; }
- QWidget* getParentWindow() const { return m_parentWindow; }
-
- virtual void notifyFontChanged() {}
- virtual void notifyOffsetChanged(uint64_t /*offset*/) {}
- virtual void notifyThemeChanged() {}
- virtual void notifyViewChanged(ViewFrame* /*frame*/) {}
- virtual void notifyViewLocationChanged(View* /*view*/, const ViewLocation& /*viewLocation*/) {}
- virtual void notifyVisibilityChanged(bool /*visible*/) {}
- virtual bool shouldBeVisible(ViewFrame* /*frame*/) { return true; }
-};
-Q_DECLARE_INTERFACE(DockContextHandler, "binary.ninja.dockcontexthandler/1.0");
-
-/*!
-
- \ingroup dockhandler
-*/
-class BINARYNINJAUIAPI DockHandler : public QObject
-{
- Q_OBJECT
-
- int m_windowIndex = 0;
- ViewFrame* m_viewFrame = nullptr;
- View* m_view = nullptr;
- BinaryViewRef m_data;
- std::map<QString, DockProperties> m_docks;
- bool m_resizeDocksRequest = false;
- bool m_shouldResizeDocks = false;
- std::map<Qt::DockWidgetArea, bool> m_enableHiddenGroupSave;
-
- std::map<View*, ViewLocation> m_currentViewLocation;
-
- friend class DockContextHandler;
- std::map<QWidget*, DockContextHandler*> m_contexts;
- std::map<QString, std::pair<QString, std::function<QWidget*(const QString&, ViewFrame*, BinaryViewRef)>>>
- m_widgetFactories;
- DockContextHandler* getDockContextHandler(QWidget* widget);
- bool addDockWidget(const QString& name, QWidget* widget, Qt::DockWidgetArea area, Qt::Orientation orientation,
- bool defaultVisibility);
-
- public:
- explicit DockHandler(QObject* parent, int windowIndex);
-
- void close();
- void notifyRestoredFromState();
- void reset(bool initial = false);
- void reset(const QString& name);
- void resizeDocksOnShow(bool resizeDocks) { m_resizeDocksRequest = resizeDocks; }
- bool addDockWidget(QWidget* widget, Qt::DockWidgetArea area = Qt::BottomDockWidgetArea,
- Qt::Orientation orientation = Qt::Horizontal, bool defaultVisibility = false);
- bool addDockWidget(const QString& name,
- const std::function<QWidget*(const QString&, ViewFrame*, BinaryViewRef)>& createWidget,
- Qt::DockWidgetArea area = Qt::BottomDockWidgetArea, Qt::Orientation orientation = Qt::Horizontal,
- bool defaultVisibility = false);
- void createDynamicWidgets(ViewFrame* frame, BinaryViewRef data, std::map<QString, QPointer<QWidget>>& store,
- std::vector<QString> filter, bool isExcludeFilter = true);
- QDockWidget* getDockWidget(const QString& name);
- ViewFrame* getViewFrame() { return m_viewFrame; }
- bool isVisible(const QString& name);
- void setVisible(const QString& name, bool visible);
-
- void saveState(QSettings& settings, const QString& windowStateName);
- void restoreState(QSettings& settings, const QString& windowStateName);
- void saveDockSizes(bool nullFrame = false);
- void restoreDockSizes();
-
- bool shouldResizeDocks();
- void updateFonts();
- void clearViewLocation(View* view);
- void updateViewLocation(View* view, const ViewLocation& viewLocation);
- void updateTheme();
- void addActionOnShow(const QString& name, const std::function<void()>& action);
-
- static DockHandler* getActiveDockHandler();
-
- Q_SIGNALS:
- void notifyVisibilityChanged();
-
- public Q_SLOTS:
- void viewChanged(ViewFrame* frame);
- void visibilityChanged(bool visible);
- void topLevelChanged(bool topLevel);
- void removeWidget(QObject* object);
-};
diff --git a/ui/featuremap.h b/ui/featuremap.h
index 12b25488..17407d1e 100644
--- a/ui/featuremap.h
+++ b/ui/featuremap.h
@@ -15,12 +15,11 @@
#include <vector>
#include "binaryninjaapi.h"
-#include "dockhandler.h"
+#include "action.h"
#include "notificationsdispatcher.h"
#include "uitypes.h"
class ContextMenuManager;
-class Menu;
class View;
class SplitPaneWidget;
diff --git a/ui/memorymap.h b/ui/memorymap.h
index 982bfe26..4052a646 100644
--- a/ui/memorymap.h
+++ b/ui/memorymap.h
@@ -9,11 +9,11 @@
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStyledItemDelegate>
-#include "dockhandler.h"
#include "render.h"
#include "sidebar.h"
#include "uitypes.h"
#include "fontsettings.h"
+#include "viewframe.h"
/*!
diff --git a/ui/scriptingconsole.h b/ui/scriptingconsole.h
index 23849e8f..730bba31 100644
--- a/ui/scriptingconsole.h
+++ b/ui/scriptingconsole.h
@@ -207,7 +207,6 @@ class BINARYNINJAUIAPI ScriptingConsole : public SidebarWidget, BinaryNinja::Scr
bool getScriptIsActive() const { return m_scriptActive; }
void clearConsole();
- void hideConsole();
void addInput(const std::string& text);
diff --git a/ui/stackview.h b/ui/stackview.h
index 43c6692e..02e16b48 100644
--- a/ui/stackview.h
+++ b/ui/stackview.h
@@ -6,7 +6,6 @@
#include <QtWidgets/QLineEdit>
#include <optional>
-#include "dockhandler.h"
#include "render.h"
#include "sidebar.h"
#include "uitypes.h"
diff --git a/ui/tagtypelist.h b/ui/tagtypelist.h
index cc99dcb9..62950405 100644
--- a/ui/tagtypelist.h
+++ b/ui/tagtypelist.h
@@ -7,7 +7,6 @@
#include <QtWidgets/QDialog>
#include <QtWidgets/QComboBox>
#include "binaryninjaapi.h"
-#include "dockhandler.h"
#include "viewframe.h"
#define TAGS_UPDATE_CHECK_INTERVAL 200
diff --git a/ui/variablelist.h b/ui/variablelist.h
index e10d40eb..7cad6e2a 100644
--- a/ui/variablelist.h
+++ b/ui/variablelist.h
@@ -7,7 +7,6 @@
#include <QtWidgets/QWidget>
#include "binaryninjacore.h"
-#include "dockhandler.h"
#include "filter.h"
#include "uitypes.h"
#include "viewframe.h"
diff --git a/ui/viewframe.h b/ui/viewframe.h
index 234e01c9..520e3f77 100644
--- a/ui/viewframe.h
+++ b/ui/viewframe.h
@@ -97,7 +97,6 @@ class BINARYNINJAUIAPI HistoryEntry : public BinaryNinja::RefCountObject
class AssembleDialog;
class ClickableStateLabel;
class CompileDialog;
-class DockHandler;
class FeatureMap;
class StatusBarWidget;
class ViewNavigationMode;
@@ -382,7 +381,7 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget
Q_OBJECT
private:
- QWidget* createView(const QString& typeName, ViewType* type, BinaryViewRef data, bool createDynamicWidgets = true);
+ QWidget* createView(const QString& typeName, ViewType* type, BinaryViewRef data);
BinaryNinja::Ref<HistoryEntry> getHistoryEntry();
ViewFrame* searchForOtherPane(const std::function<void(const std::function<void(ViewPane*)>&)>& enumerator);
@@ -392,7 +391,6 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget
QWidget* m_view = nullptr;
QWidget* m_viewContainer;
QVBoxLayout* m_viewLayout;
- std::map<QString, std::map<QString, QPointer<QWidget>>> m_extViewCache;
std::map<QString, QWidget*> m_viewCache;
std::list<BinaryNinja::Ref<HistoryEntry>> m_back, m_forward;
bool m_graphViewPreferred = false;
@@ -421,15 +419,13 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget
bool tryMainSymbolsNavigation();
public:
- explicit ViewFrame(QWidget* parent, FileContext* file, const QString& type, bool createDynamicWidgets = false);
+ explicit ViewFrame(QWidget* parent, FileContext* file, const QString& type);
virtual ~ViewFrame();
FileContext* getFileContext() const { return m_context; }
bool areFileContentsLocked(bool showToolTip = false);
void setFileContentsLocked(bool enable);
- DockHandler* getDockHandler();
-
QString getTabName();
QString getShortFileName();
std::vector<QString> getAvailableTypes() const;
@@ -451,8 +447,6 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget
bool setViewType(const QString& viewType);
void focus();
- QWidget* getExtendedView(const QString& name, bool create = false);
-
Sidebar* getSidebar();
template <class T>
@@ -484,7 +478,6 @@ class BINARYNINJAUIAPI ViewFrame : public QWidget
bool isAboutToClose() { return m_aboutToClose; }
bool closeRequest();
void closing();
- void clearViewLocation();
void updateFonts();
void updateTheme();