Skip to content

Restore Document category and applications - #4902

Merged
ChrisTitusTech merged 5 commits into
ChrisTitusTech:mainfrom
mewclouds:feat/restore-document-category
Aug 4, 2026
Merged

Restore Document category and applications#4902
ChrisTitusTech merged 5 commits into
ChrisTitusTech:mainfrom
mewclouds:feat/restore-document-category

Conversation

@mewclouds

@mewclouds mewclouds commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Type of Change

  • New feature
  • Bug fix
  • Documentation update
  • Refactor
  • UI/UX improvement

Description

This PR restores the Document application category removed in PR #4451 and adds its Install-tab filter chip.

The restored applications were individually audited before this change. Each has an app-specific justification for inclusion in the WinUtil catalog; this is not a blanket reversal of PR #4451. The five existing applications moved into Document were also reviewed for category fit. Please let me know if any application doesn't belong in the catalog, and if it makes sense I'm more than happy to make the change.

Moved into the Document category

These applications already existed in WinUtil and were moved from Multimedia Tools:

  • Adobe Acrobat Reader - PDF viewing and annotation.
  • LibreOffice - Office suite for documents, spreadsheets, and presentations.
  • NAPS2 (Scanner) - Document scanning and electronic-document creation.
  • Obsidian - Note-taking and knowledge management.
  • ONLYOFFICE Desktop - Office-document editing and collaboration.

Restored from PR #4451

  • Foxit PDF Reader - Widely used and actively maintained PDF reader that provides a mainstream alternative to Adobe Acrobat Reader.
  • Joplin - Mature open-source note-taking application with synchronization, encryption, Markdown support, and broad cross-platform support.
  • Okular - Actively maintained open-source document viewer supporting PDF and numerous other document formats with an official Windows build.
  • PDF-XChange Editor - Mature and actively maintained Windows PDF editor with a substantial free feature set and an established user base.
  • PDF24 Creator - Free, actively maintained all-in-one PDF toolkit providing common operations such as creation, conversion, merging, compression, and editing.
  • PDFgear - Actively maintained free PDF editor with a broad set of viewing, editing, conversion, annotation, and document-management features.
  • PDFsam Basic - Mature open-source utility dedicated to common PDF operations such as splitting, merging, extracting, rotating, and reorganizing pages.
  • Simplenote - Mature cross-platform note-taking application focused on lightweight, synchronized notes.
  • Sumatra PDF - Lightweight, actively maintained open-source Windows document reader supporting PDF, EPUB, MOBI, DjVu, comic books, and other formats.
  • Xournal++ - Actively maintained open-source application for handwritten notes, drawing, and PDF annotation with official Windows support.
  • Zotero - Mature and actively maintained research and reference-management application with a large academic and professional user base.

Validation

  • ./Compile.ps1
  • Invoke-Pester -Path 'pester/*.Tests.ps1' -Output Normal - 471 passed
  • git diff --check

Screenshot

image

Issue related to PR

  • Resolves N/A

Moves existing document-focused apps into the Document category and adds its filter chip.
Restores reviewed document-focused apps removed in PR ChrisTitusTech#4451.
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Added a Document category filter to the Install tab.
    • Expanded the Document app catalog with PDF readers, note-taking tools, office suites, scanners, and document utilities.
  • Improvements
    • Reclassified several existing applications under the Document category for easier discovery.
    • Updated NAPS2’s display name to “NAPS2 (Scanner).”

Walkthrough

The application catalog reclassifies document-related applications and adds new records. The Install tab now includes a Document filter chip, its handler applies the Document category, and XAML tests cover the new control.

Changes

Document category

Layer / File(s) Summary
Document application catalog
config/applications.json
Existing applications move to the Document category. Records for Foxit PDF Reader, Joplin, Okular, PDF-XChange Editor, PDF24 Creator, PDFgear, PDFsam Basic, Simplenote, Sumatra PDF, Xournal++, and Zotero are added.
Document filter wiring
xaml/inputXML.xaml, scripts/main.ps1, pester/xaml.Tests.ps1
The Install tab adds WPFSearchChipDocument. Its handler applies the Document category filter, and XAML tests cover the control and wiring.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Installer as Install tab
  participant Handler as Document chip handler
  participant Filter as Set-WinUtilAppCategoryFilter
  participant Catalog as applications.json
  Installer->>Handler: Click WPFSearchChipDocument
  Handler->>Filter: Apply Category "Document"
  Filter->>Catalog: Select Document applications
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the restoration of the Document category and its applications.
Description check ✅ Passed The description directly explains the category restoration, application changes, UI filter chip, and validation results.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added new feature New feature or request ui update UI/UX improvements labels Aug 2, 2026
@mewclouds
mewclouds marked this pull request as ready for review August 2, 2026 14:02

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
pester/xaml.Tests.ps1 (1)

145-145: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Cover the new cross-file filter contract.

This assertion only verifies that the XAML control exists. Add assertions that scripts/main.ps1 binds WPFSearchChipDocument to -Category "Document" and that the intended records in config/applications.json use Category = "Document".

