File indexing completed on 2024-04-28 05:27:04

0001 /* This file is part of the KDE project
0002    SPDX-FileCopyrightText: 2003 Waldo Bastian <bastian@kde.org>
0003    SPDX-FileCopyrightText: 2003 David Faure <faure@kde.org>
0004 
0005    SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
0006 */
0007 
0008 #ifndef TYPESLISTITEM_H
0009 #define TYPESLISTITEM_H
0010 
0011 #include "mimetypedata.h"
0012 #include "typeslistitembase.h"
0013 
0014 #include <QMimeType>
0015 
0016 // TODO different subclasses for mimetypes and groups?
0017 class TypesListItem : public TypesListItemBase
0018 {
0019 public:
0020     /**
0021      * Create a filetype group
0022      */
0023     TypesListItem(QTreeWidget *parent, const QString &major);
0024 
0025     /**
0026      * Create a filetype item inside a group, for an existing mimetype
0027      */
0028     TypesListItem(TypesListItem *parent, QMimeType mimetype);
0029 
0030     /**
0031      * Create a filetype item inside a group, for a new mimetype
0032      */
0033     TypesListItem(TypesListItem *parent, const QString &newMimetype);
0034 
0035     ~TypesListItem() override;
0036 
0037     void setIcon(const QString &icon);
0038 
0039     QString name() const
0040     {
0041         return m_mimetypeData.name();
0042     }
0043 
0044     const MimeTypeData &mimeTypeData() const
0045     {
0046         return m_mimetypeData;
0047     }
0048 
0049     MimeTypeData &mimeTypeData()
0050     {
0051         return m_mimetypeData;
0052     }
0053 
0054     virtual void loadIcon(bool forceReload = false) override;
0055 
0056 private:
0057     MimeTypeData m_mimetypeData;
0058 };
0059 
0060 #endif