diff --git a/java/debugger/impl/src/com/intellij/debugger/memory/agent/ui/RetainedSizeDialog.java b/java/debugger/impl/src/com/intellij/debugger/memory/agent/ui/RetainedSizeDialog.java index 03e37680ca93..db9a81a4a320 100644 --- a/java/debugger/impl/src/com/intellij/debugger/memory/agent/ui/RetainedSizeDialog.java +++ b/java/debugger/impl/src/com/intellij/debugger/memory/agent/ui/RetainedSizeDialog.java @@ -22,7 +22,6 @@ import com.intellij.xdebugger.impl.ui.tree.XDebuggerTreeListener; import com.intellij.xdebugger.impl.ui.tree.nodes.RestorableStateNode; import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl; import com.sun.jdi.ObjectReference; -import icons.PlatformDebuggerImplIcons; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -150,7 +149,7 @@ public final class RetainedSizeDialog extends MemoryAgentDialog { if (!mySkipNotification && node instanceof XValueNodeImpl nodeImpl && nodeImpl != nodeImpl.getTree().getRoot() && myHeldObjects.contains(getObjectReference(nodeImpl))) { XValuePresentation presentation = nodeImpl.getValuePresentation(); - if (presentation != null && nodeImpl.getIcon() != PlatformDebuggerImplIcons.PinToTop.UnpinnedItem) { + if (presentation != null && nodeImpl.getIcon() != AllIcons.Debugger.PinToTop.UnpinnedItem) { highlightNode(nodeImpl); } } @@ -160,7 +159,7 @@ public final class RetainedSizeDialog extends MemoryAgentDialog { public void highlightNode(@NotNull XValueNodeImpl node) { XValuePresentation presentation = node.getValuePresentation(); Icon icon = node.getIcon(); - if (presentation != null && icon != PlatformDebuggerImplIcons.PinToTop.UnpinnedItem) { + if (presentation != null && icon != AllIcons.Debugger.PinToTop.UnpinnedItem) { mySkipNotification = true; node.applyPresentation( myCachedIcons.computeIfAbsent(icon, nodeIcon -> LayeredIcon.layeredIcon(new Icon[]{nodeIcon, HELD_OBJECTS_MARK_ICON})), diff --git a/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt b/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt index b9474326152b..c3819069eba5 100644 --- a/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt +++ b/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt @@ -219,6 +219,12 @@ class IntellijIconClassGeneratorConfig : IconClasses() { packageName = "com.intellij.r.psi.icons", ) + "intellij.platform.debugger.impl" -> IntellijIconClassGeneratorModuleConfig( + className = "PlatformDebuggerImplIcons", + packageName = "icons", + iconDirectory = "icons" + ) + else -> super.getConfigForModule(moduleName) } } diff --git a/platform/xdebugger-impl/resources/icons/pinToTop/pinnedItem.svg b/platform/icons/src/expui/debugger/pinToTop/pinnedItem.svg similarity index 100% rename from platform/xdebugger-impl/resources/icons/pinToTop/pinnedItem.svg rename to platform/icons/src/expui/debugger/pinToTop/pinnedItem.svg diff --git a/platform/xdebugger-impl/resources/icons/pinToTop/unpinnedItem.svg b/platform/icons/src/expui/debugger/pinToTop/unpinnedItem.svg similarity index 100% rename from platform/xdebugger-impl/resources/icons/pinToTop/unpinnedItem.svg rename to platform/icons/src/expui/debugger/pinToTop/unpinnedItem.svg diff --git a/platform/jewel/ui/api-dump.txt b/platform/jewel/ui/api-dump.txt index 133ac1582d36..850d2c361254 100644 --- a/platform/jewel/ui/api-dump.txt +++ b/platform/jewel/ui/api-dump.txt @@ -2748,6 +2748,10 @@ f:org.jetbrains.jewel.ui.icons.AllIconsKeys$Debugger - sf:Watch:org.jetbrains.jewel.ui.icon.IntelliJIconKey - sf:WatchLastReturnValue:org.jetbrains.jewel.ui.icon.IntelliJIconKey - ():V +f:org.jetbrains.jewel.ui.icons.AllIconsKeys$Debugger$PinToTop +- sf:PinnedItem:org.jetbrains.jewel.ui.icon.IntelliJIconKey +- sf:UnpinnedItem:org.jetbrains.jewel.ui.icon.IntelliJIconKey +- ():V f:org.jetbrains.jewel.ui.icons.AllIconsKeys$Debugger$ThreadStates - sf:Idle:org.jetbrains.jewel.ui.icon.IntelliJIconKey - sf:Socket:org.jetbrains.jewel.ui.icon.IntelliJIconKey diff --git a/platform/jewel/ui/generated/org/jetbrains/jewel/ui/icons/AllIconsKeys.java b/platform/jewel/ui/generated/org/jetbrains/jewel/ui/icons/AllIconsKeys.java index 84537aee01c5..b970c215c035 100644 --- a/platform/jewel/ui/generated/org/jetbrains/jewel/ui/icons/AllIconsKeys.java +++ b/platform/jewel/ui/generated/org/jetbrains/jewel/ui/icons/AllIconsKeys.java @@ -1026,6 +1026,17 @@ public final class AllIconsKeys { /** 16x16 */ @GeneratedFromIntelliJSources public static final @NotNull IntelliJIconKey Overhead = new IntelliJIconKey("debugger/overhead.svg", "expui/debugger/overhead.svg", AllIconsKeys.class); + + @GeneratedFromIntelliJSources + public static final class PinToTop { + /** 16x16 */ + @GeneratedFromIntelliJSources + public static final @NotNull IntelliJIconKey PinnedItem = new IntelliJIconKey("expui/debugger/pinToTop/pinnedItem.svg", "expui/debugger/pinToTop/pinnedItem.svg", AllIconsKeys.class); + /** 16x16 */ + @GeneratedFromIntelliJSources + public static final @NotNull IntelliJIconKey UnpinnedItem = new IntelliJIconKey("expui/debugger/pinToTop/unpinnedItem.svg", "expui/debugger/pinToTop/unpinnedItem.svg", AllIconsKeys.class); + } + /** 16x16 */ @GeneratedFromIntelliJSources public static final @NotNull IntelliJIconKey PromptInput = new IntelliJIconKey("debugger/promptInput.svg", "expui/debugger/promptInput.svg", AllIconsKeys.class); diff --git a/platform/util/ui/api-dump.txt b/platform/util/ui/api-dump.txt index 6391016e1a26..309f2e555bb0 100644 --- a/platform/util/ui/api-dump.txt +++ b/platform/util/ui/api-dump.txt @@ -368,6 +368,10 @@ f:com.intellij.icons.AllIcons$Debugger - sf:Watch:javax.swing.Icon - sf:WatchLastReturnValue:javax.swing.Icon - ():V +f:com.intellij.icons.AllIcons$Debugger$PinToTop +- sf:PinnedItem:javax.swing.Icon +- sf:UnpinnedItem:javax.swing.Icon +- ():V f:com.intellij.icons.AllIcons$Debugger$ThreadStates - sf:Idle:javax.swing.Icon - sf:Socket:javax.swing.Icon diff --git a/platform/util/ui/src/com/intellij/icons/AllIcons.java b/platform/util/ui/src/com/intellij/icons/AllIcons.java index 7e91df918132..b64e34cfa3fc 100644 --- a/platform/util/ui/src/com/intellij/icons/AllIcons.java +++ b/platform/util/ui/src/com/intellij/icons/AllIcons.java @@ -367,6 +367,12 @@ public class AllIcons { /** 16x16 */ public static final @NotNull Icon MuteBreakpoints = load("expui/run/muteBreakpoints.svg", "debugger/muteBreakpoints.svg", 896463102, 2); /** 12x12 */ public static final @NotNull Icon NextStatement = load("expui/debugger/nextStatement.svg", "debugger/nextStatement.svg", -1096276944, 2); /** 16x16 */ public static final @NotNull Icon Overhead = load("expui/debugger/overhead.svg", "debugger/overhead.svg", -837590875, 2); + + public static final class PinToTop { + /** 16x16 */ public static final @NotNull Icon PinnedItem = load("expui/debugger/pinToTop/pinnedItem.svg", -570469980, 0); + /** 16x16 */ public static final @NotNull Icon UnpinnedItem = load("expui/debugger/pinToTop/unpinnedItem.svg", -531132107, 0); + } + /** 16x16 */ public static final @NotNull Icon PromptInput = load("expui/debugger/promptInput.svg", "debugger/promptInput.svg", -1485755492, 2); /** 16x16 */ public static final @NotNull Icon PromptInputHistory = load("expui/debugger/promptInputHistory.svg", "debugger/promptInputHistory.svg", -526772481, 2); /** 7x9 */ public static final @NotNull Icon Question_badge = load("expui/breakpoints/questionBadge.svg", "debugger/question_badge.svg", -1174769014, 2); diff --git a/platform/xdebugger-impl/BUILD.bazel b/platform/xdebugger-impl/BUILD.bazel index da7838b44355..12f6b20aa49a 100644 --- a/platform/xdebugger-impl/BUILD.bazel +++ b/platform/xdebugger-impl/BUILD.bazel @@ -23,7 +23,7 @@ jvm_library( name = "debugger-impl", module_name = "intellij.platform.debugger.impl", visibility = ["//visibility:public"], - srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form"], allow_empty = True), + srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form", "gen/**/*.kt", "gen/**/*.java"], allow_empty = True), resources = [ ":debugger-impl_resources", ":debugger-impl_resources_1", diff --git a/platform/xdebugger-impl/compatibilityResources/icons/pinToTop/pinnedItem.svg b/platform/xdebugger-impl/compatibilityResources/icons/pinToTop/pinnedItem.svg new file mode 100644 index 000000000000..560df99c6ec2 --- /dev/null +++ b/platform/xdebugger-impl/compatibilityResources/icons/pinToTop/pinnedItem.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/xdebugger-impl/compatibilityResources/icons/pinToTop/unpinnedItem.svg b/platform/xdebugger-impl/compatibilityResources/icons/pinToTop/unpinnedItem.svg new file mode 100644 index 000000000000..c4830e821974 --- /dev/null +++ b/platform/xdebugger-impl/compatibilityResources/icons/pinToTop/unpinnedItem.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/xdebugger-impl/src/icons/PlatformDebuggerImplIcons.java b/platform/xdebugger-impl/gen/icons/PlatformDebuggerImplIcons.java similarity index 66% rename from platform/xdebugger-impl/src/icons/PlatformDebuggerImplIcons.java rename to platform/xdebugger-impl/gen/icons/PlatformDebuggerImplIcons.java index fca14f611594..a69a84b4adb6 100644 --- a/platform/xdebugger-impl/src/icons/PlatformDebuggerImplIcons.java +++ b/platform/xdebugger-impl/gen/icons/PlatformDebuggerImplIcons.java @@ -1,4 +1,4 @@ -// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package icons; import com.intellij.ui.IconManager; @@ -32,7 +32,17 @@ public final class PlatformDebuggerImplIcons { } public static final class PinToTop { - /** 16x16 */ public static final @NotNull Icon PinnedItem = load("icons/pinToTop/pinnedItem.svg", -570469980, 0); - /** 16x16 */ public static final @NotNull Icon UnpinnedItem = load("icons/pinToTop/unpinnedItem.svg", -531132107, 0); + + /** @deprecated to be removed (Use AllIcons.Debugger.PinToTop.PinnedItem instead) */ + @SuppressWarnings("unused") + @Deprecated + @ScheduledForRemoval + public static final @NotNull Icon PinnedItem = load("icons/pinToTop/pinnedItem.svg", 0, 0); + + /** @deprecated to be removed (Use AllIcons.Debugger.PinToTop.UnpinnedItem instead) */ + @SuppressWarnings("unused") + @Deprecated + @ScheduledForRemoval + public static final @NotNull Icon UnpinnedItem = load("icons/pinToTop/unpinnedItem.svg", 0, 0); } } diff --git a/platform/xdebugger-impl/intellij.platform.debugger.impl.iml b/platform/xdebugger-impl/intellij.platform.debugger.impl.iml index d95a5d1d5647..79b5c758977a 100644 --- a/platform/xdebugger-impl/intellij.platform.debugger.impl.iml +++ b/platform/xdebugger-impl/intellij.platform.debugger.impl.iml @@ -32,6 +32,7 @@ + diff --git a/platform/xdebugger-impl/resources/icons/pinToTop/icon-robots.txt b/platform/xdebugger-impl/resources/icons/pinToTop/icon-robots.txt new file mode 100644 index 000000000000..1b94c3551f11 --- /dev/null +++ b/platform/xdebugger-impl/resources/icons/pinToTop/icon-robots.txt @@ -0,0 +1,2 @@ +deprecated: pinnedItem.svg; to be removed (Use AllIcons.Debugger.PinToTop.PinnedItem instead) +deprecated: unpinnedItem.svg;to be removed (Use AllIcons.Debugger.PinToTop.UnpinnedItem instead) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/XDebuggerPinToTopManager.kt b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/XDebuggerPinToTopManager.kt index bddc3bdb70e5..dbf43946c644 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/XDebuggerPinToTopManager.kt +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/XDebuggerPinToTopManager.kt @@ -1,6 +1,7 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.xdebugger.impl.pinned.items +import com.intellij.icons.AllIcons import com.intellij.openapi.Disposable import com.intellij.openapi.application.WriteIntentReadAction import com.intellij.openapi.project.Project @@ -13,7 +14,6 @@ import com.intellij.xdebugger.impl.XDebuggerManagerImpl import com.intellij.xdebugger.impl.ui.tree.nodes.XDebuggerTreeNode import com.intellij.xdebugger.impl.ui.tree.nodes.XValueContainerNode import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl -import icons.PlatformDebuggerImplIcons import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus.Internal import java.lang.ref.WeakReference @@ -65,7 +65,7 @@ class XDebuggerPinToTopManager(coroutineScope: CoroutineScope) { val changeIconLifetime = Disposable { val node = nodeRef.get() ?: return@Disposable val xValuePresentation = node.valuePresentation - if (node.icon == PlatformDebuggerImplIcons.PinToTop.UnpinnedItem && xValuePresentation != null) { + if (node.icon == AllIcons.Debugger.PinToTop.UnpinnedItem && xValuePresentation != null) { WriteIntentReadAction.run { node.setPresentation(oldIcon, xValuePresentation, !node.isLeaf) } @@ -81,7 +81,7 @@ class XDebuggerPinToTopManager(coroutineScope: CoroutineScope) { val xValuePresentation = node.valuePresentation ?: return@addRequest // update icon with actual value oldIcon = node.icon - node.setPresentation(PlatformDebuggerImplIcons.PinToTop.UnpinnedItem, xValuePresentation, !node.isLeaf) + node.setPresentation(AllIcons.Debugger.PinToTop.UnpinnedItem, xValuePresentation, !node.isLeaf) }, delayMillis = DEFAULT_ICON_DELAY, ) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/actions/XDebuggerPinToTopAction.kt b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/actions/XDebuggerPinToTopAction.kt index 08dfa1f5f9d5..4b9c7570120b 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/actions/XDebuggerPinToTopAction.kt +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/pinned/items/actions/XDebuggerPinToTopAction.kt @@ -1,6 +1,7 @@ // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.xdebugger.impl.pinned.items.actions +import com.intellij.icons.AllIcons import com.intellij.internal.statistic.collectors.fus.actions.persistence.ActionsCollectorImpl import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.ActionUpdateThread @@ -21,7 +22,6 @@ import com.intellij.xdebugger.impl.ui.DebuggerUIUtil import com.intellij.xdebugger.impl.ui.tree.XDebuggerTree import com.intellij.xdebugger.impl.ui.tree.actions.XDebuggerTreeSplitActionBase import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl -import icons.PlatformDebuggerImplIcons import java.awt.event.MouseEvent import java.util.Collections @@ -63,7 +63,7 @@ class XDebuggerPinToTopAction : XDebuggerTreeSplitActionBase() { } presentation.isVisible = true presentation.isEnabled = node.canBePinned() - presentation.icon = if (pinToTopManager.isItemPinned(node)) PlatformDebuggerImplIcons.PinToTop.UnpinnedItem else PlatformDebuggerImplIcons.PinToTop.PinnedItem + presentation.icon = if (pinToTopManager.isItemPinned(node)) AllIcons.Debugger.PinToTop.UnpinnedItem else AllIcons.Debugger.PinToTop.PinnedItem presentation.text = if (pinToTopManager.isItemPinned(node)) XDebuggerBundle.message("xdebugger.unpin.action") else XDebuggerBundle.message("xdebugger.pin.to.top.action") } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTreeRenderer.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTreeRenderer.java index 10e6a1dd14c4..a4473be45472 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTreeRenderer.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTreeRenderer.java @@ -1,6 +1,7 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.xdebugger.impl.ui.tree; +import com.intellij.icons.AllIcons; import com.intellij.ide.HelpTooltipManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; @@ -18,7 +19,6 @@ import com.intellij.xdebugger.frame.XDebuggerTreeNodeHyperlink; import com.intellij.xdebugger.impl.ui.DebuggerUIUtil; import com.intellij.xdebugger.impl.ui.tree.nodes.XDebuggerTreeNode; import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl; -import icons.PlatformDebuggerImplIcons; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -139,7 +139,7 @@ public class XDebuggerTreeRenderer extends ColoredTreeCellRenderer { Icon icon = node instanceof XValueNodeImpl && node.getTree().getPinToTopManager().isEnabled() && node.getTree().getPinToTopManager().isItemPinned((XValueNodeImpl)node) ? - PlatformDebuggerImplIcons.PinToTop.PinnedItem : node.getIcon(); + AllIcons.Debugger.PinToTop.PinnedItem : node.getIcon(); setIcon(icon); }