From 38a94164aea5956ef5e106151e36324e899b84d2 Mon Sep 17 00:00:00 2001 From: Kirill Timofeev Date: Fri, 25 Jan 2019 14:20:39 +0300 Subject: [PATCH] manually re-apply 38b7de7484affea56a91bde16f0405a074998c96 --- .../actions/AttachToProcessActionBase.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/actions/AttachToProcessActionBase.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/actions/AttachToProcessActionBase.java index 04eddb172fe2..72fa6d5b6988 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/actions/AttachToProcessActionBase.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/actions/AttachToProcessActionBase.java @@ -82,7 +82,7 @@ public abstract class AttachToProcessActionBase extends AnAction { @Override public void run(@NotNull ProgressIndicator indicator) { - List allItems = getTopLevelItems(indicator, project); + List allItems = ContainerUtil.immutableList(getTopLevelItems(indicator, project)); ApplicationManager.getApplication().invokeLater(() -> { AttachListStep step = new AttachListStep(allItems, XDebuggerBundle.message("xdebugger.attach.popup.title.default"), project); @@ -127,15 +127,18 @@ public abstract class AttachToProcessActionBase extends AnAction { } @NotNull - protected List getTopLevelItems(@NotNull ProgressIndicator indicator, @NotNull Project project) { - List localAttachToProcessItems = collectAttachProcessItems( - project, LocalAttachHost.INSTANCE, indicator - ); - List remoteAttachToProcessItems = collectAttachHostsItems( - project, indicator - ); + protected List getTopLevelItems(@NotNull ProgressIndicator indicator, @NotNull Project project) { + List attachHostItems = collectAttachHostsItems(project, indicator); - return ContainerUtil.concat(remoteAttachToProcessItems, localAttachToProcessItems); + // If any of hosts available, fold local PIDs into "Local Host" subgroup + if (!attachHostItems.isEmpty()) { + AttachItem localHostGroupItem = new AttachHostItem( + LocalAttachHostPresentationGroup.INSTANCE, false, LocalAttachHost.INSTANCE, project, new UserDataHolderBase()); + attachHostItems.add(localHostGroupItem); + doUpdateFirstInGroup(attachHostItems); + return attachHostItems; + } + return collectAttachProcessItems(project, LocalAttachHost.INSTANCE, indicator); } private static void doUpdateFirstInGroup(@NotNull List items) {