From 1936103fe66e34d4676abd2049798e174474ba71 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 10 Jan 2024 18:04:51 +0100 Subject: [PATCH] AppMan: Use current setup pattern for build steps Change-Id: Ia69b9ea67fdec6a33f13fba665ee4589e82a2574 Reviewed-by: hjk --- .../appmanagercmakepackagestep.cpp | 52 +++--- .../appmanagercmakepackagestep.h | 18 +- .../appmanagercreatepackagestep.cpp | 175 +++++++++--------- .../appmanagercreatepackagestep.h | 14 +- .../appmanagerdeploypackagestep.cpp | 42 +++-- .../appmanagerdeploypackagestep.h | 10 +- .../appmanagerinstallpackagestep.cpp | 37 ++-- .../appmanagerinstallpackagestep.h | 8 +- .../appmanagermakeinstallstep.cpp | 40 ++-- .../appmanagermakeinstallstep.h | 14 +- .../qtapplicationmanager/appmanagerplugin.cpp | 15 +- .../appmanagerremoteinstallpackagestep.cpp | 38 ++-- .../appmanagerremoteinstallpackagestep.h | 8 +- 13 files changed, 239 insertions(+), 232 deletions(-) diff --git a/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.cpp b/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.cpp index b2938a50f96..fee8cd49718 100644 --- a/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.cpp +++ b/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.cpp @@ -7,7 +7,9 @@ #include "appmanagerconstants.h" #include "appmanagertargetinformation.h" +#include "appmanagertr.h" +#include #include #include #include @@ -16,32 +18,38 @@ #include using namespace ProjectExplorer; -using namespace CMakeProjectManager; using namespace Utils; -namespace AppManager { -namespace Internal { +namespace AppManager::Internal { -AppManagerCMakePackageStepFactory::AppManagerCMakePackageStepFactory() +class AppManagerCMakePackageStepFactory final : public BuildStepFactory { - cloneStepCreator(CMakeProjectManager::Constants::CMAKE_BUILD_STEP_ID, Constants::CMAKE_PACKAGE_STEP_ID); - setExtraInit([] (BuildStep *step) { - // We update the build targets when the active run configuration changes - const auto updaterSlot = [step] { - const auto targetInformation = TargetInformation(step->target()); - step->setBuildTargets({targetInformation.cmakeBuildTarget}); - step->setEnabled(!targetInformation.isBuiltin); - }; - QObject::connect(step->target(), &Target::activeRunConfigurationChanged, step, updaterSlot); - QObject::connect(step->target(), &Target::activeDeployConfigurationChanged, step, updaterSlot); - QObject::connect(step->target(), &Target::parsingFinished, step, updaterSlot); - QObject::connect(step->target(), &Target::runConfigurationsUpdated, step, updaterSlot); - QObject::connect(step->project(), &Project::displayNameChanged, step, updaterSlot); - }); +public: + AppManagerCMakePackageStepFactory() + { + cloneStepCreator(CMakeProjectManager::Constants::CMAKE_BUILD_STEP_ID, Constants::CMAKE_PACKAGE_STEP_ID); + setExtraInit([] (BuildStep *step) { + // We update the build targets when the active run configuration changes + const auto updaterSlot = [step] { + const TargetInformation targetInformation(step->target()); + step->setBuildTargets({targetInformation.cmakeBuildTarget}); + step->setEnabled(!targetInformation.isBuiltin); + }; + QObject::connect(step->target(), &Target::activeRunConfigurationChanged, step, updaterSlot); + QObject::connect(step->target(), &Target::activeDeployConfigurationChanged, step, updaterSlot); + QObject::connect(step->target(), &Target::parsingFinished, step, updaterSlot); + QObject::connect(step->target(), &Target::runConfigurationsUpdated, step, updaterSlot); + QObject::connect(step->project(), &Project::displayNameChanged, step, updaterSlot); + }); - setDisplayName(tr("Create Appman package with CMake")); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + setDisplayName(Tr::tr("Create Appman package with CMake")); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + +void setupAppManagerCMakePackageStep() +{ + static AppManagerCMakePackageStepFactory theAppManagerCMakePackageStepFactory; } -} // namespace Internal -} // namespace AppManager +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.h b/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.h index 0cb890746a6..2b8e88ca640 100644 --- a/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.h +++ b/src/plugins/qtapplicationmanager/appmanagercmakepackagestep.h @@ -5,20 +5,8 @@ #pragma once -#include +namespace AppManager::Internal { -#include +void setupAppManagerCMakePackageStep(); -namespace AppManager { -namespace Internal { - -class AppManagerCMakePackageStepFactory final : public ProjectExplorer::BuildStepFactory -{ - Q_DECLARE_TR_FUNCTIONS(Qtc::AppManager) - -public: - AppManagerCMakePackageStepFactory(); -}; - -} // namespace Internal -} // namespace AppManager +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.cpp b/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.cpp index 7f369526e30..4df49e2818e 100644 --- a/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.cpp +++ b/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.cpp @@ -8,9 +8,11 @@ #include "appmanagerconstants.h" #include "appmanagerstringaspect.h" #include "appmanagertargetinformation.h" +#include "appmanagertr.h" #include "appmanagerutilities.h" #include +#include #include #include #include @@ -21,8 +23,7 @@ using namespace ProjectExplorer; using namespace Utils; -namespace AppManager { -namespace Internal { +namespace AppManager::Internal { #define SETTINGSPREFIX "ApplicationManagerPlugin.Deploy.CreatePackageStep." @@ -31,9 +32,80 @@ const char ArgumentsDefault[] = "create-package --verbose --json"; class AppManagerCreatePackageStep final : public AbstractProcessStep { public: - AppManagerCreatePackageStep(BuildStepList *bsl, Id id); + AppManagerCreatePackageStep(BuildStepList *bsl, Id id) + : AbstractProcessStep(bsl, id) + { + setDisplayName(Tr::tr("Create Application Manager package")); - bool init() final; + executable.setSettingsKey(SETTINGSPREFIX "Executable"); + executable.setHistoryCompleter(SETTINGSPREFIX "Executable.History"); + executable.setExpectedKind(PathChooser::ExistingCommand); + executable.setLabelText(Tr::tr("Executable:")); + executable.setPromptDialogFilter(getToolNameByDevice(Constants::APPMAN_PACKAGER)); + + arguments.setSettingsKey(SETTINGSPREFIX "Arguments"); + arguments.setHistoryCompleter(SETTINGSPREFIX "Arguments.History"); + arguments.setDisplayStyle(StringAspect::LineEditDisplay); + arguments.setLabelText(Tr::tr("Arguments:")); + + sourceDirectory.setSettingsKey(SETTINGSPREFIX "SourceDirectory"); + sourceDirectory.setHistoryCompleter(SETTINGSPREFIX "SourceDirectory.History"); + sourceDirectory.setExpectedKind(PathChooser::Directory); + sourceDirectory.setLabelText(Tr::tr("Source directory:")); + + buildDirectory.setSettingsKey(SETTINGSPREFIX "BuildDirectory"); + buildDirectory.setHistoryCompleter(SETTINGSPREFIX "BuildDirectory.History"); + buildDirectory.setExpectedKind(PathChooser::Directory); + buildDirectory.setLabelText(Tr::tr("Build directory:")); + + packageFileName.setSettingsKey(SETTINGSPREFIX "FileName"); + packageFileName.setHistoryCompleter(SETTINGSPREFIX "FileName.History"); + packageFileName.setDisplayStyle(StringAspect::LineEditDisplay); + packageFileName.setLabelText(Tr::tr("Package file name:")); + + const auto updateAspects = [this] { + const auto targetInformation = TargetInformation(target()); + + executable.setPlaceHolderPath(getToolFilePath(Constants::APPMAN_PACKAGER, target()->kit(), nullptr)); + arguments.setPlaceHolderText(ArgumentsDefault); + sourceDirectory.setPlaceHolderPath(targetInformation.packageSourcesDirectory.absolutePath()); + buildDirectory.setPlaceHolderPath(targetInformation.buildDirectory.absolutePath()); + packageFileName.setPlaceHolderText(targetInformation.packageFile.fileName()); + + setEnabled(!targetInformation.isBuiltin); + }; + + connect(target(), &Target::activeRunConfigurationChanged, this, updateAspects); + connect(target(), &Target::activeDeployConfigurationChanged, this, updateAspects); + connect(target(), &Target::parsingFinished, this, updateAspects); + connect(target(), &Target::runConfigurationsUpdated, this, updateAspects); + connect(project(), &Project::displayNameChanged, this, updateAspects); + updateAspects(); + } + + bool init() final + { + if (!AbstractProcessStep::init()) + return false; + + const auto targetInformation = TargetInformation(target()); + if (!targetInformation.isValid()) + return false; + + const FilePath packager = executable.valueOrDefault(getToolFilePath(Constants::APPMAN_PACKAGER, target()->kit(), nullptr)); + const QString packagerArguments = arguments.valueOrDefault(ArgumentsDefault); + const FilePath packageSourcesDirectory = sourceDirectory.valueOrDefault(targetInformation.packageSourcesDirectory.absolutePath()); + const FilePath packageDirectory = buildDirectory.valueOrDefault(targetInformation.buildDirectory.absolutePath()); + const QString packageFile = packageFileName.valueOrDefault(targetInformation.packageFile.fileName()); + + CommandLine cmd(packager); + cmd.addArgs(packagerArguments, CommandLine::Raw); + cmd.addArgs({packageFile, packageSourcesDirectory.path()}); + processParameters()->setWorkingDirectory(packageDirectory); + processParameters()->setCommandLine(cmd); + + return true; + } private: AppManagerFilePathAspect executable{this}; @@ -43,89 +115,22 @@ private: AppManagerStringAspect packageFileName{this}; }; -AppManagerCreatePackageStep::AppManagerCreatePackageStep(BuildStepList *bsl, Id id) - : AbstractProcessStep(bsl, id) -{ - setDisplayName(tr("Create Application Manager package")); - - executable.setSettingsKey(SETTINGSPREFIX "Executable"); - executable.setHistoryCompleter(SETTINGSPREFIX "Executable.History"); - executable.setExpectedKind(PathChooser::ExistingCommand); - executable.setLabelText(tr("Executable:")); - executable.setPromptDialogFilter(getToolNameByDevice(Constants::APPMAN_PACKAGER)); - - arguments.setSettingsKey(SETTINGSPREFIX "Arguments"); - arguments.setHistoryCompleter(SETTINGSPREFIX "Arguments.History"); - arguments.setDisplayStyle(StringAspect::LineEditDisplay); - arguments.setLabelText(tr("Arguments:")); - - sourceDirectory.setSettingsKey(SETTINGSPREFIX "SourceDirectory"); - sourceDirectory.setHistoryCompleter(SETTINGSPREFIX "SourceDirectory.History"); - sourceDirectory.setExpectedKind(PathChooser::Directory); - sourceDirectory.setLabelText(tr("Source directory:")); - - buildDirectory.setSettingsKey(SETTINGSPREFIX "BuildDirectory"); - buildDirectory.setHistoryCompleter(SETTINGSPREFIX "BuildDirectory.History"); - buildDirectory.setExpectedKind(PathChooser::Directory); - buildDirectory.setLabelText(tr("Build directory:")); - - packageFileName.setSettingsKey(SETTINGSPREFIX "FileName"); - packageFileName.setHistoryCompleter(SETTINGSPREFIX "FileName.History"); - packageFileName.setDisplayStyle(StringAspect::LineEditDisplay); - packageFileName.setLabelText(tr("Package file name:")); - - const auto updateAspects = [this] { - const auto targetInformation = TargetInformation(target()); - - executable.setPlaceHolderPath(getToolFilePath(Constants::APPMAN_PACKAGER, target()->kit(), nullptr)); - arguments.setPlaceHolderText(ArgumentsDefault); - sourceDirectory.setPlaceHolderPath(targetInformation.packageSourcesDirectory.absolutePath()); - buildDirectory.setPlaceHolderPath(targetInformation.buildDirectory.absolutePath()); - packageFileName.setPlaceHolderText(targetInformation.packageFile.fileName()); - - setEnabled(!targetInformation.isBuiltin); - }; - - connect(target(), &Target::activeRunConfigurationChanged, this, updateAspects); - connect(target(), &Target::activeDeployConfigurationChanged, this, updateAspects); - connect(target(), &Target::parsingFinished, this, updateAspects); - connect(target(), &Target::runConfigurationsUpdated, this, updateAspects); - connect(project(), &Project::displayNameChanged, this, updateAspects); - updateAspects(); -} - -bool AppManagerCreatePackageStep::init() -{ - if (!AbstractProcessStep::init()) - return false; - - const auto targetInformation = TargetInformation(target()); - if (!targetInformation.isValid()) - return false; - - const FilePath packager = executable.valueOrDefault(getToolFilePath(Constants::APPMAN_PACKAGER, target()->kit(), nullptr)); - const QString packagerArguments = arguments.valueOrDefault(ArgumentsDefault); - const FilePath packageSourcesDirectory = sourceDirectory.valueOrDefault(targetInformation.packageSourcesDirectory.absolutePath()); - const FilePath packageDirectory = buildDirectory.valueOrDefault(targetInformation.buildDirectory.absolutePath()); - const QString packageFile = packageFileName.valueOrDefault(targetInformation.packageFile.fileName()); - - CommandLine cmd(packager); - cmd.addArgs(packagerArguments, CommandLine::Raw); - cmd.addArgs({packageFile, packageSourcesDirectory.path()}); - processParameters()->setWorkingDirectory(packageDirectory); - processParameters()->setCommandLine(cmd); - - return true; -} - // Factory -AppManagerCreatePackageStepFactory::AppManagerCreatePackageStepFactory() +class AppManagerCreatePackageStepFactory final : public BuildStepFactory { - registerStep(Constants::CREATE_PACKAGE_STEP_ID); - setDisplayName(AppManagerCreatePackageStep::tr("Create Application Manager package")); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); +public: + AppManagerCreatePackageStepFactory() + { + registerStep(Constants::CREATE_PACKAGE_STEP_ID); + setDisplayName(Tr::tr("Create Application Manager package")); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + +void setupAppManagerCreatePackageStep() +{ + static AppManagerCreatePackageStepFactory theAppManagerCreatePackageStepFactory; } -} // namespace Internal -} // namespace AppManager +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.h b/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.h index 5c4aedafad9..c8d12b7beb3 100644 --- a/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.h +++ b/src/plugins/qtapplicationmanager/appmanagercreatepackagestep.h @@ -5,16 +5,8 @@ #pragma once -#include +namespace AppManager::Internal { -namespace AppManager { -namespace Internal { +void setupAppManagerCreatePackageStep(); -class AppManagerCreatePackageStepFactory final : public ProjectExplorer::BuildStepFactory -{ -public: - AppManagerCreatePackageStepFactory(); -}; - -} // namespace Internal -} // namespace AppManager +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.cpp b/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.cpp index 76f054c9faa..697b9366bf0 100644 --- a/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.cpp +++ b/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.cpp @@ -8,7 +8,9 @@ #include "appmanagerconstants.h" #include "appmanagerstringaspect.h" #include "appmanagertargetinformation.h" +#include "appmanagertr.h" +#include #include #include #include @@ -30,27 +32,25 @@ namespace AppManager::Internal { class AppManagerDeployPackageStep : public BuildStep { - Q_DECLARE_TR_FUNCTIONS(AppManager::Internal::AppManagerDeployPackageStep) - public: AppManagerDeployPackageStep(BuildStepList *bsl, Id id) : BuildStep(bsl, id) { - setDisplayName(tr("Deploy Application Manager package")); + setDisplayName(Tr::tr("Deploy Application Manager package")); packageFilePath.setSettingsKey(SETTINGSPREFIX "FilePath"); packageFilePath.setHistoryCompleter(SETTINGSPREFIX "FilePath.History"); packageFilePath.setExpectedKind(PathChooser::File); - packageFilePath.setLabelText(tr("Package file path:")); + packageFilePath.setLabelText(Tr::tr("Package file path:")); targetDirectory.setSettingsKey(SETTINGSPREFIX "TargetDirectory"); targetDirectory.setHistoryCompleter(SETTINGSPREFIX "TargetDirectory.History"); targetDirectory.setExpectedKind(PathChooser::Directory); - targetDirectory.setLabelText(tr("Target directory:")); + targetDirectory.setLabelText(Tr::tr("Target directory:")); targetDirectory.setButtonsVisible(false); const auto updateAspects = [this] { - const auto targetInformation = TargetInformation(target()); + const TargetInformation targetInformation(target()); packageFilePath.setPlaceHolderPath(targetInformation.packageFile.absoluteFilePath()); targetDirectory.setPlaceHolderPath(targetInformation.runDirectory.absolutePath()); @@ -68,8 +68,13 @@ public: } private: - bool init() final { return TargetInformation(target()).isValid(); } - GroupItem runRecipe() final { + bool init() final + { + return TargetInformation(target()).isValid(); + } + + GroupItem runRecipe() final + { const auto onSetup = [this](FileStreamer &streamer) { const TargetInformation targetInformation(target()); const FilePath source = packageFilePath.valueOrDefault( @@ -84,9 +89,9 @@ private: }; const auto onDone = [this](DoneWith result) { if (result == DoneWith::Success) - emit addOutput(tr("Uploading finished"), OutputFormat::NormalMessage); + emit addOutput(Tr::tr("Uploading finished"), OutputFormat::NormalMessage); else - emit addOutput(tr("Uploading failed"), OutputFormat::ErrorMessage); + emit addOutput(Tr::tr("Uploading failed"), OutputFormat::ErrorMessage); }; return FileStreamerTask(onSetup, onDone); } @@ -97,11 +102,20 @@ private: // Factory -AppManagerDeployPackageStepFactory::AppManagerDeployPackageStepFactory() +class AppManagerDeployPackageStepFactory final : public BuildStepFactory { - registerStep(Constants::DEPLOY_PACKAGE_STEP_ID); - setDisplayName(AppManagerDeployPackageStep::tr("Deploy Application Manager package")); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); +public: + AppManagerDeployPackageStepFactory() + { + registerStep(Constants::DEPLOY_PACKAGE_STEP_ID); + setDisplayName(Tr::tr("Deploy Application Manager package")); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + +void setupAppManagerDeployPackageStep() +{ + static AppManagerDeployPackageStepFactory theAppManagerDeployPackageStepFactory; } } // namespace AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.h b/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.h index 63d0e23e199..a8093fa4e92 100644 --- a/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.h +++ b/src/plugins/qtapplicationmanager/appmanagerdeploypackagestep.h @@ -5,14 +5,8 @@ #pragma once -#include - namespace AppManager::Internal { -class AppManagerDeployPackageStepFactory final : public ProjectExplorer::BuildStepFactory -{ -public: - AppManagerDeployPackageStepFactory(); -}; +void setupAppManagerDeployPackageStep(); -} // namespace AppManager::Internal +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.cpp b/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.cpp index 2e5ab7a460a..79895da02aa 100644 --- a/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.cpp +++ b/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.cpp @@ -8,9 +8,11 @@ #include "appmanagerstringaspect.h" #include "appmanagerconstants.h" #include "appmanagertargetinformation.h" +#include "appmanagertr.h" #include "appmanagerutilities.h" #include +#include #include #include #include @@ -46,26 +48,26 @@ private: AppManagerInstallPackageStep::AppManagerInstallPackageStep(BuildStepList *bsl, Id id) : AbstractProcessStep(bsl, id) { - setDisplayName(tr("Install Application Manager package")); + setDisplayName(Tr::tr("Install Application Manager package")); executable.setSettingsKey(SETTINGSPREFIX "Executable"); executable.setHistoryCompleter(SETTINGSPREFIX "Executable.History"); - executable.setLabelText(tr("Executable:")); + executable.setLabelText(Tr::tr("Executable:")); arguments.setSettingsKey(SETTINGSPREFIX "Arguments"); arguments.setHistoryCompleter(SETTINGSPREFIX "Arguments.History"); arguments.setDisplayStyle(StringAspect::LineEditDisplay); - arguments.setLabelText(tr("Arguments:")); + arguments.setLabelText(Tr::tr("Arguments:")); packageFileName.setSettingsKey(SETTINGSPREFIX "FileName"); packageFileName.setHistoryCompleter(SETTINGSPREFIX "FileName.History"); packageFileName.setDisplayStyle(StringAspect::LineEditDisplay); - packageFileName.setLabelText(tr("File name:")); + packageFileName.setLabelText(Tr::tr("File name:")); packageDirectory.setSettingsKey(SETTINGSPREFIX "Directory"); packageDirectory.setHistoryCompleter(SETTINGSPREFIX "Directory.History"); packageDirectory.setExpectedKind(PathChooser::Directory); - packageDirectory.setLabelText(tr("Directory:")); + packageDirectory.setLabelText(Tr::tr("Directory:")); const auto updateAspects = [this] { const TargetInformation targetInformation(target()); @@ -77,8 +79,8 @@ AppManagerInstallPackageStep::AppManagerInstallPackageStep(BuildStepList *bsl, I arguments.setPlaceHolderText(ArgumentsDefault); packageFileName.setPlaceHolderText(targetInformation.packageFile.fileName()); auto device = DeviceKitAspect::device(target()->kit()); - auto remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; - auto packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); + bool remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; + QDir packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); packageDirectory.setPlaceHolderPath(packageDirectoryPath.absolutePath()); packageDirectory.setButtonsVisible(!targetInformation.remote); @@ -106,8 +108,8 @@ bool AppManagerInstallPackageStep::init() const QString controllerArguments = arguments.valueOrDefault(ArgumentsDefault); const QString packageFile = packageFileName.valueOrDefault(targetInformation.packageFile.fileName()); auto device = DeviceKitAspect::device(target()->kit()); - auto remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; - auto packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); + bool remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; + QDir packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); const FilePath packageDir = packageDirectory.valueOrDefault(packageDirectoryPath.absolutePath()); CommandLine cmd(targetInformation.device->filePath(controller.path())); @@ -121,11 +123,20 @@ bool AppManagerInstallPackageStep::init() // Factory -AppManagerInstallPackageStepFactory::AppManagerInstallPackageStepFactory() +class AppManagerInstallPackageStepFactory final : public BuildStepFactory { - registerStep(Constants::INSTALL_PACKAGE_STEP_ID); - setDisplayName(AppManagerInstallPackageStep::tr("Install Application Manager package")); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); +public: + AppManagerInstallPackageStepFactory() + { + registerStep(Constants::INSTALL_PACKAGE_STEP_ID); + setDisplayName(Tr::tr("Install Application Manager package")); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + +void setupAppManagerInstallPackageStep() +{ + static AppManagerInstallPackageStepFactory theAppManagerInstallPackageStepFactory; } } // namespace AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.h b/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.h index 775b1195cfb..7bc2a4b72b9 100644 --- a/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.h +++ b/src/plugins/qtapplicationmanager/appmanagerinstallpackagestep.h @@ -5,14 +5,8 @@ #pragma once -#include - namespace AppManager::Internal { -class AppManagerInstallPackageStepFactory final : public ProjectExplorer::BuildStepFactory -{ -public: - AppManagerInstallPackageStepFactory(); -}; +void setupAppManagerInstallPackageStep(); } // namespace AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.cpp b/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.cpp index 680fa4aa118..19b950d9e2a 100644 --- a/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.cpp +++ b/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.cpp @@ -8,6 +8,7 @@ #include "appmanagerconstants.h" #include "appmanagertargetinformation.h" +#include #include #include #include @@ -15,15 +16,12 @@ using namespace ProjectExplorer; using namespace Utils; -namespace AppManager { -namespace Internal { +namespace AppManager::Internal { -class AppManagerMakeInstallStep final : public ProjectExplorer::MakeStep +class AppManagerMakeInstallStep final : public MakeStep { - Q_DECLARE_TR_FUNCTIONS(AppManager::Internal::AppManagerMakeInstallStep) - public: - AppManagerMakeInstallStep(BuildStepList *bsl, Utils::Id id) + AppManagerMakeInstallStep(BuildStepList *bsl, Id id) : MakeStep(bsl, id) { setSelectedBuildTarget("install"); @@ -34,16 +32,16 @@ public: if (!MakeStep::init()) return false; - const auto targetInformation = TargetInformation(target()); + const TargetInformation targetInformation(target()); if (!targetInformation.isValid()) return false; - const auto buildDirectoryPath = targetInformation.buildDirectory.absolutePath(); + const QString buildDirectoryPath = targetInformation.buildDirectory.absolutePath(); if (buildDirectoryPath.isEmpty()) return false; - const auto buildDirectoryPathQuoted = ProcessArgs::quoteArg(QDir::toNativeSeparators(buildDirectoryPath)); - const auto installRoot = QString("INSTALL_ROOT=%1").arg(buildDirectoryPathQuoted); + const QString buildDirectoryPathQuoted = ProcessArgs::quoteArg(QDir::toNativeSeparators(buildDirectoryPath)); + const QString installRoot = QString("INSTALL_ROOT=%1").arg(buildDirectoryPathQuoted); processParameters()->setWorkingDirectory(FilePath::fromString(buildDirectoryPath)); @@ -55,14 +53,20 @@ public: } }; -// Factory - -AppManagerMakeInstallStepFactory::AppManagerMakeInstallStepFactory() +class AppManagerMakeInstallStepFactory final : public BuildStepFactory { - registerStep(Constants::MAKE_INSTALL_STEP_ID); - setDisplayName(AppManagerMakeInstallStep::tr("Make install")); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); +public: + AppManagerMakeInstallStepFactory() + { + registerStep(Constants::MAKE_INSTALL_STEP_ID); + setDisplayName(AppManagerMakeInstallStep::tr("Make install")); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + +void setupAppManagerMakeInstallStep() +{ + static AppManagerMakeInstallStepFactory theAppManagerMakeInstallStepFactory; } -} // namespace Internal -} // namespace AppManager +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.h b/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.h index f984b8f5ca7..b8a87ca3ab8 100644 --- a/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.h +++ b/src/plugins/qtapplicationmanager/appmanagermakeinstallstep.h @@ -5,16 +5,8 @@ #pragma once -#include +namespace AppManager::Internal { -namespace AppManager { -namespace Internal { +void setupAppManagerMakeInstallStep(); -class AppManagerMakeInstallStepFactory final : public ProjectExplorer::BuildStepFactory -{ -public: - AppManagerMakeInstallStepFactory(); -}; - -} // namespace Internal -} // namespace AppManager +} // AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagerplugin.cpp b/src/plugins/qtapplicationmanager/appmanagerplugin.cpp index d62fba2a07e..d02dc88db56 100644 --- a/src/plugins/qtapplicationmanager/appmanagerplugin.cpp +++ b/src/plugins/qtapplicationmanager/appmanagerplugin.cpp @@ -5,7 +5,6 @@ #include "appmanagerplugin.h" -#include "appmanagerconstants.h" #include "appmanagercreatepackagestep.h" #include "appmanagerdeployconfigurationautoswitcher.h" #include "appmanagerdeployconfigurationfactory.h" @@ -74,13 +73,6 @@ void cloneAutodetectedBoot2QtKits() class AppManagerPluginPrivate { public: - AppManagerCMakePackageStepFactory cmakePackageStepFactory; - AppManagerMakeInstallStepFactory makeInstallStepFactory; - AppManagerCreatePackageStepFactory createPackageStepFactory; - AppManagerDeployPackageStepFactory deployPackageStepFactory; - AppManagerInstallPackageStepFactory installPackageStepFactory; - AppManagerRemoteInstallPackageStepFactory remoteInstallPackageStepFactory; - AppManagerDeployConfigurationAutoSwitcher deployConfigurationAutoSwitcher; AppManagerDeployConfigurationFactory deployConfigFactory; @@ -96,6 +88,13 @@ AppManagerPlugin::~AppManagerPlugin() void AppManagerPlugin::initialize() { + setupAppManagerCMakePackageStep(); + setupAppManagerMakeInstallStep(); + setupAppManagerCreatePackageStep(); + setupAppManagerDeployPackageStep(); + setupAppManagerInstallPackageStep(); + setupAppManagerRemoteInstallPackageStep(); + d = new AppManagerPluginPrivate; d->deployConfigurationAutoSwitcher.initialize(); diff --git a/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.cpp b/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.cpp index 4c9986f6908..d36045f9d90 100644 --- a/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.cpp +++ b/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.cpp @@ -8,16 +8,19 @@ #include "appmanagerstringaspect.h" #include "appmanagerconstants.h" #include "appmanagertargetinformation.h" +#include "appmanagertr.h" #include "appmanagerutilities.h" #include + +#include #include +#include +#include #include #include #include -#include -#include #include using namespace ProjectExplorer; @@ -83,8 +86,8 @@ AppManagerRemoteInstallPackageStep::AppManagerRemoteInstallPackageStep(BuildStep arguments.setPlaceHolderText(ArgumentsDefault); packageFileName.setPlaceHolderText(targetInformation.packageFile.fileName()); auto device = DeviceKitAspect::device(target()->kit()); - auto remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; - auto packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); + bool remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; + QDir packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); packageDirectory.setPlaceHolderPath(packageDirectoryPath.absolutePath()); packageDirectory.setButtonsVisible(!targetInformation.remote); @@ -107,8 +110,8 @@ GroupItem AppManagerRemoteInstallPackageStep::deployRecipe() const QString controllerArguments = arguments.valueOrDefault(ArgumentsDefault); const QString packageFile = packageFileName.valueOrDefault(targetInformation.packageFile.fileName()); auto device = DeviceKitAspect::device(target()->kit()); - auto remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; - auto packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); + bool remote = device && device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE; + QDir packageDirectoryPath = remote ? QDir(Constants::REMOTE_DEFAULT_TMP_PATH) : targetInformation.packageFile.absolutePath(); const FilePath packageDir = packageDirectory.valueOrDefault(packageDirectoryPath.absolutePath()); const auto setupHandler = [=](Process &process) { @@ -120,7 +123,7 @@ GroupItem AppManagerRemoteInstallPackageStep::deployRecipe() cmd.addArg("-c"); cmd.addCommandLineAsSingleArg(remoteCmd); - addProgressMessage(tr("Starting remote command \"%1\"...").arg(cmd.toUserOutput())); + addProgressMessage(Tr::tr("Starting remote command \"%1\"...").arg(cmd.toUserOutput())); process.setCommand(cmd); Process *proc = &process; connect(proc, &Process::readyReadStandardOutput, this, [this, proc] { @@ -136,9 +139,9 @@ GroupItem AppManagerRemoteInstallPackageStep::deployRecipe() } else { if (process.error() != QProcess::UnknownError || process.exitStatus() != QProcess::NormalExit) { - addErrorMessage(tr("Remote process failed: %1").arg(process.errorString())); + addErrorMessage(Tr::tr("Remote process failed: %1").arg(process.errorString())); } else if (process.exitCode() != 0) { - addErrorMessage(tr("Remote process finished with exit code %1.") + addErrorMessage(Tr::tr("Remote process finished with exit code %1.") .arg(process.exitCode())); } } @@ -149,11 +152,20 @@ GroupItem AppManagerRemoteInstallPackageStep::deployRecipe() // Factory -AppManagerRemoteInstallPackageStepFactory::AppManagerRemoteInstallPackageStepFactory() +class AppManagerRemoteInstallPackageStepFactory final : public BuildStepFactory { - registerStep(Constants::REMOTE_INSTALL_PACKAGE_STEP_ID); - setDisplayName(AppManagerRemoteInstallPackageStep::tr("Remote Install Application Manager package")); - setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); +public: + AppManagerRemoteInstallPackageStepFactory() + { + registerStep(Constants::REMOTE_INSTALL_PACKAGE_STEP_ID); + setDisplayName(Tr::tr("Remote Install Application Manager package")); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + +void setupAppManagerRemoteInstallPackageStep() +{ + static AppManagerRemoteInstallPackageStepFactory theAppManagerRemoteInstallPackageStepFactory; } } // namespace AppManager::Internal diff --git a/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.h b/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.h index 643b0649215..06d7fdb56b9 100644 --- a/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.h +++ b/src/plugins/qtapplicationmanager/appmanagerremoteinstallpackagestep.h @@ -5,14 +5,8 @@ #pragma once -#include - namespace AppManager::Internal { -class AppManagerRemoteInstallPackageStepFactory final : public ProjectExplorer::BuildStepFactory -{ -public: - AppManagerRemoteInstallPackageStepFactory(); -}; +void setupAppManagerRemoteInstallPackageStep(); } // namespace AppManager::Internal