qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
ifriendsettings.h
Go to the documentation of this file.
1 /*
2  Copyright © 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 "util/interface.h"
23 
24 #include <QObject>
25 #include <QFlag>
26 
27 class ToxPk;
28 
30 {
31 public:
32  enum class AutoAcceptCall
33  {
34  None = 0x00,
35  Audio = 0x01,
36  Video = 0x02,
37  AV = Audio | Video
38  };
39  Q_DECLARE_FLAGS(AutoAcceptCallFlags, AutoAcceptCall)
40 
41  IFriendSettings() = default;
42  virtual ~IFriendSettings();
43  IFriendSettings(const IFriendSettings&) = default;
44  IFriendSettings& operator=(const IFriendSettings&) = default;
45  IFriendSettings(IFriendSettings&&) = default;
47 
48  virtual QString getContactNote(const ToxPk& pk) const = 0;
49  virtual void setContactNote(const ToxPk& pk, const QString& note) = 0;
50 
51  virtual QString getAutoAcceptDir(const ToxPk& pk) const = 0;
52  virtual void setAutoAcceptDir(const ToxPk& pk, const QString& dir) = 0;
53 
54  virtual AutoAcceptCallFlags getAutoAcceptCall(const ToxPk& pk) const = 0;
55  virtual void setAutoAcceptCall(const ToxPk& pk, AutoAcceptCallFlags accept) = 0;
56 
57  virtual bool getAutoGroupInvite(const ToxPk& pk) const = 0;
58  virtual void setAutoGroupInvite(const ToxPk& pk, bool accept) = 0;
59 
60  virtual QString getFriendAlias(const ToxPk& pk) const = 0;
61  virtual void setFriendAlias(const ToxPk& pk, const QString& alias) = 0;
62 
63  virtual int getFriendCircleID(const ToxPk& pk) const = 0;
64  virtual void setFriendCircleID(const ToxPk& pk, int circleID) = 0;
65 
66  virtual QDateTime getFriendActivity(const ToxPk& pk) const = 0;
67  virtual void setFriendActivity(const ToxPk& pk, const QDateTime& date) = 0;
68 
69  virtual void saveFriendSettings(const ToxPk& pk) = 0;
70  virtual void removeFriendSettings(const ToxPk& pk) = 0;
71 
72 signals:
73  DECLARE_SIGNAL(autoAcceptCallChanged, const ToxPk& pk, AutoAcceptCallFlags accept);
74  DECLARE_SIGNAL(autoGroupInviteChanged, const ToxPk& pk, bool accept);
75  DECLARE_SIGNAL(autoAcceptDirChanged, const ToxPk& pk, const QString& dir);
76  DECLARE_SIGNAL(contactNoteChanged, const ToxPk& pk, const QString& note);
77 };
78 
79 Q_DECLARE_OPERATORS_FOR_FLAGS(IFriendSettings::AutoAcceptCallFlags)
IFriendSettings::getAutoGroupInvite
virtual bool getAutoGroupInvite(const ToxPk &pk) const =0
IFriendSettings::AutoAcceptCall::AV
@ AV
IFriendSettings::getFriendAlias
virtual QString getFriendAlias(const ToxPk &pk) const =0
IFriendSettings::AutoAcceptCall::Video
@ Video
IFriendSettings::IFriendSettings
IFriendSettings()=default
IFriendSettings::setFriendCircleID
virtual void setFriendCircleID(const ToxPk &pk, int circleID)=0
IFriendSettings::setAutoGroupInvite
virtual void setAutoGroupInvite(const ToxPk &pk, bool accept)=0
IFriendSettings::getAutoAcceptDir
virtual QString getAutoAcceptDir(const ToxPk &pk) const =0
IFriendSettings::getFriendCircleID
virtual int getFriendCircleID(const ToxPk &pk) const =0
IFriendSettings::getFriendActivity
virtual QDateTime getFriendActivity(const ToxPk &pk) const =0
ToxPk
This class represents a Tox Public Key, which is a part of Tox ID.
Definition: toxpk.h:26
IFriendSettings::setAutoAcceptDir
virtual void setAutoAcceptDir(const ToxPk &pk, const QString &dir)=0
IFriendSettings::getAutoAcceptCall
virtual AutoAcceptCallFlags getAutoAcceptCall(const ToxPk &pk) const =0
IFriendSettings::AutoAcceptCall
AutoAcceptCall
Definition: ifriendsettings.h:32
IFriendSettings
Definition: ifriendsettings.h:29
IFriendSettings::setFriendAlias
virtual void setFriendAlias(const ToxPk &pk, const QString &alias)=0
IFriendSettings::removeFriendSettings
virtual void removeFriendSettings(const ToxPk &pk)=0
IFriendSettings::AutoAcceptCall::Audio
@ Audio
IFriendSettings::setAutoAcceptCall
virtual void setAutoAcceptCall(const ToxPk &pk, AutoAcceptCallFlags accept)=0
IFriendSettings::getContactNote
virtual QString getContactNote(const ToxPk &pk) const =0
IFriendSettings::saveFriendSettings
virtual void saveFriendSettings(const ToxPk &pk)=0
IFriendSettings::DECLARE_SIGNAL
DECLARE_SIGNAL(autoAcceptCallChanged, const ToxPk &pk, AutoAcceptCallFlags accept)
IFriendSettings::setContactNote
virtual void setContactNote(const ToxPk &pk, const QString &note)=0
IFriendSettings::~IFriendSettings
virtual ~IFriendSettings()
IFriendSettings::operator=
IFriendSettings & operator=(const IFriendSettings &)=default
IFriendSettings::setFriendActivity
virtual void setFriendActivity(const ToxPk &pk, const QDateTime &date)=0
IFriendSettings::AutoAcceptCall::None
@ None