summaryrefslogtreecommitdiff
path: root/plugins/warp/ui/shared/fetchdialog.h
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-08-26 23:59:38 -0400
committerMason Reed <mason@vector35.com>2025-10-01 21:38:39 -0400
commitede39aee7e00c40a43b67ca18dd8ab80ee863d85 (patch)
tree67c5eda347ece2282e3c888f38066b496e06dec8 /plugins/warp/ui/shared/fetchdialog.h
parenta1c46813e7f279aa4cfdb9dbb91c45b559ebeacd (diff)
[WARP] Enhanced network support
Diffstat (limited to 'plugins/warp/ui/shared/fetchdialog.h')
-rw-r--r--plugins/warp/ui/shared/fetchdialog.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/plugins/warp/ui/shared/fetchdialog.h b/plugins/warp/ui/shared/fetchdialog.h
new file mode 100644
index 00000000..72591a4c
--- /dev/null
+++ b/plugins/warp/ui/shared/fetchdialog.h
@@ -0,0 +1,56 @@
+#pragma once
+
+#include <QDialog>
+#include <QComboBox>
+#include <QListWidget>
+#include <QSpinBox>
+#include <QCheckBox>
+
+#include "uicontext.h"
+#include "viewframe.h"
+#include "warp.h"
+#include "fetcher.h"
+
+class WarpFetchDialog : public QDialog
+{
+ Q_OBJECT
+
+ QComboBox *m_containerCombo;
+
+ QListWidget *m_tagsList;
+ QPushButton *m_addTagBtn;
+ QPushButton *m_removeTagBtn;
+
+ QSpinBox *m_batchSize;
+ QCheckBox *m_rerunMatcher;
+ QCheckBox *m_clearProcessed;
+
+ std::vector<Warp::Ref<Warp::Container> > m_containers;
+
+ std::shared_ptr<WarpFetcher> m_fetchProcessor;
+ BinaryViewRef m_bv;
+
+public:
+ explicit WarpFetchDialog(BinaryViewRef bv,
+ std::shared_ptr<WarpFetcher> fetchProcessor,
+ QWidget *parent = nullptr);
+
+private slots:
+ void onAddTag();
+
+ void onRemoveTag();
+
+ void onAccept();
+
+private:
+ void populateContainers();
+
+ std::vector<Warp::SourceTag> collectTags() const;
+
+ void runBatchedFetch(const std::optional<size_t> &containerIndex,
+ const std::vector<Warp::SourceTag> &tags,
+ size_t batchSize,
+ bool rerunMatcher);
+};
+
+void RegisterWarpFetchFunctionsCommand();