// 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 . #ifndef SHARED_INFO_H #define SHARED_INFO_H #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); virtual ~Info(); 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(); const std::list& getActiveKeysRef() const; std::list& getActiveKeysRef(); const std::list* getActiveKeys() const; std::list* getActiveKeys(); 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; }; } #endif // SHARED_INFO_H