64 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* This file is part of Telegram Desktop, the official desktop version of
 | |
|  * Telegram messaging app, see https://desktop.telegram.org
 | |
|  *
 | |
|  * This code is in Public Domain, see license terms in .github/CONTRIBUTING.md
 | |
|  * Copyright (C) 2017, Nicholas Guriev <guriev-ns@ya.ru>
 | |
|  */
 | |
| 
 | |
| #include "boxes/mute_settings_box.h"
 | |
| 
 | |
| #include "lang/lang_keys.h"
 | |
| #include "mainwidget.h"
 | |
| #include "styles/style_boxes.h"
 | |
| #include "ui/special_buttons.h"
 | |
| #include "ui/widgets/checkbox.h"
 | |
| #include "ui/widgets/labels.h"
 | |
| 
 | |
| void MuteSettingsBox::prepare() {
 | |
| 	setTitle(langFactory(lng_disable_notifications_from_tray));
 | |
| 	int y = 0;
 | |
| 
 | |
| 	object_ptr<Ui::FlatLabel> info(this, st::boxLabel);
 | |
| 	info->setText(lang(lng_mute_box_tip));
 | |
| 	info->moveToLeft(st::boxPadding.left(), y);
 | |
| 	y += info->height() + st::boxLittleSkip;
 | |
| 
 | |
| 	object_ptr<Ui::PeerAvatarButton> icon(this, _peer, st::mutePhotoButton);
 | |
| 	icon->setPointerCursor(false);
 | |
| 	icon->moveToLeft(st::boxPadding.left(), y);
 | |
| 
 | |
| 	object_ptr<Ui::FlatLabel> title(this, st::muteChatTitle);
 | |
| 	title->setText(App::peerName(_peer, true));
 | |
| 	title->moveToLeft(st::boxPadding.left(),
 | |
| 		y + icon->height() / 2 - title->height() / 2);
 | |
| 	// the icon is always higher than this chat title
 | |
| 	y += icon->height() + st::boxMediumSkip;
 | |
| 
 | |
| 	const int FOREVER = 8760;  // in fact, this is mute only for 1 year
 | |
| 	auto group = std::make_shared<Ui::RadiobuttonGroup>(FOREVER);
 | |
| 	y += st::boxOptionListPadding.top();
 | |
| 	for (int value : { 1, 4, 18, 72, FOREVER }) {  // periods in hours
 | |
| 		QString text;
 | |
| 		if (value < 24) {
 | |
| 			text = lng_mute_duration_hours(lt_count, value);
 | |
| 		} else if (value < FOREVER) {
 | |
| 			text = lng_rights_chat_banned_day(lt_count, value / 24);
 | |
| 		} else {
 | |
| 			text = lang(lng_rights_chat_banned_forever);
 | |
| 		}
 | |
| 		object_ptr<Ui::Radiobutton> option(this, group, value, text);
 | |
| 		option->moveToLeft(st::boxPadding.left(), y);
 | |
| 		y += option->heightNoMargins() + st::boxOptionListSkip;
 | |
| 	}
 | |
| 	y += st::boxOptionListPadding.bottom() - st::boxOptionListSkip;
 | |
| 
 | |
| 	addButton(langFactory(lng_box_ok), [this, group] {
 | |
| 		App::main()->updateNotifySetting(_peer, NotifySettingSetMuted,
 | |
| 			SilentNotifiesDontChange, group->value() * 3600);
 | |
| 		closeBox();
 | |
| 	});
 | |
| 	addButton(langFactory(lng_cancel), [this] { closeBox(); });
 | |
| 
 | |
| 	setDimensions(st::boxWidth, y);
 | |
| }
 | |
| // vi: ts=4 tw=80
 | 
