From 87ce9588ceb4b4dd625913344844390f0b991b0c Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 7 Aug 2019 10:50:17 -0700 Subject: [PATCH] bpo-37778: Fixes the icons used for file associations to the Microsoft Store package (GH-15150) --- .../2019-08-06-13-54-12.bpo-37778.AY1XhH.rst | 1 + PC/icons/py.png | Bin 0 -> 14151 bytes PC/layout/support/appxmanifest.py | 33 ++++++++++-------- 3 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 Misc/NEWS.d/next/Windows/2019-08-06-13-54-12.bpo-37778.AY1XhH.rst create mode 100644 PC/icons/py.png diff --git a/Misc/NEWS.d/next/Windows/2019-08-06-13-54-12.bpo-37778.AY1XhH.rst b/Misc/NEWS.d/next/Windows/2019-08-06-13-54-12.bpo-37778.AY1XhH.rst new file mode 100644 index 0000000000..14d81c05ee --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2019-08-06-13-54-12.bpo-37778.AY1XhH.rst @@ -0,0 +1 @@ +Fixes the icons used for file associations to the Microsoft Store package. diff --git a/PC/icons/py.png b/PC/icons/py.png new file mode 100644 index 0000000000000000000000000000000000000000..5c184e6a745f36ff0dbc94b3a20a8d8595d218a2 GIT binary patch literal 14151 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 literal 0 HcmV?d00001 diff --git a/PC/layout/support/appxmanifest.py b/PC/layout/support/appxmanifest.py index 0a0f1fc818..4273b427e9 100644 --- a/PC/layout/support/appxmanifest.py +++ b/PC/layout/support/appxmanifest.py @@ -65,6 +65,8 @@ IDLE_VE_DATA = dict( BackgroundColor="transparent", ) +PY_PNG = '_resources/py.png' + APPXMANIFEST_NS = { "": "http://schemas.microsoft.com/appx/manifest/foundation/windows10", "m": "http://schemas.microsoft.com/appx/manifest/foundation/windows10", @@ -278,12 +280,16 @@ def add_alias(xml, appid, alias, subsystem="windows"): e = find_or_add(e, "uap5:ExecutionAlias", ("Alias", alias)) -def add_file_type(xml, appid, name, suffix, parameters='"%1"'): +def add_file_type(xml, appid, name, suffix, parameters='"%1"', info=None, logo=None): app = _get_app(xml, appid) e = find_or_add(app, "m:Extensions") e = find_or_add(e, "uap3:Extension", ("Category", "windows.fileTypeAssociation")) e = find_or_add(e, "uap3:FileTypeAssociation", ("Name", name)) e.set("Parameters", parameters) + if info: + find_or_add(e, "uap:DisplayName").text = info + if logo: + find_or_add(e, "uap:Logo").text = logo e = find_or_add(e, "uap:SupportedFileTypes") if isinstance(suffix, str): suffix = [suffix] @@ -399,7 +405,7 @@ def get_appxmanifest(ns): ["python", "python{}".format(VER_MAJOR), "python{}".format(VER_DOT)], PYTHON_VE_DATA, "console", - ("python.file", [".py"]), + ("python.file", [".py"], '"%1"', 'Python File', PY_PNG), ) add_application( @@ -410,7 +416,7 @@ def get_appxmanifest(ns): ["pythonw", "pythonw{}".format(VER_MAJOR), "pythonw{}".format(VER_DOT)], PYTHONW_VE_DATA, "windows", - ("python.windowedfile", [".pyw"]), + ("python.windowedfile", [".pyw"], '"%1"', 'Python File (no console)', PY_PNG), ) if ns.include_pip and ns.include_launchers: @@ -422,7 +428,7 @@ def get_appxmanifest(ns): ["pip", "pip{}".format(VER_MAJOR), "pip{}".format(VER_DOT)], PIP_VE_DATA, "console", - ("python.wheel", [".whl"], 'install "%1"'), + ("python.wheel", [".whl"], 'install "%1"', 'Python Wheel'), ) if ns.include_idle and ns.include_launchers: @@ -459,16 +465,15 @@ def get_appx_layout(ns): yield "AppxManifest.xml", ("AppxManifest.xml", get_appxmanifest(ns)) yield "_resources.xml", ("_resources.xml", get_resources_xml(ns)) icons = ns.source / "PC" / "icons" - yield "_resources/pythonx44.png", icons / "pythonx44.png" - yield "_resources/pythonx44$targetsize-44_altform-unplated.png", icons / "pythonx44.png" - yield "_resources/pythonx50.png", icons / "pythonx50.png" - yield "_resources/pythonx50$targetsize-50_altform-unplated.png", icons / "pythonx50.png" - yield "_resources/pythonx150.png", icons / "pythonx150.png" - yield "_resources/pythonx150$targetsize-150_altform-unplated.png", icons / "pythonx150.png" - yield "_resources/pythonwx44.png", icons / "pythonwx44.png" - yield "_resources/pythonwx44$targetsize-44_altform-unplated.png", icons / "pythonwx44.png" - yield "_resources/pythonwx150.png", icons / "pythonwx150.png" - yield "_resources/pythonwx150$targetsize-150_altform-unplated.png", icons / "pythonwx150.png" + for px in [44, 50, 150]: + src = icons / "pythonx{}.png".format(px) + yield f"_resources/pythonx{px}.png", src + yield f"_resources/pythonx{px}$targetsize-{px}_altform-unplated.png", src + for px in [44, 150]: + src = icons / "pythonwx{}.png".format(px) + yield f"_resources/pythonwx{px}.png", src + yield f"_resources/pythonwx{px}$targetsize-{px}_altform-unplated.png", src + yield f"_resources/py.png", icons / "py.png" sccd = ns.source / SCCD_FILENAME if sccd.is_file(): # This should only be set for side-loading purposes. -- 2.40.0