File: kmtpfile.cpp

package info (click to toggle)
kio-extras 4%3A22.12.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 10,768 kB
  • sloc: cpp: 26,898; ansic: 4,443; perl: 1,058; xml: 97; sh: 69; python: 28; makefile: 9
file content (133 lines) | stat: -rw-r--r-- 2,909 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
    This file is part of the KMTP framework, part of the KDE project.

    SPDX-FileCopyrightText: 2018 Andreas Krutzler <andreas.krutzler@gmx.net>

    SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/

#include "kmtpfile.h"

KMTPFile::KMTPFile()
    : m_itemId(0),
      m_parentId(0),
      m_storageId(0),
      m_filesize(0),
      m_modificationdate(0)
{
}

KMTPFile::KMTPFile(quint32 itemId,
                   quint32 parentId,
                   quint32 storageId,
                   const char *filename,
                   quint64 filesize,
                   qint64 modificationdate,
                   const QString &filetype)
    : m_itemId(itemId),
      m_parentId(parentId),
      m_storageId(storageId),
      m_filename(QString::fromUtf8(filename)),
      m_filesize(filesize),
      m_modificationdate(modificationdate),
      m_filetype(filetype)
{

}

bool KMTPFile::isValid() const
{
    return m_itemId != 0;
}

bool KMTPFile::isFolder() const
{
    return m_filetype == QLatin1String("inode/directory");
}

quint32 KMTPFile::itemId() const
{
    return m_itemId;
}

quint32 KMTPFile::parentId() const
{
    return m_parentId;
}

quint32 KMTPFile::storageId() const
{
    return m_storageId;
}

QString KMTPFile::filename() const
{
    return m_filename;
}

quint64 KMTPFile::filesize() const
{
    return m_filesize;
}

qint64 KMTPFile::modificationdate() const
{
    return m_modificationdate;
}

QString KMTPFile::filetype() const
{
    return m_filetype;
}

QDBusArgument &operator<<(QDBusArgument &argument, const KMTPFile &mtpFile)
{
    argument.beginStructure();
    argument << mtpFile.m_itemId
             << mtpFile.m_parentId
             << mtpFile.m_storageId
             << mtpFile.m_filename
             << mtpFile.m_filesize
             << mtpFile.m_modificationdate
             << mtpFile.m_filetype;
    argument.endStructure();
    return argument;
}

const QDBusArgument &operator>>(const QDBusArgument &argument, KMTPFile &mtpFile)
{
    argument.beginStructure();
    argument >> mtpFile.m_itemId
             >> mtpFile.m_parentId
             >> mtpFile.m_storageId
             >> mtpFile.m_filename
             >> mtpFile.m_filesize
             >> mtpFile.m_modificationdate
             >> mtpFile.m_filetype;
    argument.endStructure();
    return argument;
}

QDBusArgument &operator<<(QDBusArgument &argument, const KMTPFileList &list)
{
    argument.beginArray(qMetaTypeId<KMTPFile>());
    for (const KMTPFile &file : list) {
        argument << file;
    }
    argument.endArray();
    return argument;
}

const QDBusArgument &operator>>(const QDBusArgument &argument, KMTPFileList &list)
{
    argument.beginArray();
    list.clear();
    while (!argument.atEnd()) {
        KMTPFile file;
        argument >> file;
        list.append(file);
    }

    argument.endArray();
    return argument;
}