Skip to content

Add all SVGs for Platform UI Icons #2643

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Michael5601
Copy link
Contributor

This PR adds SVGs for testing the new SVG feature.

See this PR for the feature.

Copy link
Contributor

@HeikoKlare HeikoKlare left a comment

Choose a reason for hiding this comment

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

I've just tested the SVG replacement with the recent addition of SVG support to SWT. To do so, I had to add the SVG fragment to the product. Note that this PR needs to be extended by adding the required capability for every bundle using SVGs in order to ensure that products using those bundles have a rasterized available.

I found that some icons are not rasterized in proper resolution but upscaled from 100%. When moving to a 175% monitor (from 100% primary monitor with monitor-specific scaling enabled), I got the following:
image

In particular, several icons from the org.eclipse.search bundle are not scaled properly in toolbars (probably it also affects others). May this require further changes such as the ones proposed in ...?

Copy link
Contributor

github-actions bot commented Mar 30, 2025

Test Results

 1 824 files  ±0   1 824 suites  ±0   1h 37m 50s ⏱️ + 6m 1s
 7 918 tests ±0   7 688 ✅  - 1  228 💤 ±0  2 ❌ +1 
23 841 runs  ±0  23 087 ✅  - 5  748 💤 ±0  6 ❌ +5 

For more details on these failures, see this check.

Results for commit f0639c6. ± Comparison against base commit 9730d5f.

♻️ This comment has been updated with latest results.

@eclipse-platform-bot
Copy link
Contributor

This pull request changes some projects for the first time in this development cycle.
Therefore the following files need a version increment:

bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
bundles/org.eclipse.e4.ui.workbench.renderers.swt/META-INF/MANIFEST.MF
bundles/org.eclipse.jface.notifications/META-INF/MANIFEST.MF
bundles/org.eclipse.ltk.ui.refactoring/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF
bundles/org.eclipse.ui/META-INF/MANIFEST.MF
examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
examples/org.eclipse.ui.examples.javaeditor/META-INF/MANIFEST.MF

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
From d4964f64245ed1c6b95af9dcefdfd6c62054bfa3 Mon Sep 17 00:00:00 2001
From: Eclipse Platform Bot <[email protected]>
Date: Sun, 30 Mar 2025 11:19:13 +0000
Subject: [PATCH] Version bump(s) for 4.36 stream


diff --git a/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
index 35c9b4571f..ed6f774523 100644
--- a/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.e4.ui.progress;singleton:=true
-Bundle-Version: 0.4.700.qualifier
+Bundle-Version: 0.4.800.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/META-INF/MANIFEST.MF
index cb4ef940ce..72f376b468 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.e4.ui.workbench.renderers.swt;singleton:=true
-Bundle-Version: 0.16.700.qualifier
+Bundle-Version: 0.16.800.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.jface.notifications/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface.notifications/META-INF/MANIFEST.MF
index 35f8df3ddd..6aaad1dff5 100644
--- a/bundles/org.eclipse.jface.notifications/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jface.notifications/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-SymbolicName: org.eclipse.jface.notifications
-Bundle-Version: 0.7.300.qualifier
+Bundle-Version: 0.7.400.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Export-Package: org.eclipse.jface.notifications,
  org.eclipse.jface.notifications.internal;x-internal:=true
diff --git a/bundles/org.eclipse.ltk.ui.refactoring/META-INF/MANIFEST.MF b/bundles/org.eclipse.ltk.ui.refactoring/META-INF/MANIFEST.MF
index 7b5249d26a..f1f70b26c8 100644
--- a/bundles/org.eclipse.ltk.ui.refactoring/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ltk.ui.refactoring/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.eclipse.ltk.ui.refactoring
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ltk.ui.refactoring; singleton:=true
-Bundle-Version: 3.13.500.qualifier
+Bundle-Version: 3.13.600.qualifier
 Bundle-Activator: org.eclipse.ltk.internal.ui.refactoring.RefactoringUIPlugin
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %providerName
diff --git a/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF
index 9a63a5630f..5e46a06a14 100644
--- a/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ui.editors; singleton:=true
-Bundle-Version: 3.19.100.qualifier
+Bundle-Version: 3.19.200.qualifier
 Bundle-Activator: org.eclipse.ui.internal.editors.text.EditorsPlugin
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %providerName
diff --git a/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF
index 31a9a9c320..6f5dd6b08a 100644
--- a/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.ui.genericeditor;singleton:=true
-Bundle-Version: 1.3.500.qualifier
+Bundle-Version: 1.3.600.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Require-Bundle: org.eclipse.ui.workbench.texteditor;bundle-version="3.10.0",
diff --git a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
index 2a8197c69e..98a8744054 100644
--- a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.ui.ide.application;singleton:=true
-Bundle-Version: 1.5.600.qualifier
+Bundle-Version: 1.5.700.qualifier
 Bundle-Vendor: %Plugin.providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.21.0,4.0.0)",
diff --git a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
index 52eee57bc2..c93617cfe9 100644
--- a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.ui.navigator.resources; singleton:=true
-Bundle-Version: 3.9.600.qualifier
+Bundle-Version: 3.9.700.qualifier
 Bundle-Activator: org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin
 Bundle-Vendor: %Plugin.providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
