Skip to content

Commit ddd5455

Browse files
committed
refactor(file-search): implement Disposable for popup
Make WorkspaceFileSearchPopup implement Disposable and clean up resources on disposal.
1 parent 649317c commit ddd5455

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

core/src/main/kotlin/cc/unitmesh/devti/gui/chat/ui/file/WorkspaceFileSearchPopup.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cc.unitmesh.devti.gui.chat.ui.file
22

33
import cc.unitmesh.devti.util.canBeAdded
4+
import com.intellij.openapi.Disposable
45
import com.intellij.openapi.application.ApplicationManager
56
import com.intellij.openapi.application.ModalityState
67
import com.intellij.openapi.diagnostic.Logger
@@ -36,7 +37,7 @@ import javax.swing.*
3637
class WorkspaceFileSearchPopup(
3738
private val project: Project,
3839
private val onFilesSelected: (List<VirtualFile>) -> Unit
39-
) {
40+
) : Disposable {
4041
companion object {
4142
private val LOG = Logger.getInstance(WorkspaceFileSearchPopup::class.java)
4243
private const val MAX_RECENT_FILES = 30
@@ -62,7 +63,7 @@ class WorkspaceFileSearchPopup(
6263
}
6364

6465
private val minPopupSize = Dimension(480, 320)
65-
private val searchAlarm = Alarm(Alarm.ThreadToUse.POOLED_THREAD)
66+
private val searchAlarm = Alarm(Alarm.ThreadToUse.POOLED_THREAD, this)
6667

6768
// File storage
6869
private val recentFiles = mutableListOf<FilePresentation>()
@@ -528,6 +529,10 @@ class WorkspaceFileSearchPopup(
528529
hasLoadedAllFiles = false
529530
}
530531

532+
override fun dispose() {
533+
cleanupResources()
534+
}
535+
531536
private inner class FileListCellRenderer : ListCellRenderer<FilePresentation> {
532537
private val noBorderFocus = BorderFactory.createEmptyBorder(1, 1, 1, 1)
533538

0 commit comments

Comments
 (0)