summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/init.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/init.cpp')
-rw-r--r--src/libs/installer/init.cpp100
1 files changed, 5 insertions, 95 deletions
diff --git a/src/libs/installer/init.cpp b/src/libs/installer/init.cpp
index c1326824a..4aa65296f 100644
--- a/src/libs/installer/init.cpp
+++ b/src/libs/installer/init.cpp
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -47,24 +47,14 @@
#include "licenseoperation.h"
#include "settingsoperation.h"
#include "consumeoutputoperation.h"
-#include "globals.h"
+#include "loggingutils.h"
#include "lib7z_facade.h"
-#include "utils.h"
#include "updateoperationfactory.h"
#include "filedownloaderfactory.h"
#include <QtPlugin>
-#include <QElapsedTimer>
-
-#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;
@@ -76,84 +66,6 @@ static void initResources()
}
#endif
-static bool s_outputRedirected = false;
-
-static QString trimAndPrepend(QtMsgType type, const QString &msg)
-{
- QString ba(msg);
- // last character is a space from qDebug
- if (ba.endsWith(QLatin1Char(' ')))
- ba.chop(1);
-
- // remove quotes if the whole message is surrounded with them
- if (ba.startsWith(QLatin1Char('"')) && ba.endsWith(QLatin1Char('"')))
- ba = ba.mid(1, ba.length() - 2);
-
- // prepend the message type, skip QtDebugMsg
- switch (type) {
- case QtWarningMsg:
- ba.prepend(QStringLiteral("Warning: "));
- break;
-
- case QtCriticalMsg:
- ba.prepend(QStringLiteral("Critical: "));
- break;
-
- case QtFatalMsg:
- ba.prepend(QStringLiteral("Fatal: "));
- break;
-
- default:
- break;
- }
- return ba;
-}
-
-// start timer on construction (so we can use it as static member)
-class Uptime : public QElapsedTimer {
-public:
- Uptime() { start(); }
-};
-
-void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
-{
- // suppress warning from QPA minimal plugin
- 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;
- if (context.category != lcPackageInfo().categoryName()) {
- ba = QLatin1Char('[') + QString::number(uptime.elapsed()) + QStringLiteral("] ");
- }
- ba += trimAndPrepend(type, msg);
-
- if (type != QtDebugMsg && context.file) {
- ba += QString(QStringLiteral(" (%1:%2, %3)")).arg(
- QString::fromLatin1(context.file)).arg(context.line).arg(
- QString::fromLatin1(context.function));
- }
-
- if (VerboseWriter *log = VerboseWriter::instance())
- log->appendLine(ba);
-
- if (type != QtDebugMsg || isVerbose())
- std::cout << qPrintable(ba) << std::endl;
-
- if (type == QtFatalMsg) {
- QtMessageHandler oldMsgHandler = qInstallMessageHandler(nullptr);
- qt_message_output(type, context, msg);
- qInstallMessageHandler(oldMsgHandler);
- }
-}
-
/*!
Initializes the 7z library and installer resources. Registers
custom operations and installs a custom message handler.
@@ -190,10 +102,8 @@ void QInstaller::init()
FileDownloaderFactory::setFollowRedirects(true);
-#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
+ auto messageHandler = [](QtMsgType type, const QMessageLogContext &context, const QString &msg) {
+ LoggingHandler::instance().messageHandler(type, context, msg);
+ };
qInstallMessageHandler(messageHandler);
}