mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 11:48:06 +01:00
[FZEditor]Fix "Save and close" not updating layouts (#28201)
* keep editing model * hotkey backup * added restore to base model * pass model as an arg to edit and backup * init canvas zones * serialization * not needed line
This commit is contained in:
@@ -19,12 +19,13 @@ namespace FancyZonesEditor
|
|||||||
|
|
||||||
private CanvasLayoutModel _model;
|
private CanvasLayoutModel _model;
|
||||||
|
|
||||||
public CanvasEditor()
|
public CanvasEditor(CanvasLayoutModel layout)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
Loaded += OnLoaded;
|
Loaded += OnLoaded;
|
||||||
Unloaded += OnUnloaded;
|
Unloaded += OnUnloaded;
|
||||||
KeyDown += CanvasEditor_KeyDown;
|
KeyDown += CanvasEditor_KeyDown;
|
||||||
|
_model = layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CanvasEditor_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
|
private void CanvasEditor_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
|
||||||
@@ -47,17 +48,8 @@ namespace FancyZonesEditor
|
|||||||
|
|
||||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
CanvasLayoutModel model = (CanvasLayoutModel)DataContext;
|
UpdateZoneRects();
|
||||||
if (model != null)
|
_model.PropertyChanged += OnModelChanged;
|
||||||
{
|
|
||||||
_model = model;
|
|
||||||
|
|
||||||
var workArea = App.Overlay.WorkArea;
|
|
||||||
|
|
||||||
UpdateZoneRects();
|
|
||||||
|
|
||||||
_model.PropertyChanged += OnModelChanged;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnUnloaded(object sender, RoutedEventArgs e)
|
private void OnUnloaded(object sender, RoutedEventArgs e)
|
||||||
|
|||||||
@@ -11,39 +11,28 @@ namespace FancyZonesEditor
|
|||||||
{
|
{
|
||||||
public partial class CanvasEditorWindow : EditorWindow
|
public partial class CanvasEditorWindow : EditorWindow
|
||||||
{
|
{
|
||||||
private CanvasLayoutModel _model;
|
public CanvasEditorWindow(CanvasLayoutModel layout)
|
||||||
private CanvasLayoutModel _stashedModel;
|
: base(layout)
|
||||||
|
|
||||||
public CanvasEditorWindow()
|
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
KeyUp += CanvasEditorWindow_KeyUp;
|
KeyUp += CanvasEditorWindow_KeyUp;
|
||||||
KeyDown += CanvasEditorWindow_KeyDown;
|
KeyDown += CanvasEditorWindow_KeyDown;
|
||||||
|
|
||||||
_model = App.Overlay.CurrentDataContext as CanvasLayoutModel;
|
|
||||||
_stashedModel = (CanvasLayoutModel)_model.Clone();
|
|
||||||
}
|
|
||||||
|
|
||||||
public LayoutModel Model
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _model;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnAddZone(object sender, RoutedEventArgs e)
|
private void OnAddZone(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
Logger.LogInfo("Add zone");
|
Logger.LogInfo("Add zone");
|
||||||
_model.AddZone();
|
if (EditingLayout is CanvasLayoutModel canvas)
|
||||||
|
{
|
||||||
|
canvas.AddZone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected new void OnCancel(object sender, RoutedEventArgs e)
|
protected new void OnCancel(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
Logger.LogInfo("Cancel changes");
|
Logger.LogInfo("Cancel changes");
|
||||||
base.OnCancel(sender, e);
|
base.OnCancel(sender, e);
|
||||||
_stashedModel.RestoreTo(_model);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CanvasEditorWindow_KeyUp(object sender, KeyEventArgs e)
|
private void CanvasEditorWindow_KeyUp(object sender, KeyEventArgs e)
|
||||||
|
|||||||
@@ -11,29 +11,35 @@ namespace FancyZonesEditor
|
|||||||
{
|
{
|
||||||
public class EditorWindow : Window
|
public class EditorWindow : Window
|
||||||
{
|
{
|
||||||
|
public LayoutModel EditingLayout { get; set; }
|
||||||
|
|
||||||
|
public EditorWindow(LayoutModel editingLayout)
|
||||||
|
{
|
||||||
|
EditingLayout = editingLayout;
|
||||||
|
}
|
||||||
|
|
||||||
protected void OnSaveApplyTemplate(object sender, RoutedEventArgs e)
|
protected void OnSaveApplyTemplate(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
Logger.LogTrace();
|
Logger.LogTrace();
|
||||||
var mainEditor = App.Overlay;
|
|
||||||
if (mainEditor.CurrentDataContext is LayoutModel model)
|
// If new custom Canvas layout is created (i.e. edited Blank layout),
|
||||||
|
// it's type needs to be updated
|
||||||
|
if (EditingLayout.Type == LayoutType.Blank)
|
||||||
{
|
{
|
||||||
// If new custom Canvas layout is created (i.e. edited Blank layout),
|
EditingLayout.Type = LayoutType.Custom;
|
||||||
// it's type needs to be updated
|
|
||||||
if (model.Type == LayoutType.Blank)
|
|
||||||
{
|
|
||||||
model.Type = LayoutType.Custom;
|
|
||||||
}
|
|
||||||
|
|
||||||
model.Persist();
|
|
||||||
|
|
||||||
MainWindowSettingsModel settings = ((App)Application.Current).MainWindowSettings;
|
|
||||||
settings.SetAppliedModel(model);
|
|
||||||
App.Overlay.Monitors[App.Overlay.CurrentDesktop].SetLayoutSettings(model);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EditingLayout.Persist();
|
||||||
|
|
||||||
|
MainWindowSettingsModel settings = ((App)Application.Current).MainWindowSettings;
|
||||||
|
settings.SetAppliedModel(EditingLayout);
|
||||||
|
App.Overlay.Monitors[App.Overlay.CurrentDesktop].SetLayoutSettings(EditingLayout);
|
||||||
|
|
||||||
App.FancyZonesEditorIO.SerializeLayoutTemplates();
|
App.FancyZonesEditorIO.SerializeLayoutTemplates();
|
||||||
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
||||||
App.FancyZonesEditorIO.SerializeAppliedLayouts();
|
App.FancyZonesEditorIO.SerializeAppliedLayouts();
|
||||||
|
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
||||||
|
App.FancyZonesEditorIO.SerializeLayoutHotkeys();
|
||||||
|
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
@@ -46,7 +52,7 @@ namespace FancyZonesEditor
|
|||||||
protected void OnCancel(object sender, RoutedEventArgs e)
|
protected void OnCancel(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
// restore backup, clean up
|
// restore backup, clean up
|
||||||
App.Overlay.EndEditing(true);
|
App.Overlay.EndEditing(EditingLayout);
|
||||||
|
|
||||||
// select and draw applied layout
|
// select and draw applied layout
|
||||||
var settings = ((App)Application.Current).MainWindowSettings;
|
var settings = ((App)Application.Current).MainWindowSettings;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace FancyZonesEditor
|
|||||||
|
|
||||||
private GridData _data;
|
private GridData _data;
|
||||||
|
|
||||||
public GridEditor()
|
public GridEditor(GridLayoutModel layoutModel)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
Loaded += GridEditor_Loaded;
|
Loaded += GridEditor_Loaded;
|
||||||
@@ -44,6 +44,9 @@ namespace FancyZonesEditor
|
|||||||
KeyDown += GridEditor_KeyDown;
|
KeyDown += GridEditor_KeyDown;
|
||||||
KeyUp += GridEditor_KeyUp;
|
KeyUp += GridEditor_KeyUp;
|
||||||
gridEditorUniqueId = ++gridEditorUniqueIdCounter;
|
gridEditorUniqueId = ++gridEditorUniqueIdCounter;
|
||||||
|
|
||||||
|
_data = new GridData(layoutModel);
|
||||||
|
Model = layoutModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FocusZone()
|
public void FocusZone()
|
||||||
@@ -58,16 +61,6 @@ namespace FancyZonesEditor
|
|||||||
private void GridEditor_Loaded(object sender, RoutedEventArgs e)
|
private void GridEditor_Loaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
((App)Application.Current).MainWindowSettings.PropertyChanged += ZoneSettings_PropertyChanged;
|
((App)Application.Current).MainWindowSettings.PropertyChanged += ZoneSettings_PropertyChanged;
|
||||||
|
|
||||||
GridLayoutModel model = (GridLayoutModel)DataContext;
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_data = new GridData(model);
|
|
||||||
|
|
||||||
Model = model;
|
|
||||||
Model.PropertyChanged += OnGridDimensionsChanged;
|
Model.PropertyChanged += OnGridDimensionsChanged;
|
||||||
SetupUI();
|
SetupUI();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ namespace FancyZonesEditor
|
|||||||
{
|
{
|
||||||
public partial class GridEditorWindow : EditorWindow
|
public partial class GridEditorWindow : EditorWindow
|
||||||
{
|
{
|
||||||
public GridEditorWindow()
|
public GridEditorWindow(GridLayoutModel model)
|
||||||
|
: base(model)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,15 @@
|
|||||||
// See the LICENSE file in the project root for more information.
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Windows;
|
|
||||||
using FancyZonesEditor.Models;
|
using FancyZonesEditor.Models;
|
||||||
|
using FancyZonesEditor.Utils;
|
||||||
|
|
||||||
namespace FancyZonesEditor
|
namespace FancyZonesEditor
|
||||||
{
|
{
|
||||||
public class LayoutBackup
|
public class LayoutBackup
|
||||||
{
|
{
|
||||||
private LayoutModel _backup;
|
private LayoutModel _backup;
|
||||||
|
private string _hotkeyBackup;
|
||||||
private List<LayoutModel> _defaultLayoutsBackup;
|
private List<LayoutModel> _defaultLayoutsBackup;
|
||||||
|
|
||||||
public LayoutBackup()
|
public LayoutBackup()
|
||||||
@@ -28,32 +29,31 @@ namespace FancyZonesEditor
|
|||||||
_backup = new CanvasLayoutModel(canvas);
|
_backup = new CanvasLayoutModel(canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_hotkeyBackup = MainWindowSettingsModel.LayoutHotkeys.Key(model.Uuid);
|
||||||
_defaultLayoutsBackup = new List<LayoutModel>(MainWindowSettingsModel.DefaultLayouts.Layouts);
|
_defaultLayoutsBackup = new List<LayoutModel>(MainWindowSettingsModel.DefaultLayouts.Layouts);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Restore()
|
public void Restore(LayoutModel layoutToRestore)
|
||||||
{
|
{
|
||||||
if (_backup != null)
|
if (_backup != null && layoutToRestore != null)
|
||||||
{
|
{
|
||||||
var settings = ((App)Application.Current).MainWindowSettings;
|
|
||||||
var selectedModel = settings.SelectedModel;
|
|
||||||
|
|
||||||
if (selectedModel == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_backup is GridLayoutModel grid)
|
if (_backup is GridLayoutModel grid)
|
||||||
{
|
{
|
||||||
grid.RestoreTo((GridLayoutModel)selectedModel);
|
grid.RestoreTo((GridLayoutModel)layoutToRestore);
|
||||||
grid.InitTemplateZones();
|
grid.InitTemplateZones();
|
||||||
}
|
}
|
||||||
else if (_backup is CanvasLayoutModel canvas)
|
else if (_backup is CanvasLayoutModel canvas)
|
||||||
{
|
{
|
||||||
canvas.RestoreTo((CanvasLayoutModel)selectedModel);
|
canvas.RestoreTo((CanvasLayoutModel)layoutToRestore);
|
||||||
|
canvas.InitTemplateZones();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_hotkeyBackup != null)
|
||||||
|
{
|
||||||
|
MainWindowSettingsModel.LayoutHotkeys.SelectKey(_hotkeyBackup, layoutToRestore.Uuid);
|
||||||
|
}
|
||||||
|
|
||||||
if (_defaultLayoutsBackup != null)
|
if (_defaultLayoutsBackup != null)
|
||||||
{
|
{
|
||||||
MainWindowSettingsModel.DefaultLayouts.Restore(_defaultLayoutsBackup);
|
MainWindowSettingsModel.DefaultLayouts.Restore(_defaultLayoutsBackup);
|
||||||
@@ -63,6 +63,7 @@ namespace FancyZonesEditor
|
|||||||
public void Clear()
|
public void Clear()
|
||||||
{
|
{
|
||||||
_backup = null;
|
_backup = null;
|
||||||
|
_hotkeyBackup = null;
|
||||||
_defaultLayoutsBackup = null;
|
_defaultLayoutsBackup = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,29 +146,17 @@ namespace FancyZonesEditor
|
|||||||
|
|
||||||
private void DecrementZones_Click(object sender, RoutedEventArgs e)
|
private void DecrementZones_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var mainEditor = App.Overlay;
|
if (_settings.SelectedModel.TemplateZoneCount > 1)
|
||||||
if (mainEditor.CurrentDataContext is not LayoutModel model)
|
|
||||||
{
|
{
|
||||||
return;
|
_settings.SelectedModel.TemplateZoneCount--;
|
||||||
}
|
|
||||||
|
|
||||||
if (model.TemplateZoneCount > 1)
|
|
||||||
{
|
|
||||||
model.TemplateZoneCount--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void IncrementZones_Click(object sender, RoutedEventArgs e)
|
private void IncrementZones_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var mainEditor = App.Overlay;
|
if (_settings.SelectedModel.IsZoneAddingAllowed)
|
||||||
if (mainEditor.CurrentDataContext is not LayoutModel model)
|
|
||||||
{
|
{
|
||||||
return;
|
_settings.SelectedModel.TemplateZoneCount++;
|
||||||
}
|
|
||||||
|
|
||||||
if (model.IsZoneAddingAllowed)
|
|
||||||
{
|
|
||||||
model.TemplateZoneCount++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,25 +291,23 @@ namespace FancyZonesEditor
|
|||||||
private void Apply()
|
private void Apply()
|
||||||
{
|
{
|
||||||
Logger.LogTrace();
|
Logger.LogTrace();
|
||||||
var mainEditor = App.Overlay;
|
|
||||||
if (mainEditor.CurrentDataContext is LayoutModel model)
|
LayoutModel model = _settings.SelectedModel;
|
||||||
{
|
_settings.SetAppliedModel(model);
|
||||||
_settings.SetAppliedModel(model);
|
App.Overlay.Monitors[App.Overlay.CurrentDesktop].SetLayoutSettings(model);
|
||||||
App.Overlay.Monitors[App.Overlay.CurrentDesktop].SetLayoutSettings(model);
|
App.FancyZonesEditorIO.SerializeAppliedLayouts();
|
||||||
App.FancyZonesEditorIO.SerializeAppliedLayouts();
|
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
||||||
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClosing(object sender, EventArgs e)
|
private void OnClosing(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Logger.LogTrace();
|
Logger.LogTrace();
|
||||||
App.Overlay.EndEditing(true);
|
|
||||||
|
|
||||||
App.FancyZonesEditorIO.SerializeAppliedLayouts();
|
App.FancyZonesEditorIO.SerializeAppliedLayouts();
|
||||||
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
||||||
App.FancyZonesEditorIO.SerializeLayoutHotkeys();
|
App.FancyZonesEditorIO.SerializeLayoutHotkeys();
|
||||||
App.FancyZonesEditorIO.SerializeLayoutTemplates();
|
App.FancyZonesEditorIO.SerializeLayoutTemplates();
|
||||||
|
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
||||||
App.Overlay.CloseLayoutWindow();
|
App.Overlay.CloseLayoutWindow();
|
||||||
App.Current.Shutdown();
|
App.Current.Shutdown();
|
||||||
}
|
}
|
||||||
@@ -345,7 +331,8 @@ namespace FancyZonesEditor
|
|||||||
|
|
||||||
var dataContext = ((FrameworkElement)sender).DataContext;
|
var dataContext = ((FrameworkElement)sender).DataContext;
|
||||||
Select((LayoutModel)dataContext);
|
Select((LayoutModel)dataContext);
|
||||||
App.Overlay.StartEditing((LayoutModel)dataContext);
|
|
||||||
|
App.Overlay.StartEditing(_settings.SelectedModel);
|
||||||
|
|
||||||
Keyboard.ClearFocus();
|
Keyboard.ClearFocus();
|
||||||
EditLayoutDialogTitle.Text = string.Format(CultureInfo.CurrentCulture, Properties.Resources.Edit_Template, ((LayoutModel)dataContext).Name);
|
EditLayoutDialogTitle.Text = string.Format(CultureInfo.CurrentCulture, Properties.Resources.Edit_Template, ((LayoutModel)dataContext).Name);
|
||||||
@@ -358,16 +345,8 @@ namespace FancyZonesEditor
|
|||||||
var dataContext = ((FrameworkElement)sender).DataContext;
|
var dataContext = ((FrameworkElement)sender).DataContext;
|
||||||
Select((LayoutModel)dataContext);
|
Select((LayoutModel)dataContext);
|
||||||
EditLayoutDialog.Hide();
|
EditLayoutDialog.Hide();
|
||||||
var mainEditor = App.Overlay;
|
|
||||||
if (mainEditor.CurrentDataContext is not LayoutModel model)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_settings.SetSelectedModel(model);
|
|
||||||
|
|
||||||
Hide();
|
Hide();
|
||||||
mainEditor.OpenEditor(model);
|
App.Overlay.OpenEditor(_settings.SelectedModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
|
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
|
||||||
@@ -438,7 +417,7 @@ namespace FancyZonesEditor
|
|||||||
// EditLayout: Cancel changes
|
// EditLayout: Cancel changes
|
||||||
private void EditLayoutDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
|
private void EditLayoutDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
|
||||||
{
|
{
|
||||||
App.Overlay.EndEditing(false);
|
App.Overlay.EndEditing(_settings.SelectedModel);
|
||||||
Select(_settings.AppliedModel);
|
Select(_settings.AppliedModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,13 +426,8 @@ namespace FancyZonesEditor
|
|||||||
{
|
{
|
||||||
Logger.LogTrace();
|
Logger.LogTrace();
|
||||||
|
|
||||||
var mainEditor = App.Overlay;
|
App.Overlay.EndEditing(null);
|
||||||
if (mainEditor.CurrentDataContext is not LayoutModel model)
|
LayoutModel model = _settings.SelectedModel;
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mainEditor.EndEditing(false);
|
|
||||||
|
|
||||||
// update current settings
|
// update current settings
|
||||||
if (model == _settings.AppliedModel)
|
if (model == _settings.AppliedModel)
|
||||||
@@ -465,6 +439,7 @@ namespace FancyZonesEditor
|
|||||||
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
App.FancyZonesEditorIO.SerializeCustomLayouts();
|
||||||
App.FancyZonesEditorIO.SerializeLayoutTemplates();
|
App.FancyZonesEditorIO.SerializeLayoutTemplates();
|
||||||
App.FancyZonesEditorIO.SerializeLayoutHotkeys();
|
App.FancyZonesEditorIO.SerializeLayoutHotkeys();
|
||||||
|
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
||||||
|
|
||||||
// reset selected model
|
// reset selected model
|
||||||
Select(_settings.AppliedModel);
|
Select(_settings.AppliedModel);
|
||||||
@@ -653,7 +628,6 @@ namespace FancyZonesEditor
|
|||||||
if (dataContext is LayoutModel model)
|
if (dataContext is LayoutModel model)
|
||||||
{
|
{
|
||||||
MainWindowSettingsModel.DefaultLayouts.Set(model, MonitorConfigurationType.Vertical);
|
MainWindowSettingsModel.DefaultLayouts.Set(model, MonitorConfigurationType.Vertical);
|
||||||
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -663,7 +637,6 @@ namespace FancyZonesEditor
|
|||||||
if (dataContext is LayoutModel model)
|
if (dataContext is LayoutModel model)
|
||||||
{
|
{
|
||||||
MainWindowSettingsModel.DefaultLayouts.Set(model, MonitorConfigurationType.Horizontal);
|
MainWindowSettingsModel.DefaultLayouts.Set(model, MonitorConfigurationType.Horizontal);
|
||||||
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -673,7 +646,6 @@ namespace FancyZonesEditor
|
|||||||
if (dataContext is LayoutModel model)
|
if (dataContext is LayoutModel model)
|
||||||
{
|
{
|
||||||
MainWindowSettingsModel.DefaultLayouts.Reset(MonitorConfigurationType.Horizontal);
|
MainWindowSettingsModel.DefaultLayouts.Reset(MonitorConfigurationType.Horizontal);
|
||||||
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -683,7 +655,6 @@ namespace FancyZonesEditor
|
|||||||
if (dataContext is LayoutModel model)
|
if (dataContext is LayoutModel model)
|
||||||
{
|
{
|
||||||
MainWindowSettingsModel.DefaultLayouts.Reset(MonitorConfigurationType.Vertical);
|
MainWindowSettingsModel.DefaultLayouts.Reset(MonitorConfigurationType.Vertical);
|
||||||
App.FancyZonesEditorIO.SerializeDefaultLayouts();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,6 +184,8 @@ namespace FancyZonesEditor.Models
|
|||||||
|
|
||||||
public void RestoreTo(CanvasLayoutModel other)
|
public void RestoreTo(CanvasLayoutModel other)
|
||||||
{
|
{
|
||||||
|
base.RestoreTo(other);
|
||||||
|
|
||||||
other.Zones.Clear();
|
other.Zones.Clear();
|
||||||
foreach (Int32Rect zone in Zones)
|
foreach (Int32Rect zone in Zones)
|
||||||
{
|
{
|
||||||
@@ -191,7 +193,6 @@ namespace FancyZonesEditor.Models
|
|||||||
}
|
}
|
||||||
|
|
||||||
other._topLeft = _topLeft;
|
other._topLeft = _topLeft;
|
||||||
other.SensitivityRadius = SensitivityRadius;
|
|
||||||
other.CanvasRect = CanvasRect;
|
other.CanvasRect = CanvasRect;
|
||||||
other.UpdateLayout();
|
other.UpdateLayout();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -280,6 +280,8 @@ namespace FancyZonesEditor.Models
|
|||||||
|
|
||||||
public void RestoreTo(GridLayoutModel layout)
|
public void RestoreTo(GridLayoutModel layout)
|
||||||
{
|
{
|
||||||
|
base.RestoreTo(layout);
|
||||||
|
|
||||||
int rows = Rows;
|
int rows = Rows;
|
||||||
int cols = Columns;
|
int cols = Columns;
|
||||||
|
|
||||||
@@ -315,7 +317,6 @@ namespace FancyZonesEditor.Models
|
|||||||
|
|
||||||
layout.ShowSpacing = ShowSpacing;
|
layout.ShowSpacing = ShowSpacing;
|
||||||
layout.Spacing = Spacing;
|
layout.Spacing = Spacing;
|
||||||
layout.SensitivityRadius = SensitivityRadius;
|
|
||||||
|
|
||||||
layout.FirePropertyChanged();
|
layout.FirePropertyChanged();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,19 @@ namespace FancyZonesEditor.Models
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string Key(string uuid)
|
||||||
|
{
|
||||||
|
foreach (var pair in SelectedKeys)
|
||||||
|
{
|
||||||
|
if (pair.Value == uuid)
|
||||||
|
{
|
||||||
|
return pair.Key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Properties.Resources.Quick_Key_None;
|
||||||
|
}
|
||||||
|
|
||||||
public void CleanUp()
|
public void CleanUp()
|
||||||
{
|
{
|
||||||
var keys = SelectedKeys.Keys.ToList();
|
var keys = SelectedKeys.Keys.ToList();
|
||||||
|
|||||||
@@ -339,6 +339,12 @@ namespace FancyZonesEditor.Models
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RestoreTo(LayoutModel layout)
|
||||||
|
{
|
||||||
|
layout.SensitivityRadius = SensitivityRadius;
|
||||||
|
layout.TemplateZoneCount = TemplateZoneCount;
|
||||||
|
}
|
||||||
|
|
||||||
// Adds new custom Layout
|
// Adds new custom Layout
|
||||||
public void AddCustomLayout(LayoutModel model)
|
public void AddCustomLayout(LayoutModel model)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -186,26 +186,19 @@ namespace FancyZonesEditor
|
|||||||
Logger.LogTrace();
|
Logger.LogTrace();
|
||||||
|
|
||||||
_layoutPreview = null;
|
_layoutPreview = null;
|
||||||
if (CurrentDataContext is GridLayoutModel)
|
if (model is GridLayoutModel grid)
|
||||||
{
|
{
|
||||||
_editorLayout = new GridEditor();
|
_editorLayout = new GridEditor(grid);
|
||||||
|
_editorWindow = new GridEditorWindow(grid);
|
||||||
}
|
}
|
||||||
else if (CurrentDataContext is CanvasLayoutModel)
|
else if (model is CanvasLayoutModel canvas)
|
||||||
{
|
{
|
||||||
_editorLayout = new CanvasEditor();
|
_editorLayout = new CanvasEditor(canvas);
|
||||||
|
_editorWindow = new CanvasEditorWindow(canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentLayoutWindow.Content = _editorLayout;
|
CurrentLayoutWindow.Content = _editorLayout;
|
||||||
|
|
||||||
if (model is GridLayoutModel)
|
|
||||||
{
|
|
||||||
_editorWindow = new GridEditorWindow();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_editorWindow = new CanvasEditorWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
_editorWindow.Owner = Monitors[App.Overlay.CurrentDesktop].Window;
|
_editorWindow.Owner = Monitors[App.Overlay.CurrentDesktop].Window;
|
||||||
_editorWindow.DataContext = model;
|
_editorWindow.DataContext = model;
|
||||||
_editorWindow.Show();
|
_editorWindow.Show();
|
||||||
@@ -267,11 +260,11 @@ namespace FancyZonesEditor
|
|||||||
_layoutBackup.Backup(model);
|
_layoutBackup.Backup(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EndEditing(bool restoreBackup)
|
public void EndEditing(LayoutModel modelToRestore)
|
||||||
{
|
{
|
||||||
if (restoreBackup)
|
if (modelToRestore != null)
|
||||||
{
|
{
|
||||||
_layoutBackup.Restore();
|
_layoutBackup.Restore(modelToRestore);
|
||||||
}
|
}
|
||||||
|
|
||||||
_layoutBackup.Clear();
|
_layoutBackup.Clear();
|
||||||
|
|||||||
Reference in New Issue
Block a user