mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-179637 ui: hide unsupported actions for remote recent projects
GitOrigin-RevId: dba826625b170b39260eeb59feeaaa2a13385b7f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
97e363c243
commit
dedef74304
+15
-5
@@ -8,11 +8,14 @@ import com.intellij.openapi.actionSystem.*
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
|
||||
import com.intellij.openapi.fileChooser.FileChooserFactory
|
||||
import com.intellij.openapi.project.DumbAwareAction
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.vfs.VfsUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeScreenUIManager
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.ProviderRecentProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectTreeItem
|
||||
import com.intellij.ui.IconDeferrer
|
||||
import com.intellij.ui.components.AnActionLink
|
||||
import com.intellij.ui.components.JBLabel
|
||||
@@ -41,7 +44,9 @@ internal class ChangeProjectIconAction : RecentProjectsWelcomeScreenActionBase()
|
||||
}
|
||||
|
||||
override fun actionPerformed(event: AnActionEvent) {
|
||||
val projectPath = getProjectPath(event)!!
|
||||
val project = event.project
|
||||
val selectedItem = getSelectedItem(event)
|
||||
val projectPath = getProjectPath(project, selectedItem) ?: return
|
||||
val basePath = RecentProjectIconHelper.getDotIdeaPath(projectPath) ?: return
|
||||
|
||||
val ui = ProjectIconUI(projectPath)
|
||||
@@ -93,16 +98,21 @@ internal class ChangeProjectIconAction : RecentProjectsWelcomeScreenActionBase()
|
||||
}
|
||||
}
|
||||
|
||||
fun getProjectPath(event: AnActionEvent): String? {
|
||||
val selectedItem = getSelectedItem(event)
|
||||
private fun getProjectPath(project: Project?, selectedItem: RecentProjectTreeItem?): String? {
|
||||
if (selectedItem is RecentProjectItem) {
|
||||
return selectedItem.projectPath
|
||||
}
|
||||
return event.project?.let { ProjectWindowCustomizerService.projectPath(it) }
|
||||
if (project != null) {
|
||||
return ProjectWindowCustomizerService.projectPath(project)
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
override fun update(event: AnActionEvent) {
|
||||
event.presentation.isEnabled = getProjectPath(event) != null
|
||||
val project = event.project
|
||||
val selectedItem = getSelectedItem(event)
|
||||
event.presentation.isEnabled = getProjectPath(project, selectedItem) != null
|
||||
event.presentation.isVisible = selectedItem !is ProviderRecentProjectItem
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -4,6 +4,7 @@ package com.intellij.openapi.wm.impl.welcomeScreen.projectActions
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||
import com.intellij.openapi.ide.CopyPasteManager
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.ProviderRecentProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectItem
|
||||
import java.awt.datatransfer.StringSelection
|
||||
|
||||
@@ -18,6 +19,7 @@ class CopyProjectPathAction : RecentProjectsWelcomeScreenActionBase() {
|
||||
override fun update(event: AnActionEvent) {
|
||||
val item = getSelectedItem(event)
|
||||
event.presentation.isEnabled = item is RecentProjectItem
|
||||
event.presentation.isVisible = item !is ProviderRecentProjectItem
|
||||
}
|
||||
|
||||
override fun actionPerformed(event: AnActionEvent) {
|
||||
|
||||
+2
@@ -9,6 +9,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent
|
||||
import com.intellij.openapi.ui.InputValidator
|
||||
import com.intellij.openapi.ui.Messages
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.ProjectsGroupItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.ProviderRecentProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectItem
|
||||
|
||||
/**
|
||||
@@ -37,6 +38,7 @@ class CreateNewProjectGroupAction : RecentProjectsWelcomeScreenActionBase() {
|
||||
override fun update(event: AnActionEvent) {
|
||||
val item = getSelectedItem(event)
|
||||
event.presentation.isEnabled = item == null || item is RecentProjectItem || item is ProjectsGroupItem
|
||||
event.presentation.isVisible = item !is ProviderRecentProjectItem
|
||||
}
|
||||
|
||||
override fun getActionUpdateThread(): ActionUpdateThread {
|
||||
|
||||
+2
@@ -4,6 +4,7 @@ package com.intellij.openapi.wm.impl.welcomeScreen.projectActions
|
||||
import com.intellij.ide.ProjectGroup
|
||||
import com.intellij.ide.RecentProjectsManager
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.ProviderRecentProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectItem
|
||||
|
||||
/**
|
||||
@@ -26,5 +27,6 @@ class MoveProjectToGroupAction(private val myGroup: ProjectGroup) : RecentProjec
|
||||
override fun update(event: AnActionEvent) {
|
||||
val item = getSelectedItem(event)
|
||||
event.presentation.isEnabled = item is RecentProjectItem
|
||||
event.presentation.isVisible = item !is ProviderRecentProjectItem
|
||||
}
|
||||
}
|
||||
+7
@@ -7,6 +7,7 @@ import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.openapi.util.text.NaturalComparator
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.projectActions.RecentProjectsWelcomeScreenActionBase.Companion.getSelectedItems
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.CloneableProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.ProviderRecentProjectItem
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.recentProjects.RecentProjectItem
|
||||
|
||||
/**
|
||||
@@ -17,6 +18,12 @@ class MoveProjectToGroupActionGroup : DefaultActionGroup(), DumbAware {
|
||||
return ActionUpdateThread.EDT
|
||||
}
|
||||
|
||||
override fun update(e: AnActionEvent) {
|
||||
val items = getSelectedItems(e).orEmpty()
|
||||
val isHidden = items.isNotEmpty() && items.all { it is ProviderRecentProjectItem }
|
||||
e.presentation.isVisible = !isHidden
|
||||
}
|
||||
|
||||
override fun getChildren(e: AnActionEvent?): Array<AnAction> {
|
||||
if (e == null) return AnAction.EMPTY_ARRAY
|
||||
|
||||
|
||||
Reference in New Issue
Block a user