summaryrefslogtreecommitdiff
path: root/plugins/warp/ui/shared/misc.h
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2026-03-13 12:24:18 -0700
committerMason Reed <35282038+emesare@users.noreply.github.com>2026-03-24 18:46:48 -0700
commit3c88b11e5df33116580ac008e36092775df66135 (patch)
treecd64fbe149f05683ddabcccd0db7b87356f1f8cf /plugins/warp/ui/shared/misc.h
parentf325aa7b6026a1daef84931baeb1f50d7da10c10 (diff)
[WARP] Improved UX and API
- Exposes WARP type objects directly - Adds processor API (for generating warp files directly) - Adds file and chunk API - Misc cleanup - Simplified the amount of commands - Replaced the "Create" commands with a purpose built processor dialog - Added a native QT viewer for WARP files - Simplified committing to a remote with a purpose built commit dialog
Diffstat (limited to 'plugins/warp/ui/shared/misc.h')
-rw-r--r--plugins/warp/ui/shared/misc.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/plugins/warp/ui/shared/misc.h b/plugins/warp/ui/shared/misc.h
index 92e27fd8..e9d6fd43 100644
--- a/plugins/warp/ui/shared/misc.h
+++ b/plugins/warp/ui/shared/misc.h
@@ -67,6 +67,14 @@ public:
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
};
+class SourcePathDelegate : public QStyledItemDelegate
+{
+ Q_OBJECT
+
+public:
+ explicit SourcePathDelegate(QObject* parent = nullptr) : QStyledItemDelegate(parent) {}
+ void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
+};
class GenericTextFilterModel : public QSortFilterProxyModel
{
@@ -109,6 +117,7 @@ struct ParsedQuery
class WarpRemoveMatchDialog : public QDialog
{
Q_OBJECT
+
public:
explicit WarpRemoveMatchDialog(QWidget* parent, FunctionRef func);
@@ -116,7 +125,7 @@ public:
private:
FunctionRef m_func;
- QCheckBox* m_ignoreCheck{nullptr};
+ QCheckBox* m_ignoreCheck {nullptr};
};
constexpr const char* ALLOWED_TAGS_SETTING = "warp.fetcher.allowedSourceTags";
@@ -144,4 +153,15 @@ inline size_t GetBatchSizeFromView(const BinaryViewRef& view)
if (!settings->Contains(BATCH_SIZE_SETTING))
return 10000;
return settings->Get<uint64_t>(BATCH_SIZE_SETTING, view);
+}
+
+inline void RegisterPluginAction(
+ std::string name, std::function<void(const UIActionContext&)> action,
+ std::function<bool(const UIActionContext&)> isValid = [](const UIActionContext&) { return true; })
+{
+ const QString actionName = QString("WARP\\%1").arg(QString::fromStdString(name));
+ if (!UIAction::isActionRegistered(actionName))
+ UIAction::registerAction(actionName);
+ UIActionHandler::globalActions()->bindAction(actionName, UIAction(action, isValid));
+ Menu::mainMenu("Plugins")->addAction(actionName, "Plugins");
} \ No newline at end of file