docker: Fix StringAspect default value handling

The StringAspect needs to return a possible default value if
no value was set by the user. Otherwise it would write an
empty string when ::apply was called.

Also a small improvement for docker error logging is added

Change-Id: I85f80253894d2c3e726da714616e5275039febcc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2022-07-07 08:25:03 +02:00
parent 5b683c53c3
commit 6003fe9b36
3 changed files with 13 additions and 3 deletions

View File

@@ -1196,12 +1196,18 @@ QVariant StringAspect::volatileValue() const
switch (d->m_displayStyle) {
case PathChooserDisplay:
QTC_ASSERT(d->m_pathChooserDisplay, return {});
if (d->m_pathChooserDisplay->filePath().isEmpty())
return defaultValue().toString();
return d->m_pathChooserDisplay->filePath().toString();
case LineEditDisplay:
QTC_ASSERT(d->m_lineEditDisplay, return {});
if (d->m_lineEditDisplay->text().isEmpty())
return defaultValue().toString();
return d->m_lineEditDisplay->text();
case TextEditDisplay:
QTC_ASSERT(d->m_textEditDisplay, return {});
if (d->m_textEditDisplay->document()->isEmpty())
return defaultValue().toString();
return d->m_textEditDisplay->document()->toPlainText();
case LabelDisplay:
break;

View File

@@ -451,8 +451,12 @@ void DockerDevicePrivate::startContainer()
createProcess.setCommand(dockerCreate);
createProcess.runBlocking();
if (createProcess.result() != ProcessResult::FinishedWithSuccess)
if (createProcess.result() != ProcessResult::FinishedWithSuccess) {
qCWarning(dockerDeviceLog) << "Failed creating docker container:";
qCWarning(dockerDeviceLog) << "Exit Code:" << createProcess.exitCode();
qCWarning(dockerDeviceLog) << createProcess.allOutput();
return;
}
m_container = createProcess.cleanedStdOut().trimmed();
if (m_container.isEmpty())
@@ -1094,7 +1098,7 @@ public:
m_view->setSelectionMode(QAbstractItemView::SingleSelection);
m_log = new QTextBrowser;
m_log->setVisible(false);
m_log->setVisible(dockerDeviceLog().isDebugEnabled());
const QString fail = QString{"Docker: "}
+ QCoreApplication::translate("Debugger::Internal::GdbEngine",

View File

@@ -47,7 +47,7 @@ DockerSettings::DockerSettings()
registerAspect(&dockerBinaryPath);
dockerBinaryPath.setDisplayStyle(StringAspect::PathChooserDisplay);
dockerBinaryPath.setExpectedKind(PathChooser::ExistingCommand);
dockerBinaryPath.setDefaultValue(FilePath::fromString("docker").searchInPath({"/usr/local/bin"}).toString());
dockerBinaryPath.setDefaultFilePath(FilePath::fromString("docker").searchInPath({"/usr/local/bin"}));
dockerBinaryPath.setDisplayName(tr("Docker CLI"));
dockerBinaryPath.setHistoryCompleter("Docker.Command.History");
dockerBinaryPath.setLabelText(tr("Command:"));