mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
[IFT] Fix empty Git Log in Git lessons
For some reason it is not updated properly during Git repository initialization and first showing of Git Log tool window. Annotate lesson stuck because of it. GitOrigin-RevId: 2bd39f47b813fe2a9dd265f092aa2e012d8b454b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
14aaf7d002
commit
bac7f3589a
@@ -20,8 +20,10 @@ import com.intellij.openapi.vcs.VcsApplicationSettings
|
||||
import com.intellij.openapi.vcs.VcsBundle
|
||||
import com.intellij.openapi.vcs.actions.commit.CommonCheckinProjectAction
|
||||
import com.intellij.openapi.vcs.update.CommonUpdateProjectAction
|
||||
import com.intellij.openapi.wm.ToolWindow
|
||||
import com.intellij.openapi.wm.ToolWindowId
|
||||
import com.intellij.openapi.wm.ToolWindowManager
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerListener
|
||||
import com.intellij.ui.SearchTextField
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.intellij.vcs.commit.CommitModeManager
|
||||
@@ -72,6 +74,20 @@ object GitLessonsUtil {
|
||||
}
|
||||
}
|
||||
|
||||
fun LessonContext.refreshGitLogOnOpen() {
|
||||
prepareRuntimeTask {
|
||||
val connection = project.messageBus.connect(lessonDisposable)
|
||||
connection.subscribe(ToolWindowManagerListener.TOPIC, object : ToolWindowManagerListener {
|
||||
override fun toolWindowShown(toolWindow: ToolWindow) {
|
||||
if (toolWindow.id == ToolWindowId.VCS) {
|
||||
VcsProjectLog.getInstance(project).mainLogUi?.refresher?.setValid(true, false)
|
||||
connection.disconnect()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
fun TaskContext.highlightSubsequentCommitsInGitLog(startCommitRow: Int,
|
||||
sequenceLength: Int = 1,
|
||||
highlightInside: Boolean = true,
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.intellij.openapi.project.Project
|
||||
import git4idea.config.GitExecutableManager
|
||||
import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import training.dsl.LessonContext
|
||||
import training.git.GitLessonsUtil.refreshGitLogOnOpen
|
||||
import training.git.GitProjectUtil
|
||||
import training.learn.course.KLesson
|
||||
import training.learn.course.LessonProperties
|
||||
@@ -14,6 +16,12 @@ abstract class GitLesson(@NonNls id: String, @Nls name: String) : KLesson(id, na
|
||||
protected abstract val branchName: String
|
||||
override val properties = LessonProperties(availableSince = "212")
|
||||
|
||||
override val fullLessonContent: LessonContext.() -> Unit
|
||||
get() = {
|
||||
refreshGitLogOnOpen()
|
||||
super.fullLessonContent(this)
|
||||
}
|
||||
|
||||
override fun prepare(project: Project) {
|
||||
if (GitExecutableManager.getInstance().testGitExecutableVersionValid(project)) {
|
||||
GitProjectUtil.restoreGitLessonsFiles(project, branchName)
|
||||
|
||||
@@ -23,7 +23,7 @@ abstract class KLesson(@NonNls id: String, @Nls name: String) : Lesson(id, name)
|
||||
override lateinit var module: IftModule
|
||||
internal set
|
||||
|
||||
val fullLessonContent: LessonContext.() -> Unit get() = {
|
||||
open val fullLessonContent: LessonContext.() -> Unit get() = {
|
||||
showWarningIfLessonsDisabled()
|
||||
showIndexingTask()
|
||||
lessonContent()
|
||||
|
||||
Reference in New Issue
Block a user