2023-11-17 00:08:40 +00:00
|
|
|
/*
|
|
|
|
* Squawk messenger.
|
|
|
|
* Copyright (C) 2019 Yury Gubich <blue@macaw.me>
|
|
|
|
*
|
|
|
|
* 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 <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
2023-01-30 17:52:26 +00:00
|
|
|
|
2023-11-17 00:08:40 +00:00
|
|
|
#pragma once
|
2023-01-30 17:52:26 +00:00
|
|
|
|
|
|
|
#include "vcard.h"
|
|
|
|
#include "keyinfo.h"
|
2023-02-02 18:39:38 +00:00
|
|
|
#include "enums.h"
|
2023-01-30 17:52:26 +00:00
|
|
|
|
|
|
|
#include <list>
|
|
|
|
|
|
|
|
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();
|
2023-03-01 19:32:41 +00:00
|
|
|
Info(const QString& address, EntryType = EntryType::none);
|
2023-01-30 17:52:26 +00:00
|
|
|
Info(const Info& other);
|
2023-11-17 00:08:40 +00:00
|
|
|
Info(Info&& other);
|
2023-03-01 19:32:41 +00:00
|
|
|
virtual ~Info();
|
2023-11-17 00:08:40 +00:00
|
|
|
Info& operator = (const Info& other);
|
|
|
|
Info& operator = (Info&& other);
|
2023-01-30 17:52:26 +00:00
|
|
|
|
2023-03-01 19:32:41 +00:00
|
|
|
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<KeyInfo>& activeKeys = {},
|
|
|
|
const std::list<KeyInfo>& inactiveKeys = {}
|
|
|
|
);
|
|
|
|
void turnIntoContact(
|
|
|
|
VCard* card = new VCard,
|
|
|
|
std::list<KeyInfo>* activeKeys = new std::list<KeyInfo>,
|
|
|
|
std::list<KeyInfo>* inactiveKeys = new std::list<KeyInfo>
|
|
|
|
);
|
|
|
|
void turnIntoOwnAccount(
|
|
|
|
const VCard& card = VCard(),
|
|
|
|
const std::list<KeyInfo>& activeKeys = {},
|
|
|
|
const std::list<KeyInfo>& inactiveKeys = {}
|
|
|
|
);
|
|
|
|
void turnIntoOwnAccount(
|
|
|
|
VCard* card = new VCard,
|
|
|
|
std::list<KeyInfo>* activeKeys = new std::list<KeyInfo>,
|
|
|
|
std::list<KeyInfo>* inactiveKeys = new std::list<KeyInfo>
|
|
|
|
);
|
|
|
|
|
|
|
|
const VCard& getVCardRef() const;
|
|
|
|
VCard& getVCardRef();
|
|
|
|
const VCard* getVCard() const;
|
|
|
|
VCard* getVCard();
|
2023-03-08 20:28:48 +00:00
|
|
|
void setVCard(Shared::VCard* card);
|
2023-03-01 19:32:41 +00:00
|
|
|
|
|
|
|
const std::list<KeyInfo>& getActiveKeysRef() const;
|
|
|
|
std::list<KeyInfo>& getActiveKeysRef();
|
|
|
|
const std::list<KeyInfo>* getActiveKeys() const;
|
|
|
|
std::list<KeyInfo>* getActiveKeys();
|
2023-03-08 20:28:48 +00:00
|
|
|
void setActiveKeys(std::list<KeyInfo>* keys);
|
2023-03-01 19:32:41 +00:00
|
|
|
|
|
|
|
const std::list<KeyInfo>& getInactiveKeysRef() const;
|
|
|
|
std::list<KeyInfo>& getInactiveKeysRef();
|
|
|
|
const std::list<KeyInfo>* getInactiveKeys() const;
|
|
|
|
std::list<KeyInfo>* getInactiveKeys();
|
|
|
|
|
|
|
|
private:
|
2023-02-02 18:39:38 +00:00
|
|
|
EntryType type;
|
2023-03-01 19:32:41 +00:00
|
|
|
QString address;
|
|
|
|
|
|
|
|
VCard* vcard;
|
|
|
|
std::list<KeyInfo>* activeKeys;
|
|
|
|
std::list<KeyInfo>* inactiveKeys;
|
2023-01-30 17:52:26 +00:00
|
|
|
};
|
|
|
|
}
|