mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
bd5eebbc2e
- Add AvatarBroadcaster, in charge of making sure our friends have our avatar without spamming file transfers - Fix file sending code not closing the file after transfer, which prevented file previews, and make the QFile a shared_ptr to fix the obvious memory leak Some small additions to Core to support AvatarBroadcaster
29 lines
851 B
C++
29 lines
851 B
C++
#ifndef AVATARBROADCASTER_H
|
|
#define AVATARBROADCASTER_H
|
|
|
|
#include <QByteArray>
|
|
#include <QMap>
|
|
|
|
/// Takes care of broadcasting avatar changes to our friends in a smart way
|
|
/// Cache a copy of our current avatar and friends who have received it
|
|
/// so we don't spam avatar transfers to a friend who already has it.
|
|
class AvatarBroadcaster
|
|
{
|
|
private:
|
|
AvatarBroadcaster()=delete;
|
|
|
|
public:
|
|
/// Set our current avatar
|
|
static void setAvatar(QByteArray data);
|
|
/// Send our current avatar to this friend, if not already sent
|
|
static void sendAvatarTo(uint32_t friendId);
|
|
/// If true, we automatically broadcast our avatar to friends when they come online
|
|
static void enableAutoBroadcast(bool state = true);
|
|
|
|
private:
|
|
static QByteArray avatarData;
|
|
static QMap<uint32_t, bool> friendsSentTo;
|
|
};
|
|
|
|
#endif // AVATARBROADCASTER_H
|