index 5b07fee8ce..f1bfb949ac 100644
--- a/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %name
 Bundle-SymbolicName: org.eclipse.ui.views.log;singleton:=true
-Bundle-Version: 1.4.700.qualifier
+Bundle-Version: 1.4.800.qualifier
 Bundle-Activator: org.eclipse.ui.internal.views.log.Activator
 Bundle-Vendor: %provider-name
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)",
diff --git a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
index 7e7edf06b3..a370894118 100644
--- a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ui.views; singleton:=true
-Bundle-Version: 3.12.500.qualifier
+Bundle-Version: 3.12.600.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Export-Package: org.eclipse.ui.internal.views.contentoutline;x-internal:=true,
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF
index 2e7b7c5380..1115872cdf 100644
--- a/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ui.workbench.texteditor; singleton:=true
-Bundle-Version: 3.19.100.qualifier
+Bundle-Version: 3.19.200.qualifier
 Bundle-Activator: org.eclipse.ui.internal.texteditor.TextEditorPlugin
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %providerName
diff --git a/bundles/org.eclipse.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui/META-INF/MANIFEST.MF
index 61b1d80377..e4180b1e14 100644
--- a/bundles/org.eclipse.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.ui; singleton:=true
-Bundle-Version: 3.207.100.qualifier
+Bundle-Version: 3.207.200.qualifier
 Bundle-Activator: org.eclipse.ui.internal.UIPlugin
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %Plugin.providerName
diff --git a/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
index 623cff7dc8..0b19ff5836 100644
--- a/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.ui.examples.fieldassist; singleton:=true
-Bundle-Version: 1.3.200.qualifier
+Bundle-Version: 1.3.300.qualifier
 Bundle-Activator: org.eclipse.ui.examples.fieldassist.FieldAssistPlugin
 Bundle-Localization: plugin
 Bundle-Vendor: %Bundle-Vendor
diff --git a/examples/org.eclipse.ui.examples.javaeditor/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.javaeditor/META-INF/MANIFEST.MF
index 9f67ea8815..c7e8f19d77 100644
--- a/examples/org.eclipse.ui.examples.javaeditor/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.ui.examples.javaeditor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.ui.examples.javaeditor; singleton:=true
-Bundle-Version: 3.4.400.qualifier
+Bundle-Version: 3.4.500.qualifier
 Bundle-Activator: org.eclipse.ui.examples.javaeditor.JavaEditorExamplePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-- 
2.49.0

Further information are available in Common Build Issues - Missing version increments.

@Michael5601
Copy link
Contributor Author

Michael5601 commented Mar 31, 2025

Note that this PR needs to be extended by adding the required capability for every bundle using SVGs in order to ensure that products using those bundles have a rasterized available.

I updated the all manifests of bundles where I added SVGs with Require-Capability.

I found that some icons are not rasterized in proper resolution but upscaled from 100%. When moving to a 175% monitor (from 100% primary monitor with monitor-specific scaling enabled), I got the following:

I tried loading the SVGs on 125% and 175% zoom respectively and it worked fine without blurry icons. Then I reproduced your setup with activated monitor-specific UI scaling and it also works fine. Can you please try again if the issue still persists and if so, can you maybe tell me how I can reproduce the problem?

May this require further changes such as the ones proposed in ...?

As as all the icons of org.eclipse.search are loaded with the URLImageFileNameProvider I am pretty sure the proposed changes in Platform UI have no impact here as they only adjust the URLImageDataProvider (and FileImageDescriptor).

@HeikoKlare
Copy link
Contributor

I tried loading the SVGs on 125% and 175% zoom respectively and it worked fine without blurry icons. Then I reproduced your setup with activated monitor-specific UI scaling and it also works fine. Can you please try again if the issue still persists and if so, can you maybe tell me how I can reproduce the problem?

With the following setup, I can still reproduce it:

  • Use monitor-specific scaling (which is now enabled by default anyway, so if you have an up-to-date IDE, that will be used automatically)
  • Two monitors: primary monitor at 100% and secondary at 175%

When moving the windows to the secondary monitor, the marked icons are blurry.

@HeikoKlare
Copy link
Contributor

You can ignore my previous comment. I found the issue for the wrongly scaled SVGs: the Image implementation was erroneous. If the data for an image at the zoom level of the file (usually 100) was already loaded, this data is scaled instead of loading the file in proper zoom anew (as required for SVGs). That's easy to fix with a PR I provided today, so I added a fix that PR:

@Michael5601
Copy link
Contributor Author

You can ignore my previous comment. I found the issue for the wrongly scaled SVGs: the Image implementation was erroneous. If the data for an image at the zoom level of the file (usually 100) was already loaded, this data is scaled instead of loading the file in proper zoom anew (as required for SVGs). That's easy to fix with a PR I provided today, so I added a fix that PR:

Thats great, thank you! :)
I wanted to try it out on monday and I knew it must have to do with the 100% scaling as in my setup I tested moving from a 125% scaled monitor to 175% and thus not getting the blurry images. But after your comment I was pretty sure this was why I could not reproduce it.

@Michael5601 Michael5601 marked this pull request as draft April 11, 2025 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants