Utils: Use FilePath for PathChooser::m_baseDirectory

... and collapse the two accessor versions to one.

Change-Id: I282753a0092601cff073684053ff914016452645
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2019-12-17 11:53:58 +01:00
parent b519a5b482
commit 84d0e3dda8
12 changed files with 25 additions and 39 deletions

View File

@@ -171,7 +171,7 @@ public:
QString m_dialogTitleOverride;
QString m_dialogFilter;
QString m_initialBrowsePathOverride;
QString m_baseDirectory;
FilePath m_baseDirectory;
Environment m_environment;
BinaryVersionToolTipEventFilter *m_binaryVersionToolTipEventFilter = nullptr;
QList<QAbstractButton *> m_buttons;
@@ -201,7 +201,7 @@ QString PathChooserPrivate::expandedPath(const QString &input) const
switch (m_acceptingKind) {
case PathChooser::Command:
case PathChooser::ExistingCommand: {
const FilePath expanded = m_environment.searchInPath(path, {FilePath::fromString(m_baseDirectory)});
const FilePath expanded = m_environment.searchInPath(path, {m_baseDirectory});
return expanded.isEmpty() ? path : expanded.toString();
}
case PathChooser::Any:
@@ -211,7 +211,7 @@ QString PathChooserPrivate::expandedPath(const QString &input) const
case PathChooser::File:
case PathChooser::SaveFile:
if (!m_baseDirectory.isEmpty() && QFileInfo(path).isRelative())
return QFileInfo(m_baseDirectory + '/' + path).absoluteFilePath();
return m_baseDirectory.pathAppended(path).toFileInfo().absoluteFilePath();
break;
}
return path;
@@ -280,27 +280,17 @@ QAbstractButton *PathChooser::buttonAtIndex(int index) const
return d->m_buttons.at(index);
}
QString PathChooser::baseDirectory() const
void PathChooser::setBaseDirectory(const FilePath &base)
{
return d->m_baseDirectory;
}
void PathChooser::setBaseDirectory(const QString &directory)
{
if (d->m_baseDirectory == directory)
if (d->m_baseDirectory == base)
return;
d->m_baseDirectory = directory;
d->m_baseDirectory = base;
triggerChanged();
}
FilePath PathChooser::baseFileName() const
FilePath PathChooser::baseDirectory() const
{
return FilePath::fromString(d->m_baseDirectory);
}
void PathChooser::setBaseFileName(const FilePath &base)
{
setBaseDirectory(base.toString());
return d->m_baseDirectory;
}
void PathChooser::setEnvironment(const Environment &env)

View File

@@ -51,12 +51,11 @@ class QTCREATOR_UTILS_EXPORT PathChooser : public QWidget
Q_PROPERTY(QString promptDialogTitle READ promptDialogTitle WRITE setPromptDialogTitle DESIGNABLE true)
Q_PROPERTY(QString promptDialogFilter READ promptDialogFilter WRITE setPromptDialogFilter DESIGNABLE true)
Q_PROPERTY(Kind expectedKind READ expectedKind WRITE setExpectedKind DESIGNABLE true)
Q_PROPERTY(QString baseDirectory READ baseDirectory WRITE setBaseDirectory DESIGNABLE true)
Q_PROPERTY(Utils::FilePath baseDirectory READ baseDirectory WRITE setBaseDirectory DESIGNABLE true)
Q_PROPERTY(QStringList commandVersionArguments READ commandVersionArguments WRITE setCommandVersionArguments)
Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly DESIGNABLE true)
// Designer does not know this type, so force designable to false:
Q_PROPERTY(Utils::FilePath fileName READ fileName WRITE setFileName DESIGNABLE false)
Q_PROPERTY(Utils::FilePath baseFileName READ baseFileName WRITE setBaseFileName DESIGNABLE false)
Q_PROPERTY(QColor errorColor READ errorColor WRITE setErrorColor DESIGNABLE true)
Q_PROPERTY(QColor okColor READ okColor WRITE setOkColor DESIGNABLE true)
@@ -99,11 +98,8 @@ public:
static QString expandedDirectory(const QString &input, const Environment &env,
const QString &baseDir);
QString baseDirectory() const;
void setBaseDirectory(const QString &directory);
FilePath baseFileName() const;
void setBaseFileName(const FilePath &base);
FilePath baseDirectory() const;
void setBaseDirectory(const FilePath &base);
void setEnvironment(const Environment &env);

View File

@@ -86,7 +86,7 @@ BuildPathPage::BuildPathPage(AutotoolsOpenProjectWizard *w) : QWizardPage(w),
fl->addWidget(label);
m_pc->setHistoryCompleter(QLatin1String("AutoTools.BuildDir.History"));
auto wiz = static_cast<AutotoolsOpenProjectWizard *>(wizard());
m_pc->setBaseDirectory(wiz->sourceDirectory());
m_pc->setBaseDirectory(Utils::FilePath::fromString(wiz->sourceDirectory()));
m_pc->setPath(wiz->buildDirectory());
connect(m_pc, &Utils::PathChooser::rawPathChanged, this, &BuildPathPage::buildDirectoryChanged);
fl->addRow(tr("Build directory:"), m_pc);

View File

@@ -107,7 +107,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
auto project = bc->project();
auto buildDirChooser = new Utils::PathChooser;
buildDirChooser->setBaseFileName(project->projectDirectory());
buildDirChooser->setBaseDirectory(project->projectDirectory());
buildDirChooser->setFileName(bc->buildDirectory());
connect(buildDirChooser, &Utils::PathChooser::rawPathChanged, this,
[this](const QString &path) {

View File

@@ -463,7 +463,7 @@ CMakeToolItemConfigWidget::CMakeToolItemConfigWidget(CMakeToolItemModel *model)
connect(m_binaryChooser, &PathChooser::rawPathChanged, this, [this]() {
updateQchFilePath();
m_qchFileChooser->setBaseFileName(m_binaryChooser->fileName().parentDir());
m_qchFileChooser->setBaseDirectory(m_binaryChooser->fileName().parentDir());
store();
});
connect(m_qchFileChooser, &PathChooser::rawPathChanged, this, &CMakeToolItemConfigWidget::store);
@@ -508,7 +508,7 @@ void CMakeToolItemConfigWidget::load(const CMakeToolTreeItem *item)
m_binaryChooser->setFileName(item->m_executable);
m_qchFileChooser->setReadOnly(item->m_autodetected);
m_qchFileChooser->setBaseFileName(item->m_executable.parentDir());
m_qchFileChooser->setBaseDirectory(item->m_executable.parentDir());
m_qchFileChooser->setFileName(item->m_qchFile);
m_autoRunCheckBox->setChecked(item->m_isAutoRun);

View File

@@ -42,7 +42,7 @@ QWidget *ConfigModelItemDelegate::createEditor(QWidget *parent, const QStyleOpti
if (data.type == ConfigModel::DataItem::FILE || data.type == ConfigModel::DataItem::DIRECTORY) {
auto edit = new Utils::PathChooser(parent);
edit->setFocusPolicy(Qt::StrongFocus);
edit->setBaseFileName(m_base);
edit->setBaseDirectory(m_base);
edit->setAutoFillBackground(true);
if (data.type == ConfigModel::DataItem::FILE) {
edit->setExpectedKind(Utils::PathChooser::File);

View File

@@ -79,7 +79,7 @@ ImportWidget::ImportWidget(QWidget *parent) :
void ImportWidget::setCurrentDirectory(const Utils::FilePath &dir)
{
m_pathChooser->setBaseFileName(dir);
m_pathChooser->setBaseDirectory(dir);
m_pathChooser->setFileName(dir);
}
@@ -93,7 +93,7 @@ void ImportWidget::handleImportRequest()
Utils::FilePath dir = m_pathChooser->fileName();
emit importFrom(dir);
m_pathChooser->setFileName(m_pathChooser->baseFileName());
m_pathChooser->setFileName(m_pathChooser->baseDirectory());
}
} // namespace Internal

View File

@@ -773,7 +773,7 @@ void PathChooserField::initializeData(MacroExpander *expander)
{
auto w = qobject_cast<PathChooser *>(widget());
QTC_ASSERT(w, return);
w->setBaseDirectory(expander->expand(m_basePath));
w->setBaseDirectory(expander->expand(FilePath::fromString(m_basePath)));
w->setExpectedKind(m_kind);
if (m_currentPath.isNull())

View File

@@ -408,7 +408,7 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep)
}
m_ui->makeLineEdit->setExpectedKind(Utils::PathChooser::ExistingCommand);
m_ui->makeLineEdit->setBaseDirectory(Utils::PathChooser::homePath());
m_ui->makeLineEdit->setBaseDirectory(FilePath::fromString(PathChooser::homePath()));
m_ui->makeLineEdit->setHistoryCompleter("PE.MakeCommand.History");
m_ui->makeLineEdit->setPath(m_makeStep->makeCommand().toString());
m_ui->makeArgumentsLineEdit->setText(m_makeStep->userArguments());

View File

@@ -268,7 +268,7 @@ void BaseStringAspect::setBaseFileName(const FilePath &baseFileName)
{
d->m_baseFileName = baseFileName;
if (d->m_pathChooserDisplay)
d->m_pathChooserDisplay->setBaseFileName(baseFileName);
d->m_pathChooserDisplay->setBaseDirectory(baseFileName);
}
void BaseStringAspect::setReadOnly(bool readOnly)
@@ -323,7 +323,7 @@ void BaseStringAspect::addToLayout(LayoutBuilder &builder)
if (!d->m_historyCompleterKey.isEmpty())
d->m_pathChooserDisplay->setHistoryCompleter(d->m_historyCompleterKey);
d->m_pathChooserDisplay->setEnvironment(d->m_environment);
d->m_pathChooserDisplay->setBaseFileName(d->m_baseFileName);
d->m_pathChooserDisplay->setBaseDirectory(d->m_baseFileName);
d->m_pathChooserDisplay->setReadOnly(d->m_readOnly);
useMacroExpander(d->m_pathChooserDisplay->lineEdit());
connect(d->m_pathChooserDisplay, &PathChooser::pathChanged,

View File

@@ -147,7 +147,7 @@ void WorkingDirectoryAspect::addToLayout(LayoutBuilder &builder)
m_chooser->setHistoryCompleter(settingsKey());
m_chooser->setExpectedKind(Utils::PathChooser::Directory);
m_chooser->setPromptDialogTitle(tr("Select Working Directory"));
m_chooser->setBaseFileName(m_defaultWorkingDirectory);
m_chooser->setBaseDirectory(m_defaultWorkingDirectory);
m_chooser->setFileName(m_workingDirectory.isEmpty() ? m_defaultWorkingDirectory : m_workingDirectory);
connect(m_chooser.data(), &PathChooser::pathChanged, this,
[this]() {
@@ -234,7 +234,7 @@ void WorkingDirectoryAspect::setDefaultWorkingDirectory(const FilePath &defaultW
Utils::FilePath oldDefaultDir = m_defaultWorkingDirectory;
m_defaultWorkingDirectory = defaultWorkingDir;
if (m_chooser)
m_chooser->setBaseFileName(m_defaultWorkingDirectory);
m_chooser->setBaseDirectory(m_defaultWorkingDirectory);
if (m_workingDirectory.isEmpty() || m_workingDirectory == oldDefaultDir) {
if (m_chooser)

View File

@@ -229,7 +229,7 @@ void FindInFiles::setDirectory(const FilePath &directory)
void FindInFiles::setBaseDirectory(const FilePath &directory)
{
m_directory->setBaseFileName(directory);
m_directory->setBaseDirectory(directory);
}
FilePath FindInFiles::directory() const