mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
refactor [vcs]: refresh project changes every time they are displayed
The TW listener does not track TW content selection, so we might miss the event Also, TW listeners introduced a dependency on content manager, which is not needed GitOrigin-RevId: 817f8668cb18ba098d3d751454218bb883bd72ac
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3ec40f3be5
commit
ef92b0d32b
@@ -419,8 +419,6 @@
|
||||
topic="com.intellij.openapi.vcs.changes.shelf.ShelveChangesManagerListener"/>
|
||||
<listener class="com.intellij.openapi.vcs.actions.AnnotationsLineStatusTrackerListener"
|
||||
topic="com.intellij.openapi.vcs.impl.LineStatusTrackerManager$Listener"/>
|
||||
<listener class="com.intellij.vcs.commit.ChangesViewToolWindowRefresher"
|
||||
topic="com.intellij.openapi.wm.ex.ToolWindowManagerListener"/>
|
||||
</projectListeners>
|
||||
</idea-plugin>
|
||||
|
||||
|
||||
@@ -28,12 +28,14 @@ import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.ui.components.panels.Wrapper
|
||||
import com.intellij.ui.content.Content
|
||||
import com.intellij.util.ModalityUiUtil.invokeLaterIfNeeded
|
||||
import com.intellij.util.cancelOnDispose
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import com.intellij.util.ui.JBDimension
|
||||
import com.intellij.util.ui.JBUI
|
||||
import com.intellij.util.ui.JBUI.Panels
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.intellij.util.ui.components.BorderLayoutPanel
|
||||
import com.intellij.util.ui.launchOnShow
|
||||
import com.intellij.vcs.changes.viewModel.ChangesViewProxy
|
||||
import com.intellij.vcs.commit.*
|
||||
import com.intellij.vcs.commit.CommitModeManager.Companion.subscribeOnCommitModeChange
|
||||
@@ -212,6 +214,10 @@ class ChangesViewManager internal constructor(private val project: Project, priv
|
||||
val mainPanel = Panels.simplePanel(mainPanelContent).addToBottom(progressLabel)
|
||||
setContent(mainPanel)
|
||||
|
||||
mainPanel.launchOnShow("Changes refresh on changes show") {
|
||||
ChangeListManagerRefreshHelper.requestRefresh(project)
|
||||
}.cancelOnDispose(this)
|
||||
|
||||
busConnection.subscribeOnVcsToolWindowLayoutChanges(Runnable { this.updatePanelLayout() })
|
||||
updatePanelLayout()
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.vcs.commit
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vcs.changes.ChangeListManagerRefreshHelper
|
||||
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager
|
||||
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager.Companion.LOCAL_CHANGES
|
||||
import com.intellij.openapi.wm.ToolWindow
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerListener
|
||||
|
||||
private class ChangesViewToolWindowRefresher(private val project: Project) : ToolWindowManagerListener {
|
||||
override fun toolWindowShown(toolWindow: ToolWindow) {
|
||||
if (ChangesViewContentManager.getToolWindowIdFor(project, LOCAL_CHANGES) == toolWindow.id) {
|
||||
ChangeListManagerRefreshHelper.requestRefresh(project)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -173,6 +173,10 @@ internal class GitStagePanel(
|
||||
})
|
||||
commitWorkflowHandler.workflow.addListener(MyCommitWorkflowListener(), this)
|
||||
|
||||
launchOnShow("Changes refresh on changes show") {
|
||||
ChangeListManagerRefreshHelper.requestRefresh(project)
|
||||
}.cancelOnDispose(this)
|
||||
|
||||
if (isRefreshInProgress()) {
|
||||
tree.setEmptyText(message("stage.loading.status"))
|
||||
progressStripe.startLoadingImmediately()
|
||||
|
||||
Reference in New Issue
Block a user