qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
friend.h
Go to the documentation of this file.
1 /*
2  Copyright © 2014-2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include "contact.h"
23 #include "src/core/core.h"
24 #include "src/core/extension.h"
25 #include "src/core/toxpk.h"
26 #include "src/core/contactid.h"
27 #include "src/model/status.h"
28 #include <QObject>
29 #include <QString>
30 
31 class Friend : public Contact
32 {
33  Q_OBJECT
34 public:
35  Friend(uint32_t friendId, const ToxPk& friendPk, const QString& userAlias = {}, const QString &userName = {});
36  Friend(const Friend& other) = delete;
37  Friend& operator=(const Friend& other) = delete;
38 
39  void setName(const QString& name) override;
40  void setAlias(const QString& name);
41  QString getDisplayedName() const override;
42  bool hasAlias() const;
43  QString getUserName() const;
44  void setStatusMessage(const QString& message);
45  QString getStatusMessage() const;
46 
47  void setEventFlag(bool f) override;
48  bool getEventFlag() const override;
49 
50  const ToxPk& getPublicKey() const;
51  uint32_t getId() const override;
52  const ContactId& getPersistentId() const override;
53 
54  void finishNegotiation();
55  void setStatus(Status::Status s);
56  Status::Status getStatus() const;
57 
58  void setExtendedMessageSupport(bool supported);
60 
61 signals:
62  void nameChanged(const ToxPk& friendId, const QString& name);
63  void aliasChanged(const ToxPk& friendId, QString alias);
64  void statusChanged(const ToxPk& friendId, Status::Status status);
65  void onlineOfflineChanged(const ToxPk& friendId, bool isOnline);
66  void statusMessageChanged(const ToxPk& friendId, const QString& message);
67  void extensionSupportChanged(ExtensionSet extensions);
68  void loadChatHistory();
69 
70 public slots:
71  void onNegotiationComplete();
72 private:
73  QString userName;
74  QString userAlias;
75  QString statusMessage;
77  uint32_t friendId;
82 };
Status::Status
Status
Definition: status.h:28
Friend::operator=
Friend & operator=(const Friend &other)=delete
Friend::onlineOfflineChanged
void onlineOfflineChanged(const ToxPk &friendId, bool isOnline)
Friend::onNegotiationComplete
void onNegotiationComplete()
Definition: friend.cpp:211
Friend::getEventFlag
bool getEventFlag() const override
Definition: friend.cpp:151
Friend::friendId
uint32_t friendId
Definition: friend.h:77
Friend::setStatus
void setStatus(Status::Status s)
Definition: friend.cpp:156
Friend::loadChatHistory
void loadChatHistory()
toxpk.h
Friend::supportedExtensions
ExtensionSet supportedExtensions
Definition: friend.h:81
Friend::userName
QString userName
Definition: friend.h:73
Friend::hasNewEvents
bool hasNewEvents
Definition: friend.h:78
contactid.h
Friend::getStatus
Status::Status getStatus() const
Definition: friend.cpp:190
Friend::statusMessageChanged
void statusMessageChanged(const ToxPk &friendId, const QString &message)
Friend::getSupportedExtensions
ExtensionSet getSupportedExtensions() const
Definition: friend.cpp:206
Friend::isNegotiating
bool isNegotiating
Definition: friend.h:80
Friend::aliasChanged
void aliasChanged(const ToxPk &friendId, QString alias)
HistMessageContentType::message
@ message
ToxPk
This class represents a Tox Public Key, which is a part of Tox ID.
Definition: toxpk.h:26
extension.h
Contact
Definition: contact.h:26
Friend
Definition: friend.h:31
Friend::setEventFlag
void setEventFlag(bool f) override
Definition: friend.cpp:146
Friend::setExtendedMessageSupport
void setExtendedMessageSupport(bool supported)
Definition: friend.cpp:195
Friend::setStatusMessage
void setStatusMessage(const QString &message)
Definition: friend.cpp:93
Friend::statusMessage
QString statusMessage
Definition: friend.h:75
Friend::getDisplayedName
QString getDisplayedName() const override
Friend::getDisplayedName Gets the name that should be displayed for a user.
Definition: friend.cpp:112
Friend::extensionSupportChanged
void extensionSupportChanged(ExtensionSet extensions)
ExtensionSet
std::bitset< ExtensionType::max > ExtensionSet
Definition: extension.h:32
Friend::friendStatus
Status::Status friendStatus
Definition: friend.h:79
contact.h
Friend::getPublicKey
const ToxPk & getPublicKey() const
Definition: friend.cpp:131
Friend::userAlias
QString userAlias
Definition: friend.h:74
ContactId
Definition: contactid.h:28
Friend::getStatusMessage
QString getStatusMessage() const
Definition: friend.cpp:101
core.h
Friend::setName
void setName(const QString &name) override
Friend::setName sets a new username for the friend.
Definition: friend.cpp:47
Friend::statusChanged
void statusChanged(const ToxPk &friendId, Status::Status status)
Friend::getPersistentId
const ContactId & getPersistentId() const override
Definition: friend.cpp:141
Friend::Friend
Friend(uint32_t friendId, const ToxPk &friendPk, const QString &userAlias={}, const QString &userName={})
Definition: friend.cpp:29
Friend::getId
uint32_t getId() const override
Definition: friend.cpp:136
Status::isOnline
bool isOnline(Status status)
Definition: status.cpp:83
Friend::hasAlias
bool hasAlias() const
Definition: friend.cpp:121
Friend::nameChanged
void nameChanged(const ToxPk &friendId, const QString &name)
Friend::finishNegotiation
void finishNegotiation()
Friend::getUserName
QString getUserName() const
Definition: friend.cpp:126
status.h
Friend::friendPk
ToxPk friendPk
Definition: friend.h:76
Friend::setAlias
void setAlias(const QString &name)
Friend::setAlias sets the alias for the friend.
Definition: friend.cpp:76