Always show experimental settings
This commit is contained in:
		
							parent
							
								
									b77995dfc7
								
							
						
					
					
						commit
						aed207de54
					
				
					 5 changed files with 44 additions and 34 deletions
				
			
		|  | @ -264,5 +264,6 @@ | |||
| 	"ktg_jump_to_date_button": "Jump", | ||||
| 	"ktg_jump_to_beginning": "Jump to beginning", | ||||
| 	"ktg_show_calendar": "Show calendar", | ||||
| 	"ktg_in_app_update_disabled": "In-app updater is disabled.", | ||||
| 	"dummy_last_string": "" | ||||
| } | ||||
|  |  | |||
|  | @ -264,5 +264,6 @@ | |||
| 	"ktg_jump_to_date_button": "Перейти", | ||||
| 	"ktg_jump_to_beginning": "Перейти в начало", | ||||
| 	"ktg_show_calendar": "Показать календарь", | ||||
| 	"ktg_in_app_update_disabled": "Обновление внутри приложения отключено.", | ||||
| 	"dummy_last_string": "" | ||||
| } | ||||
|  |  | |||
|  | @ -86,12 +86,9 @@ bool HasUpdate() { | |||
| } | ||||
| 
 | ||||
| void SetupUpdate( | ||||
| 		not_null<Window::Controller*> controller, | ||||
| 		not_null<Ui::VerticalLayout*> container, | ||||
| 		Fn<void(Type)> showOther) { | ||||
| 	if (!HasUpdate()) { | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	const auto texts = Ui::CreateChild<rpl::event_stream<QString>>( | ||||
| 		container.get()); | ||||
| 	const auto downloading = Ui::CreateChild<rpl::event_stream<bool>>( | ||||
|  | @ -114,29 +111,48 @@ void SetupUpdate( | |||
| 			container, | ||||
| 			object_ptr<Ui::VerticalLayout>(container))); | ||||
| 	const auto inner = options->entity(); | ||||
| 	const auto install = cAlphaVersion() ? nullptr : AddButton( | ||||
| 	const auto install = (cAlphaVersion() || !HasUpdate()) ? nullptr : AddButton( | ||||
| 		inner, | ||||
| 		tr::lng_settings_install_beta(), | ||||
| 		st::settingsButton).get(); | ||||
| 
 | ||||
| 	if (showOther) { | ||||
| 		const auto experimental = inner->add( | ||||
| 			object_ptr<Ui::SlideWrap<Button>>( | ||||
| 				inner, | ||||
| 		const auto experimental = container->add( | ||||
| 				object_ptr<Button>( | ||||
| 					inner, | ||||
| 					container, | ||||
| 					tr::lng_settings_experimental(), | ||||
| 					st::settingsButton))); | ||||
| 		if (!install) { | ||||
| 			experimental->toggle(true, anim::type::instant); | ||||
| 		} else { | ||||
| 			experimental->toggleOn(install->toggledValue()); | ||||
| 		} | ||||
| 		experimental->entity()->setClickedCallback([=] { | ||||
| 					st::settingsButton)); | ||||
| 		experimental->setClickedCallback([=] { | ||||
| 			showOther(Type::Experimental); | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	rpl::combine( | ||||
| 		toggle->widthValue(), | ||||
| 		label->widthValue() | ||||
| 	) | rpl::start_with_next([=] { | ||||
| 		label->moveToLeft( | ||||
| 			st::settingsUpdateStatePosition.x(), | ||||
| 			st::settingsUpdateStatePosition.y()); | ||||
| 	}, label->lifetime()); | ||||
| 	label->setAttribute(Qt::WA_TransparentForMouseEvents); | ||||
| 
 | ||||
| 	if (!HasUpdate()) { | ||||
| 		texts->fire_copy(version); | ||||
| 		auto &lifetime = container->lifetime(); | ||||
| 		const auto toggles = lifetime.make_state<rpl::event_stream<bool>>(); | ||||
| 		toggle->toggleOn(toggles->events_starting_with(false)); | ||||
| 		toggle->toggledChanges( | ||||
| 		) | rpl::start_with_next([=](bool value) { | ||||
| 			if (value) { | ||||
| 				toggles->fire_copy(false); | ||||
| 				controller->showToast(ktr("ktg_in_app_update_disabled")); | ||||
| 				return; | ||||
| 			} | ||||
| 		}, container->lifetime()); | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	const auto check = AddButton( | ||||
| 		inner, | ||||
| 		tr::lng_settings_check_now(), | ||||
|  | @ -151,16 +167,6 @@ void SetupUpdate( | |||
| 		update->moveToLeft(0, 0); | ||||
| 	}, update->lifetime()); | ||||
| 
 | ||||
| 	rpl::combine( | ||||
| 		toggle->widthValue(), | ||||
| 		label->widthValue() | ||||
| 	) | rpl::start_with_next([=] { | ||||
| 		label->moveToLeft( | ||||
| 			st::settingsUpdateStatePosition.x(), | ||||
| 			st::settingsUpdateStatePosition.y()); | ||||
| 	}, label->lifetime()); | ||||
| 	label->setAttribute(Qt::WA_TransparentForMouseEvents); | ||||
| 
 | ||||
| 	const auto showDownloadProgress = [=](int64 ready, int64 total) { | ||||
| 		texts->fire(tr::lng_settings_downloading_update( | ||||
| 			tr::now, | ||||
|  | @ -742,15 +748,16 @@ void Advanced::setupContent(not_null<Window::SessionController*> controller) { | |||
| 		} | ||||
| 	}; | ||||
| 	const auto addUpdate = [&] { | ||||
| 		if (HasUpdate()) { | ||||
| 		addDivider(); | ||||
| 		AddSkip(content); | ||||
| 		AddSubsectionTitle(content, tr::lng_settings_version_info()); | ||||
| 			SetupUpdate(content, [=](Type type) { | ||||
| 		SetupUpdate( | ||||
| 			&controller->window(), | ||||
| 			content, | ||||
| 			[=](Type type) { | ||||
| 				_showOther.fire_copy(type); | ||||
| 			}); | ||||
| 		AddSkip(content); | ||||
| 		} | ||||
| 	}; | ||||
| 	if (!cAutoUpdate()) { | ||||
| 		addUpdate(); | ||||
|  |  | |||
|  | @ -25,6 +25,7 @@ void SetupConnectionType( | |||
| 	not_null<Ui::VerticalLayout*> container); | ||||
| bool HasUpdate(); | ||||
| void SetupUpdate( | ||||
| 	not_null<Window::Controller*> controller, | ||||
| 	not_null<Ui::VerticalLayout*> container, | ||||
| 	Fn<void(Type)> showOther); | ||||
| void SetupSystemIntegrationContent( | ||||
|  |  | |||
|  | @ -69,7 +69,7 @@ object_ptr<Ui::RpWidget> CreateIntroSettings( | |||
| 	if (HasUpdate()) { | ||||
| 		AddDivider(result); | ||||
| 		AddSkip(result); | ||||
| 		SetupUpdate(result, nullptr); | ||||
| 		SetupUpdate(window, result, nullptr); | ||||
| 		AddSkip(result); | ||||
| 	} | ||||
| 	{ | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue