diff options
author | Nikunj Arora <nikunj.arora@qt.io> | 2025-05-30 15:23:15 +0300 |
---|---|---|
committer | Nikunj Arora <nikunj.arora@qt.io> | 2025-06-24 07:36:40 +0000 |
commit | de31f177af5acfb19f7624d8a17c94736a3da895 (patch) | |
tree | 6f86da1cce92ffdab90a80c3a72fe2f2cc161449 | |
parent | 775f6f1d4e67ae0298ac4c47245af132053345f7 (diff) |
Write properties to gradle.properties file from Android Studio UI
After setting the values in Android Studio UI, write the values to
gradle.properties file so that it can be read from both QtGP and QtTAS.
Task-number: QTTA-354
Pick-to: 4.1
Change-Id: I3bad5d7eafa2773baf4a6b3a35349ca388762d46
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
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); |