public static void Open(CarObject car, CarSetupsRemoteSource forceRemoteSource = CarSetupsRemoteSource.None, bool forceNewWindow = false) { var main = Application.Current?.MainWindow as MainWindow; if (forceNewWindow || main == null || !main.IsActive || SettingsHolder.Interface.SkinsSetupsNewWindow) { CarSetupsDialog.Show(car, forceRemoteSource); return; } var remoteLinksStatus = GetRemoteLinksStatus(); if (remoteLinksStatus != _remoteLinksStatus) { _remoteLinksStatus = remoteLinksStatus; main.MenuLinkGroups.RemoveRange(main.MenuLinkGroups.OfType <LinkGroupFilterable>().Where(x => x.GroupKey == "setups").ToList()); } var existing = main.OpenSubGroup("setups", $"Setups for {car.DisplayName}", UriExtension.Create("/Pages/Lists/CarSetupsListPage.xaml?CarId={0}", car.Id)); if (forceRemoteSource != CarSetupsRemoteSource.None) { existing.SetSelected(GetRemoteSourceUri(car.Id, forceRemoteSource)); } }
public static void Open([NotNull] CarObject car, CarSetupsRemoteSource forceRemoteSource = CarSetupsRemoteSource.None, bool forceNewWindow = false) { if (forceNewWindow || Keyboard.Modifiers == ModifierKeys.Control && !User32.IsAsyncKeyPressed(System.Windows.Forms.Keys.K) || !(Application.Current?.MainWindow is MainWindow main) || !main.IsActive || SettingsHolder.Interface.SkinsSetupsNewWindow) { CarSetupsDialog.Show(car, forceRemoteSource); return; } var remoteLinksStatus = GetRemoteLinksStatus(); if (remoteLinksStatus != _remoteLinksStatus) { _remoteLinksStatus = remoteLinksStatus; main.MenuLinkGroups.RemoveRange(main.MenuLinkGroups.OfType <LinkGroupFilterable>().Where(x => x.GroupKey == "setups").ToList()); } var existing = main.OpenSubGroup("setups", $"Setups for {car.DisplayName}", UriExtension.Create("/Pages/Lists/CarSetupsListPage.xaml?CarId={0}", car.Id), FilterHints.CarSetups); foreach (var link in GetRemoteLinks(car.Id)) { existing.FixedLinks.Add(link); } if (forceRemoteSource != CarSetupsRemoteSource.None) { existing.SetSelected(GetRemoteSourceUri(car.Id, forceRemoteSource)); } }