summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/init.cpp
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-06-09 15:43:10 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-07-03 07:15:25 +0000
commitbc96616492ce642831590dad97acde9942fe7e23 (patch)
treede1e10f0ee7f115a9f409734f245f706f956e585 /src/libs/installer/init.cpp
parent99cbbd439ea1f572b4242d77035b0da3a27c79ec (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.cpp24
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);
}