in src/main/kotlin/com/jetbrains/interactiveRebase/services/ActionService.kt [807:846]
fun checkCollapse(e: AnActionEvent) {
// check if nested-collapsing was present and enable collapsing to initial state
if (checkIfNestedCollapsingPresent() && modelService.getSelectedBranch().getActualSelectedCommitsSize() == 0) {
e.presentation.isEnabled = true
return
}
// check if there are any already collapsed commits
if (modelService.branchInfo.initialCommits.size <= 7) {
if (modelService.graphInfo.addedBranch == null) {
e.presentation.isEnabled = false
return
} else if (modelService.graphInfo.addedBranch!!.initialCommits.size <= 7) {
e.presentation.isEnabled = false
return
}
}
if (modelService.graphInfo.mainBranch.currentCommits.any { it.isCollapsed }) {
if (modelService.graphInfo.addedBranch != null) {
if (modelService.graphInfo.addedBranch!!.currentCommits.any { it.isCollapsed }) {
e.presentation.isEnabled = false
return
}
} else {
e.presentation.isEnabled = false
return
}
}
if (modelService.getSelectedBranch().getActualSelectedCommitsSize() == 1) {
e.presentation.isEnabled = false
return
}
if (modelService.getSelectedCommits().isEmpty()) {
e.presentation.isEnabled = true
return
}
e.presentation.isEnabled = checkSelectedCommitsAreInARange()
}