private void DuplicateLayout_Click(object sender, RoutedEventArgs e) { Logger.LogTrace(); EditLayoutDialog.Hide(); var mainEditor = App.Overlay; if (!(mainEditor.CurrentDataContext is LayoutModel model)) { return; } model.IsSelected = false; // make a copy model = model.Clone(); mainEditor.CurrentDataContext = model; string name = model.Name; var index = name.LastIndexOf('('); if (index != -1) { name = name.Remove(index); name = name.TrimEnd(); } Announce(name, FancyZonesEditor.Properties.Resources.Layout_Creation_Announce); int maxCustomIndex = 0; foreach (LayoutModel customModel in MainWindowSettingsModel.CustomModels) { string customModelName = customModel.Name; if (customModelName.StartsWith(name)) { int openBraceIndex = customModelName.LastIndexOf('('); int closeBraceIndex = customModelName.LastIndexOf(')'); if (openBraceIndex != -1 && closeBraceIndex != -1) { string indexSubstring = customModelName.Substring(openBraceIndex + 1, closeBraceIndex - openBraceIndex - 1); if (int.TryParse(indexSubstring, out int i)) { if (maxCustomIndex < i) { maxCustomIndex = i; } } } } } model.Name = name + " (" + (++maxCustomIndex) + ')'; model.Persist(); App.Overlay.SetLayoutSettings(App.Overlay.Monitors[App.Overlay.CurrentDesktop], model); App.FancyZonesEditorIO.SerializeZoneSettings(); }
private void EditZones_Click(object sender, RoutedEventArgs e) { EditLayoutDialog.Hide(); var mainEditor = App.Overlay; if (!(mainEditor.CurrentDataContext is LayoutModel model)) { return; } _settings.SetSelectedModel(model); Hide(); mainEditor.OpenEditor(model); }
private void EditZones_Click(object sender, RoutedEventArgs e) { Logger.LogTrace(); var dataContext = ((FrameworkElement)sender).DataContext; Select((LayoutModel)dataContext); EditLayoutDialog.Hide(); var mainEditor = App.Overlay; if (!(mainEditor.CurrentDataContext is LayoutModel model)) { return; } _settings.SetSelectedModel(model); Hide(); mainEditor.OpenEditor(model); }
private void DeleteLayout_Click(object sender, RoutedEventArgs e) { Logger.LogTrace(); EditLayoutDialog.Hide(); DeleteLayout((FrameworkElement)sender); }