File indexing completed on 2024-06-16 05:00:14
0001 /* -*- mode: C++; c-file-style: "gnu" -*- 0002 bodypartformatterfactory.h 0003 0004 This file is part of KMail, the KDE mail client. 0005 SPDX-FileCopyrightText: 2004 Marc Mutz <mutz@kde.org> 0006 SPDX-FileCopyrightText: 2004 Ingo Kloecker <kloecker@kde.org> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #pragma once 0012 0013 #include <QHash> 0014 #include <vector> 0015 0016 namespace MimeTreeParser 0017 { 0018 class BodyPartFormatterFactory; 0019 0020 class BodyPartFormatterFactoryPrivate 0021 { 0022 public: 0023 explicit BodyPartFormatterFactoryPrivate(BodyPartFormatterFactory *factory); 0024 ~BodyPartFormatterFactoryPrivate(); 0025 0026 void setup(); 0027 void messageviewer_create_builtin_bodypart_formatters(); // defined in bodypartformatter.cpp 0028 void insert(const QString &mimeType, const Interface::BodyPartFormatter *formatter, int priority = 0); 0029 void appendFormattersForType(const QString &mimeType, QList<const Interface::BodyPartFormatter *> &formatters); 0030 0031 BodyPartFormatterFactory *const q; 0032 struct FormatterInfo { 0033 const Interface::BodyPartFormatter *formatter = nullptr; 0034 int priority = 0; 0035 }; 0036 QHash<QString, std::vector<FormatterInfo>> registry; 0037 }; 0038 }