/** * @RDE_HEADER@ * ScriptChooser Payload UI * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2017-03-21 */ #pragma once #include #include #include #include #include #include #include namespace Ui { class ScriptChooser; } namespace PresentationManagement { class PresentationManagementDialogModel; class PresentationManagementDialogProxyModel; class PREGUISCRIPTCOMMON_EXPORT ScriptChooser : public LtsWidgets::LtsFramelessDialog , protected Interface::Ftc::PresentationRemoveReplyHandler , protected Interface::Ftc::PresentationChangeStatusReplyHandler { Q_OBJECT public: explicit ScriptChooser(const std::shared_ptr &dtc, const std::shared_ptr &ftc, const std::shared_ptr &opmDtc, bool isPlayerMode, bool isImportDialog = false, QWidget *parent = nullptr); ~ScriptChooser(); protected: void closeEvent(QCloseEvent *event) override; void onPresentationRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void onPresentationChangeStatusReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } private: void setSelectorMode(bool isPlayer); private slots: void reject() override; void onDeleteScript(); void onScriptSelected(); void onImportScript(); void onEnaDisa(); signals: void signalQuit(); void signalSelectScript(int scriptId); void signalNewScript(); void signalEditQuit(); private: PresentationManagementDialogModel *m_model { nullptr }; PresentationManagementDialogProxyModel *m_proxy { nullptr }; bool m_selected; bool m_close { false }; bool m_isImportDialog; Ui::ScriptChooser *m_ui { nullptr }; NGL::INGLLogger &m_logger; std::shared_ptr m_ftc; LtsUtils::RequestHelper *m_requestHelper; }; } // namespace PresentationManagement