[chore:] combining export margin options gui with settings and PdfBuilder.cs
This commit is contained in:
+88
-2
@@ -5,6 +5,7 @@ using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Interactivity;
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Platform.Storage;
|
||||
using Logof_Client.Wiki;
|
||||
|
||||
@@ -33,6 +34,8 @@ public partial class MainWindow : Window
|
||||
WindowState = WindowState.Maximized;
|
||||
Global.Load();
|
||||
Settings.Load();
|
||||
LoadPdfExportOptions();
|
||||
HookPdfExportOptionEvents();
|
||||
|
||||
RefreshCountryView();
|
||||
|
||||
@@ -735,11 +738,13 @@ public partial class MainWindow : Window
|
||||
GrdCalcMan.IsVisible = false;
|
||||
GrdCombineTypes.IsVisible = false;
|
||||
GrdExportMarginOptions.IsVisible = true;
|
||||
|
||||
LoadPdfExportOptions();
|
||||
}
|
||||
|
||||
private async void BtnStartGenerateLabels_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
SavePdfExportOptions();
|
||||
|
||||
var saveDialog = new SaveFileDialog
|
||||
{
|
||||
DefaultExtension = "pdf",
|
||||
@@ -749,7 +754,7 @@ public partial class MainWindow : Window
|
||||
|
||||
if (!string.IsNullOrEmpty(filePath))
|
||||
{
|
||||
var builder = new PdfBuilder();
|
||||
var builder = new PdfBuilder(Settings._instance.pdfExport);
|
||||
|
||||
builder.CreateAddressLabelPdfFromAddressSetWithPlaceholder(
|
||||
Convert.ToInt32(LstCustomerAdressSets.SelectedItems[0].ToString().Split(" - ")[0]),
|
||||
@@ -760,6 +765,87 @@ public partial class MainWindow : Window
|
||||
}
|
||||
}
|
||||
|
||||
private void HookPdfExportOptionEvents()
|
||||
{
|
||||
var controls = GetPdfExportControls();
|
||||
foreach (var control in controls) control.ValueChanged += PdfExportOption_OnValueChanged;
|
||||
}
|
||||
|
||||
private void LoadPdfExportOptions()
|
||||
{
|
||||
var options = Settings._instance.pdfExport ?? new PdfExportSettings();
|
||||
|
||||
NudExpMargCellPaddingTop.Value = (decimal)options.cellPaddingTopMm;
|
||||
NudExpMargCellPaddingBot.Value = (decimal)options.cellPaddingBottomMm;
|
||||
NudExpMargCellPaddingLeft.Value = (decimal)options.cellPaddingLeftMm;
|
||||
NudExpMargCellPaddingRight.Value = (decimal)options.cellPaddingRightMm;
|
||||
|
||||
TbExpMargMarginTop.Value = (decimal)options.pageMarginTopMm;
|
||||
TbExpMargMarginBottom.Value = (decimal)options.pageMarginBottomMm;
|
||||
TbExpMargMarginLeft.Value = (decimal)options.pageMarginLeftMm;
|
||||
TbExpMargMarginRight.Value = (decimal)options.pageMarginRightMm;
|
||||
|
||||
TbExpMargRowsPerPage.Value = options.rowsPerPage;
|
||||
NudExpMargColumnsPerPage.Value = options.columnsPerPage;
|
||||
NudExpMargFontSize.Value = (decimal)options.fontSize;
|
||||
NudExpMargSmallFontSize.Value = (decimal)options.smallFontSize;
|
||||
}
|
||||
|
||||
private void SavePdfExportOptions()
|
||||
{
|
||||
Settings._instance.pdfExport = new PdfExportSettings
|
||||
{
|
||||
cellPaddingTopMm = ReadDouble(NudExpMargCellPaddingTop),
|
||||
cellPaddingBottomMm = ReadDouble(NudExpMargCellPaddingBot),
|
||||
cellPaddingLeftMm = ReadDouble(NudExpMargCellPaddingLeft),
|
||||
cellPaddingRightMm = ReadDouble(NudExpMargCellPaddingRight),
|
||||
pageMarginTopMm = ReadDouble(TbExpMargMarginTop),
|
||||
pageMarginBottomMm = ReadDouble(TbExpMargMarginBottom),
|
||||
pageMarginLeftMm = ReadDouble(TbExpMargMarginLeft),
|
||||
pageMarginRightMm = ReadDouble(TbExpMargMarginRight),
|
||||
rowsPerPage = ReadInt(TbExpMargRowsPerPage, 7),
|
||||
columnsPerPage = ReadInt(NudExpMargColumnsPerPage, 3),
|
||||
fontSize = ReadDouble(NudExpMargFontSize),
|
||||
smallFontSize = ReadDouble(NudExpMargSmallFontSize)
|
||||
};
|
||||
|
||||
Settings.Save();
|
||||
}
|
||||
|
||||
private void PdfExportOption_OnValueChanged(object? sender, NumericUpDownValueChangedEventArgs e)
|
||||
{
|
||||
SavePdfExportOptions();
|
||||
}
|
||||
|
||||
private double ReadDouble(NumericUpDown control)
|
||||
{
|
||||
return (double)(control.Value ?? 0);
|
||||
}
|
||||
|
||||
private int ReadInt(NumericUpDown control, int fallback)
|
||||
{
|
||||
return (int)Math.Round(control.Value ?? fallback);
|
||||
}
|
||||
|
||||
private NumericUpDown[] GetPdfExportControls()
|
||||
{
|
||||
return
|
||||
[
|
||||
NudExpMargCellPaddingTop,
|
||||
NudExpMargCellPaddingBot,
|
||||
NudExpMargCellPaddingLeft,
|
||||
NudExpMargCellPaddingRight,
|
||||
TbExpMargMarginTop,
|
||||
TbExpMargMarginBottom,
|
||||
TbExpMargMarginLeft,
|
||||
TbExpMargMarginRight,
|
||||
TbExpMargRowsPerPage,
|
||||
NudExpMargColumnsPerPage,
|
||||
NudExpMargFontSize,
|
||||
NudExpMargSmallFontSize
|
||||
];
|
||||
}
|
||||
|
||||
private void TbSettingsCustomerSenderAddress_OnTextChanged(object? sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
|
||||
|
||||
Reference in New Issue
Block a user