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:
@@ -2,7 +2,7 @@ using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
public enum EditTool { Select, Text, Highlight, Strikethrough, Underline, Draw, Signature, Image, Crop, Line, Rotate, Shape }
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
/// <summary>
|
||||
/// One link rectangle on a page, in render-dim coordinates.
|
||||
|
||||
@@ -8,7 +8,7 @@ using System.Windows.Media.Imaging;
|
||||
using Docnet.Core;
|
||||
using Docnet.Core.Models;
|
||||
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
/// <summary>
|
||||
/// ViewModel for a single page thumbnail in the sidebar PageList.
|
||||
@@ -88,7 +88,7 @@ namespace KillerPDF
|
||||
using var pr = docReader.GetPageReader(pageIndex);
|
||||
int tw = pr.GetPageWidth();
|
||||
int th = pr.GetPageHeight();
|
||||
var raw = KillerPDF.Services.PdfiumInterop.RenderPageWithAnnotations(filePath, pageIndex, tw, th)
|
||||
var raw = MmdPdf.Services.PdfiumInterop.RenderPageWithAnnotations(filePath, pageIndex, tw, th)
|
||||
?? pr.GetImage(); // #141
|
||||
if (tw <= 0 || th <= 0 || raw == null || raw.Length < tw * th * 4)
|
||||
return null;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
internal enum StampKind { PageNumber, Watermark }
|
||||
|
||||
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
// The undo stack's entry type. Each entry is either an annotation removal or a full document
|
||||
// snapshot; AnnotationGroup removes a specific set in one step (a text edit = cover + text).
|
||||
//
|
||||
// TOP-LEVEL, not nested in MainWindow. The code that pushes undo entries - Annotations.cs and
|
||||
// TextEditing.cs - lives in KillerPDF.Controls, where a type nested in MainWindow only spells
|
||||
// TextEditing.cs - lives in MmdPdf.Controls, where a type nested in MainWindow only spells
|
||||
// as MainWindow.UndoEntry; that would mean qualifying roughly 30 call sites for no gain. As
|
||||
// top-level types in KillerPDF they resolve unqualified from the child namespace too.
|
||||
// top-level types in MmdPdf they resolve unqualified from the child namespace too.
|
||||
//
|
||||
// This also retires the CS0052 chain that made them internal in the first place: DocumentSession
|
||||
// had to be internal for the render cache, its UndoStack field is Stack<UndoEntry>, and a field
|
||||
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
// How a document view lays its pages out, and how it fits them to the viewport.
|
||||
//
|
||||
// TOP-LEVEL, not nested in MainWindow. The viewer is a UserControl in KillerPDF.Controls, and
|
||||
// TOP-LEVEL, not nested in MainWindow. The viewer is a UserControl in MmdPdf.Controls, and
|
||||
// from there a type nested in MainWindow only spells as MainWindow.ViewMode - which would mean
|
||||
// qualifying 91 references for no gain. As top-level types in KillerPDF they resolve
|
||||
// unqualified from KillerPDF.Controls too (a namespace declaration puts its parent namespaces
|
||||
// qualifying 91 references for no gain. As top-level types in MmdPdf they resolve
|
||||
// unqualified from MmdPdf.Controls too (a namespace declaration puts its parent namespaces
|
||||
// in scope), so every call site compiles untouched.
|
||||
//
|
||||
// internal, not public: nothing outside the assembly has any business with either.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace KillerPDF
|
||||
namespace MmdPdf
|
||||
{
|
||||
/// <summary>
|
||||
/// Everything ONE document view owns. Split pane needs two of these; each PdfViewer control
|
||||
@@ -15,7 +15,7 @@ namespace KillerPDF
|
||||
/// and zoom; it does NOT need a second copy of the per-document machinery, because each
|
||||
/// pane will simply own its own set of sessions.
|
||||
///
|
||||
/// TOP-LEVEL, not nested in MainWindow. The viewer lives in KillerPDF.Controls and cannot own a
|
||||
/// TOP-LEVEL, not nested in MainWindow. The viewer lives in MmdPdf.Controls and cannot own a
|
||||
/// type nested in the window without every reference spelling out MainWindow.ViewerState.
|
||||
/// ViewMode and FitMode live in Models/ViewTypes.cs for the same reason.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user