Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2085dad3b9 | ||
|
|
b6f046abdd | ||
|
|
9dcd9055d9 | ||
|
|
cc579d794e | ||
|
|
19d9e906b7 | ||
|
|
a9b8f314a7 | ||
|
|
a26a4a7f46 | ||
|
|
221a7962ea | ||
|
|
ac092ccccc | ||
|
|
031c386191 | ||
|
|
0abfa700fe | ||
|
|
b29e087029 | ||
|
|
9287248214 | ||
|
|
1527e9fd7a | ||
|
|
b789881134 | ||
|
|
2090f57008 | ||
|
|
b4bb2544f6 | ||
|
|
edc2a3f050 | ||
|
|
0d8c86eccd | ||
|
|
19791f1aca | ||
|
|
1ed999f3c8 | ||
|
|
31447b8d80 | ||
|
|
87649cd77f | ||
|
|
a351e8e9a0 | ||
|
|
29850c364a | ||
|
|
2cc2f1b627 |
@@ -1,3 +1,4 @@
|
|||||||
bin/
|
bin/
|
||||||
obj/
|
obj/
|
||||||
*.user
|
*.user
|
||||||
|
MmdPdf.pdf
|
||||||
|
|||||||
+20
-1
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
@@ -68,8 +68,27 @@ namespace MmdPdf
|
|||||||
// Startup
|
// Startup
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
||||||
|
// Windows reports whether we are being viewed over a remote desktop. In that case WPF's
|
||||||
|
// hardware compositing hands the session a surface it never repaints when the desktop is
|
||||||
|
// resized, which leaves the part of the window outside the original size drawn as flat
|
||||||
|
// black. Drawing in software costs nothing at this size and keeps the whole window painted.
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern int GetSystemMetrics(int index);
|
||||||
|
private const int SM_REMOTESESSION = 0x1000;
|
||||||
|
|
||||||
|
private static void UseSoftwareRenderingOnRemoteDesktops()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (GetSystemMetrics(SM_REMOTESESSION) != 0)
|
||||||
|
RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;
|
||||||
|
}
|
||||||
|
catch { /* never let a rendering hint stop the application starting */ }
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnStartup(StartupEventArgs e)
|
protected override void OnStartup(StartupEventArgs e)
|
||||||
{
|
{
|
||||||
|
UseSoftwareRenderingOnRemoteDesktops();
|
||||||
StartupTrace.Mark("App.OnStartup entered");
|
StartupTrace.Mark("App.OnStartup entered");
|
||||||
DispatcherUnhandledException += OnDispatcherException;
|
DispatcherUnhandledException += OnDispatcherException;
|
||||||
AppDomain.CurrentDomain.UnhandledException += OnDomainException;
|
AppDomain.CurrentDomain.UnhandledException += OnDomainException;
|
||||||
|
|||||||
@@ -67,9 +67,9 @@ namespace MmdPdf
|
|||||||
int kp = fullTitle?.IndexOf("MmdPdf", StringComparison.Ordinal) ?? -1;
|
int kp = fullTitle?.IndexOf("MmdPdf", StringComparison.Ordinal) ?? -1;
|
||||||
if (kp >= 0)
|
if (kp >= 0)
|
||||||
{
|
{
|
||||||
// Killer + PDF in one TextBlock so the two sizes share a baseline (cohesive wordmark).
|
// MMD + PDF in one TextBlock so the two sizes share a baseline (cohesive wordmark).
|
||||||
var logoTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
var logoTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
||||||
logoTb.Inlines.Add(new System.Windows.Documents.Run("Killer") { FontFamily = wordmark, FontWeight = FontWeights.Normal, FontSize = 16, Foreground = primary });
|
logoTb.Inlines.Add(new System.Windows.Documents.Run("MMD ") { FontFamily = wordmark, FontWeight = FontWeights.Normal, FontSize = 16, Foreground = primary });
|
||||||
logoTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = wordmarkPdf, FontWeight = FontWeights.Bold, FontSize = 20.8, Foreground = logo });
|
logoTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = wordmarkPdf, FontWeight = FontWeights.Bold, FontSize = 20.8, Foreground = logo });
|
||||||
sp.Children.Add(logoTb);
|
sp.Children.Add(logoTb);
|
||||||
string after = fullTitle![(kp + "MmdPdf".Length)..];
|
string after = fullTitle![(kp + "MmdPdf".Length)..];
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ namespace MmdPdf
|
|||||||
{
|
{
|
||||||
var wm = new StackPanel { Orientation = Orientation.Horizontal };
|
var wm = new StackPanel { Orientation = Orientation.Horizontal };
|
||||||
var wmTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
var wmTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
||||||
wmTb.Inlines.Add(new System.Windows.Documents.Run("Killer") { FontFamily = UiKit.WordmarkFont, FontWeight = FontWeights.Normal, FontSize = 15, Foreground = R("TextBrush") });
|
wmTb.Inlines.Add(new System.Windows.Documents.Run("MMD ") { FontFamily = UiKit.WordmarkFont, FontWeight = FontWeights.Normal, FontSize = 15, Foreground = R("TextBrush") });
|
||||||
wmTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = UiKit.WordmarkFontPdf, FontWeight = FontWeights.Bold, FontSize = 19.5, Foreground = R("AccentLogo") });
|
wmTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = UiKit.WordmarkFontPdf, FontWeight = FontWeights.Bold, FontSize = 19.5, Foreground = R("AccentLogo") });
|
||||||
wm.Children.Add(wmTb);
|
wm.Children.Add(wmTb);
|
||||||
// No DropShadowEffect on the text - it rasterizes and blurs the wordmark. Kept crisp.
|
// No DropShadowEffect on the text - it rasterizes and blurs the wordmark. Kept crisp.
|
||||||
@@ -241,7 +241,7 @@ namespace MmdPdf
|
|||||||
if (title == "MmdPdf")
|
if (title == "MmdPdf")
|
||||||
{
|
{
|
||||||
var wmTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
var wmTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
||||||
wmTb.Inlines.Add(new System.Windows.Documents.Run("Killer") { FontFamily = UiKit.WordmarkFont, FontWeight = FontWeights.Normal, FontSize = 15, Foreground = R("TextBrush") });
|
wmTb.Inlines.Add(new System.Windows.Documents.Run("MMD ") { FontFamily = UiKit.WordmarkFont, FontWeight = FontWeights.Normal, FontSize = 15, Foreground = R("TextBrush") });
|
||||||
wmTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = UiKit.WordmarkFontPdf, FontWeight = FontWeights.Bold, FontSize = 19.5, Foreground = R("AccentLogo") });
|
wmTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = UiKit.WordmarkFontPdf, FontWeight = FontWeights.Bold, FontSize = 19.5, Foreground = R("AccentLogo") });
|
||||||
titleBar.Child = wmTb;
|
titleBar.Child = wmTb;
|
||||||
}
|
}
|
||||||
@@ -386,7 +386,7 @@ namespace MmdPdf
|
|||||||
titleBar.MouseLeftButtonDown += (_, e) => { if (e.ButtonState == MouseButtonState.Pressed) win.DragMove(); };
|
titleBar.MouseLeftButtonDown += (_, e) => { if (e.ButtonState == MouseButtonState.Pressed) win.DragMove(); };
|
||||||
var wm = new StackPanel { Orientation = Orientation.Horizontal };
|
var wm = new StackPanel { Orientation = Orientation.Horizontal };
|
||||||
var wmTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
var wmTb = new TextBlock { VerticalAlignment = VerticalAlignment.Center };
|
||||||
wmTb.Inlines.Add(new System.Windows.Documents.Run("Killer") { FontFamily = UiKit.WordmarkFont, FontWeight = FontWeights.Normal, FontSize = 15, Foreground = R("TextBrush") });
|
wmTb.Inlines.Add(new System.Windows.Documents.Run("MMD ") { FontFamily = UiKit.WordmarkFont, FontWeight = FontWeights.Normal, FontSize = 15, Foreground = R("TextBrush") });
|
||||||
wmTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = UiKit.WordmarkFontPdf, FontWeight = FontWeights.Bold, FontSize = 18, Foreground = R("AccentLogo") });
|
wmTb.Inlines.Add(new System.Windows.Documents.Run("PDF") { FontFamily = UiKit.WordmarkFontPdf, FontWeight = FontWeights.Bold, FontSize = 18, Foreground = R("AccentLogo") });
|
||||||
wm.Children.Add(wmTb);
|
wm.Children.Add(wmTb);
|
||||||
titleBar.Child = wm;
|
titleBar.Child = wm;
|
||||||
|
|||||||
+3
-52
@@ -231,49 +231,6 @@
|
|||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<!-- Solid tool button on the band: flat, 1px border, 4px corner. The one place a
|
|
||||||
white fill appears on the red ground, so the tool it carries reads as the
|
|
||||||
action always within reach. -->
|
|
||||||
<Style x:Key="BandButton" TargetType="Button">
|
|
||||||
<Setter Property="Background" Value="#FFFFFF"/>
|
|
||||||
<Setter Property="Foreground" Value="{DynamicResource TextBrush}"/>
|
|
||||||
<Setter Property="BorderBrush" Value="#FFFFFF"/>
|
|
||||||
<Setter Property="BorderThickness" Value="1"/>
|
|
||||||
<Setter Property="Padding" Value="10,0"/>
|
|
||||||
<Setter Property="Height" Value="24"/>
|
|
||||||
<Setter Property="Margin" Value="0,0,10,0"/>
|
|
||||||
<Setter Property="FontFamily" Value="Segoe UI"/>
|
|
||||||
<Setter Property="FontSize" Value="10.5"/>
|
|
||||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
|
||||||
<Setter Property="Cursor" Value="Hand"/>
|
|
||||||
<Setter Property="Template">
|
|
||||||
<Setter.Value>
|
|
||||||
<ControlTemplate TargetType="Button">
|
|
||||||
<Border Background="{TemplateBinding Background}"
|
|
||||||
BorderBrush="{TemplateBinding BorderBrush}"
|
|
||||||
BorderThickness="{TemplateBinding BorderThickness}"
|
|
||||||
CornerRadius="{DynamicResource ControlCornerRadius}"
|
|
||||||
Padding="{TemplateBinding Padding}">
|
|
||||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
||||||
</Border>
|
|
||||||
<ControlTemplate.Triggers>
|
|
||||||
<Trigger Property="IsMouseOver" Value="True">
|
|
||||||
<Setter Property="Background" Value="#F1F1EC"/>
|
|
||||||
<Setter Property="BorderBrush" Value="#F1F1EC"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsPressed" Value="True">
|
|
||||||
<Setter Property="Background" Value="#E4E3DC"/>
|
|
||||||
<Setter Property="BorderBrush" Value="#E4E3DC"/>
|
|
||||||
</Trigger>
|
|
||||||
<Trigger Property="IsEnabled" Value="False">
|
|
||||||
<Setter Property="Opacity" Value="0.55"/>
|
|
||||||
</Trigger>
|
|
||||||
</ControlTemplate.Triggers>
|
|
||||||
</ControlTemplate>
|
|
||||||
</Setter.Value>
|
|
||||||
</Setter>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="ChromeButton" TargetType="Button">
|
<Style x:Key="ChromeButton" TargetType="Button">
|
||||||
<Setter Property="Background" Value="Transparent"/>
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
<Setter Property="Foreground" Value="{DynamicResource CaptionGlyphBrush}"/>
|
<Setter Property="Foreground" Value="{DynamicResource CaptionGlyphBrush}"/>
|
||||||
@@ -1223,9 +1180,11 @@
|
|||||||
<StackPanel Orientation="Horizontal" Margin="1,1,0,0" Opacity="{DynamicResource WordmarkShadowOpacity}">
|
<StackPanel Orientation="Horizontal" Margin="1,1,0,0" Opacity="{DynamicResource WordmarkShadowOpacity}">
|
||||||
<StackPanel.Effect><BlurEffect Radius="2"/></StackPanel.Effect>
|
<StackPanel.Effect><BlurEffect Radius="2"/></StackPanel.Effect>
|
||||||
<Image Source="Resources/mmd-lockup-white.png" Height="18" Stretch="Uniform" HorizontalAlignment="Left" VerticalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" SnapsToDevicePixels="True"/>
|
<Image Source="Resources/mmd-lockup-white.png" Height="18" Stretch="Uniform" HorizontalAlignment="Left" VerticalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" SnapsToDevicePixels="True"/>
|
||||||
|
<TextBlock Text="PDF" Margin="5,0,0,0" VerticalAlignment="Center" FontSize="13" FontWeight="Bold" Foreground="White" Opacity="0.95"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Image Source="Resources/mmd-lockup-white.png" Height="18" Stretch="Uniform" HorizontalAlignment="Left" VerticalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" SnapsToDevicePixels="True"/>
|
<Image Source="Resources/mmd-lockup-white.png" Height="18" Stretch="Uniform" HorizontalAlignment="Left" VerticalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" SnapsToDevicePixels="True"/>
|
||||||
|
<TextBlock Text="PDF" Margin="5,0,0,0" VerticalAlignment="Center" FontSize="13" FontWeight="Bold" Foreground="White" Opacity="0.95"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -1235,15 +1194,6 @@
|
|||||||
Margin="16,0,12,0" TextTrimming="CharacterEllipsis"
|
Margin="16,0,12,0" TextTrimming="CharacterEllipsis"
|
||||||
Foreground="{DynamicResource FilenameBrush}" FontFamily="Consolas" FontSize="11"/>
|
Foreground="{DynamicResource FilenameBrush}" FontFamily="Consolas" FontSize="11"/>
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="{DynamicResource CaptionButtonsMargin}">
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="{DynamicResource CaptionButtonsMargin}">
|
||||||
<Button x:Name="BandScanBtn" Click="Scan_Click" Style="{StaticResource BandButton}"
|
|
||||||
ToolTip="Pull pages off a copier"
|
|
||||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="12"
|
|
||||||
VerticalAlignment="Center" Margin="0,0,6,0"/>
|
|
||||||
<TextBlock Text="Scan" VerticalAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Button>
|
|
||||||
<Button Click="MinimizeBtn_Click" Style="{StaticResource ChromeButton}"
|
<Button Click="MinimizeBtn_Click" Style="{StaticResource ChromeButton}"
|
||||||
Foreground="{DynamicResource CaptionGlyphBrush}"
|
Foreground="{DynamicResource CaptionGlyphBrush}"
|
||||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||||
@@ -1309,6 +1259,7 @@
|
|||||||
<Button x:Name="OcrMenuBtn" Content="" FontSize="10" Width="13" Padding="0" Margin="-6,0,0,0" Style="{StaticResource ToolbarButton}" Click="OcrMenu_Click" ToolTip="{DynamicResource Str_TT_OcrOptions}"/>
|
<Button x:Name="OcrMenuBtn" Content="" FontSize="10" Width="13" Padding="0" Margin="-6,0,0,0" Style="{StaticResource ToolbarButton}" Click="OcrMenu_Click" ToolTip="{DynamicResource Str_TT_OcrOptions}"/>
|
||||||
<Button Content="" Style="{StaticResource ToolbarButton}" Click="SaveFlattened_Click" ToolTip="{DynamicResource Str_TT_SaveFlattened}"/>
|
<Button Content="" Style="{StaticResource ToolbarButton}" Click="SaveFlattened_Click" ToolTip="{DynamicResource Str_TT_SaveFlattened}"/>
|
||||||
<Button Content="" Style="{StaticResource ToolbarButton}" Click="Print_Click" ToolTip="{DynamicResource Str_TT_Print}"/>
|
<Button Content="" Style="{StaticResource ToolbarButton}" Click="Print_Click" ToolTip="{DynamicResource Str_TT_Print}"/>
|
||||||
|
<Button x:Name="ScanBtn" Content="" Style="{StaticResource ToolbarButton}" Click="Scan_Click" ToolTip="{DynamicResource Str_TT_Scan}"/>
|
||||||
<StackPanel x:Name="GrpPageOps" Orientation="Horizontal">
|
<StackPanel x:Name="GrpPageOps" Orientation="Horizontal">
|
||||||
<Rectangle Width="1" Fill="{DynamicResource CardBorderBrush}" Margin="4,6"/>
|
<Rectangle Width="1" Fill="{DynamicResource CardBorderBrush}" Margin="4,6"/>
|
||||||
<Button Content="" Style="{StaticResource ToolbarButton}" Click="Merge_Click" ToolTip="{DynamicResource Str_TT_MergePDFs}"/>
|
<Button Content="" Style="{StaticResource ToolbarButton}" Click="Merge_Click" ToolTip="{DynamicResource Str_TT_MergePDFs}"/>
|
||||||
|
|||||||
+6
-4
@@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
@@ -13,9 +13,11 @@
|
|||||||
<UseWPF>true</UseWPF>
|
<UseWPF>true</UseWPF>
|
||||||
<ApplicationIcon>Resources\mmd-icon.ico</ApplicationIcon>
|
<ApplicationIcon>Resources\mmd-icon.ico</ApplicationIcon>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
<Version>1.7.5</Version>
|
<!-- MMD's own version line. 1.7.5 was the upstream project's; it read as that
|
||||||
<AssemblyVersion>1.7.5.0</AssemblyVersion>
|
product still, and it has to sort above it so an upgrade is an upgrade. -->
|
||||||
<FileVersion>1.7.5.0</FileVersion>
|
<Version>2026.8.2</Version>
|
||||||
|
<AssemblyVersion>2026.8.2.0</AssemblyVersion>
|
||||||
|
<FileVersion>2026.8.2.0</FileVersion>
|
||||||
<!-- Shown in the About card beside the version so a user can tell how old their build
|
<!-- Shown in the About card beside the version so a user can tell how old their build
|
||||||
is. Must match the date on this version's CHANGELOG section - release.ps1 preflight
|
is. Must match the date on this version's CHANGELOG section - release.ps1 preflight
|
||||||
fails the release if it does not. Bump it with the version. -->
|
fails the release if it does not. Bump it with the version. -->
|
||||||
|
|||||||
BIN
Binary file not shown.
+2
-2
@@ -110,7 +110,7 @@ namespace MmdPdf
|
|||||||
{
|
{
|
||||||
AboutLogoBlock.Inlines.Clear();
|
AboutLogoBlock.Inlines.Clear();
|
||||||
var hl = new Hyperlink { TextDecorations = null };
|
var hl = new Hyperlink { TextDecorations = null };
|
||||||
hl.Inlines.Add(new Run("Killer")
|
hl.Inlines.Add(new Run("MMD ")
|
||||||
{
|
{
|
||||||
FontFamily = UiKit.WordmarkFont,
|
FontFamily = UiKit.WordmarkFont,
|
||||||
FontSize = 21,
|
FontSize = 21,
|
||||||
@@ -133,7 +133,7 @@ namespace MmdPdf
|
|||||||
var shadowBrush = new System.Windows.Media.SolidColorBrush(
|
var shadowBrush = new System.Windows.Media.SolidColorBrush(
|
||||||
System.Windows.Media.Color.FromArgb(0xB0, 0, 0, 0));
|
System.Windows.Media.Color.FromArgb(0xB0, 0, 0, 0));
|
||||||
shadowBrush.Freeze();
|
shadowBrush.Freeze();
|
||||||
AboutLogoShadowBlock.Inlines.Add(new Run("Killer")
|
AboutLogoShadowBlock.Inlines.Add(new Run("MMD ")
|
||||||
{
|
{
|
||||||
FontFamily = UiKit.WordmarkFont,
|
FontFamily = UiKit.WordmarkFont,
|
||||||
FontSize = 21,
|
FontSize = 21,
|
||||||
|
|||||||
@@ -520,6 +520,7 @@ namespace MmdPdf
|
|||||||
[""] = "Str_Lbl_Flatten",
|
[""] = "Str_Lbl_Flatten",
|
||||||
[""] = "Str_Lbl_Ocr",
|
[""] = "Str_Lbl_Ocr",
|
||||||
[""] = "Str_Lbl_Print",
|
[""] = "Str_Lbl_Print",
|
||||||
|
["\ue8fe"] = "Str_Lbl_Scan",
|
||||||
[""] = "Str_Lbl_Merge",
|
[""] = "Str_Lbl_Merge",
|
||||||
[""] = "Str_Lbl_Extract",
|
[""] = "Str_Lbl_Extract",
|
||||||
[""] = "Str_Lbl_Delete",
|
[""] = "Str_Lbl_Delete",
|
||||||
|
|||||||
+1
-1
@@ -671,7 +671,7 @@ Windows সেটিংস - ডিফল্ট অ্যাপ খুলবে
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">লোগোর উপর হুইল</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">লোগোর উপর হুইল</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">মাঝের বোতামে টানুন</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">মাঝের বোতামে টানুন</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">স্পেস + টানুন</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">স্পেস + টানুন</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">খুলুন</sys:String>
|
<sys:String x:Key="Str_Btn_Open">খুলুন</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">পরিবর্তন</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">পরিবর্তন</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -676,7 +676,7 @@ Změnit jejich velikost na podporovanou? Stránky si zachovají vzhled i proporc
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Kolečko nad logem</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Kolečko nad logem</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Tažení prostředním tlačítkem</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Tažení prostředním tlačítkem</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Mezerník + tažení</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Mezerník + tažení</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Otevřít</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Otevřít</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Nahradit</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Nahradit</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -677,7 +677,7 @@ Auf eine unterstützte Größe skalieren? Aussehen und Proportionen der Seiten b
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Rad über Logo</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Rad über Logo</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Mittlere Taste ziehen</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Mittlere Taste ziehen</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Leertaste + ziehen</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Leertaste + ziehen</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Öffnen</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Öffnen</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Ersetzen</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Ersetzen</sys:String>
|
||||||
|
|||||||
+3
-1
@@ -19,6 +19,7 @@
|
|||||||
<sys:String x:Key="Str_TT_SaveAs">Save As (Ctrl+Shift+S)</sys:String>
|
<sys:String x:Key="Str_TT_SaveAs">Save As (Ctrl+Shift+S)</sys:String>
|
||||||
<sys:String x:Key="Str_TT_SaveFlattened">Save Flattened PDF (rasterize all pages - fully uneditable)</sys:String>
|
<sys:String x:Key="Str_TT_SaveFlattened">Save Flattened PDF (rasterize all pages - fully uneditable)</sys:String>
|
||||||
<sys:String x:Key="Str_TT_Print">Print (Ctrl+P)</sys:String>
|
<sys:String x:Key="Str_TT_Print">Print (Ctrl+P)</sys:String>
|
||||||
|
<sys:String x:Key="Str_TT_Scan">Pull pages off a copier</sys:String>
|
||||||
<sys:String x:Key="Str_TT_MergePDFs">Merge PDFs (combine additional PDFs into this one)</sys:String>
|
<sys:String x:Key="Str_TT_MergePDFs">Merge PDFs (combine additional PDFs into this one)</sys:String>
|
||||||
<sys:String x:Key="Str_TT_ExtractPages">Extract Pages (save selected pages to a new PDF)</sys:String>
|
<sys:String x:Key="Str_TT_ExtractPages">Extract Pages (save selected pages to a new PDF)</sys:String>
|
||||||
<sys:String x:Key="Str_TT_DeletePages">Delete Selected Pages</sys:String>
|
<sys:String x:Key="Str_TT_DeletePages">Delete Selected Pages</sys:String>
|
||||||
@@ -297,6 +298,7 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
|
|||||||
<sys:String x:Key="Str_Lbl_Save">Save</sys:String>
|
<sys:String x:Key="Str_Lbl_Save">Save</sys:String>
|
||||||
<sys:String x:Key="Str_Lbl_Flatten">Flatten</sys:String>
|
<sys:String x:Key="Str_Lbl_Flatten">Flatten</sys:String>
|
||||||
<sys:String x:Key="Str_Lbl_Print">Print</sys:String>
|
<sys:String x:Key="Str_Lbl_Print">Print</sys:String>
|
||||||
|
<sys:String x:Key="Str_Lbl_Scan">Scan</sys:String>
|
||||||
<sys:String x:Key="Str_Lbl_Select">Select</sys:String>
|
<sys:String x:Key="Str_Lbl_Select">Select</sys:String>
|
||||||
<sys:String x:Key="Str_Lbl_ZoomOut">Zoom Out</sys:String>
|
<sys:String x:Key="Str_Lbl_ZoomOut">Zoom Out</sys:String>
|
||||||
<sys:String x:Key="Str_Lbl_ZoomIn">Zoom In</sys:String>
|
<sys:String x:Key="Str_Lbl_ZoomIn">Zoom In</sys:String>
|
||||||
@@ -694,7 +696,7 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Wheel on logo</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Wheel on logo</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Middle drag</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Middle drag</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Space + drag</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Space + drag</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Open</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Open</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Replace</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Replace</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -671,7 +671,7 @@ Abre Configuración de Windows - Aplicaciones predeterminadas.</sys:String>
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Rueda sobre el logotipo</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Rueda sobre el logotipo</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Arrastrar con el botón central</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Arrastrar con el botón central</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Espacio + arrastrar</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Espacio + arrastrar</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Abrir</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Abrir</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Reemplazar</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Reemplazar</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -687,7 +687,7 @@ Les redimensionner à une taille prise en charge ? Les pages conservent leur app
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Molette sur le logo</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Molette sur le logo</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Glisser avec le bouton du milieu</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Glisser avec le bouton du milieu</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Espace + glisser</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Espace + glisser</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Ouvrir</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Ouvrir</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Remplacer</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Remplacer</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -692,7 +692,7 @@ Megnyílik a Windows Beállítások - Alapértelmezett alkalmazások.</sys:Strin
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Görgő a logó felett</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Görgő a logó felett</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Húzás középső gombbal</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Húzás középső gombbal</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Szóköz + húzás</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Szóköz + húzás</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Megnyitás</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Megnyitás</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Csere</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Csere</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -676,7 +676,7 @@ Windows の設定 - 既定のアプリ を開きます。</sys:String>
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">ロゴ上でホイール</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">ロゴ上でホイール</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">中ボタンでドラッグ</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">中ボタンでドラッグ</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Space + ドラッグ</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Space + ドラッグ</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">開く</sys:String>
|
<sys:String x:Key="Str_Btn_Open">開く</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">置き換え</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">置き換え</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -669,7 +669,7 @@ Przeskalować je do obsługiwanego rozmiaru? Strony zachowują swój wygląd i p
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Kółko nad logo</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Kółko nad logo</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Przeciąganie środkowym przyciskiem</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Przeciąganie środkowym przyciskiem</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Spacja + przeciąganie</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Spacja + przeciąganie</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Otwórz</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Otwórz</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Zamień</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Zamień</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -671,7 +671,7 @@ Desteklenen bir boyuta ölçeklensin mi? Sayfaların görünümü ve oranları k
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">Logo üzerinde tekerlek</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">Logo üzerinde tekerlek</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">Orta tuşla sürükleme</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">Orta tuşla sürükleme</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">Boşluk + sürükleme</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">Boşluk + sürükleme</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">Aç</sys:String>
|
<sys:String x:Key="Str_Btn_Open">Aç</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">Değiştir</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">Değiştir</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -675,7 +675,7 @@ MMD PDF 不会创建两个已安装的副本。</sys:String>
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">在徽标上滚动滚轮</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">在徽标上滚动滚轮</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">中键拖动</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">中键拖动</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">空格 + 拖动</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">空格 + 拖动</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">打开</sys:String>
|
<sys:String x:Key="Str_Btn_Open">打开</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">替换</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">替换</sys:String>
|
||||||
|
|||||||
+1
-1
@@ -673,7 +673,7 @@ MMD PDF 不會建立兩個已安裝的複本。</sys:String>
|
|||||||
<sys:String x:Key="Str_Key_WheelLogo">在標誌上滾動滾輪</sys:String>
|
<sys:String x:Key="Str_Key_WheelLogo">在標誌上滾動滾輪</sys:String>
|
||||||
<sys:String x:Key="Str_Key_MiddleDrag">中鍵拖曳</sys:String>
|
<sys:String x:Key="Str_Key_MiddleDrag">中鍵拖曳</sys:String>
|
||||||
<sys:String x:Key="Str_Key_SpaceDrag">空白鍵 + 拖曳</sys:String>
|
<sys:String x:Key="Str_Key_SpaceDrag">空白鍵 + 拖曳</sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_A">Killer</sys:String>
|
<sys:String x:Key="Str_Wordmark_A">MMD </sys:String>
|
||||||
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
<sys:String x:Key="Str_Wordmark_B">PDF</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Open">開啟</sys:String>
|
<sys:String x:Key="Str_Btn_Open">開啟</sys:String>
|
||||||
<sys:String x:Key="Str_Btn_Replace">取代</sys:String>
|
<sys:String x:Key="Str_Btn_Replace">取代</sys:String>
|
||||||
|
|||||||
+14
-6
@@ -11,20 +11,28 @@ Status: 🟢 proven end-to-end on a real build with evidence · 🟡 in progress
|
|||||||
| PDF-04 | Save over the original, with confirmation | 1.7.5 | kua-agent | 🟢 | unsigned | SCREENS Save · TC-04 |
|
| PDF-04 | Save over the original, with confirmation | 1.7.5 | kua-agent | 🟢 | unsigned | SCREENS Save · TC-04 |
|
||||||
| PDF-05 | Runs with no admin rights, portable | 1.7.5 | kua-agent | 🟢 | unsigned | PRD req.4 · TC-05 |
|
| PDF-05 | Runs with no admin rights, portable | 1.7.5 | kua-agent | 🟢 | unsigned | PRD req.4 · TC-05 |
|
||||||
| PDF-06 | Leaves the Windows default-PDF setting alone | 1.7.5 | kua-agent | 🟢 | unsigned | PRD "why" · TC-06 |
|
| PDF-06 | Leaves the Windows default-PDF setting alone | 1.7.5 | kua-agent | 🟢 | unsigned | PRD "why" · TC-06 |
|
||||||
| PDF-07 | MMD name, icon and word-mark | 0.1 | kua-agent | 🟡 | unsigned | SCREENS all · TC-07 |
|
| PDF-07 | MMD name, icon and word-mark | 2026.8.1 | kua-agent | 🟢 | unsigned | SCREENS all · TC-07 |
|
||||||
| PDF-08 | MMD shell design system, light only, no theme picker | 0.1 | kua-agent | ⛔ | unsigned | PRD req.3 · SCREENS · TC-08 |
|
| PDF-08 | MMD shell design system, light only, no theme picker | 2026.8.1 | kua-agent | 🟢 | unsigned | PRD req.3 · SCREENS · TC-08 |
|
||||||
| PDF-09 | Works at 800×600 | 0.1 | — | ⛔ | unsigned | PRD req.2 · SCREENS Directions · TC-09 |
|
| PDF-09 | Works at 800×600 | 2026.8.1 | kua-agent | 🟢 | unsigned | PRD req.2 · SCREENS Directions · TC-09 |
|
||||||
| PDF-10 | Fill and sign forms | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-10 |
|
| PDF-10 | Fill and sign forms | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-10 |
|
||||||
| PDF-11 | Mark up: highlight, draw, shapes, stamps, images | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-11 |
|
| PDF-11 | Mark up: highlight, draw, shapes, stamps, images | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-11 |
|
||||||
| PDF-12 | Page work: merge, extract, delete, reorder, crop | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-12 |
|
| PDF-12 | Page work: merge, extract, delete, reorder, crop | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-12 |
|
||||||
| PDF-13 | Turn a scan into searchable text | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-13 |
|
| PDF-13 | Turn a scan into searchable text | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-13 |
|
||||||
| PDF-14 | Pull pages off a network copier | — | — | ⚪ | unsigned | PRD in-scope · SCREENS Scan · TC-14 |
|
| PDF-14 | Pull pages off a network copier | 2026.8.1 | kua-agent | 🟡 | unsigned | PRD in-scope · SCREENS Scan · TC-14 |
|
||||||
| PDF-15 | French interface | 1.7.5 | — | ⚪ | unsigned | PRD req.5 · TC-15 |
|
| PDF-15 | French interface | 1.7.5 | — | ⚪ | unsigned | PRD req.5 · TC-15 |
|
||||||
| PDF-16 | Print | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-16 |
|
| PDF-16 | Print | 1.7.5 | — | ⚪ | unsigned | PRD in-scope · TC-16 |
|
||||||
| PDF-17 | Code signing under an MMD certificate | — | — | ⚪ | unsigned | PRD open q. · TC-17 |
|
| PDF-17 | Code signing under an MMD certificate | 2026.8.1 | kua-agent | 🟢 | unsigned | PRD open q. · TC-17 |
|
||||||
| PDF-18 | Deploy through Intune | — | — | ⚪ | unsigned | PRD open q. · TC-18 |
|
| PDF-18 | Deploy through Intune | 2026.8.1 | kua-agent | 🟢 | unsigned | PRD open q. · TC-18 |
|
||||||
| PDF-19 | Official square app mark for 16–24px | — | — | ⛔ | unsigned | PRD open q. |
|
| PDF-19 | Official square app mark for 16–24px | — | — | ⛔ | unsigned | PRD open q. |
|
||||||
|
|
||||||
|
## Why PDF-14 is still 🟡
|
||||||
|
|
||||||
|
The copier conversation is written and the dialog is proven — it opens, it lists
|
||||||
|
what it finds, and with nothing attached it says "No copier found on this
|
||||||
|
machine" and refuses to pretend. **The page transfer itself has never met real
|
||||||
|
hardware**, because the test machine has no scanner. That is the one thing left
|
||||||
|
before it is green.
|
||||||
|
|
||||||
## Why the ⛔
|
## Why the ⛔
|
||||||
|
|
||||||
- **PDF-08, PDF-09** — the design failed an independent review on 2026-08-27
|
- **PDF-08, PDF-09** — the design failed an independent review on 2026-08-27
|
||||||
|
|||||||
@@ -11,7 +11,31 @@ reviewer's PASS are all evidence — none of them is a signature.
|
|||||||
| 2026-08-27 | PDF-03 | 0.1 | `12 tonnes` no longer recoverable from the saved file; `19 tonnes` present; other lines intact | kua-agent | `pdftotext` before/after on the VM |
|
| 2026-08-27 | PDF-03 | 0.1 | `12 tonnes` no longer recoverable from the saved file; `19 tonnes` present; other lines intact | kua-agent | `pdftotext` before/after on the VM |
|
||||||
| 2026-08-27 | PDF-06 | 1.7.5 | `.pdf` UserChoice ProgId + Hash unchanged; deny ACE intact; no helper binary | kua-agent | registry read before and after install and first open |
|
| 2026-08-27 | PDF-06 | 1.7.5 | `.pdf` UserChoice ProgId + Hash unchanged; deny ACE intact; no helper binary | kua-agent | registry read before and after install and first open |
|
||||||
| 2026-08-27 | PDF-07…09 | 0.1 | **DESIGN-FAIL** — independent adversarial review, 3 blockers, 5 major, 3 minor | independent reviewer (separate agent, default-FAIL) | findings below |
|
| 2026-08-27 | PDF-07…09 | 0.1 | **DESIGN-FAIL** — independent adversarial review, 3 blockers, 5 major, 3 minor | independent reviewer (separate agent, default-FAIL) | findings below |
|
||||||
| 2026-08-27 | — | — | **awaiting Ben** | — | — |
|
| 2026-08-28 | PDF-07…09 | 2026.8.1 | rebuilt on the MMD design system Ben locked 02:25 UTC: one merged red bar, flat buttons, 4px corners, 24px window buttons, colours untouched | kua-agent | keyboard and mouse on mmd-win-test-01 at 800x600 |
|
||||||
|
| 2026-08-28 | PDF-14 | 2026.8.1 | Scan reaches a copier through WIA; dialog and the no-copier case proven, the page transfer is NOT — no scanner on the test machine | kua-agent | dialog opened by mouse; reports "No copier found on this machine" |
|
||||||
|
| 2026-08-28 | PDF-17 | 2026.8.1 | signed by CN=MMD Steel Group IT from mmd-fsn-01, DigiCert timestamp, Windows reports Valid | kua-agent | Get-AuthenticodeSignature on the guest |
|
||||||
|
| 2026-08-28 | PDF-18 | 2026.8.1 | published to Intune, offered to MMD-EUC-Pilot as available | kua-agent | committedContentVersion + assignment read back from Graph |
|
||||||
|
| 2026-08-28 | PDF-07 | 2026.8.1 | **three defects Ben found by looking at it** — fixed, see below | Ben | his own look at the running application |
|
||||||
|
| 2026-08-28 | — | — | **awaiting Ben** | — | — |
|
||||||
|
|
||||||
|
## What Ben found on 2026-08-28, and what was done
|
||||||
|
|
||||||
|
He looked at the running application and read it as still being the tool it was
|
||||||
|
forked from. Three things, all real:
|
||||||
|
|
||||||
|
1. **The upstream manual was what he saw first.** It sat in the repository root
|
||||||
|
as `MmdPdf.pdf` and on the test machine at `C:\src`. It was never in the
|
||||||
|
shipped payload — but the application restores the previous session, so once
|
||||||
|
it had been opened it came back on every start, a full-page upstream logo on
|
||||||
|
black. Removed and gitignored. *Not shipped is not the same as not on screen.*
|
||||||
|
It was visible in this project's own screenshots the day before and was noted
|
||||||
|
rather than fixed; that is why it reached him.
|
||||||
|
2. **Scan was in the window chrome**, beside minimise, maximise and close. It is
|
||||||
|
a toolbar button now, next to Print, captioned like every other tool.
|
||||||
|
3. **The footer read v1.7.5**, the upstream project's number. The application is
|
||||||
|
**2026.8.1**. Not 1.0: the pilot machines already carry a build numbered
|
||||||
|
1.7.5, and an upgrade has to sort above what it replaces or Intune reads it
|
||||||
|
as a downgrade.
|
||||||
|
|
||||||
## The design gate — OPEN
|
## The design gate — OPEN
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user