← index
acidcam-gpu/ACMX2/interface/gpufilter.hpp
Source: acidcam-gpu/ACMX2/interface/gpufilter.hpp
#ifndef __GPUFILTER_HPP__
#define __GPUFILTER_HPP__

#include <QCheckBox>
#include <QComboBox>
#include <QDialog>
#include <QGroupBox>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QListWidget>
#include <QProcess>
#include <QPushButton>
#include <QSortFilterProxyModel>
#include <QSpinBox>
#include <QStandardItemModel>
#include <QStringList>
#include <QVBoxLayout>

class GPUFilterDialog : public QDialog {
    Q_OBJECT
  public:
    explicit GPUFilterDialog(const QString &executablePath, QWidget *parent = nullptr);

    bool isGPUFilterEnabled() const;
    QStringList getSelectedFilterIndices() const;
    int getBufferSize() const;
    QString getFilterArgument() const;

  public slots:
    void addFilter();
    void removeFilter();
    void moveUp();
    void moveDown();
    void clearAll();
    void filterSearchChanged(const QString &text);

  private:
    void loadFiltersFromExecutable();
    void setupUI();

    QString execPath;
    QCheckBox *enableCheckBox;
    QComboBox *filterComboBox;
    QLineEdit *searchLineEdit;
    QListWidget *selectedFiltersList;
    QSpinBox *bufferSizeSpinBox;
    QPushButton *addButton;
    QPushButton *removeButton;
    QPushButton *upButton;
    QPushButton *downButton;
    QPushButton *clearButton;
    QPushButton *okButton;
    QPushButton *cancelButton;

    QStandardItemModel *filterModel;
    QSortFilterProxyModel *proxyModel;

    QMap<QString, int> filterNameToIndex;
    QStringList filterNames;
};

#endif