diff options
4 files changed, 36 insertions, 8 deletions
diff --git a/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectAction.java b/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectAction.java index bc82e6a..925e371 100644 --- a/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectAction.java +++ b/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectAction.java @@ -31,7 +31,7 @@ class ImportProjectAction extends AnAction { return; } - ImportProjectDialogWrapper wrapper = new ImportProjectDialogWrapper(); + ImportProjectDialogWrapper wrapper = new ImportProjectDialogWrapper(e.getProject()); wrapper.show(); } } diff --git a/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectDialogWrapper.java b/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectDialogWrapper.java index 330ee03..fd6f5ac 100644 --- a/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectDialogWrapper.java +++ b/src/main/java/org/qtproject/qt/androidstudiotools/ImportProjectDialogWrapper.java @@ -6,11 +6,13 @@ package org.qtproject.qt.androidstudiotools; import java.awt.Color; import java.awt.Dimension; import java.io.File; +import java.util.Map; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.event.DocumentEvent; import com.intellij.openapi.fileChooser.FileChooserDescriptor; +import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.ComponentValidator; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.TextBrowseFolderListener; @@ -23,13 +25,16 @@ import org.jetbrains.annotations.Nullable; class ImportProjectDialogWrapper extends DialogWrapper { private JLabel m_errorLabel; + private Project m_project; private final TextFieldWithBrowseButton m_qtPathLocationBtn = new TextFieldWithBrowseButton(); private final TextFieldWithBrowseButton m_newQtProjectLocationBtn = new TextFieldWithBrowseButton(); - protected ImportProjectDialogWrapper() { + protected ImportProjectDialogWrapper(Project project) { super(true); + this.m_project = project; + setTitle("Import Qt Project"); init(); @@ -40,6 +45,9 @@ class ImportProjectDialogWrapper extends DialogWrapper { m_qtPathLocationBtn.addBrowseFolderListener(new TextBrowseFolderListener(allowFoldersFCD)); m_newQtProjectLocationBtn.addBrowseFolderListener(new TextBrowseFolderListener(allowFoldersFCD)); + QtSettingStateProject settings = QtSettingStateProject.getInstance(m_project); + m_qtPathLocationBtn.setText(settings.getQtPath()); + ComponentValidator qtPathValidator = new ComponentValidator(getDisposable()).withValidator( () -> validateQtPath()).installOn(m_qtPathLocationBtn); @@ -105,8 +113,12 @@ class ImportProjectDialogWrapper extends DialogWrapper { // Close the current dialog before starting the new one dispose(); - CodeSnippetDialogWrapper dialog = new CodeSnippetDialogWrapper(newProjectLocation, qtPathLocation); - dialog.show(); + GradlePropertiesManager propertiesManager = + new GradlePropertiesManager(m_project.getBasePath()); + propertiesManager.writeMultipleProperties(Map.of( + GradleFileParser.QT_PATH_PROPERTY, qtPathLocation, + GradleFileParser.QT_PROJECT_PATH_PROPERTY, newProjectLocation + )); super.doOKAction(); } diff --git a/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectAction.java b/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectAction.java index db3162c..ecc6b55 100644 --- a/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectAction.java +++ b/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectAction.java @@ -17,6 +17,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Paths; +import java.util.Map; class NewProjectAction extends AnAction { @@ -47,9 +48,17 @@ class NewProjectAction extends AnAction { ProgressManager.getInstance().run(new Task.Backgroundable(e.getProject(), "Creating new Project") { @Override public void onSuccess() { - CodeSnippetDialogWrapper dialog = new CodeSnippetDialogWrapper(wrapper.getNewProjectLocation(), - wrapper.getQtPath()); - dialog.show(); + GradlePropertiesManager propertiesManager = + new GradlePropertiesManager(e.getProject().getBasePath()); + propertiesManager.writeMultipleProperties(Map.of( + GradleFileParser.QT_PATH_PROPERTY, wrapper.getQtPath(), + GradleFileParser.QT_PROJECT_PATH_PROPERTY, wrapper.getNewProjectLocation() + )); + + QtSettingStateProject settings = + QtSettingStateProject.getInstance(e.getProject()); + settings.setQtMinimumVersion(wrapper.getMinimumQtVersion()); + super.onSuccess(); } diff --git a/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectDialogWrapper.java b/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectDialogWrapper.java index c47a725..d2caa1c 100644 --- a/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectDialogWrapper.java +++ b/src/main/java/org/qtproject/qt/androidstudiotools/NewProjectDialogWrapper.java @@ -21,6 +21,7 @@ import com.intellij.openapi.ui.ValidationInfo; import com.intellij.ui.DocumentAdapter; import com.intellij.ui.components.JBTextField; import com.intellij.util.ui.FormBuilder; +import org.apache.commons.lang.ArrayUtils; import org.jetbrains.annotations.Nullable; // TODO: QTBUG-122062 Separate the new project dialog @@ -36,7 +37,7 @@ class NewProjectDialogWrapper extends DialogWrapper { private final ComboBox<String> m_minimumQtVersionComboBox = new ComboBox<>(); private final static String[] m_minQtVersions = new String[]{"6.8"}; - protected NewProjectDialogWrapper(@Nullable Project project) { + protected NewProjectDialogWrapper(Project project) { super(project, true); m_project = project; @@ -55,6 +56,12 @@ class NewProjectDialogWrapper extends DialogWrapper { m_qtPathLocationBtn.addBrowseFolderListener(new TextBrowseFolderListener(allowFoldersFCD)); m_newQtProjectLocationBtn.addBrowseFolderListener(new TextBrowseFolderListener(allowFoldersFCD)); + QtSettingStateProject settings = QtSettingStateProject.getInstance(m_project); + m_qtPathLocationBtn.setText(settings.getQtPath()); + m_minimumQtVersionComboBox.setSelectedIndex( + ArrayUtils.indexOf(m_minQtVersions, settings.getMinimumQtVersion()) + ); + ComponentValidator projectNameValidator = new ComponentValidator( getDisposable()).withValidator(() -> validateProjectName()) .installOn(m_newQtProjectNameField); |