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