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"