Utils: Approach aspect update signalling more systematicly

This was pretty much ad-hoc so far. Now do the actual value proliferation
inside the aspect first and collect information on what changed. Signal
changes in the end centrally. At that time the aspect internal state is
consistent again.

Additional design desision implemented here: setDefaultValue and
fromMap/readSetting do _not_ signal, user code with unusual needs
has to check on its own.

Change-Id: I1e46282558e014f51933d1044a72bf5c67437ec5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2023-07-28 11:08:37 +02:00
parent d7d7b4bbca
commit f09b61651e
5 changed files with 108 additions and 137 deletions

View File

@@ -2071,10 +2071,7 @@ QString CMakeBuildSystem::cmakeBuildType() const
void CMakeBuildConfiguration::setCMakeBuildType(const QString &cmakeBuildType, bool quiet)
{
if (quiet)
buildTypeAspect.setValueQuietly(cmakeBuildType);
else
buildTypeAspect.setValue(cmakeBuildType);
buildTypeAspect.setValue(cmakeBuildType, quiet ? BaseAspect::BeQuiet : BaseAspect::DoEmit);
}
namespace Internal {
@@ -2134,7 +2131,7 @@ void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringLis
// Display the unknown arguments in "Additional CMake Options"
const QString additionalOptionsValue = ProcessArgs::joinArgs(additionalOptions);
setValueQuietly(additionalOptionsValue);
setValue(additionalOptionsValue, BeQuiet);
}
void InitialCMakeArgumentsAspect::setCMakeConfiguration(const CMakeConfig &config)