[Option][GUI] Emoji panel options
This commit is contained in:
		
							parent
							
								
									535ba67ae9
								
							
						
					
					
						commit
						86999e128d
					
				
					 6 changed files with 50 additions and 6 deletions
				
			
		| 
						 | 
					@ -150,5 +150,7 @@
 | 
				
			||||||
	"ktg_in_app_update_disabled": "In-app updater is disabled.",
 | 
						"ktg_in_app_update_disabled": "In-app updater is disabled.",
 | 
				
			||||||
	"ktg_settings_view_profile_on_top": "Show \"View Profile\" first",
 | 
						"ktg_settings_view_profile_on_top": "Show \"View Profile\" first",
 | 
				
			||||||
	"ktg_settings_view_profile_on_top_about": "This option also enables \"Add \"View Profile\"\" from TDesktop's experimental settings.",
 | 
						"ktg_settings_view_profile_on_top_about": "This option also enables \"Add \"View Profile\"\" from TDesktop's experimental settings.",
 | 
				
			||||||
 | 
						"ktg_settings_emoji_sidebar": "Enable emoji sidebar",
 | 
				
			||||||
 | 
						"ktg_settings_emoji_sidebar_right_click": "Emoji sidebar on right click",
 | 
				
			||||||
	"dummy_last_string": ""
 | 
						"dummy_last_string": ""
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,6 +67,10 @@ public:
 | 
				
			||||||
	void hideAnimated();
 | 
						void hideAnimated();
 | 
				
			||||||
	void toggleAnimated();
 | 
						void toggleAnimated();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void setPreventHover(bool value) {
 | 
				
			||||||
 | 
							_preventHover = value;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	~TabbedPanel();
 | 
						~TabbedPanel();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
| 
						 | 
					@ -127,6 +131,8 @@ private:
 | 
				
			||||||
	Ui::Animations::Simple _a_opacity;
 | 
						Ui::Animations::Simple _a_opacity;
 | 
				
			||||||
	base::Timer _hideTimer;
 | 
						base::Timer _hideTimer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool _preventHover = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} // namespace ChatHelpers
 | 
					} // namespace ChatHelpers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1176,13 +1176,26 @@ void HistoryWidget::initTabbedSelector() {
 | 
				
			||||||
	refreshTabbedPanel();
 | 
						refreshTabbedPanel();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_tabbedSelectorToggle->addClickHandler([=] {
 | 
						_tabbedSelectorToggle->addClickHandler([=] {
 | 
				
			||||||
		if (_tabbedPanel && _tabbedPanel->isHidden()) {
 | 
							if (_tabbedPanel && (_tabbedPanel->isHidden()
 | 
				
			||||||
			_tabbedPanel->showAnimated();
 | 
									|| ::Kotato::JsonSettings::GetBool("emoji_sidebar_right_click"))) {
 | 
				
			||||||
 | 
								_tabbedPanel->toggleAnimated();
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			toggleTabbedSelectorMode();
 | 
								toggleTabbedSelectorMode();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						base::install_event_filter(_tabbedSelectorToggle, [=](not_null<QEvent*> e) {
 | 
				
			||||||
 | 
							if (e->type() == QEvent::ContextMenu) {
 | 
				
			||||||
 | 
								if (::Kotato::JsonSettings::GetBool("emoji_sidebar_right_click")) {
 | 
				
			||||||
 | 
									toggleTabbedSelectorMode();
 | 
				
			||||||
 | 
								} else if (_tabbedPanel) {
 | 
				
			||||||
 | 
									_tabbedPanel->toggleAnimated();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return base::EventFilterResult::Cancel;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return base::EventFilterResult::Continue;
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const auto selector = controller()->tabbedSelector();
 | 
						const auto selector = controller()->tabbedSelector();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	base::install_event_filter(this, selector, [=](not_null<QEvent*> e) {
 | 
						base::install_event_filter(this, selector, [=](not_null<QEvent*> e) {
 | 
				
			||||||
| 
						 | 
					@ -5273,7 +5286,8 @@ void HistoryWidget::toggleTabbedSelectorMode() {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (_tabbedPanel) {
 | 
						if (_tabbedPanel) {
 | 
				
			||||||
		if (controller()->canShowThirdSection()
 | 
							if (controller()->canShowThirdSection()
 | 
				
			||||||
			&& !controller()->adaptive().isOneColumn()) {
 | 
								&& !controller()->adaptive().isOneColumn()
 | 
				
			||||||
 | 
								&& ::Kotato::JsonSettings::GetBool("emoji_sidebar")) {
 | 
				
			||||||
			Core::App().settings().setTabbedSelectorSectionEnabled(true);
 | 
								Core::App().settings().setTabbedSelectorSectionEnabled(true);
 | 
				
			||||||
			Core::App().saveSettingsDelayed();
 | 
								Core::App().saveSettingsDelayed();
 | 
				
			||||||
			pushTabbedSelectorToThirdSection(
 | 
								pushTabbedSelectorToThirdSection(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2111,9 +2111,22 @@ void ComposeControls::initTabbedSelector() {
 | 
				
			||||||
		setTabbedPanel(nullptr);
 | 
							setTabbedPanel(nullptr);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						base::install_event_filter(_tabbedSelectorToggle, [=](not_null<QEvent*> e) {
 | 
				
			||||||
 | 
							if (e->type() == QEvent::ContextMenu) {
 | 
				
			||||||
 | 
								if (::Kotato::JsonSettings::GetBool("emoji_sidebar_right_click")) {
 | 
				
			||||||
 | 
									toggleTabbedSelectorMode();
 | 
				
			||||||
 | 
								} else if (_tabbedPanel) {
 | 
				
			||||||
 | 
									_tabbedPanel->toggleAnimated();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return base::EventFilterResult::Cancel;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return base::EventFilterResult::Continue;
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_tabbedSelectorToggle->addClickHandler([=] {
 | 
						_tabbedSelectorToggle->addClickHandler([=] {
 | 
				
			||||||
		if (_tabbedPanel && _tabbedPanel->isHidden()) {
 | 
							if (_tabbedPanel && (_tabbedPanel->isHidden()
 | 
				
			||||||
			_tabbedPanel->showAnimated();
 | 
									|| ::Kotato::JsonSettings::GetBool("emoji_sidebar_right_click"))) {
 | 
				
			||||||
 | 
								_tabbedPanel->toggleAnimated();
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			toggleTabbedSelectorMode();
 | 
								toggleTabbedSelectorMode();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -2853,7 +2866,8 @@ void ComposeControls::toggleTabbedSelectorMode() {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (_tabbedPanel) {
 | 
						if (_tabbedPanel) {
 | 
				
			||||||
		if (_regularWindow->canShowThirdSection()
 | 
							if (_regularWindow->canShowThirdSection()
 | 
				
			||||||
				&& !_regularWindow->adaptive().isOneColumn()) {
 | 
									&& !_regularWindow->adaptive().isOneColumn()
 | 
				
			||||||
 | 
									&& ::Kotato::JsonSettings::GetBool("emoji_sidebar")) {
 | 
				
			||||||
			Core::App().settings().setTabbedSelectorSectionEnabled(true);
 | 
								Core::App().settings().setTabbedSelectorSectionEnabled(true);
 | 
				
			||||||
			Core::App().saveSettingsDelayed();
 | 
								Core::App().saveSettingsDelayed();
 | 
				
			||||||
			const auto topic = _history->peer->forumTopicFor(_topicRootId);
 | 
								const auto topic = _history->peer->forumTopicFor(_topicRootId);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -361,6 +361,12 @@ const std::map<QString, Definition, std::greater<QString>> DefinitionMap {
 | 
				
			||||||
	{ "view_profile_on_top", {
 | 
						{ "view_profile_on_top", {
 | 
				
			||||||
		.type = SettingType::BoolSetting,
 | 
							.type = SettingType::BoolSetting,
 | 
				
			||||||
		.defaultValue = false, }},
 | 
							.defaultValue = false, }},
 | 
				
			||||||
 | 
						{ "emoji_sidebar", {
 | 
				
			||||||
 | 
							.type = SettingType::BoolSetting,
 | 
				
			||||||
 | 
							.defaultValue = true, }},
 | 
				
			||||||
 | 
						{ "emoji_sidebar_right_click", {
 | 
				
			||||||
 | 
							.type = SettingType::BoolSetting,
 | 
				
			||||||
 | 
							.defaultValue = false, }},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using OldOptionKey = QString;
 | 
					using OldOptionKey = QString;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -258,6 +258,8 @@ void SetupKotatoChats(
 | 
				
			||||||
	Ui::AddDividerText(container, rktr("ktg_settings_view_profile_on_top_about"));
 | 
						Ui::AddDividerText(container, rktr("ktg_settings_view_profile_on_top_about"));
 | 
				
			||||||
	Ui::AddSkip(container);
 | 
						Ui::AddSkip(container);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SettingsMenuJsonSwitch(ktg_settings_emoji_sidebar, emoji_sidebar);
 | 
				
			||||||
 | 
						SettingsMenuJsonSwitch(ktg_settings_emoji_sidebar_right_click, emoji_sidebar_right_click);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Ui::AddSkip(container);
 | 
						Ui::AddSkip(container);
 | 
				
			||||||
	Ui::AddDivider(container);
 | 
						Ui::AddDivider(container);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue