Ver código fonte

Disabled broken ScreenRecordingNotes Hotkeys
Added Paging Configurations to Products and SupplierProducts

frogsoftware 11 meses atrás
pai
commit
651d341a3c

+ 3 - 3
prs.desktop/MainWindow.xaml.cs

@@ -155,9 +155,9 @@ public partial class MainWindow : IPanelHostControl
 
         HotKeyManager.Initialize();
         HotKeyManager.RegisterHotKey(Key.F1, ShowHelp);
-        HotKeyManager.RegisterHotKey(Key.F5, ToggleRecording);
-        HotKeyManager.RegisterHotKey(Key.F6, ShowRecordingNotes);
-        HotKeyManager.RegisterHotKey(Key.F4, ToggleRecordingAudio);
+        //HotKeyManager.RegisterHotKey(Key.F5, ToggleRecording);
+        //HotKeyManager.RegisterHotKey(Key.F6, ShowRecordingNotes);
+        //HotKeyManager.RegisterHotKey(Key.F4, ToggleRecordingAudio);
 
         Logger.Send(LogType.Information, "", "Connecting to server");
         var settings = App.DatabaseSettings;

+ 47 - 14
prs.desktop/Panels/Products/Master List/ProductsPanel.xaml.cs

@@ -5,6 +5,7 @@ using System.Drawing;
 using System.Drawing.Imaging;
 using System.IO;
 using System.Linq;
+using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Media.Imaging;
@@ -23,17 +24,30 @@ using System.Windows.Markup.Localizer;
 
 namespace PRSDesktop
 {
+
+    public class ProductsGlobalSettings : BaseObject, IGlobalConfigurationSettings
+    {
+        public int PageSize { get; set; } = 5000;
+    }
+    
     /// <summary>
     ///     Interaction logic for ProductsPanel.xaml
     /// </summary>
     public partial class ProductsPanel : UserControl, IPanel<Product>
     {
         private Product _product;
-        private ProductScreenSettings settings;
+        private ProductsGlobalSettings _globalsettings = new();
+        private ProductScreenSettings _settings = new();
 
         public ProductsPanel()
         {
+            Task[] setup = new Task[]
+            {
+                Task.Run(() => _settings = new UserConfiguration<ProductScreenSettings>().Load()),
+                Task.Run(() => _globalsettings = new GlobalConfiguration<ProductsGlobalSettings>().Load())
+            };
             InitializeComponent();
+            Task.WaitAll(setup);
             Pricing.Visibility = Security.CanView<ProductInstance>() ? Visibility.Visible : Visibility.Collapsed;
             Warehousing.Visibility = Security.CanView<StockMovement>() ? Visibility.Visible : Visibility.Collapsed;
             Orders.Visibility = Security.CanView<PurchaseOrderItem>() ? Visibility.Visible : Visibility.Collapsed;
@@ -51,19 +65,20 @@ namespace PRSDesktop
 
         public void Setup()
         {
-            settings = new UserConfiguration<ProductScreenSettings>().Load();
-            SplitPanel.View = settings.ViewType == ScreenViewType.Register ? DynamicSplitPanelView.Master :
-                settings.ViewType == ScreenViewType.Details ? DynamicSplitPanelView.Detail : DynamicSplitPanelView.Combined;
-            SplitPanel.AnchorWidth = settings.AnchorWidth;
+            
+            SplitPanel.View = _settings.ViewType == ScreenViewType.Register ? DynamicSplitPanelView.Master :
+                _settings.ViewType == ScreenViewType.Details ? DynamicSplitPanelView.Detail : DynamicSplitPanelView.Combined;
+            SplitPanel.AnchorWidth = _settings.AnchorWidth;
 
-            Products.ColumnsTag = settings.ViewType == ScreenViewType.Register ? settings.ViewType.ToString() : "";
+            Products.Options.PageSize = _globalsettings.PageSize;
+            Products.ColumnsTag = _settings.ViewType == ScreenViewType.Register ? _settings.ViewType.ToString() : "";
             Products.Refresh(true, false);
             Products.OnSelectItem += Products_OnSelectItem;
 
             Groups.Refresh(true, false);
 
-            if (settings.SelectedDetailsGrid >= 0 && settings.SelectedDetailsGrid < ProductDetails.Items.Count)
-                ProductDetails.SelectedIndex = settings.SelectedDetailsGrid;
+            if (_settings.SelectedDetailsGrid >= 0 && _settings.SelectedDetailsGrid < ProductDetails.Items.Count)
+                ProductDetails.SelectedIndex = _settings.SelectedDetailsGrid;
         }
 
         public void Shutdown(CancelEventArgs? cancel)
@@ -75,9 +90,27 @@ namespace PRSDesktop
             ProductSetupActions.Standard(host);
             host.CreateSetupSeparator();
             ProductSetupActions.ProductSpreadsheetTemplates(host);
+            host.CreateSetupAction(new PanelAction() { Caption = "Products Settings", Image = PRSDesktop.Resources.product, OnExecute =
+                (obj) =>
+                {
+                    var grid = new DynamicItemsListGrid<ProductsGlobalSettings>();
+                    if (grid.EditItems(new ProductsGlobalSettings[] { _globalsettings }))
+                    {
+                        new GlobalConfiguration<ProductsGlobalSettings>().Save(_globalsettings);
+                        Products.Options.PageSize = _globalsettings.PageSize;
+                        Refresh();
+                    }   
+                    
+                }
+            });
             //host.CreatePanelAction(new PanelAction() { Caption = "Import Dxf", OnExecute = ImportDxF, Image = PRSDesktop.Resources.design });
         }
 
+        private void ProductSettingsClick(PanelAction obj)
+        {
+            throw new NotImplementedException();
+        }
+
         public string SectionName => "Products";
 
         public DataModel DataModel(Selection selected)
@@ -220,8 +253,8 @@ namespace PRSDesktop
                 var t = e.AddedItems[0] as TabItem;
                 if (t != null && t.Visibility == Visibility.Visible)
                 {
-                    settings.SelectedDetailsGrid = ProductDetails.SelectedIndex;
-                    new UserConfiguration<ProductScreenSettings>().Save(settings);
+                    _settings.SelectedDetailsGrid = ProductDetails.SelectedIndex;
+                    new UserConfiguration<ProductScreenSettings>().Save(_settings);
 
                     RefreshDetailsPage();
                 }
@@ -230,12 +263,12 @@ namespace PRSDesktop
 
         private void SplitPanel_OnChanged(object sender, DynamicSplitPanelSettings e)
         {
-            settings.ViewType = SplitPanel.View == DynamicSplitPanelView.Master ? ScreenViewType.Register :
+            _settings.ViewType = SplitPanel.View == DynamicSplitPanelView.Master ? ScreenViewType.Register :
                 SplitPanel.View == DynamicSplitPanelView.Detail ? ScreenViewType.Details : ScreenViewType.Combined;
-            settings.AnchorWidth = SplitPanel.AnchorWidth;
-            new UserConfiguration<ProductScreenSettings>().Save(settings);
+            _settings.AnchorWidth = SplitPanel.AnchorWidth;
+            new UserConfiguration<ProductScreenSettings>().Save(_settings);
 
-            var newTag = settings.ViewType == ScreenViewType.Register ? settings.ViewType.ToString() : "";
+            var newTag = _settings.ViewType == ScreenViewType.Register ? _settings.ViewType.ToString() : "";
             if (Products.ColumnsTag != newTag)
             {
                 Products.ColumnsTag = newTag;

+ 42 - 13
prs.desktop/Panels/Suppliers/SupplierPanel.xaml.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Linq;
+using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Threading;
@@ -29,16 +30,30 @@ public class SupplierPanelSettings : IUserConfigurationSettings
 }
 
 
+public class SupplierGlobalSettings : BaseObject, IGlobalConfigurationSettings
+{
+    public int ProductsPageSize { get; set; } = 5000;
+}
+
+
 /// <summary>
 ///     Interaction logic for SupplierPanel.xaml
 /// </summary>
 public partial class SupplierPanel : UserControl, IPanel<Supplier>
 {
-    private SupplierPanelSettings settings;
-    private Supplier Supplier = new Supplier();
+    private SupplierPanelSettings _settings = new();
+    private SupplierGlobalSettings _globalSettings = new();
+    private Supplier _supplier = new Supplier();
 
     public SupplierPanel()
     {
+        Task[] _setup = new Task[]
+        {
+            Task.Run(() => _settings = new UserConfiguration<SupplierPanelSettings>().Load()),
+            Task.Run(() => _globalSettings = new GlobalConfiguration<SupplierGlobalSettings>().Load())
+        };
+        InitializeComponent();
+        Task.WaitAll(_setup);
         InitializeComponent();
         Products.Visibility = Security.CanView<SupplierProduct>() ? Visibility.Visible : Visibility.Collapsed;
         if (Products.Visibility == Visibility.Visible)
@@ -69,6 +84,20 @@ public partial class SupplierPanel : UserControl, IPanel<Supplier>
         
         host.CreateSetupSeparator();
         AccountsSetupActions.SupplierSpreadsheetTemplates(host);
+        
+        host.CreateSetupAction(new PanelAction() { Caption = "Supplier Settings", Image = PRSDesktop.Resources.supplier, OnExecute =
+            (obj) =>
+            {
+                var grid = new DynamicItemsListGrid<SupplierGlobalSettings>();
+                if (grid.EditItems(new SupplierGlobalSettings[] { _globalSettings }))
+                {
+                    new GlobalConfiguration<SupplierGlobalSettings>().Save(_globalSettings);
+                    SupplierProducts.Options.PageSize = _globalSettings.ProductsPageSize;
+                    Refresh();
+                }   
+                    
+            }
+        });
 
         PostUtils.CreateToolbarButtons(
             host,
@@ -102,12 +131,12 @@ public partial class SupplierPanel : UserControl, IPanel<Supplier>
 
     public void Setup()
     {
-        settings = new UserConfiguration<SupplierPanelSettings>().Load();
-        SplitPanel.View = settings.View;
-        SplitPanel.Anchor = settings.Anchor;
-        SplitPanel.AnchorWidth = settings.AnchorWidth;
+        
+        SplitPanel.View = _settings.View;
+        SplitPanel.Anchor = _settings.Anchor;
+        SplitPanel.AnchorWidth = _settings.AnchorWidth;
 
-        Suppliers.ColumnsTag = settings.View == DynamicSplitPanelView.Master ? settings.View.ToString() : "";
+        Suppliers.ColumnsTag = _settings.View == DynamicSplitPanelView.Master ? _settings.View.ToString() : "";
         Suppliers.Refresh(true, false);
         SupplierContacts.Refresh(true,false);
         SupplierProducts.Refresh(true,false);
@@ -123,7 +152,7 @@ public partial class SupplierPanel : UserControl, IPanel<Supplier>
         Logger.Send(LogType.Information, ClientFactory.UserID, string.Format("SupplierPanel: RefreshSubPage({0})", grid.GetType().EntityName()));
         if (grid == null)
             return;
-        grid.Supplier = Supplier;
+        grid.Supplier = _supplier;
 
         var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(100) };
         timer.Tick += (o, e) =>
@@ -136,10 +165,10 @@ public partial class SupplierPanel : UserControl, IPanel<Supplier>
 
     private void SplitPanel_OnChanged(object sender, DynamicSplitPanelSettings e)
     {
-        settings.View = SplitPanel.View;
-        settings.AnchorWidth = SplitPanel.AnchorWidth;
-        new UserConfiguration<SupplierPanelSettings>().Save(settings);
-        var newTag = settings.View == DynamicSplitPanelView.Master ? settings.View.ToString() : "";
+        _settings.View = SplitPanel.View;
+        _settings.AnchorWidth = SplitPanel.AnchorWidth;
+        new UserConfiguration<SupplierPanelSettings>().Save(_settings);
+        var newTag = _settings.View == DynamicSplitPanelView.Master ? _settings.View.ToString() : "";
         if (Suppliers.ColumnsTag != newTag)
         {
             Suppliers.ColumnsTag = newTag;
@@ -166,7 +195,7 @@ public partial class SupplierPanel : UserControl, IPanel<Supplier>
         {
             _selectedIDs = ids;
             var row = e.Rows?.FirstOrDefault();
-            Supplier = row?.ToObject<Supplier>() ?? new Supplier();
+            _supplier = row?.ToObject<Supplier>() ?? new Supplier();
             Dispatcher.Invoke(() => { RefreshSubPage(SupplierDetails.SelectedContent as ISupplierGrid); });
         }
     }