diff options
Diffstat (limited to 'sources/shiboken2/ApiExtractor/reporthandler.cpp')
-rw-r--r-- | sources/shiboken2/ApiExtractor/reporthandler.cpp | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/sources/shiboken2/ApiExtractor/reporthandler.cpp b/sources/shiboken2/ApiExtractor/reporthandler.cpp deleted file mode 100644 index 2c6ab444b..000000000 --- a/sources/shiboken2/ApiExtractor/reporthandler.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt for Python. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "reporthandler.h" -#include "typesystem.h" -#include "typedatabase.h" -#include <QtCore/QElapsedTimer> -#include <QtCore/QSet> -#include <cstring> -#include <cstdarg> -#include <cstdio> - -#if defined(_WINDOWS) || defined(NOCOLOR) - #define COLOR_END "" - #define COLOR_WHITE "" - #define COLOR_YELLOW "" - #define COLOR_GREEN "" -#else - #define COLOR_END "\033[0m" - #define COLOR_WHITE "\033[1;37m" - #define COLOR_YELLOW "\033[1;33m" - #define COLOR_GREEN "\033[0;32m" -#endif - -static bool m_silent = false; -static int m_warningCount = 0; -static int m_suppressedCount = 0; -static ReportHandler::DebugLevel m_debugLevel = ReportHandler::NoDebug; -static QSet<QString> m_reportedWarnings; -static QString m_prefix; -static bool m_withinProgress = false; -static int m_step_warning = 0; -static QElapsedTimer m_timer; - -Q_LOGGING_CATEGORY(lcShiboken, "qt.shiboken") -Q_LOGGING_CATEGORY(lcShibokenDoc, "qt.shiboken.doc") - -void ReportHandler::install() -{ - qInstallMessageHandler(ReportHandler::messageOutput); - startTimer(); -} - -void ReportHandler::startTimer() -{ - m_timer.start(); -} - -ReportHandler::DebugLevel ReportHandler::debugLevel() -{ - return m_debugLevel; -} - -void ReportHandler::setDebugLevel(ReportHandler::DebugLevel level) -{ - m_debugLevel = level; -} - -bool ReportHandler::setDebugLevelFromArg(const QString &level) -{ - bool result = true; - if (level == QLatin1String("sparse")) - ReportHandler::setDebugLevel(ReportHandler::SparseDebug); - else if (level == QLatin1String("medium")) - ReportHandler::setDebugLevel(ReportHandler::MediumDebug); - else if (level == QLatin1String("full")) - ReportHandler::setDebugLevel(ReportHandler::FullDebug); - else - result = false; - return result; -} - -int ReportHandler::suppressedCount() -{ - return m_suppressedCount; -} - -int ReportHandler::warningCount() -{ - return m_warningCount; -} - -bool ReportHandler::isSilent() -{ - return m_silent; -} - -void ReportHandler::setSilent(bool silent) -{ - m_silent = silent; -} - -void ReportHandler::setPrefix(const QString &p) -{ - m_prefix = p; -} - -void ReportHandler::messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &text) -{ - // Check for file location separator added by SourceLocation - int fileLocationPos = text.indexOf(QLatin1String(":\t")); - if (type == QtWarningMsg) { - if (m_silent || m_reportedWarnings.contains(text)) - return; - if (auto db = TypeDatabase::instance()) { - const bool suppressed = fileLocationPos >= 0 - ? db->isSuppressedWarning(text.midRef(fileLocationPos + 2)) - : db->isSuppressedWarning(text); - if (suppressed) { - ++m_suppressedCount; - return; - } - } - ++m_warningCount; - ++m_step_warning; - m_reportedWarnings.insert(text); - } - QString message = m_prefix; - if (!message.isEmpty()) - message.append(QLatin1Char(' ')); - const int prefixLength = message.size(); - message.append(text); - // Replace file location tab by space - if (fileLocationPos >= 0) - message[prefixLength + fileLocationPos + 1] = QLatin1Char(' '); - fprintf(stderr, "%s\n", qPrintable(qFormatLogMessage(type, context, message))); -} - -static QByteArray timeStamp() -{ - const qint64 elapsed = m_timer.elapsed(); - return elapsed > 5000 - ? QByteArray::number(elapsed / 1000) + 's' - : QByteArray::number(elapsed) + "ms"; -} - -void ReportHandler::startProgress(const QByteArray& str) -{ - if (m_silent) - return; - - if (m_withinProgress) - endProgress(); - - m_withinProgress = true; - const auto ts = '[' + timeStamp() + ']'; - std::printf("%s %8s %-60s", qPrintable(m_prefix), ts.constData(), str.constData()); - std::fflush(stdout); -} - -void ReportHandler::endProgress() -{ - if (m_silent) - return; - - m_withinProgress = false; - const char *endMessage = m_step_warning == 0 - ? "[" COLOR_GREEN "OK" COLOR_END "]\n" - : "[" COLOR_YELLOW "WARNING" COLOR_END "]\n"; - std::fputs(endMessage, stdout); - std::fflush(stdout); - m_step_warning = 0; -} - -QByteArray ReportHandler::doneMessage() -{ - QByteArray result = "Done, " + m_prefix.toUtf8() + ' ' + timeStamp(); - if (m_warningCount) - result += ", " + QByteArray::number(m_warningCount) + " warnings"; - if (m_suppressedCount) - result += " (" + QByteArray::number(m_suppressedCount) + " known issues)"; - return result; -} |