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-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-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
|
||||
|
||||
|
||||
+4
-1
@@ -86,7 +86,10 @@ class MoveKotlinDeclarationsHandler : MoveHandlerDelegate() {
|
||||
when (container) {
|
||||
is PsiDirectory, is PsiPackage, is KtFile -> {
|
||||
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 searchInText = JavaRefactoringSettings.getInstance()!!.MOVE_SEARCH_FOR_TEXT
|
||||
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.ui.Messages;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.Pass;
|
||||
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.moveClassesOrPackages.AutocreatingSingleSourceRootMoveDestination;
|
||||
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.ui.PackageNameReferenceEditorCombo;
|
||||
import com.intellij.refactoring.ui.RefactoringDialog;
|
||||
@@ -455,17 +453,17 @@ public class MoveKotlinTopLevelDeclarationsDialog extends RefactoringDialog {
|
||||
if (ret != Messages.YES) return null;
|
||||
}
|
||||
|
||||
DirectoryChooser.ItemWrapper selectedItem = (DirectoryChooser.ItemWrapper)destinationFolderCB.getComboBox().getSelectedItem();
|
||||
PsiDirectory selectedPsiDirectory = selectedItem.getDirectory();
|
||||
if (selectedPsiDirectory == null) return Pair.create(null, new MultipleRootsMoveDestination(targetPackage));
|
||||
PsiDirectory selectedPsiDirectory;
|
||||
if (initialTargetDirectory == null) {
|
||||
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();
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user