Don't ask if the user wants to open the project they've just checked out: just open it: IDEA-115467

GitOrigin-RevId: b37e4aa46c7b1b4b53e48a81e6804e17e73af1f2
This commit is contained in:
Kirill Likhodedov
2019-11-19 11:09:41 +00:00
committed by intellij-monorepo-bot
parent 0131a077cb
commit f4ad3b5771
5 changed files with 20 additions and 41 deletions
@@ -421,7 +421,6 @@ checkout.open.project.prompt=You have checked out {0} project file:\n{1}\nWould
checkout.open.project.dir.prompt=You have checked out {0} project:\n{1}\nWould you like to open it?
checkout.title=Checkout From Version Control
checkout.create.project.prompt=Would you like to create {0} project for the sources you have checked out to {1}?
checkout.open.directory.prompt=Would you like to open the directory {0}?
new.changelist.duplicate.name.error=A changelist with that name already exists
perform.edit.in.background=Perform Edit/Checkout in background
browse.changes.action=Browse Changes
@@ -4,8 +4,6 @@ package com.intellij.openapi.vcs.checkout;
import com.intellij.lang.IdeLanguageCustomization;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.platform.PlatformProjectOpenProcessor;
@@ -13,7 +11,7 @@ import com.intellij.platform.PlatformProjectOpenProcessor;
import java.io.File;
/**
* @author yole
* Open directory.
*/
public class PlatformProjectCheckoutListener implements CheckoutListener {
@Override
@@ -23,14 +21,10 @@ public class PlatformProjectCheckoutListener implements CheckoutListener {
return false;
}
final VirtualFile dir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(directory);
VirtualFile dir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(directory);
if (dir != null) {
int rc = Messages.showYesNoDialog(project, VcsBundle.message("checkout.open.directory.prompt", directory.getAbsolutePath()),
VcsBundle.message("checkout.title"), Messages.getQuestionIcon());
if (rc == Messages.YES) {
PlatformProjectOpenProcessor.getInstance().doOpenProject(dir, null, false);
return true;
}
PlatformProjectOpenProcessor.getInstance().doOpenProject(dir, null, false);
return true;
}
return false;
}
@@ -5,14 +5,12 @@ import com.intellij.ide.highlighter.ProjectFileType;
import com.intellij.ide.impl.ProjectUtil;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vcs.VcsBundle;
import java.io.File;
/**
* @author yole
* Open project with {@code project.ipr}.
*/
public class ProjectCheckoutListener implements CheckoutListener {
public ProjectCheckoutListener() { }
@@ -21,10 +19,7 @@ public class ProjectCheckoutListener implements CheckoutListener {
public boolean processCheckedOutDirectory(Project project, File directory) {
File[] files = directory.listFiles((dir, name) -> dir.isFile() && name.endsWith(ProjectFileType.DOT_DEFAULT_EXTENSION));
if (files != null && files.length > 0) {
String message = VcsBundle.message("checkout.open.project.prompt", getProductNameWithArticle(), files[0].getPath());
if (Messages.showYesNoDialog(project, message, VcsBundle.message("checkout.title"), Messages.getQuestionIcon()) == Messages.YES) {
ProjectUtil.openProject(files[0].getPath(), project, false);
}
ProjectUtil.openProject(files[0].getPath(), project, false);
return true;
}
return false;
@@ -3,14 +3,15 @@ package com.intellij.openapi.vcs.checkout;
import com.intellij.ide.impl.OpenProjectTask;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.platform.PlatformProjectOpenProcessor;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
/**
* Open project with {@code .idea}.
*/
final class ProjectDirCheckoutListener implements CheckoutListener {
@Override
public boolean processCheckedOutDirectory(Project project, File directory) {
@@ -20,14 +21,8 @@ final class ProjectDirCheckoutListener implements CheckoutListener {
return false;
}
String message = VcsBundle.message("checkout.open.project.dir.prompt",
ProjectCheckoutListener.getProductNameWithArticle(), directory.getPath());
if (Messages.showYesNoDialog(project, message, VcsBundle.message("checkout.title"), Messages.getQuestionIcon()) == Messages.YES) {
PlatformProjectOpenProcessor.doOpenProject(dotIdea.getParent(), new OpenProjectTask(false, project), -1);
return true;
}
return false;
PlatformProjectOpenProcessor.doOpenProject(dotIdea.getParent(), new OpenProjectTask(false, project), -1);
return true;
}
@Override
@@ -2,8 +2,6 @@
package com.intellij.openapi.vcs.checkout;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.projectImport.ProjectOpenProcessor;
@@ -11,28 +9,26 @@ import com.intellij.projectImport.ProjectOpenProcessor;
import java.io.File;
import java.util.Collections;
/**
* Open project which has {@code build.gradle}, {@link pom.xml} or other file for a build system.
*/
public class ProjectImporterCheckoutListener implements CheckoutListener {
@Override
public boolean processCheckedOutDirectory(Project project, File directory) {
final File[] files = directory.listFiles();
File[] files = directory.listFiles();
if (files != null) {
final LocalFileSystem localFileSystem = LocalFileSystem.getInstance();
LocalFileSystem localFileSystem = LocalFileSystem.getInstance();
// need to refresh the project folder in order to get actual files via findFileByIoFile
localFileSystem.refreshIoFiles(Collections.singleton(directory));
for (File file : files) {
if (file.isDirectory()) continue;
final VirtualFile virtualFile = localFileSystem.findFileByIoFile(file);
VirtualFile virtualFile = localFileSystem.findFileByIoFile(file);
if (virtualFile != null) {
final ProjectOpenProcessor openProcessor = ProjectOpenProcessor.getImportProvider(virtualFile);
ProjectOpenProcessor openProcessor = ProjectOpenProcessor.getImportProvider(virtualFile);
if (openProcessor != null) {
int rc = Messages
.showYesNoDialog(project, VcsBundle.message("checkout.open.project.prompt", ProjectCheckoutListener.getProductNameWithArticle(), file.getPath()),
VcsBundle.message("checkout.title"), Messages.getQuestionIcon());
if (rc == Messages.YES) {
openProcessor.doOpenProject(virtualFile, project, false);
}
openProcessor.doOpenProject(virtualFile, project, false);
return true;
}
}