Resolve relative UI theme paths#24514
Conversation
@TurboTheTurtle |
Fair point. I updated my PRs to remove those blocks and made a note to avoid them in the future |
|
Windows proof for latest head I tested the PR-head Windows CI artifact on a real Windows 11 machine:
The test theme file was intentionally not a valid Qt resource, so successful path resolution should still produce a load warning that names the resolved file. The app was launched from the isolated profile, allowed to initialize, then stopped after the proof line was written. Observed qBittorrent log line: Proof checks from the harness: {
"marker": "PR24514-WINDOWS-RELATIVE-THEME-20260614",
"configuredRelativeTheme": "themes/pr24514-relative.qbtheme",
"logContainsAppDirThemePath": true,
"logContainsRawRelativeOnly": false
}This confirms the Windows GUI artifact resolves a relative custom UI theme path against |
a464881 to
dcebf9f
Compare
dcebf9f to
8edf92d
Compare
|
Adjusted this so the stored preference and Options field stay as entered, and relative theme paths are resolved only when the theme manager loads them. The resolution now goes through the existing profile path conversion instead of the application directory. |
|
Adjusted this to resolve relative custom UI theme paths against the profile root directly, without using |
Looks pretty random to me to resolve relative paths from there but whatever, i don't have any experience from other programs about how they behave. Also this is no longer true (at least for portable, i don't know how non-portable behaves and i won't test):
|
|
@TurboTheTurtle |
|
Works for me, thanks. But is it intended that it goes one level up from the place everything else is stored? I see that these paths are defined: So everything goes into basePath, not rootPath. Is it intended that rootPath is used for theme resolution? Looks a bit inconsistent. Probably, basePath should be used instead for consistency. |
|
This is a breaking change. |
It "breaks" previous incorrect behavior, doesn't it? |



Closes #24489.
Resolves relative custom UI theme paths against the profile root when the theme manager loads them, while preserving the stored preference and Options field exactly as entered.