/* * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #include #include #include #include #include #include namespace Swift { class UIEventStream; class ContactEditWindowFactory; class ContactEditWindow; class RosterController; class VCardManager; class ContactEditController { public: ContactEditController(RosterController* rosterController, VCardManager* vcardManager, ContactEditWindowFactory* contactEditWindowFactory, UIEventStream* uiEventStream); ~ContactEditController(); void setAvailable(bool b); public: static std::vector nameSuggestionsFromVCard(VCard::ref vcard); private: void handleRemoveContactRequest(); void handleChangeContactRequest(const std::string& name, const std::set& groups); private: void handleUIEvent(UIEvent::ref event); void handleVCardChanged(const JID& jid, VCard::ref vcard); private: boost::optional currentContact; RosterController* rosterController; VCardManager* vcardManager; ContactEditWindowFactory* contactEditWindowFactory; UIEventStream* uiEventStream; JID jid; ContactEditWindow* contactEditWindow; }; }