1 | /* |
2 | This file is part of the KDE Baloo Project |
3 | SPDX-FileCopyrightText: 2013 Vishesh Handa <me@vhanda.in> |
4 | |
5 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL |
6 | */ |
7 | |
8 | #ifndef BALOO_FILE_H |
9 | #define BALOO_FILE_H |
10 | |
11 | #include "core_export.h" |
12 | #include <KFileMetaData/Properties> |
13 | |
14 | #include <memory> |
15 | |
16 | namespace Baloo { |
17 | |
18 | /** |
19 | * @class File file.h <Baloo/File> |
20 | * |
21 | * @short Provides access to all File Metadata |
22 | * |
23 | * The File class acts as a temporary container for all the file metadata. |
24 | */ |
25 | class BALOO_CORE_EXPORT File |
26 | { |
27 | public: |
28 | File(); |
29 | File(const File& f); |
30 | |
31 | /** |
32 | * Constructor |
33 | * |
34 | * \p url the local url of the file |
35 | */ |
36 | File(const QString& url); |
37 | ~File(); |
38 | |
39 | const File& operator =(const File& f); |
40 | |
41 | /** |
42 | * The local url of the file |
43 | */ |
44 | QString path() const; |
45 | |
46 | /** |
47 | * Gives a variant map of the properties that have been extracted |
48 | * from the file by the indexer |
49 | */ |
50 | KFileMetaData::PropertyMultiMap properties() const; |
51 | QVariant property(KFileMetaData::Property::Property property) const; |
52 | |
53 | // FIXME: More descriptive error? |
54 | bool load(); |
55 | bool load(const QString& url); |
56 | |
57 | private: |
58 | class Private; |
59 | std::unique_ptr<Private> const d; |
60 | }; |
61 | |
62 | } |
63 | |
64 | #endif // BALOO_FILE_H |
65 | |