#KT-19799: Add initialDirectory to KotlinAwareMoveFilesOrDirectoriesDialog
This commit is contained in:
+1
-1
@@ -113,7 +113,7 @@ class MoveKotlinDeclarationsHandler : MoveHandlerDelegate() {
|
|||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
val initialTargetDirectory = MoveFilesOrDirectoriesUtil.resolveToDirectory(project, initialTargetElement)
|
val initialTargetDirectory = MoveFilesOrDirectoriesUtil.resolveToDirectory(project, initialTargetElement)
|
||||||
val dialog = KotlinAwareMoveFilesOrDirectoriesDialog(project) {
|
val dialog = KotlinAwareMoveFilesOrDirectoriesDialog(project, initialTargetDirectory) {
|
||||||
invokeMoveFilesOrDirectoriesRefactoring(it, project, elements, initialTargetDirectory, callback)
|
invokeMoveFilesOrDirectoriesRefactoring(it, project, elements, initialTargetDirectory, callback)
|
||||||
}
|
}
|
||||||
dialog.setData(elements, initialTargetDirectory, "refactoring.moveFile")
|
dialog.setData(elements, initialTargetDirectory, "refactoring.moveFile")
|
||||||
|
|||||||
+7
-1
@@ -42,6 +42,7 @@ import javax.swing.JComponent
|
|||||||
|
|
||||||
class KotlinAwareMoveFilesOrDirectoriesDialog(
|
class KotlinAwareMoveFilesOrDirectoriesDialog(
|
||||||
private val project: Project,
|
private val project: Project,
|
||||||
|
private val initialDirectory: PsiDirectory?,
|
||||||
private val callback: (KotlinAwareMoveFilesOrDirectoriesDialog?) -> Unit
|
private val callback: (KotlinAwareMoveFilesOrDirectoriesDialog?) -> Unit
|
||||||
) : DialogWrapper(project, true) {
|
) : DialogWrapper(project, true) {
|
||||||
companion object {
|
companion object {
|
||||||
@@ -163,7 +164,12 @@ class KotlinAwareMoveFilesOrDirectoriesDialog(
|
|||||||
|
|
||||||
project.executeCommand(RefactoringBundle.message("move.title"), null) {
|
project.executeCommand(RefactoringBundle.message("move.title"), null) {
|
||||||
runWriteAction {
|
runWriteAction {
|
||||||
val directoryName = targetDirectoryField.childComponent.text.replace(File.separatorChar, '/')
|
val directoryName = targetDirectoryField.childComponent.text.replace(File.separatorChar, '/').let {
|
||||||
|
when {
|
||||||
|
it.startsWith(".") -> (initialDirectory?.virtualFile?.path ?: "") + "/" + it
|
||||||
|
else -> it
|
||||||
|
}
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
targetDirectory = DirectoryUtil.mkdirs(PsiManager.getInstance(project), directoryName)
|
targetDirectory = DirectoryUtil.mkdirs(PsiManager.getInstance(project), directoryName)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ fun moveFilesOrDirectories(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
with(KotlinAwareMoveFilesOrDirectoriesDialog(project, ::doRun)) {
|
with(KotlinAwareMoveFilesOrDirectoriesDialog(project, initialTargetDirectory, ::doRun)) {
|
||||||
setData(elements, initialTargetDirectory, "refactoring.moveFile")
|
setData(elements, initialTargetDirectory, "refactoring.moveFile")
|
||||||
show()
|
show()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user