[Option][GUI] Disable notifications from top bar
This commit is contained in:
		
							parent
							
								
									f44a9d8995
								
							
						
					
					
						commit
						c815639bbb
					
				
					 10 changed files with 63 additions and 3 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								Telegram/Resources/icons/info/info_notifications_active.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Telegram/Resources/icons/info/info_notifications_active.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Telegram/Resources/icons/info/info_notifications_active@2x.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Telegram/Resources/icons/info/info_notifications_active@2x.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								Telegram/Resources/icons/info/info_notifications_active@3x.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Telegram/Resources/icons/info/info_notifications_active@3x.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.9 KiB | 
|  | @ -87,6 +87,7 @@ | |||
| 	"ktg_settings_filters_only_unmuted_counter": "Do not count muted chats", | ||||
| 	"ktg_settings_filters_hide_edit": "Hide Edit button", | ||||
| 	"ktg_settings_filters_hide_folder_names": "Compact folders", | ||||
| 	"ktg_settings_top_bar_mute": "Mute in profile top bar", | ||||
| 	"ktg_settings_messages": "Messages", | ||||
| 	"ktg_settings_filters_hide_all": "Hide \"All chats\" folder", | ||||
| 	"ktg_settings_userpic_rounding": "Profile pictures rounding", | ||||
|  |  | |||
|  | @ -136,8 +136,19 @@ infoTopBarMenu: IconButton(infoTopBarBack) { | |||
| 	iconPosition: point(18px, -1px); | ||||
| 	rippleAreaPosition: point(1px, 6px); | ||||
| } | ||||
| infoTopBarCall: IconButton(infoTopBarMenu) { | ||||
| 
 | ||||
| infoTopBarNotifications: IconButton(infoTopBarMenu) { | ||||
| 	width: 42px; | ||||
| 	icon: icon {{ "info/info_notifications", boxTitleCloseFg }}; | ||||
| 	iconOver: icon {{ "info/info_notifications", boxTitleCloseFgOver }}; | ||||
| 	iconPosition: point(5px, -1px); | ||||
| 	rippleAreaPosition: point(0px, 6px); | ||||
| } | ||||
| infoNotificationsActive: icon {{ | ||||
| 	"info/info_notifications_active", | ||||
| 	windowBgActive | ||||
| }}; | ||||
| infoTopBarCall: IconButton(infoTopBarNotifications) { | ||||
| 	icon: icon {{ "top_bar_call", boxTitleCloseFg }}; | ||||
| 	iconOver: icon {{ "top_bar_call", boxTitleCloseFgOver }}; | ||||
| 	iconPosition: point(5px, -1px); | ||||
|  | @ -203,6 +214,12 @@ infoLayerTopBarMenu: IconButton(infoLayerTopBarClose) { | |||
| 	iconOver: icon {{ "title_menu_dots", boxTitleCloseFgOver }}; | ||||
| 	iconPosition: point(16px, -1px); | ||||
| } | ||||
| infoLayerTopBarNotifications: IconButton(infoLayerTopBarMenu) { | ||||
| 	icon: icon {{ "info/info_notifications", boxTitleCloseFg }}; | ||||
| 	iconOver: icon {{ "info/info_notifications", boxTitleCloseFgOver }}; | ||||
| 	iconPosition: point(4px, -1px); | ||||
| 	rippleAreaPosition: point(0px, 9px); | ||||
| } | ||||
| infoLayerTopBarCall: IconButton(infoLayerTopBarMenu) { | ||||
| 	icon: icon {{ "top_bar_call", boxTitleCloseFg }}; | ||||
| 	iconOver: icon {{ "top_bar_call", boxTitleCloseFgOver }}; | ||||
|  |  | |||
|  | @ -38,6 +38,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL | |||
| #include "boxes/peer_list_box.h" | ||||
| #include "ui/boxes/confirm_box.h" | ||||
| #include "main/main_session.h" | ||||
| #include "menu/menu_mute.h" | ||||
| #include "mtproto/mtproto_config.h" | ||||
| #include "data/data_download_manager.h" | ||||
| #include "data/data_session.h" | ||||
|  | @ -452,6 +453,11 @@ void WrapWidget::createTopBar() { | |||
| 		}, _topBar->lifetime()); | ||||
| 	} | ||||
| 
 | ||||
| 	if (section.type() == Section::Type::Profile | ||||
| 		&& ::Kotato::JsonSettings::GetBool("profile_top_mute")) { | ||||
| 		addProfileNotificationsButton(); | ||||
| 	} | ||||
| 
 | ||||
| 	_topBar->lower(); | ||||
| 	_topBar->resizeToWidth(width()); | ||||
| 	_topBar->finishAnimating(); | ||||
|  | @ -533,6 +539,37 @@ void WrapWidget::addProfileCallsButton() { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| void WrapWidget::addProfileNotificationsButton() { | ||||
| 	Expects(_topBar != nullptr); | ||||
| 
 | ||||
| 	const auto peer = key().peer(); | ||||
| 	if (!peer || peer->isSelf()) { | ||||
| 		return; | ||||
| 	} | ||||
| 	auto notifications = _topBar->addButton( | ||||
| 		base::make_unique_q<Ui::IconButton>( | ||||
| 			_topBar, | ||||
| 			(wrap() == Wrap::Layer | ||||
| 				? st::infoLayerTopBarNotifications | ||||
| 				: st::infoTopBarNotifications))); | ||||
| 	MuteMenu::SetupMuteMenu( | ||||
| 		notifications, | ||||
| 		notifications->clicks() | rpl::to_empty, | ||||
| 		{ peer, std::make_shared<Window::Show>(_controller->parentController()) }); | ||||
| 	Profile::NotificationsEnabledValue( | ||||
| 		peer | ||||
| 	) | rpl::start_with_next([notifications](bool enabled) { | ||||
| 		const auto iconOverride = enabled | ||||
| 			? &st::infoNotificationsActive | ||||
| 			: nullptr; | ||||
| 		const auto rippleOverride = enabled | ||||
| 			? &st::lightButtonBgOver | ||||
| 			: nullptr; | ||||
| 		notifications->setIconOverride(iconOverride, iconOverride); | ||||
| 		notifications->setRippleColorOverride(rippleOverride); | ||||
| 	}, notifications->lifetime()); | ||||
| } | ||||
| 
 | ||||
| void WrapWidget::showTopBarMenu(bool check) { | ||||
| 	if (_topBarMenu) { | ||||
| 		_topBarMenu->hideMenu(true); | ||||
|  |  | |||
|  | @ -206,6 +206,7 @@ private: | |||
| 
 | ||||
| 	void addTopBarMenuButton(); | ||||
| 	void addProfileCallsButton(); | ||||
| 	void addProfileNotificationsButton(); | ||||
| 	void showTopBarMenu(bool check); | ||||
| 	void deleteAllDownloads(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -453,7 +453,7 @@ object_ptr<Ui::RpWidget> DetailsFiller::setupInfo() { | |||
| 
 | ||||
| 		addInfoLine(tr::lng_info_about_label(), AboutValue(_peer)); | ||||
| 	} | ||||
| 	if (!_peer->isSelf()) { | ||||
| 	if (!_peer->isSelf() && !::Kotato::JsonSettings::GetBool("profile_top_mute")) { | ||||
| 		// No notifications toggle for Self => no separator.
 | ||||
| 		result->add(object_ptr<Ui::SlideWrap<>>( | ||||
| 			result, | ||||
|  | @ -603,7 +603,7 @@ object_ptr<Ui::RpWidget> DetailsFiller::fill() { | |||
| 	add(object_ptr<Ui::BoxContentDivider>(_wrap)); | ||||
| 	add(CreateSkipWidget(_wrap)); | ||||
| 	add(setupInfo()); | ||||
| 	if (!_peer->isSelf()) { | ||||
| 	if (!_peer->isSelf() && !::Kotato::JsonSettings::GetBool("profile_top_mute")) { | ||||
| 		add(setupMuteToggle()); | ||||
| 	} | ||||
| 	setupMainButtons(); | ||||
|  |  | |||
|  | @ -403,6 +403,9 @@ const std::map<QString, Definition, std::greater<QString>> DefinitionMap { | |||
| 	{ "folders/hide_all_chats", { | ||||
| 		.type = SettingType::BoolSetting, | ||||
| 		.defaultValue = false, }}, | ||||
| 	{ "profile_top_mute", { | ||||
| 		.type = SettingType::BoolSetting, | ||||
| 		.defaultValue = false, }}, | ||||
| 	{ "folders/local", { | ||||
| 		.scope = SettingScope::Account, | ||||
| 		.type = SettingType::QJsonArraySetting, }}, | ||||
|  |  | |||
|  | @ -199,6 +199,7 @@ void SetupKotatoChats( | |||
| 		updateRecentStickersLimitHeight); | ||||
| 	updateRecentStickersLimitLabel(::Kotato::JsonSettings::GetInt("recent_stickers_limit")); | ||||
| 
 | ||||
| 	SettingsMenuJsonSwitch(ktg_settings_top_bar_mute, profile_top_mute); | ||||
| 	SettingsMenuJsonSwitch(ktg_settings_disable_up_edit, disable_up_edit); | ||||
| 
 | ||||
| 	AddButton( | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue