mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
[collab] allow selecting multiple changes in code review
#IJPL-172164 Fixed (cherry picked from commit 482089c478db5eeb9922564cd4ba695a7c40dccb) IJ-CR-150590 GitOrigin-RevId: 086979f67b95ecb22ebdda770a8ebf238eb6c9b8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2f8a128221
commit
3cd8441d22
@@ -88,7 +88,10 @@ object CodeReviewChangeListComponentFactory {
|
||||
}
|
||||
is CodeReviewChangeListViewModel.SelectionRequest.OneChange -> {
|
||||
invokeAfterRefresh {
|
||||
setSelectedChanges(listOf(request.change))
|
||||
val currentSelection = selected(this).iterateUserObjects(RefComparisonChange::class.java)
|
||||
if (request.change !in currentSelection) {
|
||||
setSelectedChanges(listOf(request.change))
|
||||
}
|
||||
addTreeSelectionListener(selectionListener)
|
||||
}
|
||||
}
|
||||
@@ -151,22 +154,21 @@ private class Node(change: RefComparisonChange) : AbstractChangesBrowserFilePath
|
||||
|
||||
private fun CodeReviewChangeListViewModel.updateSelectedChangesFromTree(tree: AsyncChangesTree) {
|
||||
var fuzzy = false
|
||||
val changes = mutableListOf<RefComparisonChange>()
|
||||
val selectedChanges = mutableListOf<RefComparisonChange>()
|
||||
selected(tree).iterateRawNodes().forEach {
|
||||
if (it.isLeaf) {
|
||||
val change = it.userObject as? RefComparisonChange
|
||||
changes.add(change!!)
|
||||
selectedChanges.add(change!!)
|
||||
}
|
||||
else {
|
||||
fuzzy = true
|
||||
}
|
||||
}
|
||||
val selection = if (changes.isEmpty()) null
|
||||
else if (fuzzy) {
|
||||
ChangesSelection.Fuzzy(changes)
|
||||
}
|
||||
else {
|
||||
ChangesSelection.Precise(this.changes, changes[0])
|
||||
val selection = when {
|
||||
selectedChanges.isEmpty() -> null
|
||||
fuzzy -> ChangesSelection.Fuzzy(selectedChanges)
|
||||
selectedChanges.size == 1 -> ChangesSelection.Precise(changes, selectedChanges[0])
|
||||
else -> ChangesSelection.Precise(selectedChanges, selectedChanges[0])
|
||||
}
|
||||
updateSelectedChanges(selection)
|
||||
}
|
||||
Reference in New Issue
Block a user