Skip to content

Conversation

@juli27
Copy link
Contributor

@juli27 juli27 commented Nov 5, 2025

The manifest contains five things:

  • declare compatibility with Windows 10 & 11
    • we were running inside a Windows Vista compatibility context before (see Details tab in TaskManager, column "Operating system context")
  • set process DPI awareness to PerMonitorV2
    • this is already set by Qt programmatically at start up (see Details tab in TaskManager, column "DPI awareness")
  • use v6 instead of v5 of the CommonControls library
    • enable modern styles in system dialogs
  • user account control settings
    • for completeness. The linker adds that by default anyway, so this was already part of the executable
  • set active code page to UTF-8
    • yay

The compatibility declaration with Windows 10 & 11 might change behavior or might not. (I don't expect any changes in behavior)
Another thing we could do is set the process's codepage to UTF-81. This might allow as to drop this call to QTextCodec::setCodecForLocale from Qt6Core5Compat.

Print dialog with Windows 10:

Before After
print-before image
  • I signed the CLA
  • The title of the PR describes the problem it addresses
  • Each commit's message describes its purpose and effects, and references the issue it resolves
  • If changes are extensive, there is a sequence of easily reviewable commits
  • The code in the PR follows the coding rules
  • There are no unnecessary changes
  • The code compiles and runs on my machine, preferably after each commit individually
  • I created a unit test or vtest to verify the changes I made (if applicable)

Footnotes

  1. https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests#activecodepage

@cbjeukendrup
Copy link
Member

Another thing we could do is set the process's codepage to UTF-81. This might allow as to drop this call to QTextCodec::setCodecForLocale from Qt6Core5Compat.

That might be nice to try, because depending on Qt5Compat isn't ideal.

@cbjeukendrup cbjeukendrup moved this to In Progress in MuseScore Studio 4.7 Nov 5, 2025
@juli27 juli27 force-pushed the addWindowsApplicationManifest branch from 7c4d375 to ade3034 Compare November 5, 2025 22:29
@cbjeukendrup
Copy link
Member

@DmitryArefiev This one only needs testing on Windows. Just a small regression check; maybe the following things:

  • app launches correctly
  • no regression in functionality of putting main window full screen and moving it around
  • popups work okay (no reason to assume they wouldn't, but let's be sure)
  • save/open/print dialogs work fine
  • command line mode (just one simple file conversion suffices); with special characters in file names

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Copy link
Contributor

Choose a reason for hiding this comment

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

could you please move this file to app/configs

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

The manifest contains four things:
- declare compatibility with Windows 10 & 11
  - we were running inside a Windows Vista compatibility context before
- set process DPI awareness to PerMonitorV2
  - this is already set by Qt programmatically at start up
- use v6 instead of v5 of the CommonControls library
  - enable modern styles in system dialogs
- user account control settings
  - for completeness. The linker adds that by default anyway, so this
    was already part of the executable
@juli27 juli27 force-pushed the addWindowsApplicationManifest branch from ade3034 to d1d4b6e Compare November 6, 2025 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

4 participants