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 }