Explorar el Código

wpf: Added SetoutsConfiguration to Projects/Designs/Unapproved

Kenric Nugteren hace 1 mes
padre
commit
27be7d32cc

+ 5 - 0
prs.desktop/Panels/Jobs/Designs/JobDesignPanel.xaml.cs

@@ -59,6 +59,10 @@ namespace PRSDesktop
 
         public void CreateToolbarButtons(IPanelHost host)
         {
+            if (DesignsTabControl.SelectedTab == UnapprovedTabItem)
+            {
+                StagingPanel.SetoutsConfigurationSettings(host, () => new GlobalConfiguration<StagingPanellSettings>().Load());
+            }
         }
 
         public string SectionName => "Job Designs";
@@ -98,6 +102,7 @@ namespace PRSDesktop
                 _settings.View = DesignsTabControl.SelectedItem == UnapprovedTabItem ? JobDesignsView.Unapproved : JobDesignsView.Approved;
                 new UserConfiguration<JobDesignSettings>().Save(_settings);
                 Refresh();
+                OnUpdateDataModel?.Invoke(SectionName, DataModel(Selection.None));
             }
         }
 

+ 20 - 13
prs.desktop/Panels/Staging/StagingPanel.xaml.cs

@@ -147,6 +147,10 @@ public partial class StagingPanel : UserControl, IPanel<StagingSetout>
     }
     private void EnsureScript()
     {
+        if(_script is not null && _script.Text != _settings.Script)
+        {
+            _script = null;
+        }
         if (_script is null && !_settings.Script.IsNullOrWhiteSpace())
         {
             _script = new ScriptDocument(_settings.Script);
@@ -861,14 +865,7 @@ public partial class StagingPanel : UserControl, IPanel<StagingSetout>
         ProjectSetupActions.SetoutGroups(host);
         host.CreateSetupSeparator();
 
-        host.CreateSetupAction(
-            new PanelAction()
-            {
-                Caption = "Setouts Configuration", 
-                Image = PRSDesktop.Resources.specifications,
-                OnExecute = ConfigSettingsClick
-            }
-        );
+        SetoutsConfigurationSettings(host, () => _settings);
         host.CreateSetupAction(
             new PanelAction()
             {
@@ -905,18 +902,28 @@ public partial class StagingPanel : UserControl, IPanel<StagingSetout>
         list.ShowDialog();
     }
 
-    private void ConfigSettingsClick(PanelAction obj)
+    public static void SetoutsConfigurationSettings(IPanelHost host, Func<StagingPanellSettings> getSettings)
+    {
+        host.CreateSetupAction(
+            new PanelAction()
+            {
+                Caption = "Setouts Configuration", 
+                Image = PRSDesktop.Resources.specifications,
+                OnExecute = action => ConfigSettingsClick(getSettings())
+            });
+    }
+
+    private static void ConfigSettingsClick(StagingPanellSettings settings)
     {
         var grid = new DynamicItemsListGrid<StagingPanellSettings>();
         grid.OnCustomiseEditor += Grid_OnCustomiseEditor;
-        if(grid.EditItems(new[] { _settings }))
+        if(grid.EditItems(new[] { settings }))
         {
-            new GlobalConfiguration<StagingPanellSettings>().Save(_settings);
-            _script = null;
+            new GlobalConfiguration<StagingPanellSettings>().Save(settings);
         }
     }
 
-    private void Grid_OnCustomiseEditor(IDynamicEditorForm sender, StagingPanellSettings[]? items, DynamicGridColumn column, BaseEditor editor)
+    private static void Grid_OnCustomiseEditor(IDynamicEditorForm sender, StagingPanellSettings[]? items, DynamicGridColumn column, BaseEditor editor)
     {
         if (items?.FirstOrDefault() is not StagingPanellSettings settings) return;