summaryrefslogtreecommitdiff
path: root/plugins/warp/ui/shared/function.h
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-10-12 22:46:54 -0400
committerMason Reed <mason@vector35.com>2025-10-12 22:50:20 -0400
commit40f7d40e394657575001a8146d8233f1fc4356fd (patch)
treea1dfac7f90bbd284119d0a3e10e205fe2e0303c1 /plugins/warp/ui/shared/function.h
parent49558b88ed5dacaac0bdf1946291bc37a4a88cb9 (diff)
[WARP] Improve UX surrounding removal of matched functions
- Adds Python API to remove matched function - Adds command + UI actions to remove matched function - Adds command + UI actions to ignore function in subsequent matches
Diffstat (limited to 'plugins/warp/ui/shared/function.h')
-rw-r--r--plugins/warp/ui/shared/function.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/plugins/warp/ui/shared/function.h b/plugins/warp/ui/shared/function.h
index 5cfaff75..6281944d 100644
--- a/plugins/warp/ui/shared/function.h
+++ b/plugins/warp/ui/shared/function.h
@@ -49,6 +49,8 @@ public:
void InsertFunction(uint64_t address, WarpFunctionItem* item);
+ void RemoveFunction(uint64_t address);
+
WarpFunctionItem* GetItem(const QModelIndex& index) const;
std::optional<uint64_t> GetAddress(const QModelIndex& index) const;
@@ -68,6 +70,8 @@ public:
emit dataChanged(topLeft, bottomRight);
}
}
+
+ Warp::Ref<Warp::Function> GetMatchedFunction() const { return m_matchedFunction; }
};
class WarpFunctionFilterModel : public QSortFilterProxyModel
@@ -95,6 +99,7 @@ class WarpFunctionTableWidget : public QWidget, public FilterTarget
FilteredView* m_filterView;
QMenu* m_contextMenu;
std::map<QString, std::function<void(WarpFunctionItem*, std::optional<uint64_t>)>> m_contextMenuActions;
+ std::map<QString, std::function<bool(WarpFunctionItem*, std::optional<uint64_t>)>> m_contextMenuIsValid;
public:
explicit WarpFunctionTableWidget(QWidget* parent = nullptr);
@@ -107,10 +112,17 @@ public:
void RegisterContextMenuAction(
const QString& name, const std::function<void(WarpFunctionItem*, std::optional<uint64_t>)>& callback);
+ void RegisterContextMenuAction(
+ const QString &name,
+ const std::function<void(WarpFunctionItem *, std::optional<uint64_t>)> &callback,
+ const std::function<bool(WarpFunctionItem *, std::optional<uint64_t>)> &isValid);
+
void SetFunctions(QVector<WarpFunctionItem*> functions);
void InsertFunction(uint64_t address, WarpFunctionItem* function);
+ void RemoveFunction(uint64_t address);
+
void setFilter(const std::string&) override;
void scrollToFirstItem() override {}