LeechCraft Azoth 0.6.70-18808-g3467692359
Modular multiprotocol IM plugin for LeechCraft
Loading...
Searching...
No Matches
mucevents.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <cstdint>
12#include <optional>
13#include <variant>
14#include <QMap>
15#include <QString>
16
17namespace LC::Azoth
18{
19 class ICLEntry;
20
21 using MUCPerms_t = QMap<QByteArray, QList<QByteArray>>;
22}
23
25{
26 enum class Liveness : std::uint8_t
27 {
30 };
31
32 struct ParticipantLeft { QString Message_; };
33
35 {
36 ICLEntry *Actor_ = nullptr;
37 QString Reason_;
38
39 enum class Action : std::uint8_t
40 {
44 };
45
46 using ParticipantLeaveInfo = std::variant<ParticipantLeft, ParticipantForcedOut>;
47
49 {
50 QString Subject_;
51 std::optional<QString> ActorNick_ {};
52 std::optional<Liveness> Liveness_ {};
53 };
54
56 {
58 QString Reason_;
59 ICLEntry *Actor_ = nullptr;
60
61 std::optional<MUCPerms_t> PrevPerms_;
62 };
63}
Represents a single entry in contact list.
Definition iclentry.h:49
std::variant< ParticipantLeft, ParticipantForcedOut > ParticipantLeaveInfo
Definition mucevents.h:46
QMap< QByteArray, QList< QByteArray > > MUCPerms_t
Definition mucevents.h:21
enum LC::Azoth::MucEvents::ParticipantForcedOut::Action Action_
std::optional< MUCPerms_t > PrevPerms_
Definition mucevents.h:61
std::optional< QString > ActorNick_
Definition mucevents.h:51
std::optional< Liveness > Liveness_
Definition mucevents.h:52