File indexing completed on 2024-05-12 04:59:45
0001 /* 0002 This file is part of the KMTP framework, part of the KDE project. 0003 0004 SPDX-FileCopyrightText: 2018 Andreas Krutzler <andreas.krutzler@gmx.net> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "kmtpfile.h" 0010 0011 KMTPFile::KMTPFile() 0012 : m_itemId(0) 0013 , m_parentId(0) 0014 , m_storageId(0) 0015 , m_filesize(0) 0016 , m_modificationdate(0) 0017 { 0018 } 0019 0020 KMTPFile::KMTPFile(quint32 itemId, 0021 quint32 parentId, 0022 quint32 storageId, 0023 const char *filename, 0024 quint64 filesize, 0025 qint64 modificationdate, 0026 const QString &filetype) 0027 : m_itemId(itemId) 0028 , m_parentId(parentId) 0029 , m_storageId(storageId) 0030 , m_filename(QString::fromUtf8(filename)) 0031 , m_filesize(filesize) 0032 , m_modificationdate(modificationdate) 0033 , m_filetype(filetype) 0034 { 0035 } 0036 0037 bool KMTPFile::isValid() const 0038 { 0039 return m_itemId != 0; 0040 } 0041 0042 bool KMTPFile::isFolder() const 0043 { 0044 return m_filetype == QLatin1String("inode/directory"); 0045 } 0046 0047 quint32 KMTPFile::itemId() const 0048 { 0049 return m_itemId; 0050 } 0051 0052 quint32 KMTPFile::parentId() const 0053 { 0054 return m_parentId; 0055 } 0056 0057 quint32 KMTPFile::storageId() const 0058 { 0059 return m_storageId; 0060 } 0061 0062 QString KMTPFile::filename() const 0063 { 0064 return m_filename; 0065 } 0066 0067 quint64 KMTPFile::filesize() const 0068 { 0069 return m_filesize; 0070 } 0071 0072 qint64 KMTPFile::modificationdate() const 0073 { 0074 return m_modificationdate; 0075 } 0076 0077 QString KMTPFile::filetype() const 0078 { 0079 return m_filetype; 0080 } 0081 0082 QDBusArgument &operator<<(QDBusArgument &argument, const KMTPFile &mtpFile) 0083 { 0084 argument.beginStructure(); 0085 argument << mtpFile.m_itemId << mtpFile.m_parentId << mtpFile.m_storageId << mtpFile.m_filename << mtpFile.m_filesize << mtpFile.m_modificationdate 0086 << mtpFile.m_filetype; 0087 argument.endStructure(); 0088 return argument; 0089 } 0090 0091 const QDBusArgument &operator>>(const QDBusArgument &argument, KMTPFile &mtpFile) 0092 { 0093 argument.beginStructure(); 0094 argument >> mtpFile.m_itemId >> mtpFile.m_parentId >> mtpFile.m_storageId >> mtpFile.m_filename >> mtpFile.m_filesize >> mtpFile.m_modificationdate 0095 >> mtpFile.m_filetype; 0096 argument.endStructure(); 0097 return argument; 0098 } 0099 0100 QDBusArgument &operator<<(QDBusArgument &argument, const KMTPFileList &list) 0101 { 0102 argument.beginArray(qMetaTypeId<KMTPFile>()); 0103 for (const KMTPFile &file : list) { 0104 argument << file; 0105 } 0106 argument.endArray(); 0107 return argument; 0108 } 0109 0110 const QDBusArgument &operator>>(const QDBusArgument &argument, KMTPFileList &list) 0111 { 0112 argument.beginArray(); 0113 list.clear(); 0114 while (!argument.atEnd()) { 0115 KMTPFile file; 0116 argument >> file; 0117 list.append(file); 0118 } 0119 0120 argument.endArray(); 0121 return argument; 0122 }