File indexing completed on 2024-05-12 05:04:25

0001 // SPDX-FileCopyrightText: 2019 Harald Sitter <sitter@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 #pragma once
0005 
0006 #include <QHash>
0007 #include <QReadWriteLock>
0008 
0009 struct QMessageFilterContainer {
0010     QMessageFilterContainer();
0011     ~QMessageFilterContainer();
0012     void insert(const QString &needle, const QString &replace);
0013     void clear();
0014 
0015     QString filter(const QString &msg);
0016 
0017     // Message handler is called across threads. Synchronize for good measure.
0018     QReadWriteLock lock;
0019     QtMessageHandler handler;
0020 
0021 private:
0022     QHash<QString, QString> filters;
0023 };
0024 
0025 Q_GLOBAL_STATIC(QMessageFilterContainer, s_messageFilter)