summary refs log tree commit diff
path: root/src/ui/HiddenEvents.h
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2022-02-12 18:52:47 +0000
committerGitHub <noreply@github.com>2022-02-12 18:52:47 +0000
commita930e3c804c56aeb4f8d336b19d4abcd699556d1 (patch)
tree73f06796cff7941b9f0e7ab2b2a9e59054da0afa /src/ui/HiddenEvents.h
parentFix application name on Wayland in flatpak (diff)
parentHidden events: Refactor slightly for reusability (diff)
downloadnheko-a930e3c804c56aeb4f8d336b19d4abcd699556d1.tar.xz
Merge pull request #891 from tastytea/hidden-events-gui
Add GUI to change hidden events per room
Diffstat (limited to 'src/ui/HiddenEvents.h')
-rw-r--r--src/ui/HiddenEvents.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/ui/HiddenEvents.h b/src/ui/HiddenEvents.h
new file mode 100644

index 00000000..928b14ba --- /dev/null +++ b/src/ui/HiddenEvents.h
@@ -0,0 +1,46 @@ +// SPDX-FileCopyrightText: 2022 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include <QObject> +#include <QString> +#include <QVariantList> + +#include "timeline/TimelineModel.h" + +class HiddenEvents : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString roomid READ roomid WRITE setRoomid NOTIFY roomidChanged REQUIRED) + Q_PROPERTY(QVariantList hiddenEvents READ hiddenEvents NOTIFY hiddenEventsChanged) +public: + explicit HiddenEvents(QObject *p = nullptr) + : QObject(p) + {} + + Q_INVOKABLE void toggle(int type); + Q_INVOKABLE void save(); + + [[nodiscard]] QString roomid() const { return roomid_; } + void setRoomid(const QString &r) + { + roomid_ = r; + emit roomidChanged(); + + load(); + } + + [[nodiscard]] QVariantList hiddenEvents() const; + +signals: + void roomidChanged(); + void hiddenEventsChanged(); + +private: + QString roomid_; + std::vector<mtx::events::EventType> hiddenEvents_; + + void load(); +};