File indexing completed on 2024-05-12 05:12:46

0001 /*
0002     SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QWidget>
0010 
0011 class QCheckBox;
0012 class QTreeView;
0013 class LoggingModel;
0014 namespace KPIM
0015 {
0016 class KCheckComboBox;
0017 }
0018 
0019 class Logging : public QWidget
0020 {
0021     Q_OBJECT
0022 
0023     Q_CLASSINFO("D-Bus Interface", "org.kde.akonadiconsole.logger")
0024 
0025 public:
0026     explicit Logging(QWidget *parent = nullptr);
0027     ~Logging() override;
0028 
0029     bool enabled() const;
0030 
0031     Q_INVOKABLE void message(qint64 timestamp,
0032                              const QString &app,
0033                              qint64 pid,
0034                              int type,
0035                              const QString &category,
0036                              const QString &file,
0037                              const QString &function,
0038                              int line,
0039                              int version,
0040                              const QString &msg);
0041 
0042 Q_SIGNALS:
0043     void enabledChanged(bool enabled);
0044 
0045 private Q_SLOTS:
0046     void saveToFile();
0047 
0048 private:
0049     QCheckBox *mEnabledCheckbox = nullptr;
0050     KPIM::KCheckComboBox *mAppFilter = nullptr;
0051     KPIM::KCheckComboBox *mTypeFilter = nullptr;
0052     KPIM::KCheckComboBox *mCategoryFilter = nullptr;
0053     QTreeView *mView = nullptr;
0054     LoggingModel *mModel = nullptr;
0055 };