diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-10-09 15:03:44 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-11-05 07:43:46 +0000 |
commit | c46a6424b8130583014d61424db7c79bc7ded1c8 (patch) | |
tree | 093d5fe97c05a9c6130d6a0cc657ca92d1a6bb59 | |
parent | 27f085218c66c27546544f875a83fcf8da905f11 (diff) |
CLI: Print extra archive information with higher verbosity level
Also rework verbosity level handling to use predefined and
range constrained enumeration list values.
Task-number: QTIFW-1998
Change-Id: Iaf15ca638411e6842d3d502c4d7ff11d28d06658
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 5 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 3 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 2 | ||||
-rw-r--r-- | src/libs/installer/utils.cpp | 51 | ||||
-rw-r--r-- | src/libs/installer/utils.h | 13 | ||||
-rw-r--r-- | src/libs/kdtools/filedownloader.cpp | 5 | ||||
-rw-r--r-- | src/sdk/sdkapp.h | 2 |
7 files changed, 69 insertions, 12 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 820e939cc..2a5457b97 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -43,7 +43,6 @@ #include "remoteclient.h" #include "remotefileengine.h" #include "settings.h" -#include "utils.h" #include "installercalculator.h" #include "uninstallercalculator.h" @@ -3057,7 +3056,7 @@ bool PackageManagerCore::isVerbose() const /*! Returns verbose level. */ -uint PackageManagerCore::verboseLevel() const +VerbosityLevel PackageManagerCore::verboseLevel() const { return QInstaller::verboseLevel(); } @@ -3389,7 +3388,7 @@ bool PackageManagerCore::updateComponentData(struct Data &data, Component *compo component->setUninstalled(); const QString localPath = component->localTempPath(); - if (verboseLevel() > 1) { + if (verboseLevel() == VerbosityLevel::Detailed) { static QString lastLocalPath; if (lastLocalPath != localPath) qCDebug(QInstaller::lcDeveloperBuild()) << "Url is:" << localPath; diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index e7cadd4a8..3fce929ac 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -32,6 +32,7 @@ #include "protocol.h" #include "repository.h" #include "qinstallerglobal.h" +#include "utils.h" #include <QtCore/QHash> #include <QtCore/QObject> @@ -267,7 +268,7 @@ public: bool isVerbose() const; void setVerbose(bool on); - uint verboseLevel() const; + VerbosityLevel verboseLevel() const; Q_INVOKABLE bool gainAdminRights(); Q_INVOKABLE void dropAdminRights(); diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 8b08c3be1..3a9386816 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -447,7 +447,7 @@ bool PackageManagerCorePrivate::buildComponentTree(QHash<QString, Component*> &c restoreCheckState(); - if (m_core->verboseLevel() > 1) { + if (m_core->verboseLevel() == VerbosityLevel::Detailed) { foreach (QInstaller::Component *component, components) { const QStringList warnings = ComponentChecker::checkComponent(component); foreach (const QString &warning, warnings) diff --git a/src/libs/installer/utils.cpp b/src/libs/installer/utils.cpp index e3a18100b..76ce9a938 100644 --- a/src/libs/installer/utils.cpp +++ b/src/libs/installer/utils.cpp @@ -70,6 +70,19 @@ */ /*! + \enum QInstaller::VerbosityLevel + \brief This enum holds the possible levels of output verbosity. + + \value Silent + \value Normal + \value Detailed + \value Minimum + Minimum possible verbosity level. Synonym for \c VerbosityLevel::Silent. + \value Maximum + Maximum possible verbosity level. Synonym for \c VerbosityLevel::Detailed. +*/ + +/*! \internal */ void QInstaller::uiDetachedWait(int ms) @@ -152,7 +165,7 @@ QStringList QInstaller::localeCandidates(const QString &locale_) } -static uint verbLevel = 0; +static QInstaller::VerbosityLevel verbLevel = QInstaller::VerbosityLevel::Silent; /*! Sets to verbose output if \a v is set to \c true. Calling this multiple @@ -162,7 +175,7 @@ void QInstaller::setVerbose(bool v) { if (v) verbLevel++; - else if (verbLevel > 0) + else verbLevel--; } @@ -171,13 +184,13 @@ void QInstaller::setVerbose(bool v) */ bool QInstaller::isVerbose() { - return verbLevel > 0 ? true : false; + return verbLevel != VerbosityLevel::Silent; } /*! Returns the current verbosity level. */ -uint QInstaller::verboseLevel() +QInstaller::VerbosityLevel QInstaller::verboseLevel() { return verbLevel; } @@ -529,3 +542,33 @@ QString QInstaller::windowsErrorString(int errorCode) } #endif + +/*! + \internal + + Increments verbosity \a level. +*/ +QInstaller::VerbosityLevel &QInstaller::operator++(QInstaller::VerbosityLevel &level, int) +{ + const int i = static_cast<int>(level) + 1; + level = (i > VerbosityLevel::Maximum) + ? VerbosityLevel::Maximum + : static_cast<VerbosityLevel>(i); + + return level; +} + +/*! + \internal + + Decrements verbosity \a level. +*/ +QInstaller::VerbosityLevel &QInstaller::operator--(QInstaller::VerbosityLevel &level, int) +{ + const int i = static_cast<int>(level) - 1; + level = (i < VerbosityLevel::Minimum) + ? VerbosityLevel::Minimum + : static_cast<VerbosityLevel>(i); + + return level; +} diff --git a/src/libs/installer/utils.h b/src/libs/installer/utils.h index 055f5cc0f..0c32c1672 100644 --- a/src/libs/installer/utils.h +++ b/src/libs/installer/utils.h @@ -45,6 +45,15 @@ class QIODevice; QT_END_NAMESPACE namespace QInstaller { + + enum INSTALLER_EXPORT VerbosityLevel { + Silent = 0, + Normal = 1, + Detailed = 2, + Minimum = Silent, + Maximum = Detailed + }; + void INSTALLER_EXPORT uiDetachedWait(int ms); bool INSTALLER_EXPORT startDetached(const QString &program, const QStringList &arguments, const QString &workingDirectory, qint64 *pid = 0); @@ -65,7 +74,7 @@ namespace QInstaller { void INSTALLER_EXPORT setVerbose(bool v); bool INSTALLER_EXPORT isVerbose(); - uint INSTALLER_EXPORT verboseLevel(); + VerbosityLevel INSTALLER_EXPORT verboseLevel(); QStringList INSTALLER_EXPORT checkMutualOptions(CommandLineParser &parser, const QStringList &options); @@ -106,6 +115,8 @@ namespace QInstaller { QString currentDateTimeAsString; }; + VerbosityLevel &operator++(VerbosityLevel &level, int); + VerbosityLevel &operator--(VerbosityLevel &level, int); } #endif // QINSTALLER_UTILS_H diff --git a/src/libs/kdtools/filedownloader.cpp b/src/libs/kdtools/filedownloader.cpp index ca50e26d9..9532aef62 100644 --- a/src/libs/kdtools/filedownloader.cpp +++ b/src/libs/kdtools/filedownloader.cpp @@ -31,6 +31,7 @@ #include "ui_authenticationdialog.h" #include "fileutils.h" +#include "utils.h" #include <QDialog> #include <QDir> @@ -1398,7 +1399,9 @@ void KDUpdater::HttpDownloader::httpReqFinished() if (d->http == 0) return; const QUrl url = d->http->url(); - if (url.isValid() && QInstaller::lcServer().isDebugEnabled()){ + // Only print host information when the logging category is enabled + // and output verbosity is set above standard level. + if (url.isValid() && QInstaller::lcServer().isDebugEnabled() && verboseLevel() == VerbosityLevel::Detailed) { const QFileInfo fi(d->http->url().toString()); if (fi.suffix() != QLatin1String("sha1")){ const QString hostName = url.host(); diff --git a/src/sdk/sdkapp.h b/src/sdk/sdkapp.h index 3a32d0336..a5175e04c 100644 --- a/src/sdk/sdkapp.h +++ b/src/sdk/sdkapp.h @@ -169,7 +169,7 @@ public: "ifw.package.displayname = true\n"); } - if (QInstaller::verboseLevel() > 1) { + if (QInstaller::verboseLevel() == QInstaller::VerbosityLevel::Detailed) { loggingRules += QLatin1String("\nifw.developer.build = true\n" "ifw.package.* = true\n"); } |