File indexing completed on 2024-06-23 04:26:26
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef _LOGDOCKER_DOCK_H_ 0008 #define _LOGDOCKER_DOCK_H_ 0009 0010 #include <QDockWidget> 0011 0012 #include <kis_mainwindow_observer.h> 0013 0014 #include "ui_WdgLogDocker.h" 0015 class MessageSender : public QObject 0016 { 0017 Q_OBJECT 0018 public: 0019 0020 MessageSender() : QObject() {} 0021 ~MessageSender() override {} 0022 0023 void sendMessage(QtMsgType type, const QString &msg); 0024 0025 Q_SIGNALS: 0026 0027 void emitMessage(QtMsgType type, const QString &msg); 0028 0029 }; 0030 0031 class LogDockerDock : public QDockWidget, public KisMainwindowObserver, public Ui_WdgLogDocker { 0032 Q_OBJECT 0033 public: 0034 LogDockerDock( ); 0035 QString observerName() override { return "LogDockerDock"; } 0036 void setCanvas(KoCanvasBase *canvas) override; 0037 void unsetCanvas() override {} 0038 void setViewManager(KisViewManager* kisview) override; 0039 0040 private Q_SLOTS: 0041 0042 void toggleLogging(bool toggle); 0043 void clearLog(); 0044 void saveLog(); 0045 void settings(); 0046 void insertMessage(QtMsgType type, const QString &msg); 0047 void changeTheme(); 0048 0049 private: 0050 0051 void applyCategories(); 0052 0053 static MessageSender *s_messageSender; 0054 static QTextCharFormat s_debug; 0055 static QTextCharFormat s_info; 0056 static QTextCharFormat s_warning; 0057 static QTextCharFormat s_critical; 0058 static QTextCharFormat s_fatal; 0059 static void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); 0060 0061 }; 0062 0063 0064 #endif