diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-06-09 15:43:10 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-07-03 07:15:25 +0000 |
commit | bc96616492ce642831590dad97acde9942fe7e23 (patch) | |
tree | de1e10f0ee7f115a9f409734f245f706f956e585 /src/libs/installer/init.cpp | |
parent | 99cbbd439ea1f572b4242d77035b0da3a27c79ec (diff) |
Do not print progress indicator when forwarding output to a file
Task-number: QTIFW-1770
Change-Id: I2f3a8b440b89328fa3d183b1102d6a6db213fd3b
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/init.cpp')
-rw-r--r-- | src/libs/installer/init.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/libs/installer/init.cpp b/src/libs/installer/init.cpp index 8a13119b0..3c295d353 100644 --- a/src/libs/installer/init.cpp +++ b/src/libs/installer/init.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -47,6 +47,7 @@ #include "licenseoperation.h" #include "settingsoperation.h" #include "consumeoutputoperation.h" +#include "globals.h" #include "lib7z_facade.h" #include "utils.h" @@ -59,6 +60,12 @@ #include <iostream> +#if defined(Q_OS_UNIX) +#include <unistd.h> +#elif defined(Q_OS_WIN) +#include <fileapi.h> +#endif + using namespace KDUpdater; using namespace QInstaller; @@ -69,6 +76,8 @@ static void initResources() } #endif +static bool s_outputRedirected = false; + static QString trimAndPrepend(QtMsgType type, const QString &msg) { QString ba(msg); @@ -112,6 +121,12 @@ void messageHandler(QtMsgType type, const QMessageLogContext &context, const QSt if (msg.contains(QLatin1String("This plugin does not support propagateSizeHints"))) return; + if (context.category == lcProgressIndicator().categoryName()) { + if (!s_outputRedirected) + std::cout << msg.toStdString() << "\r" << std::flush; + return; + } + static Uptime uptime; QString ba = QLatin1Char('[') + QString::number(uptime.elapsed()) + QStringLiteral("] ") @@ -168,5 +183,10 @@ void QInstaller::init() FileDownloaderFactory::setFollowRedirects(true); - qInstallMessageHandler(messageHandler); +#if defined(Q_OS_UNIX) + s_outputRedirected = !isatty(fileno(stdout)); +#elif defined(Q_OS_WIN) + s_outputRedirected = (GetFileType(GetStdHandle(STD_OUTPUT_HANDLE)) == FILE_TYPE_DISK); +#endif + qInstallMessageHandler(messageHandler); } |