/* * Copyright (c) 2018 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #include #include namespace Swift { class FdpFormSubmitWindow; class FdpFormSubmitWindowFactory; class Form; class IQRouter; class UIEvent; class UIEventStream; class FdpFormSubmitController { public: FdpFormSubmitController(const JID& self, IQRouter* iqRouter, UIEventStream* uiEventStream, FdpFormSubmitWindowFactory* factory); ~FdpFormSubmitController(); private: void handleUIEvent(const std::shared_ptr& uiEvent); void createFormSubmitWindow(); void closeFormSubmitWindow(); void requestPubSubNodeData(const std::string& domainName); void requestTemplateForm(const std::string& nodeName); void submitForm(const std::shared_ptr
& form); JID selfJID_; IQRouter* iqRouter_; UIEventStream* uiEventStream_; FdpFormSubmitWindowFactory* factory_; std::unique_ptr formSubmitWindow_; std::string currentDomain_; std::string currentTemplateNode_; boost::signals2::scoped_connection fdpFormSubmitWindowOpenUIEventConnection_; }; }