File indexing completed on 2024-04-28 15:29:55

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 1999 Waldo Bastian <bastian@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only
0006 */
0007 
0008 #include "ksycocaentry.h"
0009 #include "ksycocaentry_p.h"
0010 #include "ksycocautils_p.h"
0011 
0012 #include <ksycoca.h>
0013 
0014 KSycocaEntryPrivate::KSycocaEntryPrivate(QDataStream &_str, int iOffset)
0015     : offset(iOffset)
0016     , deleted(false)
0017 {
0018     _str >> path;
0019 }
0020 
0021 KSycocaEntry::KSycocaEntry()
0022     : d_ptr(nullptr)
0023 {
0024 }
0025 
0026 KSycocaEntry::KSycocaEntry(KSycocaEntryPrivate &d)
0027     : d_ptr(&d)
0028 {
0029 }
0030 
0031 KSycocaEntry::~KSycocaEntry() = default;
0032 
0033 bool KSycocaEntry::isType(KSycocaType t) const
0034 {
0035     return d_ptr->isType(t);
0036 }
0037 
0038 KSycocaType KSycocaEntry::sycocaType() const
0039 {
0040     return d_ptr->sycocaType();
0041 }
0042 
0043 QString KSycocaEntry::entryPath() const
0044 {
0045     Q_D(const KSycocaEntry);
0046     return d->path;
0047 }
0048 
0049 QString KSycocaEntry::storageId() const
0050 {
0051     Q_D(const KSycocaEntry);
0052     return d->storageId();
0053 }
0054 
0055 bool KSycocaEntry::isDeleted() const
0056 {
0057     Q_D(const KSycocaEntry);
0058     return d->deleted;
0059 }
0060 
0061 void KSycocaEntry::setDeleted(bool deleted)
0062 {
0063     Q_D(KSycocaEntry);
0064     d->deleted = deleted;
0065 }
0066 
0067 bool KSycocaEntry::isSeparator() const
0068 {
0069     return d_ptr == nullptr || isType(KST_KServiceSeparator);
0070 }
0071 
0072 int KSycocaEntry::offset() const
0073 {
0074     Q_D(const KSycocaEntry);
0075     return d->offset;
0076 }
0077 
0078 void KSycocaEntryPrivate::save(QDataStream &s)
0079 {
0080     offset = s.device()->pos(); // store position in member variable
0081     s << qint32(sycocaType()) << path;
0082 }
0083 
0084 bool KSycocaEntry::isValid() const
0085 {
0086     Q_D(const KSycocaEntry);
0087     return d && d->isValid();
0088 }
0089 
0090 QString KSycocaEntry::name() const
0091 {
0092     Q_D(const KSycocaEntry);
0093     return d->name();
0094 }
0095 
0096 QStringList KSycocaEntry::propertyNames() const
0097 {
0098     Q_D(const KSycocaEntry);
0099     return d->propertyNames();
0100 }
0101 
0102 QVariant KSycocaEntry::property(const QString &name) const
0103 {
0104     Q_D(const KSycocaEntry);
0105     return d->property(name);
0106 }