From e0f567e98882bfa32aa63c840e5b9b6ae09109e0 Mon Sep 17 00:00:00 2001 From: Will Lo Date: Fri, 16 May 2025 15:50:10 -0700 Subject: [PATCH 1/3] remove redunant panel re-creation --- .../amazonq/toolwindow/AmazonQToolWindowFactory.kt | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt index a61fa43855..769d1bdcf2 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt @@ -85,25 +85,12 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { object : BearerTokenProviderListener { override fun onChange(providerId: String, newScopes: List?) { if (ToolkitConnectionManager.getInstance(project).connectionStateForFeature(QConnection.getInstance()) == BearerTokenAuthState.AUTHORIZED) { - AmazonQToolWindow.getInstance(project).disposeAndRecreate() prepareChatContent(project, qPanel) } } } ) - project.messageBus.connect(toolWindow.disposable).subscribe( - QRegionProfileSelectedListener.TOPIC, - object : QRegionProfileSelectedListener { - // note we name myProject intentionally ow it will shadow the "project" provided by the IDE - override fun onProfileSelected(myProject: Project, profile: QRegionProfile?) { - if (project.isDisposed) return - AmazonQToolWindow.getInstance(project).disposeAndRecreate() - prepareChatContent(project, qPanel) - } - } - ) - prepareChatContent(project, qPanel) val content = contentManager.factory.createContent(mainPanel, null, false).also { From a8e566d06b84612f95ba43330fb890e17d04e7ab Mon Sep 17 00:00:00 2001 From: Will Lo Date: Fri, 16 May 2025 15:58:36 -0700 Subject: [PATCH 2/3] patch --- .../amazonq/toolwindow/AmazonQToolWindowFactory.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt index 769d1bdcf2..c198629a54 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt @@ -91,6 +91,17 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { } ) + project.messageBus.connect(toolWindow.disposable).subscribe( + QRegionProfileSelectedListener.TOPIC, + object : QRegionProfileSelectedListener { + // note we name myProject intentionally ow it will shadow the "project" provided by the IDE + override fun onProfileSelected(myProject: Project, profile: QRegionProfile?) { + if (project.isDisposed) return + prepareChatContent(project, qPanel) + } + } + ) + prepareChatContent(project, qPanel) val content = contentManager.factory.createContent(mainPanel, null, false).also { From 07a89cf13298d8328acb322fbec81d7d66ea39e1 Mon Sep 17 00:00:00 2001 From: Will Lo Date: Fri, 16 May 2025 16:32:43 -0700 Subject: [PATCH 3/3] rename --- .../amazonq/toolwindow/AmazonQToolWindowFactory.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt index c198629a54..3ae16dd96c 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt @@ -66,7 +66,7 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(QConnection.getInstance())?.let { qConn -> openMeetQPage(project) } - prepareChatContent(project, qPanel) + preparePanelContent(project, qPanel) } } ) @@ -75,7 +75,7 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { RefreshQChatPanelButtonPressedListener.TOPIC, object : RefreshQChatPanelButtonPressedListener { override fun onRefresh() { - prepareChatContent(project, qPanel) + preparePanelContent(project, qPanel) } } ) @@ -85,7 +85,7 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { object : BearerTokenProviderListener { override fun onChange(providerId: String, newScopes: List?) { if (ToolkitConnectionManager.getInstance(project).connectionStateForFeature(QConnection.getInstance()) == BearerTokenAuthState.AUTHORIZED) { - prepareChatContent(project, qPanel) + preparePanelContent(project, qPanel) } } } @@ -97,12 +97,12 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { // note we name myProject intentionally ow it will shadow the "project" provided by the IDE override fun onProfileSelected(myProject: Project, profile: QRegionProfile?) { if (project.isDisposed) return - prepareChatContent(project, qPanel) + preparePanelContent(project, qPanel) } } ) - prepareChatContent(project, qPanel) + preparePanelContent(project, qPanel) val content = contentManager.factory.createContent(mainPanel, null, false).also { it.isCloseable = true @@ -112,7 +112,7 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { contentManager.addContent(content) } - private fun prepareChatContent( + private fun preparePanelContent( project: Project, qPanel: Wrapper, ) {