#pragma once #include #include #include #include #include #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; QPushButton *m_resetTagBtn; QSpinBox *m_batchSize; QCheckBox *m_rerunMatcher; QCheckBox *m_clearProcessed; std::vector > m_containers; std::shared_ptr m_fetchProcessor; BinaryViewRef m_bv; public: explicit WarpFetchDialog(BinaryViewRef bv, std::shared_ptr fetchProcessor, QWidget *parent = nullptr); private slots: void onAddTag(); void onRemoveTag(); void onResetTags(); void onAccept(); private: void populateContainers(); std::vector collectTags() const; void runBatchedFetch(const std::optional &containerIndex, const std::vector &tags, size_t batchSize, bool rerunMatcher); }; void RegisterWarpFetchFunctionsCommand();