Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
87b44d9
Complete G00 repository governance and provenance (#108)
mberrys Oct 10, 2026
ca59c30
Bind G00 proof lanes and record focused verification
mberrys Oct 10, 2026
78f9c0b
Correct the existing build path in the G00 proof record
mberrys Oct 10, 2026
b08e218
Merge pull request #262 from studio-berry/chore/g00-governance
mberrys Oct 10, 2026
095927b
Add authoritative Quick print-to-PDF and document exports
mberrys Oct 10, 2026
09bce70
Refuse incomplete renders before output publication
mberrys Oct 10, 2026
10d246f
Label export resolution and reflect restricted print permissions
mberrys Oct 10, 2026
932e841
Read Core render diagnostics through a private output adapter
mberrys Oct 10, 2026
b9dccb3
Update command catalog expectations and render-error fixture types
mberrys Oct 10, 2026
7d63d17
Present Quick undo and redo as governed revision history
mberrys Oct 10, 2026
091de7d
feat(commands): fail the catalog check on unbound KEEP/ABSORB handler…
mberrys Oct 10, 2026
604d92a
changes: add the PR1 evidence manifest for the handler-coverage ratch…
mberrys Oct 10, 2026
1ccce44
docs(product-surface): point the signature and scanner plugin rows at…
mberrys Oct 10, 2026
3d24b6f
feat(quick): measure and select/copy/capture on the Quick canvas (#23…
mberrys Oct 11, 2026
bb79912
feat(quick): display colour modes and soft-proof separations (#235, #…
mberrys Oct 11, 2026
c8e83e3
feat(quick): settings, render options and diagnostic views (#239)
mberrys Oct 11, 2026
4ba6746
chore(quick): reconcile the merged PR1 slices
mberrys Oct 11, 2026
3e4e04b
test(quick): pin the grown tool vocabulary and prove extraction refus…
mberrys Oct 11, 2026
cc30133
Add read-only annotation review and signature status with an invalida…
mberrys Oct 11, 2026
7275513
Revert "docs(product-surface): point the signature and scanner plugin…
mberrys Oct 11, 2026
8bea94a
docs(changes): record the reviewed null follow-ups for the absorbed p…
mberrys Oct 11, 2026
8196c49
Complete history proof bindings and isolate publication fixtures
mberrys Oct 11, 2026
92009b2
Close rollback history before dispatch and isolate Qt fixtures
mberrys Oct 11, 2026
68a4c84
Bind onboarding proof for isolated shell fixtures
mberrys Oct 11, 2026
1be5f5a
Inject private recipe storage without changing application identity
mberrys Oct 11, 2026
3d84d2c
Begin issue 126 Quick localization and pseudo-locale proof
mberrys Oct 11, 2026
8de93a3
Bind localization checkpoint to affected proof lanes
mberrys Oct 11, 2026
9446eaf
Complete Quick catalog refresh and expanded-label layout proof
mberrys Oct 11, 2026
dcc97b1
Extract the remaining Quick inspector labels
mberrys Oct 11, 2026
48ea085
Merge pull request #266 from studio-berry/feat/issue-125-annotation-s…
mberrys Oct 11, 2026
551008b
Merge origin/dev into feat/issue-126-quick-localization
claude Oct 11, 2026
b199dca
Merge origin/dev into gh-231-quick-coverage
claude Oct 11, 2026
503084a
Merge origin/dev into feat/issue-124-governed-history
claude Oct 11, 2026
1ec238a
Merge origin/dev into feat/issue-123-quick-print-export
claude Oct 11, 2026
992e218
Merge pull request #268 from studio-berry/feat/issue-126-quick-locali…
mberrys Oct 11, 2026
c13f76f
Merge origin/dev into gh-231-quick-coverage
claude Oct 11, 2026
eee11a0
Merge origin/dev into feat/issue-124-governed-history
claude Oct 11, 2026
703e7d9
Merge origin/dev into feat/issue-123-quick-print-export
claude Oct 11, 2026
034e31f
Merge pull request #264 from studio-berry/feat/issue-124-governed-his…
mberrys Oct 11, 2026
a270302
Merge origin/dev into gh-231-quick-coverage
claude Oct 11, 2026
2cd3726
Merge origin/dev into feat/issue-123-quick-print-export
claude Oct 11, 2026
0591a85
Pass the settings argument to every EditorHost constructor call
claude Oct 11, 2026
0b89f0a
Pass the settings argument to every EditorHost constructor call
claude Oct 11, 2026
e1a272c
Repair EditorHost argument lists in the test files
claude Oct 11, 2026
cd1ba78
Restore the two-argument EditorHost constructor calls on this branch
claude Oct 11, 2026
beceb62
Merge pull request #263 from studio-berry/feat/issue-123-quick-print-…
mberrys Oct 11, 2026
33ed828
Merge origin/dev into gh-231-quick-coverage
claude Oct 11, 2026
4e58124
Merge pull request #267 from studio-berry/gh-231-quick-coverage
mberrys Oct 11, 2026
4756a1b
docs(adr): decide direct revision for interactive authoring edits
mberrys Oct 11, 2026
a70620e
docs(adr-014): pin the counts to the real contract (109 descriptors, …
mberrys Oct 11, 2026
3ddfe40
feat(quick): bookmark and hyperlink authoring through the direct-edit…
mberrys Oct 11, 2026
1d0a5bb
feat(quick): annotation authoring through the direct-edit path with p…
mberrys Oct 11, 2026
166a146
feat(quick): form, attachment and metadata edits with send-by-email (…
mberrys Oct 11, 2026
1c54574
chore(quick): integrate authoring slices, reconcile counts and ratche…
mberrys Oct 11, 2026
ace608c
refactor(interaction): unify the direct-edit gateway to one typed req…
mberrys Oct 11, 2026
afbd74d
fix(architecture): register the authoring test target and satisfy the…
mberrys Oct 11, 2026
9d60302
chore(generated): regenerate the phase5 widgets inventory for the new…
mberrys Oct 11, 2026
826da2d
fix(core): give PDFBookmarkRecord an explicit equality for GCC
mberrys Oct 11, 2026
2035288
fix(tests): keep the parsed link annotation alive in the read-back he…
mberrys Oct 11, 2026
15fed58
Merge pull request #271 from studio-berry/gh-231-quick-mutations
mberrys Oct 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/LinuxInstall.yml
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ jobs:
version=$(cat "loop/build/version.txt")
echo "Version: $version"
echo "appimagefilename=Loop-pdf-$version-x86_64.AppImage" >> $GITHUB_ENV
echo "appimage_update_info=gh-releases-zsync|mberrys|Loop-pdf|latest|Loop-pdf-*-x86_64.AppImage.zsync" >> $GITHUB_ENV
echo "appimage_update_info=gh-releases-zsync|studio-berry|loop|latest|Loop-pdf-*-x86_64.AppImage.zsync" >> $GITHUB_ENV
echo "AppImage file name: Loop-pdf-$version-x86_64.AppImage"
echo "package_name=Loop-pdf-$version-x86_64.AppImage" >> "$GITHUB_OUTPUT"

Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ jobs:
run: python3 scripts/ci/test_check_loop_identity.py
- name: Verify active Loop identity
run: python3 scripts/ci/check_loop_identity.py
- name: Verify repository governance and retired milestone writes
run: |
python3 -m unittest scripts.ci.test_check_governance_registers scripts.github.test_sync_milestones -q
python3 scripts/ci/check_governance_registers.py
python3 scripts/github/sync_milestones.py
- name: Verify tracked source integrity
run: python3 scripts/ci/check_source_integrity.py
- name: Verify authoritative product-surface contract
Expand Down Expand Up @@ -121,6 +126,10 @@ jobs:
run: |
python3 scripts/ci/test_correction_operation_catalog.py
python3 scripts/generate-architecture-catalogs.py --check
- name: Verify command catalog handler coverage (#231)
run: |
python3 scripts/ci/test_command_catalog.py
python3 scripts/verify-command-catalog.py
- name: Verify preflight check catalog and coverage backlog (#165)
run: python3 scripts/ci/test_preflight_check_catalog.py
- name: Verify preflight corpus coverage map (#165)
Expand Down
23 changes: 0 additions & 23 deletions .github/workflows/sync-milestones.yml

This file was deleted.

286 changes: 0 additions & 286 deletions Desktop/io.github.mberrys.Loop-pdf.appdata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,292 +21,6 @@
<url type="help">https://github.com/studio-berry/loop</url>
<content_rating type="oars-1.1"/>
<launchable type="desktop-id">io.github.mberrys.Loop-pdf.desktop</launchable>
<releases>
<release version="1.6.0.0" date="2026-06-14">
<description>
<ul>
<li>Issue #389: Adding hyperlink to _internal_ object in PDF</li>
<li>Issue #388: Update Windows color management system</li>
<li>Issue #385: PDFTextLayoutGenerator::isContentKindSuppressed(ContentKind kind) is missing ContentKind::Form</li>
<li>Issue #384: In the "Optimize Images" dialog, the info on the final image resolution and final DPI does not update</li>
<li>Issue #383: UX improvements for Loop PageMaster tool (v1.5.3.1) (ex. DocPage Organizer)</li>
<li>Issue #382: Startup Settings</li>
<li>Issue #381: Separated apps for double-click viewer in Linux</li>
<li>Issue #380: Ability to run app with custom settings directory - executable parameter with path</li>
<li>Issue #379: Advanced Find - Wildcard Mode</li>
<li>Issue #378: Advanced Find - Should start searching if Enter key is pressed</li>
<li>Issue #376: Deleting a note jumps to Outline</li>
<li>Issue #375: Not enough maximum compiled page cache</li>
<li>Issue #373: Ctrl/Shift keyboard selection for Outline</li>
<li>Issue #372: Option to not color images</li>
<li>Issue #370: Extracting pages within a range</li>
<li>Issue #369: Keeping redact box on</li>
<li>Issue #368: Side-to-side scrolling</li>
<li>Issue #357: Bulk delete/add/edit of page labels</li>
<li>Issue #356: Compatibility issues - font problems</li>
<li>Issue #354: Color blend mode for highlights</li>
<li>Issue #352: Icon size of the sidebar</li>
<li>Issue #349: Add inherit zoom to bookmark zoom options</li>
<li>Issue #338: Editor toolbox higher than editor window</li>
<li>Issue #334: Impossible to set French language</li>
<li>Issue #326: Checkboxes don't render in Loop</li>
<li>Issue #324: Menu text not rendered with correct color</li>
<li>Issue #321: Select text in Viewer</li>
<li>Issue #291: Support for editing XMP metadata or exporting to PDF/UA format</li>
<li>Issue #282: Editor outline view always zooms to around 50%</li>
<li>Issue #256: Loop cannot show some specific fonts correctly</li>
<li>Issue #253: Undo/redo doesn't work in "edit page content" mode</li>
<li>Issue #250: Snapping</li>
<li>Issue #242: Full screen</li>
<li>Issue #234: Setting font, font size and area of text annotations</li>
<li>Issue #230: Garbled characters when opening PDF files with Loop</li>
<li>Issue #225: Loop cannot open PDF files with embedded files</li>
<li>Issue #224: Option to remove invisible text</li>
<li>Issue #194: Change page size</li>
<li>Issue #160: Color | Custom (green/black) does not work</li>
<li>Issue #136: Smooth scrolling of document with mouse middle wheel - flywheel</li>
<li>Issue #92: Add image compression to PDF DocPage Organizer</li>
<li>Issue #18: Performance optimization - OutputPreview Renderer</li>
</ul>
</description>
</release>
<release version="1.5.3.1" date="2026-01-22">
<description>
<p>Windows installer fix</p>
</description>
</release>
<release version="1.5.3.0" date="2026-01-18">
<description>
<p>This release was withdrawn.</p>
<ul>
<li>Issue #341: Embed AppImage update information</li>
<li>Issue #339: Traditional Chinese translation file</li>
<li>Issue #333: ijg-libjpeg obsoleted in vcpkg</li>
<li>Issue #329: How to remove "External links"</li>
<li>Issue #269: Nested bookmarks lose children when moving</li>
<li>Issue #179: Adding a JPG or PNG signature image crashes Loop</li>
<li>Issue #146: Incorrect fonts displayed on Linux</li>
<li>Issue #144: Drag and drop text note annotations</li>
</ul>
</description>
</release>
<release version="1.5.2.0" date="2025-09-20">
<description>
<ul>
<li>Issue #313: Remove history UX improvement</li>
<li>Issue #310: Docpage organiser uses PDF title rather than filename</li>
<li>Issue #306: Unable to delete the recent files history.</li>
<li>Issue #303: Add Dockerfile for Simplified Loop Setup with Qt 6.9.1 and All Dependencies</li>
<li>Issue #301: Russian Language file</li>
<li>Issue #296: Redaction annotation support in PdfTool</li>
<li>Issue #295: Request: Make page layout choice persist between files</li>
<li>Issue #279: qt_add_translations uses options only in qt 6.9</li>
<li>Issue #284: Scaling dimensions [Enhancements, Features]</li>
<li>Issue #281: install API headers for reuse by other applications ?</li>
<li>Issue #251: Let user lock direction of lines/polylines when pressing keybinding (e.g. shift)</li>
</ul>
</description>
</release>
<release version="1.5.1.0" date="2025-04-27">
<description>
<ul>
<li>Issue #271: Change of the license to MIT</li>
<li>Issue #257: Force light mode (or dark mode)</li>
<li>Issue #255: Page Master invert selection does not work</li>
<li>Issue #254: Unit Settings default window size too small</li>
<li>Issue #248: Update version and year in About page</li>
<li>Issue #247: Option to hide cross when adding annotations</li>
</ul>
</description>
</release>
<release version="1.5.0.0" date="2025-03-09">
<description>
<ul>
<li>Issue #244: Unite document after page removal loses outline</li>
<li>Issue #236: Highlighting - Allow color selection and intensity</li>
<li>Issue #229: Can't add picture to PDF</li>
<li>Issue #228: Reverse pages order</li>
<li>Issue #222: UnitTests fails several tests</li>
<li>Issue #207: Zoom to Cursor (Zoom Anchoring)</li>
<li>Issue #206: Name of the executable / command</li>
<li>Issue #205: Editor cannot create white or transparent annotations</li>
<li>Issue #202: Certain raster content not rendered</li>
<li>Issue #200: Icons under dark theme on Arch/KDE broken</li>
<li>Issue #185: Latest git fails to build on Linux</li>
<li>Issue #165: Inline Text latency issues on Flatpak/AppImage</li>
<li>Issue #161: Trust certificates like in Acrobat</li>
</ul>
</description>
</release>
<release version="1.4.0.0" date="2024-07-04">
<description>
<ul>
<li>Issue #190: PageMaster crash after removing pages</li>
<li>Issue #184: Form field font size too large</li>
<li>Issue #183: Option to ignore PDF security settings</li>
<li>Issue #182: Diff command-line arguments ignored</li>
<li>Issue #181: Dark mode feature</li>
<li>Issue #180: Options windows larger than desktop</li>
<li>Issue #174: Limited Linux support improvements</li>
<li>Issue #173: Errors loading Echoplex.pdf</li>
<li>Issue #172: Missing access keys in menus</li>
<li>Issue #168: Stamp disappears when merging files</li>
<li>Issue #166: Adding images to PDF</li>
<li>Issue #164: Taskbar icon not shown on Linux Mint</li>
<li>Issue #163: Invalid PDF rendering issues</li>
<li>Issue #161: Trust certificates like in Acrobat</li>
<li>Issue #159: Separate AppImage offerings</li>
<li>Issue #123: Alternative rendering backend (Blend2D)</li>
<li>Issue #42: Real text editing improvements</li>
<li>Issue #26: Add pictures in PDF files</li>
</ul>
</description>
</release>
<release version="1.3.7" date="2024-01-10">
<description>
<ul>
<li>Issue #142: Cannot reach the top</li>
<li>Issue #141: Save button in toolbar</li>
<li>Issue #140: New bookmarks created empty?</li>
<li>Issue #139: Changing page layout resets the current page</li>
<li>Issue #137: Redaction - Cannot convert '#000000' to color value</li>
<li>Issue #134: Add search bar for actions</li>
<li>Issue #133: Rectangle selector when choosing the page of the PDF</li>
<li>Issue #129: Cannot compile with lcms 2.16</li>
<li>Issue #128: Create list of markup annotations</li>
<li>Issue #126: Remove &lt;QtCore&gt; include from main headers</li>
<li>Issue #119: Improve search bar 2 (the revenge)</li>
<li>Issue #118: Adding CMake options for minimal builds</li>
<li>Issue #116: Improve search bar (remember searched text, allow scroll and zoom)</li>
<li>Issue #115: Redesign of sidebar widget, new icons</li>
<li>Issue #113: Color | Custom (green/black) partially works in scanned PDF</li>
<li>Issue #112: Smooth scrolling</li>
<li>Issue #104: pdf_3d branch and license</li>
<li>Issue #102: PDF engine implementation details</li>
<li>Issue #99: Icons for dark mode</li>
<li>Issue #55: System certificates store not found</li>
<li>Issue #54: Bookmarks for pages</li>
</ul>
</description>
</release>
<release version="1.3.6" date="2023-11-24">
<description>
<ul>
<li>Issue #110: Viewer Lite arbitrary code execution when using Send by Email</li>
<li>Issue #109: Text, font and page parts missing</li>
<li>Issue #108: Add accessibility options in PDF reader</li>
<li>Issue #107: Create document with converted bitonic images</li>
<li>Issue #106: Hardware acceleration is not supported warning</li>
<li>Issue #103: Bookmark sidebar greyed out if a bookmark is not already present</li>
<li>Issue #100: Highlight rectangle</li>
<li>Issue #97: DocPage Organizer drag and drop, context menu and responsive layout</li>
<li>Issue #94: New directory structure</li>
<li>Issue #83: Default font for unrecognized fonts</li>
<li>Issue #76: Outline editing</li>
<li>Issue #58: PDF document with rotated Type 3 fonts</li>
</ul>
</description>
</release>
<release version="1.3.5" date="2023-09-08">
<description>
<ul>
<li>Issue #65: Text-to-speech doesn't work on Linux</li>
<li>Issue #72: Cannot select text</li>
<li>Issue #82: Hot reload function</li>
<li>Issue #80: Optimizer is slow on large PDF files</li>
<li>Issue #77: Document read error</li>
<li>Issue #78: Error decompressing stream</li>
</ul>
</description>
</release>
<release version="1.3.4" date="2023-08-03">
<description>
<ul>
<li>Issue #75: Redesign of sidebar widget</li>
<li>Issue #74: Highlighting text opens the sidebar every time</li>
<li>Issue #73: Minor GUI issues</li>
<li>Issue #71: Pages are mirrored</li>
<li>Issue #69: Dashed line not rendered as expected</li>
<li>Issue #68: Add alternative vcpkg file with dependency on Qt</li>
<li>Issue #59: Fix character font encoding for Mac Roman and Unicode tables</li>
<li>Issue #50: Some types of PDF don't open as expected</li>
</ul>
</description>
</release>
<release version="1.3.3" date="2023-04-22">
<description>
<ul>
<li>Issue #49: Document read error</li>
<li>Issue #46: Program does not launch or freezes on Windows</li>
<li>Issue #48: Page not displayed correctly</li>
<li>Issue #45: Blank page in DocPage Organizer</li>
<li>Issue #43: Save question</li>
<li>Issue #40: Sanitization of documents</li>
</ul>
</description>
</release>
<release version="1.3.2" date="2023-02-01">
<description>
<ul>
<li>Issue #39: Code-signed installation</li>
</ul>
</description>
</release>
<release version="1.3.1" date="2022-12-28">
<description>
<ul>
<li>Issue #34: Reset option</li>
<li>Issue #35: Window state is not remembered for viewers</li>
</ul>
</description>
</release>
<release version="1.3.0" date="2022-12-25">
<description>
<ul>
<li>Issue #21: Table selection tool</li>
<li>Issue #22: Solve compilation warnings</li>
<li>Issue #24: Text selection and table selection algorithm improvement</li>
<li>Issue #25: Move to Qt 6.4, CMake and vcpkg</li>
<li>Issue #28: Add multiple PDF files at once for merging</li>
<li>Issue #33: ToUnicode for simple fonts not used</li>
<li>Issue #32: New stable release</li>
</ul>
</description>
</release>
<release version="1.2.1" date="2022-06-30">
<description>
<ul>
<li>Issue #17: Public key security handler</li>
<li>Issue #19: Remove dependency on Microsoft Visual Studio Redistributable Packages</li>
</ul>
</description>
</release>
<release version="1.2.0" date="2022-06-05">
<description>
<ul>
<li>Issue #10: Performance optimization</li>
<li>Issue #14: Incorrect text drawing for vertical writing systems</li>
<li>Issue #15: MSI installer</li>
<li>Static XFA support (read-only, simple XFA only)</li>
<li>Electronically and digitally sign documents</li>
</ul>
</description>
</release>
<release version="1.1.0" date="2021-12-19">
<description>
<ul>
<li>DocDiff application for comparing similar PDF documents</li>
<li>Linux support</li>
<li>New icon set</li>
</ul>
</description>
</release>
<release version="1.0.0" date="2021-09-19">
<description>
<p>Initial beta release for non-production testing</p>
</description>
</release>
</releases>
<screenshots>
<screenshot type="default"><caption>Edit content of PDF documents</caption><image>https://jakubmelka.github.io/assets/flatpak/profi-editor.png</image></screenshot>
<screenshot><caption>Browse PDF files easily and efficiently</caption><image>https://jakubmelka.github.io/assets/flatpak/profi-default.png</image></screenshot>
Expand Down
10 changes: 10 additions & 0 deletions LoopEditor/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,17 @@ qt_add_executable(LoopEditor
main.cpp
operatorhelp.cpp
operatorhelp.h
operatorhelpstrings.h
icon.rc
app.qrc
documentviewsession.cpp
documentviewsession.h
editorhost.cpp
quickoutput.cpp
quickoutput.h
editorhost.h
editorsettings.cpp
editorsettings.h
focusrestoration.cpp
focusrestoration.h
quickdocumentmodel.cpp
Expand All @@ -45,6 +50,8 @@ qt_add_qml_module(LoopEditor
QML_FILES
qml/Main.qml
qml/OperatorHelpDialog.qml
qml/SettingsDialog.qml
qml/DiagnosticsDialog.qml
qml/Workspace.qml
qml/DocumentPane.qml
qml/CanvasPane.qml
Expand Down Expand Up @@ -78,6 +85,9 @@ target_include_directories(LoopEditor PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

qt_import_qml_plugins(LoopEditor)

# Explicit product builds must compile the catalogs before install consumes them.
add_dependencies(LoopEditor ${PROJECT_NAME}_lrelease)

# Packaging builds LoopEditor explicitly; ensure the Loop.Canvas plugin module is
# built before install copies it into usr/lib/qml/Loop/Canvas.
add_dependencies(LoopEditor LoopLibQuickplugin)
Expand Down
Loading
Loading