Add AppUserModelID to start menu shortcuts

This commit is contained in:
Kovid Goyal 2024-11-08 11:13:32 +05:30
parent c27e613837
commit f207de192f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 28 additions and 14 deletions

View File

@ -113,9 +113,14 @@ def initialize_constants():
nv = re.search(r'numeric_version\s+=\s+\((\d+), (\d+), (\d+)\)', src)
calibre_constants['version'
] = '%s.%s.%s' % (nv.group(1), nv.group(2), nv.group(3))
calibre_constants['appname'] = re.search(
r'__appname__\s+=\s+(u{0,1})[\'"]([^\'"]+)[\'"]', src
).group(2)
def get_str_assign(which):
pat = r'__appname__\s+=\s+(u{0,1})[\'"]([^\'"]+)[\'"]'.replace('__appname__', which)
return re.search(pat, src).group(2)
calibre_constants['appname'] = get_str_assign('__appname__')
calibre_constants['MAIN_APP_UID'] = get_str_assign('MAIN_APP_UID')
calibre_constants['VIEWER_APP_UID'] = get_str_assign('VIEWER_APP_UID')
calibre_constants['EDITOR_APP_UID'] = get_str_assign('EDITOR_APP_UID')
epsrc = re.compile(r'entry_points = (\{.*?\})',
re.DOTALL).search(read_cal_file('linux.py')).group(1)
entry_points = eval(epsrc, {'__appname__': calibre_constants['appname']})

View File

@ -78,9 +78,15 @@
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="StartMenuShortcuts">
<Shortcut Id="s1" Name="{app}{x64} - E-book management" Description="Manage your e-book collection, read or edit your e-books and download news" Target="[#{exe_map[calibre]}]" WorkingDirectory="APPLICATIONFOLDER" />
<Shortcut Id="s2" Name="E-book viewer{x64}" Description="Viewer for all the major e-book formats" Target="[#{exe_map[ebook-viewer]}]" WorkingDirectory="APPLICATIONFOLDER" />
<Shortcut Id="s4" Name="Edit E-book{x64}" Description="Edit e-books" Target="[#{exe_map[ebook-edit]}]" WorkingDirectory="APPLICATIONFOLDER" />
<Shortcut Id="s1" Name="{app}{x64} - E-book management" Description="Manage your e-book collection, read or edit your e-books and download news" Target="[#{exe_map[calibre]}]" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="{main_app_uid}"/>
</Shortcut>
<Shortcut Id="s2" Name="E-book viewer{x64}" Description="Viewer for all the major e-book formats" Target="[#{exe_map[ebook-viewer]}]" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="{viewer_app_uid}"/>
</Shortcut>
<Shortcut Id="s4" Name="Edit E-book{x64}" Description="Edit e-books" Target="[#{exe_map[ebook-edit]}]" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="{editor_app_uid}"/>
</Shortcut>
<Shortcut Id="s3" Name="LRF viewer{x64}" Description="Viewer for LRF format e-books" Target="[#{exe_map[lrfviewer]}]" WorkingDirectory="APPLICATIONFOLDER" />
<util:InternetShortcut Id="OnlineDocumentationShortcut" Name="User Manual" Type="url" Target="https://manual.calibre-ebook.com" />
<util:InternetShortcut Id="GetInvolvedS" Name="Get Involved" Type="url" Target="https://calibre-ebook.com/get-involved" />

View File

@ -51,6 +51,9 @@ def create_installer(env, compression_level='9'):
x64=' 64bit' if is64bit else '',
compression='high',
app_components=components,
main_app_uid=calibre_constants['MAIN_APP_UID'],
viewer_app_uid=calibre_constants['VIEWER_APP_UID'],
editor_app_uid=calibre_constants['EDITOR_APP_UID'],
exe_map=smap,
main_icon=j(env.src_root, 'icons', 'library.ico'),
viewer_icon=j(env.src_root, 'icons', 'viewer.ico'),