The existing exact-category behavior test in pester/search-filter.Tests.ps1 does not cover this new chip wiring.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pester/xaml.Tests.ps1` at line 145, Extend the tests around the
WPFSearchChipDocument assertion in xaml.Tests.ps1 to verify that
scripts/main.ps1 binds the chip to -Category "Document" and that the intended
records in config/applications.json declare Category = "Document". Keep the
existing control-existence assertion and exact-category test unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@config/applications.json`:
- Around line 1117-1133: Update the content values for the pdf-xchange and
pdf24creator application entries to use the canonical display names “PDF-XChange
Editor” and “PDF24 Creator” respectively; leave the remaining metadata
unchanged.

---

Nitpick comments:
In `@pester/xaml.Tests.ps1`:
- Line 145: Extend the tests around the WPFSearchChipDocument assertion in
xaml.Tests.ps1 to verify that scripts/main.ps1 binds the chip to -Category
"Document" and that the intended records in config/applications.json declare
Category = "Document". Keep the existing control-existence assertion and
exact-category test unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8863dc30-1996-411b-9786-1fc8322dd59d

📥 Commits

Reviewing files that changed from the base of the PR and between e591161 and d710545.

📒 Files selected for processing (4)
  • config/applications.json
  • pester/xaml.Tests.ps1
  • scripts/main.ps1
  • xaml/inputXML.xaml

Comment thread config/applications.json
This also updates the link for PDF24 Creator
Covers the Document filter handler and config category presence.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
pester/xaml.Tests.ps1 (1)

145-145: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Assert the chip label as well as the control name.

The current assertion only checks WPFSearchChipDocument. A control with Content="Other" would pass while the user-visible filter label is incorrect. Add an assertion for Content="Document".

Proposed assertion
+        $documentChip = $script:xaml.SelectSingleNode('//*[local-name()="Button"][`@Name`="WPFSearchChipDocument"]')
+        $documentChip.GetAttribute("Content") | Should -Be "Document"

Based on the PR objective, the chip must expose the Document label.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pester/xaml.Tests.ps1` at line 145, Update the test assertion for
WPFSearchChipDocument to also verify its user-visible Content is exactly
“Document,” while preserving the existing control-name assertion.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@pester/xaml.Tests.ps1`:
- Line 145: Update the test assertion for WPFSearchChipDocument to also verify
its user-visible Content is exactly “Document,” while preserving the existing
control-name assertion.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 432e52fd-cc53-4d0c-93bf-2f08ed0523e5

📥 Commits

Reviewing files that changed from the base of the PR and between 0c2b5ab and 01617bb.

📒 Files selected for processing (1)
  • pester/xaml.Tests.ps1

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 01617bb3d9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread xaml/inputXML.xaml
@FluffyPunk

Copy link
Copy Markdown
Contributor

The reasons that PR happened were both having too much apps and most apps being too niche. Also 4451 was reviewed live on stream and discussed with audience, so all the decisions and agreements from Chris himself were told and discussed.

The only thing I could agree is PDF24 as PDF toolkit, but most of other things were removed for a reason.
In that way, giving that category back will also be a big question, since count of good candidates is still not that big enough, as i.e. selfhosted tools which scales with time(and fails of major companies XD)

@mewclouds

mewclouds commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

The reasons that PR happened were both having too much apps and most apps being too niche. Also 4451 was reviewed live on stream and discussed with audience, so all the decisions and agreements from Chris himself were told and discussed.

The only thing I could agree is PDF24 as PDF toolkit, but most of other things were removed for a reason. In that way, giving that category back will also be a big question, since count of good candidates is still not that big enough, as i.e. selfhosted tools which scales with time(and fails of major companies XD)

I understand that #4451 was discussed and reviewed at the time, but I don't think the fact that an application was removed in that PR is, by itself, sufficient justification for keeping it removed. Some applications removed by #4451 have already been restored since then, so those decisions clearly aren't immutable.

That's why this PR evaluates the applications individually. Joplin is a good example: it's one of Obsidian's biggest competitors. Calling something like Joplin "too niche" without a specific reason doesn't seem convincing to me. Also, having too many apps isn't a justification to remove an entire category. #4889 loads them without blocking the UI and faster, and the filters/search are useful to find things quickly.

The same applies to the category itself. There were already six document-focused applications in the current catalog sitting under Multimedia Tools, and this PR brings the category to 17 applications with clear document-related use cases. I think that's more than enough to justify a dedicated Document category.

If there are specific applications here that you think shouldn't be included, I'm completely open to discussing them individually and removing them if the reasoning makes sense. But I don't think "they were removed in #4451" or "the PR was reviewed on stream" addresses the individual justifications provided here unless Chris has a different opinion now.

@FluffyPunk

Copy link
Copy Markdown
Contributor

