コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
        /// <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);
            }
        }