Skip to content

Commit 9e2a1bd

Browse files
Test sources root out of project can be selected #1059 (#1238)
1 parent dff228f commit 9e2a1bd

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/components/TestFolderComboWithBrowseButton.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.utbot.intellij.plugin.ui.components
33
import com.intellij.openapi.application.ReadAction
44
import com.intellij.openapi.fileChooser.FileChooser
55
import com.intellij.openapi.fileChooser.FileChooserDescriptor
6+
import com.intellij.openapi.module.ModuleUtil
67
import com.intellij.openapi.project.guessProjectDir
78
import com.intellij.openapi.ui.ComboBox
89
import com.intellij.openapi.ui.ComponentWithBrowseButton
@@ -81,7 +82,7 @@ class TestFolderComboWithBrowseButton(private val model: GenerateTestsModel) :
8182
}
8283

8384
addActionListener {
84-
val testSourceRoot = createNewTestSourceRoot(model)
85+
val testSourceRoot = chooseTestRoot(model)
8586
testSourceRoot?.let {
8687
model.setSourceRootAndFindTestModule(it)
8788

@@ -97,9 +98,13 @@ class TestFolderComboWithBrowseButton(private val model: GenerateTestsModel) :
9798
}
9899
}
99100

100-
private fun createNewTestSourceRoot(model: GenerateTestsModel): VirtualFile? =
101+
private fun chooseTestRoot(model: GenerateTestsModel): VirtualFile? =
101102
ReadAction.compute<VirtualFile, RuntimeException> {
102-
val desc = FileChooserDescriptor(false, true, false, false, false, false)
103+
val desc = object:FileChooserDescriptor(false, true, false, false, false, false) {
104+
override fun isFileSelectable(file: VirtualFile?): Boolean {
105+
return file != null && ModuleUtil.findModuleForFile(file, model.project) != null && super.isFileSelectable(file)
106+
}
107+
}
103108
val initialFile = model.project.guessProjectDir()
104109

105110
val files = FileChooser.chooseFiles(desc, model.project, initialFile)

0 commit comments

Comments
 (0)