#ifndef DRONESCREWCTRL_DIALOG_ALGOARG_H #define DRONESCREWCTRL_DIALOG_ALGOARG_H #include #include "IVrConfig.h" namespace Ui { class DialogAlgoArg; } class QCheckBox; class DialogAlgoArg : public QDialog { Q_OBJECT public: explicit DialogAlgoArg(QWidget* parent = nullptr); ~DialogAlgoArg() override; void SetParams(const DroneScrewAlgoUiParams& params); DroneScrewAlgoUiParams GetParams() const; void SetDisplayOptions(const DroneScrewDisplayOption& options); DroneScrewDisplayOption GetDisplayOptions() const; private slots: void on_btn_ok_clicked(); void on_btn_cancel_clicked(); void on_btn_apply_clicked(); void on_btn_reset_clicked(); private: bool eventFilter(QObject* watched, QEvent* event) override; void loadToUi(const DroneScrewAlgoUiParams& p); DroneScrewAlgoUiParams collectFromUi() const; void setupInputKeyboard(); void createDisplayRows(); void loadDisplayToUi(const DroneScrewDisplayOption& options); DroneScrewDisplayOption collectDisplayFromUi() const; private: Ui::DialogAlgoArg* ui{nullptr}; DroneScrewAlgoUiParams m_params; DroneScrewDisplayOption m_displayOptions; QCheckBox* m_checkDrawBoxes{nullptr}; }; #endif // DRONESCREWCTRL_DIALOG_ALGOARG_H