/// <summary> /// Shows the manage layouts dialog</summary> /// <remarks>Programmatic method for showing the 'manage layouts' dialog</remarks> public override void ShowManageLayoutsDialog() { using (var dialog = new WindowLayoutManageDialog()) { dialog.ScreenshotDirectory = LayoutScreenshotDirectory; dialog.LayoutNames = WindowLayoutService.Layouts; TryUseMainFormIcon(MainForm, dialog); dialog.ShowDialog(MainForm); // Re-associate shortcuts for proper persisting foreach (var kv in dialog.RenamedLayouts) { IEnumerable <Input.Keys> shortcuts; if (!m_dictCommandKeys.TryGetValue(kv.Key, out shortcuts)) { continue; } m_dictCommandKeys.Remove(kv.Key); m_dictCommandKeys[kv.Value] = shortcuts; } foreach (var kv in dialog.RenamedLayouts) { WindowLayoutService.RenameLayout(kv.Key, kv.Value); } foreach (var layoutName in dialog.DeletedLayouts) { WindowLayoutService.RemoveLayout(layoutName); } } }
/// <summary> /// Shows the manage layouts dialog</summary> /// <remarks>Programmatic method for showing the 'manage layouts' dialog</remarks> public override void ShowManageLayoutsDialog() { var layouts = new List <Pair <string, Keys> >(); foreach (var layoutName in WindowLayoutService.Layouts) { Keys shortcut = Keys.None; { IEnumerable <Keys> keys; if (m_dictCommandKeys.TryGetValue(layoutName, out keys)) { shortcut = keys.FirstOrDefault(); } } layouts.Add(new Pair <string, Keys>(layoutName, shortcut)); } var vm = new ManageWindowLayoutsDialogViewModel(layouts); vm.ScreenshotDirectory = LayoutScreenshotDirectory; var dialog = new WindowLayoutManageDialog(vm); if (dialog.ShowParentedDialog() != true) { return; } // Re-associate shortcuts for proper persisting foreach (var kv in vm.RenamedLayouts) { IEnumerable <Keys> shortcuts; if (!m_dictCommandKeys.TryGetValue(kv.Key, out shortcuts)) { continue; } m_dictCommandKeys.Remove(kv.Key); m_dictCommandKeys[kv.Value] = shortcuts; } foreach (var kv in vm.RenamedLayouts) { WindowLayoutService.RenameLayout(kv.Key, kv.Value); } foreach (var layoutName in vm.DeletedLayouts) { WindowLayoutService.RemoveLayout(layoutName); } }