File indexing completed on 2024-04-28 05:45:32

0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0002 // SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org>
0003 
0004 #pragma once
0005 
0006 #include <QObject>
0007 
0008 // Installs a qt message handler to capture all qDebugs inside the process
0009 // so we can display them to the user on error in hopes of the user telling us
0010 // and the log making it easier to figure out what went wrong.
0011 class Logger : public QObject
0012 {
0013     Q_OBJECT
0014 public:
0015     // Singleton instance
0016     static Logger *instance();
0017     // Installs the qMessageHandler
0018     void install();
0019     // Dump the captured log
0020     Q_INVOKABLE QStringList log();
0021 
0022 private:
0023     static void handler(QtMsgType type, const QMessageLogContext &context, const QString &msg);
0024 
0025     QtMessageHandler previousHandler = nullptr;
0026     QStringList data;
0027 };