diff options
| author | Brian Potchik <brian@vector35.com> | 2024-11-21 15:38:49 -0500 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2024-11-21 15:38:49 -0500 |
| commit | d707b4012c516e1aa15e0cc4b0b01ebdd3a7d184 (patch) | |
| tree | 825f0e279902b23a4d104c03d1462c0579a4b8cf /ui/dockhandler.h | |
| parent | 07fac8b5f590f31f879dda36ecd7e943ae63f97c (diff) | |
Remove DockHandler and DockWidget support.
Diffstat (limited to 'ui/dockhandler.h')
| -rw-r--r-- | ui/dockhandler.h | 178 |
1 files changed, 0 insertions, 178 deletions
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); -}; |
