summaryrefslogtreecommitdiffstats
path: root/src/yuzu/multiplayer/moderation_dialog.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/yuzu/multiplayer/moderation_dialog.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/yuzu/multiplayer/moderation_dialog.h b/src/yuzu/multiplayer/moderation_dialog.h
new file mode 100644
index 000000000..d10083d5b
--- /dev/null
+++ b/src/yuzu/multiplayer/moderation_dialog.h
@@ -0,0 +1,42 @@
+// Copyright 2018 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <optional>
+#include <QDialog>
+#include "network/room.h"
+#include "network/room_member.h"
+
+namespace Ui {
+class ModerationDialog;
+}
+
+class QStandardItemModel;
+
+class ModerationDialog : public QDialog {
+ Q_OBJECT
+
+public:
+ explicit ModerationDialog(QWidget* parent = nullptr);
+ ~ModerationDialog();
+
+signals:
+ void StatusMessageReceived(const Network::StatusMessageEntry&);
+ void BanListReceived(const Network::Room::BanList&);
+
+private:
+ void LoadBanList();
+ void PopulateBanList(const Network::Room::BanList& ban_list);
+ void SendUnbanRequest(const QString& subject);
+ void OnStatusMessageReceived(const Network::StatusMessageEntry& status_message);
+
+ std::unique_ptr<Ui::ModerationDialog> ui;
+ QStandardItemModel* model;
+ Network::RoomMember::CallbackHandle<Network::StatusMessageEntry> callback_handle_status_message;
+ Network::RoomMember::CallbackHandle<Network::Room::BanList> callback_handle_ban_list;
+};
+
+Q_DECLARE_METATYPE(Network::Room::BanList);