diff options
| author | Mason Reed <mason@vector35.com> | 2025-08-26 23:59:38 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-10-01 21:38:39 -0400 |
| commit | ede39aee7e00c40a43b67ca18dd8ab80ee863d85 (patch) | |
| tree | 67c5eda347ece2282e3c888f38066b496e06dec8 /plugins/warp/ui/shared/misc.h | |
| parent | a1c46813e7f279aa4cfdb9dbb91c45b559ebeacd (diff) | |
[WARP] Enhanced network support
Diffstat (limited to 'plugins/warp/ui/shared/misc.h')
| -rw-r--r-- | plugins/warp/ui/shared/misc.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/plugins/warp/ui/shared/misc.h b/plugins/warp/ui/shared/misc.h index d2e6a1a8..35f640f5 100644 --- a/plugins/warp/ui/shared/misc.h +++ b/plugins/warp/ui/shared/misc.h @@ -5,9 +5,11 @@ #include <QStyledItemDelegate> #include <QTableView> #include <QVector> +#include <utility> #include "binaryninjaapi.h" #include "filter.h" +#include "warp.h" // Used to serialize into the item data for rendering with TokenDataDelegate. struct TokenData @@ -16,6 +18,10 @@ struct TokenData TokenData() = default; + TokenData(const std::string& name); + + TokenData(const BinaryNinja::Type &type, const std::string& name); + TokenData(const std::vector<BinaryNinja::InstructionTextToken> &tokens) { for (const auto &token: tokens) @@ -72,7 +78,7 @@ class GenericTextFilterModel : public QSortFilterProxyModel Q_OBJECT public: - GenericTextFilterModel(QObject *parent): QSortFilterProxyModel(parent) + GenericTextFilterModel(QObject *parent) : QSortFilterProxyModel(parent) { } @@ -82,3 +88,27 @@ public: bool lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const override; }; + +// Used to parse qualifiers out of a user-supplied string (or "query") +struct ParsedQuery +{ + // The actual query, without the qualifiers like source:<uuid> + QString query; + // The qualifiers used to build other optional parts of the query. + QHash<QString, QString> qualifiers; + + ParsedQuery(QString query, const QHash<QString, QString> &qualifiers) + : query(std::move(query)), qualifiers(qualifiers) + { + } + + explicit ParsedQuery(const QString &rawQuery); + + [[nodiscard]] std::optional<QString> GetValue(const QString &key) const + { + const auto it = qualifiers.constFind(key); + if (it == qualifiers.constEnd() || it->isEmpty()) + return std::nullopt; + return it.value(); + } +}; |
