I'm finding the background / theme support rather restrictive. Four "problems" (hey, it's a feature, not a bug/weakness ;-)) I would like to lodge. I'm still learning OLP, so who knows, maybe I missed something and someone can kick me in the right direction.<br><br>I added 90 image (2560x1440) themes to OLP. The cumulative size of the source JPG files is 49.2 MB.<br><br>
At some point, I was poking around %AppData%\openlp\data\themes, and noticed the cumulative folder size is 463 MB!? Upon further inspection, it turns out when creating a new theme, each generated preview (floody, floody) image is a large PNG file. It would be helpful if these images would be highly compressed JPG or if an option was provided to disable those previews altogether. Or let us specify a resolution for these preview images. OLP generated 3200x1800 preview images, matching the display resolution for my Yoga 2 Pro. Can I use "Override display position" or other setting and Tools > Update Theme Images to trick OLP into re-generating smaller preview images?<br><br>
90 themes sounds excessive, but we're just getting started with background images (meaning 90 is nuthin'). Please consider rethinking how themes/backgrounds are implemented. If you keep the two inherently intertwined, it would be helpful to have some organizational structure (folders?) for themes.<br><br>
Related to the above point, after creating 90 themes, when I right-click a song in Service Manager and go to the Change Item Theme menu, the menu containing the list of themes is huuuuuge. Probably the only reason that menu is still remotely usable is because of the 3200x1800 resolution on the Yoga 2 Pro.<br><br>
Please improve options for changing theme settings/attributes. After creating the themes, for example, I wanted to change line spacing for each theme. I had to manually edit each theme and select the desired line spacing, then step through the theme editing wizard to save the change. At a minimum, please offer an Accept (or Save/Close) button on each page of the wizard, so it isn't necessary to go the whole way through the wizard each time. Better yet, provide bulk theme editing functionality. Actually, I didn't manually make the line spacing change for all 90+ themes. Instead, I created a small PowerShell module to update each theme's xml, and used recursion to update each theme. See below.
I created this bitty PowerShell module (saved to my Desktop as OLPTasks.psm1):<br><br>
function Set-OLPThemeMainLineSpacingXML {
param(
[Parameter(Mandatory=$True)]
[string]$ThemeXMLFilePath
)
$ThemeXML = [xml](Get-Content $ThemeXMLFilePath)
$MainFont = $ThemeXML.theme.font | where {$
.type -eq "main"}
$MainFont.line_adjustment = '12'
$ThemeXML.Save($ThemeXMLFilePath)
}<br><br>Then at a PowerShell prompt:<br><br>Import-Module C:\Users<i>MyUsername</i>\Desktop\OLPTasks.psm1<br><br>and<br><br>gci -Recurse -Include *.xml C:\Users<i>MyUsername</i>\AppData\Roaming\openlp\data\themes | %{Set-OLPThemeMainLineSpacingXML $.FullName}<br><br>Note: in the line immediately above, % is an alias of the ForEach-Object cmdlet.<br>This quickly set the line spacing for the main font in all my themes to 12pt. This script/module could fairly quickly be extended to "scriptomatically" adjust any theme setting stored in a theme XML file. It could even be designed more flexibly. For example, the script could accept an argument to use for the line spacing size, instead of hard-coding it in the Set-OLPThemeMainLineSpacingXML function, as I did. If you find this helpful, go nuts, then please contribute by sharing your updates. All I ask is that you firstly backup your %AppData%\openlp\data\themes or better, %AppData%\openlp\data folder, before trying out my script or your modifications to said script. Secondly, you take responsibility for any data loss or corruption if you choose to try and/or modify this script.<br>