/* * Squawk messenger. * Copyright (C) 2019 Yury Gubich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "vcard.h" #include "keyinfo.h" #include "enums.h" #include namespace Shared { /** * This class should contain all nessesary data to display * roster element info (contact, or out of roster contact, or MUC, or MIX in the future) * * under development yet */ class Info { public: Info (); Info (const QString& address, EntryType = EntryType::none); Info (const Info& other); Info (Info&& other); virtual ~Info (); Info& operator = (const Info& other); Info& operator = (Info&& other); QString getAddress () const; const QString& getAddressRef () const; void setAddress (const QString& address); EntryType getType () const; void turnIntoNone (); void turnIntoContact (const VCard& card = VCard(), const std::list& activeKeys = {}, const std::list& inactiveKeys = {}); void turnIntoContact (VCard* card = new VCard, std::list* activeKeys = new std::list, std::list* inactiveKeys = new std::list); void turnIntoOwnAccount (const VCard& card = VCard(), const std::list& activeKeys = {}, const std::list& inactiveKeys = {}); void turnIntoOwnAccount (VCard* card = new VCard, std::list* activeKeys = new std::list, std::list* inactiveKeys = new std::list); const VCard& getVCardRef () const; VCard& getVCardRef (); const VCard* getVCard () const; VCard* getVCard (); void setVCard (Shared::VCard* card); const std::list& getActiveKeysRef () const; std::list& getActiveKeysRef (); const std::list* getActiveKeys () const; std::list* getActiveKeys (); void setActiveKeys (std::list* keys); const std::list& getInactiveKeysRef () const; std::list& getInactiveKeysRef (); const std::list* getInactiveKeys () const; std::list* getInactiveKeys (); private: EntryType type; QString address; VCard* vcard; std::list* activeKeys; std::list* inactiveKeys; }; }