From aeb62393d2d348fa25e81f38698f07ef1b34c7e1 Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Tue, 24 Sep 2024 16:32:30 +0200 Subject: [PATCH] [platform] Only call progress indicator if it is determinate #IJPL-163070 Fixed GitOrigin-RevId: 50e0af96d10da33d39536a9467a7eed11932e435 --- .../MoveFilesOrDirectoriesProcessor.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java index c6d4273e73ba..715ce1bb1141 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java @@ -137,8 +137,9 @@ public class MoveFilesOrDirectoriesProcessor extends BaseRefactoringProcessor { protected void performRefactoring(UsageInfo @NotNull [] _usages) { try { ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator(); - progressIndicator.setIndeterminate(myElementsToMove.length <= 1); // only show progress when moving multiple elements - progressIndicator.setFraction(0.0); + boolean showProgression = myElementsToMove.length > 1; + progressIndicator.setIndeterminate(!showProgression); // only show progression when moving multiple elements + if (showProgression) progressIndicator.setFraction(0.0); List toChange = new ArrayList<>(); Collections.addAll(toChange, myElementsToMove); @@ -177,7 +178,7 @@ public class MoveFilesOrDirectoriesProcessor extends BaseRefactoringProcessor { List> movedFiles = new ArrayList<>(); for (int i = 0; i < myElementsToMove.length; i++) { PsiElement element = toChange.get(i); - progressIndicator.setFraction((double)i / myElementsToMove.length); + if (showProgression) progressIndicator.setFraction((double)i / myElementsToMove.length); if (element instanceof PsiDirectory directory) { progressIndicator.setText2(directory.getVirtualFile().getPresentableUrl()); MoveFilesOrDirectoriesUtil.doMoveDirectory(directory, newParent); @@ -211,7 +212,7 @@ public class MoveFilesOrDirectoriesProcessor extends BaseRefactoringProcessor { } } progressIndicator.setText2(""); - progressIndicator.setFraction(1.0); + if (showProgression) progressIndicator.setFraction(1.0); // sort by offset descending to process correctly several usages in one PsiElement [IDEADEV-33013] UsageInfo[] usages = codeUsages.toArray(UsageInfo.EMPTY_ARRAY); CommonRefactoringUtil.sortDepthFirstRightLeftOrder(usages);