Okular is known for Linux DE's built-in viewer, most people still choose anything else at Windows, because there is something else that will be better than this.
Maybe Foxit is still okay, but it is debatable. I tried it, it feels kinda chaotic for me.
But tbh, in context of viewing, highlighting and signing PDF the best choice is normal browser, because I can't name good browser, which can't open PDF file.

PDF24 actually is web toolkit, so I will call my words back about it, makes no sense to install a tool which is web-based, unless you can't have Internet access most of time. (unless that's an app that depends on system resources, which can require some special libraries etc, etc, etc)
Joplin... Can't deny, can't agree. It is rarely mentioned, mostly because Obsidian and Notion took over scene, so its appearance haven't succeeded that much.

All the others are unheard by majority of people or considered niche comparing to bigger and better alternatives, which why they were removed

@mewclouds

mewclouds commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

Okular is known for Linux DE's built-in viewer, most people still choose anything else at Windows, because there is something else that will be better than this. Maybe Foxit is still okay, but it is debatable. I tried it, it feels kinda chaotic for me. But tbh, in context of viewing, highlighting and signing PDF the best choice is normal browser, because I can't name good browser, which can't open PDF file.

PDF24 actually is web toolkit, so I will call my words back about it, makes no sense to install a tool which is web-based, unless you can't have Internet access most of time. (unless that's an app that depends on system resources, which can require some special libraries etc, etc, etc) Joplin... Can't deny, can't agree. It is rarely mentioned, mostly because Obsidian and Notion took over scene, so its appearance haven't succeeded that much.

All the others are unheard by majority of people or considered niche comparing to bigger and better alternatives, which why they were removed

Thanks for giving some app-specific examples. This is the kind of discussion I was asking for.

On Okular, I think that's a fair point. Its Windows audience is much smaller and it's primarily associated with KDE/Linux, so I'm okay removing Okular from this PR.

For Joplin, though, "can't deny, can't agree" isn't really a justification. I'm also not sure what "its appearance hasn't succeeded that much" is based on. Joplin is FOSS, cross-platform, supports E2EE, gives users control over where their data is synchronized, and can be used with self-hosted infrastructure. It's also recommended by major privacy/security resources:

Obsidian and Notion being more popular doesn't make Joplin redundant. They overlap because they're note-taking applications, but they have different licensing models, workflows, sync options, and approaches to data ownership.

image

The same logic applies to the rest of the catalog. Chrome and Firefox exist, but we still include alternatives like Brave, ungoogled chromium and Helium because people want different tradeoffs. Helium and ungoogled are probably "unheard of by the majority of people" compared to Chrome, Edge, Firefox, or Brave, but that doesn't make it a bad option to have.

I also don't agree that a browser replaces dedicated PDF software. If that were enough justification, then Adobe Acrobat Reader shouldn't be in WinUtil either because browsers already open PDFs. Dedicated PDF readers and editors still have a market because people actually use and prefer them, and they provide different workflows and functionality. I personally prefer dedicated PDF software too.

The restored PDF-related apps also aren't just copies of each other:

  • Sumatra PDF is focused on being a lightweight document reader.
  • PDFsam Basic focuses on splitting, merging, extracting, rotating, and reorganizing PDF pages.
  • PDF-XChange Editor provides much broader editing and annotation functionality.
  • Foxit PDF Reader is an established Acrobat alternative. "Feels kinda chaotic for me" is personal preference.
  • Xournal++ focuses heavily on handwritten notes and PDF annotation.
  • Zotero is primarily research and reference-management software, not simply another PDF reader.

I'm also confused about PDF24 Creator. In your previous comment you said it was the one restoration you agreed with, but now you're arguing against it because PDF24 has web tools. PDF24 Creator is an actual Windows desktop application, separate from their web tools, and is specifically designed to provide that functionality locally/offline:

https://tools.pdf24.org/en/creator

I also think we really need to stop using "niche" by itself as justification. "Niche", "unheard of by the majority of people", or "there are bigger alternatives" don't actually explain why an application shouldn't be in the catalog. That same argument could be applied to Helium and plenty of applications already in Development, Selfhosted Tools, Pro Tools, Utilities, and other categories.

I'm not arguing that every application belongs in WinUtil. Okular is a good example where you gave me a concrete reason to reconsider it, and I'm fine removing it. If an application has poor Windows support, is abandoned, has packaging problems, has questionable behavior, or is genuinely too specialized for WinUtil, give me that specific reason and I'm happy to make changes where it makes sense.

But simply saying something is "niche" or that a more popular alternative exists isn't enough on its own. The point of the catalog is to provide a curated set of useful options, not one winner for every use case.

If we fundamentally disagree on how broad that catalog should be, that's ultimately a product-direction decision and I'm fine leaving that to @ChrisTitusTech. Thanks.

Comment thread config/applications.json Outdated

@ChrisTitusTech ChrisTitusTech left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeps the e-book reader in Multimedia Tools.
@ChrisTitusTech
ChrisTitusTech merged commit 97e0711 into ChrisTitusTech:main Aug 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature New feature or request ui update UI/UX improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants