aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2022-11-23 16:52:14 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2022-11-24 07:33:19 +0000
commit706b0ff9eba7d40a3f9c1fac1a5f9784611b9461 (patch)
treec8e5e3b225807a9a53070bc041d8c3a87241c36f /src/libs
parent2e75492257d48d269c5b00856f4591d4ae5b8726 (diff)
"New Project" wizard: Create project parent directory, if needed
There's no reason to force users to the terminal if they want to create their project in a new subdirectory. Fixes: QTCREATORBUG-28346 Change-Id: Id92b2194c018274aac6f7f29c7304efa8c1d2d9e Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/utils/pathchooser.h2
-rw-r--r--src/libs/utils/projectintropage.cpp8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/libs/utils/pathchooser.h b/src/libs/utils/pathchooser.h
index ca9655fa25..4fb31599a1 100644
--- a/src/libs/utils/pathchooser.h
+++ b/src/libs/utils/pathchooser.h
@@ -53,7 +53,7 @@ public:
};
Q_ENUM(Kind)
- // Default is <Directory>
+ // Default is <ExistingDirectory>
void setExpectedKind(Kind expected);
Kind expectedKind() const;
diff --git a/src/libs/utils/projectintropage.cpp b/src/libs/utils/projectintropage.cpp
index 11ddd00aa1..f49631fc16 100644
--- a/src/libs/utils/projectintropage.cpp
+++ b/src/libs/utils/projectintropage.cpp
@@ -78,6 +78,7 @@ ProjectIntroPage::ProjectIntroPage(QWidget *parent) :
d->m_nameLineEdit = new Utils::FancyLineEdit(frame);
d->m_pathChooser = new Utils::PathChooser(frame);
+ d->m_pathChooser->setExpectedKind(PathChooser::Directory);
d->m_pathChooser->setDisabled(d->m_forceSubProject);
d->m_projectsDirectoryCheckBox = new QCheckBox(tr("Use as default project location"));
@@ -217,7 +218,12 @@ bool ProjectIntroPage::validate()
filePath().pathAppended(QDir::fromNativeSeparators(d->m_nameLineEdit->text()));
if (!projectDir.exists()) { // All happy
- hideStatusLabel();
+ if (!d->m_pathChooser->filePath().exists()) {
+ displayStatusMessage(InfoLabel::Information, tr("Directory \"%1\" will be created.")
+ .arg(d->m_pathChooser->filePath().toUserOutput()));
+ } else {
+ hideStatusLabel();
+ }
return true;
}