mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-21 05:51:25 +07:00
IDEA-347611 Remove banner about disabling onboarding tips comments
GitOrigin-RevId: daa4864c08af269eb1e2aa68337917698dd23c7f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5d670d892f
commit
020a5c0f7a
@@ -209,7 +209,6 @@
|
||||
<newProject.onboarding.tips implementation="training.onboarding.NewProjectOnboardingTipsImpl"/>
|
||||
<postStartupActivity implementation="training.onboarding.InstallOnboardingTooltip"/>
|
||||
<editorFactoryListener implementation="training.onboarding.InstallOnboardingTipsEditorListener"/>
|
||||
<editorNotificationProvider implementation="training.onboarding.DoNotGenerateTipsNotification"/>
|
||||
<statistics.counterUsagesCollector
|
||||
implementationClass="training.onboarding.OnboardingTipsStatistics"/>
|
||||
</extensions>
|
||||
|
||||
@@ -20,19 +20,12 @@ import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.editor.event.EditorFactoryEvent
|
||||
import com.intellij.openapi.editor.event.EditorFactoryListener
|
||||
import com.intellij.openapi.fileEditor.FileEditor
|
||||
import com.intellij.openapi.fileEditor.TextEditor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.startup.ProjectActivity
|
||||
import com.intellij.openapi.ui.popup.Balloon
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.ui.EditorNotificationPanel
|
||||
import com.intellij.ui.EditorNotificationProvider
|
||||
import com.intellij.ui.EditorNotifications
|
||||
import com.intellij.ui.GotItTooltip
|
||||
import com.intellij.util.DocumentUtil
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import com.intellij.xdebugger.*
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl
|
||||
@@ -42,17 +35,11 @@ import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import training.learn.LearnBundle
|
||||
import training.ui.LearningUiUtil
|
||||
import java.util.function.Function
|
||||
import javax.swing.JComponent
|
||||
|
||||
private var onboardingGenerationNumber: Int
|
||||
get() = PropertiesComponent.getInstance().getInt("onboarding.generation.number", 0)
|
||||
set(value) { PropertiesComponent.getInstance().setValue("onboarding.generation.number", value, 0) }
|
||||
|
||||
private var onboardingGenerationShowDisableMessage: Boolean
|
||||
get() = PropertiesComponent.getInstance().getBoolean("onboarding.generation.show.disable.message", true)
|
||||
set(value) { PropertiesComponent.getInstance().setValue("onboarding.generation.show.disable.message", value, true) }
|
||||
|
||||
var Project.filePathWithOnboardingTips: String?
|
||||
@ApiStatus.Internal
|
||||
get() = PropertiesComponent.getInstance(this).getValue("onboarding.tips.debug.path")
|
||||
@@ -64,8 +51,6 @@ val renderedOnboardingTipsEnabled: Boolean
|
||||
@ApiStatus.Internal
|
||||
get() = Registry.`is`("doc.onboarding.tips.render")
|
||||
|
||||
private val RESET_TOOLTIP_SAMPLE_TEXT = Key.create<String>("reset.tooltip.sample.text")
|
||||
|
||||
internal val promotedActions = listOf(IdeActions.ACTION_SEARCH_EVERYWHERE,
|
||||
IdeActions.ACTION_SHOW_INTENTION_ACTIONS,
|
||||
IdeActions.ACTION_DEFAULT_RUNNER,
|
||||
@@ -105,11 +90,7 @@ private fun installTipsInFirstEditor(editor: Editor, project: Project, info: Onb
|
||||
installDebugListener(project, pathToRunningFile)
|
||||
installActionListener(project, pathToRunningFile)
|
||||
|
||||
val number = onboardingGenerationNumber
|
||||
if (number != 0 && onboardingGenerationShowDisableMessage) {
|
||||
RESET_TOOLTIP_SAMPLE_TEXT.set(file, info.simpleSampleText)
|
||||
}
|
||||
onboardingGenerationNumber = number + 1
|
||||
onboardingGenerationNumber++
|
||||
}
|
||||
|
||||
private class InstallOnboardingTooltip : ProjectActivity {
|
||||
@@ -198,36 +179,3 @@ private fun installDebugListener(project: Project, pathToRunningFile: @NonNls St
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private class DoNotGenerateTipsNotification : EditorNotificationProvider {
|
||||
override fun collectNotificationData(project: Project, file: VirtualFile): Function<in FileEditor, out JComponent?>? {
|
||||
val simpleSampleText = RESET_TOOLTIP_SAMPLE_TEXT.get(file) ?: return null
|
||||
return Function { editor ->
|
||||
EditorNotificationPanel(EditorNotificationPanel.Status.Info).apply {
|
||||
text = LearnBundle.message("onboarding.propose.to.disable.tips")
|
||||
createActionLabel(LearnBundle.message("onboarding.disable.tips.action")) {
|
||||
OnboardingTipsStatistics.logDisableOnboardingTips(project, onboardingGenerationNumber)
|
||||
disableNotification(file, project)
|
||||
|
||||
PropertiesComponent.getInstance().setValue(NewProjectWizardStep.GENERATE_ONBOARDING_TIPS_NAME, false)
|
||||
|
||||
project.filePathWithOnboardingTips = null
|
||||
val document = (editor as? TextEditor)?.editor?.document ?: return@createActionLabel
|
||||
DocumentUtil.writeInRunUndoTransparentAction {
|
||||
document.setText(simpleSampleText)
|
||||
}
|
||||
}
|
||||
setCloseAction {
|
||||
OnboardingTipsStatistics.logHideOnboardingTipsDisableProposal(project, onboardingGenerationNumber)
|
||||
disableNotification(file, project)
|
||||
onboardingGenerationShowDisableMessage = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun disableNotification(file: VirtualFile, project: Project) {
|
||||
RESET_TOOLTIP_SAMPLE_TEXT.set(file, null)
|
||||
EditorNotifications.getInstance(project).updateNotifications(this)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,25 +9,18 @@ import com.intellij.openapi.project.Project
|
||||
internal object OnboardingTipsStatistics : CounterUsagesCollector() {
|
||||
override fun getGroup() = GROUP
|
||||
|
||||
private val GROUP = EventLogGroup("onboarding.tips.statistics", 4)
|
||||
private val GROUP = EventLogGroup("onboarding.tips.statistics", 5)
|
||||
|
||||
private val projectsWithTipsField = EventFields.Int("projects_with_tips")
|
||||
private val firstTimeActionUsedField = EventFields.Boolean("first_time_used")
|
||||
private val promotedActionField = EventFields.String("action_id", promotedActions)
|
||||
|
||||
private val onboardingTipsInstalledEvent = GROUP.registerEvent("onboarding.tips.installed", projectsWithTipsField)
|
||||
private val disableOnboardingTipsEvent = GROUP.registerEvent("tips.disabled", projectsWithTipsField)
|
||||
private val hideOnboardingTipsDisableProposalEvent = GROUP.registerEvent("hide.disable.proposal", projectsWithTipsField)
|
||||
private val promotedActionUsedEvent = GROUP.registerEvent("promoted.action.used", promotedActionField, projectsWithTipsField,
|
||||
firstTimeActionUsedField)
|
||||
|
||||
@JvmStatic
|
||||
fun logOnboardingTipsInstalled(project: Project?, projectsWithTips: Int) = onboardingTipsInstalledEvent.log(project, projectsWithTips)
|
||||
@JvmStatic
|
||||
fun logDisableOnboardingTips(project: Project?, projectsWithTips: Int) = disableOnboardingTipsEvent.log(project, projectsWithTips)
|
||||
@JvmStatic
|
||||
fun logHideOnboardingTipsDisableProposal(project: Project?, projectsWithTips: Int) = hideOnboardingTipsDisableProposalEvent.log(project,
|
||||
projectsWithTips)
|
||||
|
||||
@JvmStatic
|
||||
fun logPromotedActionUsedEvent(project: Project?,
|
||||
|
||||
Reference in New Issue
Block a user