mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-06 23:24:01 +02:00
Added mute submenu to top bar in sections.
This commit is contained in:
parent
4bcd9de2b0
commit
2f7017b305
1 changed files with 39 additions and 2 deletions
|
@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/toasts/common_toasts.h"
|
#include "ui/toasts/common_toasts.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "main/main_session_settings.h"
|
#include "main/main_session_settings.h"
|
||||||
|
#include "menu/menu_mute.h"
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
@ -122,6 +123,31 @@ void MarkAsReadChatList(not_null<Dialogs::MainList*> list) {
|
||||||
ranges::for_each(mark, MarkAsReadHistory);
|
ranges::for_each(mark, MarkAsReadHistory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PeerMenuAddMuteSubmenuAction(
|
||||||
|
not_null<Window::SessionController*> controller,
|
||||||
|
not_null<PeerData*> peer,
|
||||||
|
const PeerMenuCallback &addAction) {
|
||||||
|
peer->owner().requestNotifySettings(peer);
|
||||||
|
const auto isMuted = peer->owner().notifyIsMuted(peer);
|
||||||
|
if (isMuted) {
|
||||||
|
addAction(tr::lng_mute_menu_unmute(tr::now), [=] {
|
||||||
|
peer->owner().updateNotifySettings(peer, 0);
|
||||||
|
}, &st::menuIconUnmute);
|
||||||
|
} else {
|
||||||
|
const auto show = std::make_shared<Window::Show>(controller);
|
||||||
|
addAction(PeerMenuCallback::Args{
|
||||||
|
.text = tr::lng_mute_menu_mute(tr::now),
|
||||||
|
.handler = nullptr,
|
||||||
|
.icon = peer->owner().notifySoundIsNone(peer)
|
||||||
|
? &st::menuIconSilent
|
||||||
|
: &st::menuIconMute,
|
||||||
|
.fillSubmenu = [=](not_null<Ui::PopupMenu*> menu) {
|
||||||
|
MuteMenu::FillMuteMenu(menu, { peer, show });
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class Filler {
|
class Filler {
|
||||||
public:
|
public:
|
||||||
Filler(
|
Filler(
|
||||||
|
@ -143,6 +169,7 @@ private:
|
||||||
void addHidePromotion();
|
void addHidePromotion();
|
||||||
void addTogglePin();
|
void addTogglePin();
|
||||||
void addToggleMute();
|
void addToggleMute();
|
||||||
|
void addToggleMuteSubmenu(bool addSeparator);
|
||||||
void addSupportInfo();
|
void addSupportInfo();
|
||||||
void addInfo();
|
void addInfo();
|
||||||
//void addToFolder();
|
//void addToFolder();
|
||||||
|
@ -344,6 +371,16 @@ void Filler::addToggleMute() {
|
||||||
PeerMenuAddMuteAction(_controller, _peer, _addAction);
|
PeerMenuAddMuteAction(_controller, _peer, _addAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Filler::addToggleMuteSubmenu(bool addSeparator) {
|
||||||
|
if (_peer->isSelf()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PeerMenuAddMuteSubmenuAction(_controller, _peer, _addAction);
|
||||||
|
if (addSeparator) {
|
||||||
|
_addAction(PeerMenuCallback::Args{ .isSeparator = true });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Filler::addSupportInfo() {
|
void Filler::addSupportInfo() {
|
||||||
if (!_peer->session().supportMode()) {
|
if (!_peer->session().supportMode()) {
|
||||||
return;
|
return;
|
||||||
|
@ -746,7 +783,7 @@ void Filler::fillChatsListActions() {
|
||||||
if (ViewProfileInChatsListContextMenu.value()) {
|
if (ViewProfileInChatsListContextMenu.value()) {
|
||||||
addInfo();
|
addInfo();
|
||||||
}
|
}
|
||||||
addToggleMute();
|
addToggleMuteSubmenu(false);
|
||||||
addToggleUnreadMark();
|
addToggleUnreadMark();
|
||||||
// addToFolder();
|
// addToFolder();
|
||||||
if (const auto user = _peer->asUser()) {
|
if (const auto user = _peer->asUser()) {
|
||||||
|
@ -760,8 +797,8 @@ void Filler::fillChatsListActions() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Filler::fillHistoryActions() {
|
void Filler::fillHistoryActions() {
|
||||||
|
addToggleMuteSubmenu(true);
|
||||||
addInfo();
|
addInfo();
|
||||||
addToggleMute();
|
|
||||||
addSupportInfo();
|
addSupportInfo();
|
||||||
addManageChat();
|
addManageChat();
|
||||||
addCreatePoll();
|
addCreatePoll();
|
||||||
|
|
Loading…
Add table
Reference in a new issue