#pragma once #include "macro-action.hpp" #include "macro-action-factory.hpp" #include "filter-combo-box.hpp" #include namespace advss { class SwitchButton; class MacroActionEdit : public MacroSegmentEdit { Q_OBJECT public: MacroActionEdit( QWidget *parent = nullptr, std::shared_ptr * = nullptr, const std::string &id = MacroAction::GetDefaultID().data()); void UpdateEntryData(const std::string &id); void SetEntryData(std::shared_ptr *); private slots: void ActionSelectionChanged(const QString &text); void ActionEnableChanged(bool); void UpdateActionState(); private: std::shared_ptr Data() const; void SetDisableEffect(bool); void SetEnableAppearance(bool); FilterComboBox *_actionSelection; SwitchButton *_enable; std::shared_ptr *_entryData; QTimer _actionStateTimer; bool _loading = true; }; } // namespace advss