feat: rebrand to MMD PDF, single corporate theme, and remove original text under an edit

- Services/PdfRedactText.cs: strip text whose origin falls inside a CoverAnnotation
  from the page content stream at save time, hooked into PdfBurn.DrawAnnotationsIntoDoc.
  Fixes edited values staying recoverable by text extraction.
- Themes/MMD.xaml replaces all thirteen themes; picker and accent strip removed; no dark mode.
- Rename KillerPDF -> MMD PDF across code, resources, packaging and locale strings; new icon.
- Remove the upstream author credit and the in-app install button.
This commit is contained in:
2026-08-27 07:37:09 +02:00
parent 532485a830
commit 6610acfa44
230 changed files with 9362 additions and 11508 deletions
+3 -23
View File
@@ -3,7 +3,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Animation;
namespace KillerPDF
namespace MmdPdf
{
/// <summary>
/// The rail's flyout buttons (family order, locked 2026-07-30: app-specific toggles, then
@@ -20,7 +20,6 @@ namespace KillerPDF
private void RailLang_Click(object sender, RoutedEventArgs e) => ToggleRailFlyout(LangFlyout);
private void RailTheme_Click(object sender, RoutedEventArgs e) => ToggleRailFlyout(ThemeFlyout);
private void RailView_Click(object sender, RoutedEventArgs e) => ToggleRailFlyout(ViewFlyout);
@@ -49,14 +48,14 @@ namespace KillerPDF
SyncPickerState();
}
private void ToggleRailFlyout(ContextMenu menu)
{
if (menu.IsOpen) { menu.IsOpen = false; return; }
// The theme strip always faces the document. Mirroring the two columns also makes its
// width animation grow outward from the rail on either side of the window.
if (menu == ThemeFlyout)
SyncThemeFlyoutSide();
// Radios and accent dots reflect live state before the card shows - the same single
// sync the Settings panel runs on open.
@@ -79,24 +78,5 @@ namespace KillerPDF
EasingFunction = new QuadraticEase { EasingMode = EasingMode.EaseOut }
});
}
private void SyncThemeFlyoutSide()
{
if (ThemePickerLayout is null || ThemeSubmenu is null || AccentStripHost is null ||
AccentStripDivider is null || AccentStrip is null)
return;
Grid.SetColumn(ThemeSubmenu, _sidebarRight ? 1 : 0);
Grid.SetColumn(AccentStripHost, _sidebarRight ? 0 : 1);
AccentStripDivider.HorizontalAlignment = _sidebarRight
? HorizontalAlignment.Right
: HorizontalAlignment.Left;
AccentStrip.Margin = _sidebarRight
? new Thickness(2, 6, 7, 6)
: new Thickness(7, 6, 2, 6);
ThemePickerLayout.Margin = _sidebarRight
? new Thickness(3, 10, 12, 10)
: new Thickness(12, 10, 3, 10);
}
}
}