Warning, file /frameworks/knewstuff/src/qtquick/downloadlinkinfo.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2016 Dan Leinir Turthra Jensen <admin@leinir.dk>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "downloadlinkinfo.h"
0008 #include <KFormat>
0009 #include <QMimeDatabase>
0010 
0011 static const KFormat formatter;
0012 
0013 class DownloadLinkInfoPrivate
0014 {
0015 public:
0016     DownloadLinkInfoPrivate()
0017         : id(0)
0018         , isDownloadtypeLink(true)
0019         , size(0)
0020     {
0021     }
0022 
0023     QString name;
0024     QString priceAmount;
0025     QString distributionType;
0026     QString descriptionLink;
0027     int id;
0028     bool isDownloadtypeLink;
0029     quint64 size;
0030     QString mimeType;
0031     QString icon;
0032 };
0033 
0034 DownloadLinkInfo::DownloadLinkInfo(QObject *parent)
0035     : QObject(parent)
0036     , d(new DownloadLinkInfoPrivate)
0037 {
0038 }
0039 
0040 DownloadLinkInfo::~DownloadLinkInfo() = default;
0041 
0042 void DownloadLinkInfo::setData(const KNSCore::EntryInternal::DownloadLinkInformation &data)
0043 {
0044     d->name = data.name;
0045     d->priceAmount = data.priceAmount;
0046     d->distributionType = data.distributionType;
0047     d->descriptionLink = data.descriptionLink;
0048     d->id = data.id;
0049     d->isDownloadtypeLink = data.isDownloadtypeLink;
0050     d->size = data.size;
0051     QMimeDatabase db;
0052     for (QString string : data.tags) {
0053         if (string.startsWith(QStringLiteral("data##mimetype="))) {
0054             d->mimeType = string.split(QStringLiteral("=")).last();
0055         }
0056     }
0057     d->icon = db.mimeTypeForName(d->mimeType).iconName();
0058     if (d->icon.isEmpty()) {
0059         d->icon = db.mimeTypeForName(d->mimeType).genericIconName();
0060     }
0061     if (d->icon.isEmpty()) {
0062         d->icon = QStringLiteral("download");
0063     }
0064     Q_EMIT dataChanged();
0065 }
0066 
0067 QString DownloadLinkInfo::name() const
0068 {
0069     return d->name;
0070 }
0071 
0072 QString DownloadLinkInfo::priceAmount() const
0073 {
0074     return d->priceAmount;
0075 }
0076 
0077 QString DownloadLinkInfo::distributionType() const
0078 {
0079     return d->distributionType;
0080 }
0081 
0082 QString DownloadLinkInfo::descriptionLink() const
0083 {
0084     return d->descriptionLink;
0085 }
0086 
0087 int DownloadLinkInfo::id() const
0088 {
0089     return d->id;
0090 }
0091 
0092 bool DownloadLinkInfo::isDownloadtypeLink() const
0093 {
0094     return d->isDownloadtypeLink;
0095 }
0096 
0097 quint64 DownloadLinkInfo::size() const
0098 {
0099     return d->size;
0100 }
0101 
0102 QString DownloadLinkInfo::formattedSize() const
0103 {
0104     if (d->size == 0) {
0105         return QString();
0106     }
0107     return formatter.formatByteSize(d->size * 1000);
0108 }
0109 
0110 QString DownloadLinkInfo::icon() const
0111 {
0112     return d->icon;
0113 }
0114 
0115 #include "moc_downloadlinkinfo.cpp"