Move: Do not show directory selection dialog if target directory is already specified by drag-and-drop
#KT-13553 Fixed
This commit is contained in:
@@ -121,6 +121,7 @@ These artifacts include extensions for the types available in the latter JDKs, s
|
|||||||
- [`KT-13535`](https://youtrack.jetbrains.com/issue/KT-13535) Pull Up: Remove visibility modifiers on adding 'override'
|
- [`KT-13535`](https://youtrack.jetbrains.com/issue/KT-13535) Pull Up: Remove visibility modifiers on adding 'override'
|
||||||
- [`KT-13216`](https://youtrack.jetbrains.com/issue/KT-13216) Move: Report separate conflicts for each property accessor
|
- [`KT-13216`](https://youtrack.jetbrains.com/issue/KT-13216) Move: Report separate conflicts for each property accessor
|
||||||
- [`KT-13216`](https://youtrack.jetbrains.com/issue/KT-13216) Move: Forbid moving of enum entries
|
- [`KT-13216`](https://youtrack.jetbrains.com/issue/KT-13216) Move: Forbid moving of enum entries
|
||||||
|
- [`KT-13553`](https://youtrack.jetbrains.com/issue/KT-13553) Move: Do not show directory selection dialog if target directory is already specified by drag-and-drop
|
||||||
|
|
||||||
##### New features
|
##### New features
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -86,7 +86,10 @@ class MoveKotlinDeclarationsHandler : MoveHandlerDelegate() {
|
|||||||
when (container) {
|
when (container) {
|
||||||
is PsiDirectory, is PsiPackage, is KtFile -> {
|
is PsiDirectory, is PsiPackage, is KtFile -> {
|
||||||
val targetPackageName = MoveClassesOrPackagesImpl.getInitialTargetPackageName(targetContainer, elements)
|
val targetPackageName = MoveClassesOrPackagesImpl.getInitialTargetPackageName(targetContainer, elements)
|
||||||
val targetDirectory = MoveClassesOrPackagesImpl.getInitialTargetDirectory(targetContainer, elements)
|
val targetDirectory = if (targetContainer != null) {
|
||||||
|
MoveClassesOrPackagesImpl.getInitialTargetDirectory(targetContainer, elements)
|
||||||
|
}
|
||||||
|
else null
|
||||||
val searchInComments = JavaRefactoringSettings.getInstance()!!.MOVE_SEARCH_IN_COMMENTS
|
val searchInComments = JavaRefactoringSettings.getInstance()!!.MOVE_SEARCH_IN_COMMENTS
|
||||||
val searchInText = JavaRefactoringSettings.getInstance()!!.MOVE_SEARCH_FOR_TEXT
|
val searchInText = JavaRefactoringSettings.getInstance()!!.MOVE_SEARCH_FOR_TEXT
|
||||||
val targetFile = targetContainer as? KtFile
|
val targetFile = targetContainer as? KtFile
|
||||||
|
|||||||
+9
-11
@@ -26,7 +26,6 @@ import com.intellij.openapi.project.Project;
|
|||||||
import com.intellij.openapi.roots.JavaProjectRootsUtil;
|
import com.intellij.openapi.roots.JavaProjectRootsUtil;
|
||||||
import com.intellij.openapi.ui.Messages;
|
import com.intellij.openapi.ui.Messages;
|
||||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||||
import com.intellij.openapi.util.Comparing;
|
|
||||||
import com.intellij.openapi.util.Pair;
|
import com.intellij.openapi.util.Pair;
|
||||||
import com.intellij.openapi.util.Pass;
|
import com.intellij.openapi.util.Pass;
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
@@ -43,7 +42,6 @@ import com.intellij.refactoring.move.MoveCallback;
|
|||||||
import com.intellij.refactoring.move.MoveHandler;
|
import com.intellij.refactoring.move.MoveHandler;
|
||||||
import com.intellij.refactoring.move.moveClassesOrPackages.AutocreatingSingleSourceRootMoveDestination;
|
import com.intellij.refactoring.move.moveClassesOrPackages.AutocreatingSingleSourceRootMoveDestination;
|
||||||
import com.intellij.refactoring.move.moveClassesOrPackages.DestinationFolderComboBox;
|
import com.intellij.refactoring.move.moveClassesOrPackages.DestinationFolderComboBox;
|
||||||
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesUtil;
|
|
||||||
import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDestination;
|
import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDestination;
|
||||||
import com.intellij.refactoring.ui.PackageNameReferenceEditorCombo;
|
import com.intellij.refactoring.ui.PackageNameReferenceEditorCombo;
|
||||||
import com.intellij.refactoring.ui.RefactoringDialog;
|
import com.intellij.refactoring.ui.RefactoringDialog;
|
||||||
@@ -455,17 +453,17 @@ public class MoveKotlinTopLevelDeclarationsDialog extends RefactoringDialog {
|
|||||||
if (ret != Messages.YES) return null;
|
if (ret != Messages.YES) return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
DirectoryChooser.ItemWrapper selectedItem = (DirectoryChooser.ItemWrapper)destinationFolderCB.getComboBox().getSelectedItem();
|
PsiDirectory selectedPsiDirectory;
|
||||||
PsiDirectory selectedPsiDirectory = selectedItem.getDirectory();
|
if (initialTargetDirectory == null) {
|
||||||
if (selectedPsiDirectory == null) return Pair.create(null, new MultipleRootsMoveDestination(targetPackage));
|
DirectoryChooser.ItemWrapper selectedItem = (DirectoryChooser.ItemWrapper)destinationFolderCB.getComboBox().getSelectedItem();
|
||||||
|
selectedPsiDirectory = selectedItem.getDirectory();
|
||||||
|
if (selectedPsiDirectory == null) return Pair.create(null, new MultipleRootsMoveDestination(targetPackage));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
selectedPsiDirectory = initialTargetDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
VirtualFile targetDirectory = selectedPsiDirectory.getVirtualFile();
|
VirtualFile targetDirectory = selectedPsiDirectory.getVirtualFile();
|
||||||
List<VirtualFile> sourceRoots = JavaProjectRootsUtil.getSuitableDestinationSourceRoots(getProject());
|
|
||||||
if (initialTargetDirectory != null && Comparing.equal(targetDirectory, initialTargetDirectory.getVirtualFile()) &&
|
|
||||||
sourceRoots.size() > 1) {
|
|
||||||
targetDirectory = MoveClassesOrPackagesUtil.chooseSourceRoot(targetPackage, sourceRoots, initialTargetDirectory);
|
|
||||||
}
|
|
||||||
if (targetDirectory == null) return null;
|
|
||||||
return Pair.create(targetDirectory, new AutocreatingSingleSourceRootMoveDestination(targetPackage, targetDirectory));
|
return Pair.create(targetDirectory, new AutocreatingSingleSourceRootMoveDestination(targetPackage, targetDirectory));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user