gio-qt 0.0.16
Loading...
Searching...
No Matches
dgiofile.h
1// SPDX-FileCopyrightText: 2019 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DGIOFILE_H
6#define DGIOFILE_H
7
8#include <QObject>
9#include <QSharedData>
10
11#include <limits.h>
12
13namespace Gio {
14class File;
15}
16
17enum DGioFileQueryInfoFlag
18{
19 FILE_QUERY_INFO_NONE = 0x0,
20 FILE_QUERY_INFO_NOFOLLOW_SYMLINKS = (1 << 0)
21};
22
23Q_DECLARE_FLAGS(DGioFileQueryInfoFlags, DGioFileQueryInfoFlag)
24
25class DGioFileInfo;
26class DGioMount;
29class DGioFilePrivate;
30class DGioFile : public QObject, public QSharedData
31{
32 Q_OBJECT
33public:
34 explicit DGioFile(Gio::File *gmmFilePtr, QObject *parent = nullptr);
35 ~DGioFile();
36
37 static DGioFile * createFromPath(QString path, QObject *parent = nullptr);
38 static DGioFile * createFromUri(QString uri, QObject *parent = nullptr);
39 static DGioFile * createFromCmdArg(QString uri, QObject *parent = nullptr);
40
41 QString basename() const;
42 QString path() const;
43 QString uri() const;
44
45 QExplicitlySharedDataPointer<DGioFileInfo> createFileInfo(QString attr = "*", DGioFileQueryInfoFlags queryInfoFlags = FILE_QUERY_INFO_NONE, unsigned long timeout_msec = ULONG_MAX);
46 QExplicitlySharedDataPointer<DGioFileInfo> createFileSystemInfo(QString attr = "*");
47 QExplicitlySharedDataPointer<DGioFileIterator> createFileIterator(QString attr = "*", DGioFileQueryInfoFlags queryInfoFlags = FILE_QUERY_INFO_NONE);
48 void createFileIteratorAsync(QString attr = "*", DGioFileQueryInfoFlags queryInfoFlags = FILE_QUERY_INFO_NONE);
49
50 void mountEnclosingVolume(DGioMountOperation *dgioMountOperation);
51
52 QExplicitlySharedDataPointer<DGioMount> findEnclosingMount();
53
54Q_SIGNALS:
55 void createFileIteratorReady(QExplicitlySharedDataPointer<DGioFileIterator> iter);
56 void mountEnclosingVolumeReady(bool result, QString msg);
57
58private:
59 QScopedPointer<DGioFilePrivate> d_ptr;
60
61 Q_DECLARE_PRIVATE(DGioFile)
62};
63
64#endif // DGIOFILE_H
Definition dgiofileinfo.h:28
Definition dgiofileiterator.h:55
static DGioFile * createFromUri(QString uri, QObject *parent=nullptr)
Create a DGioFile instance by given uri.
Definition dgiofile.cpp:137
QExplicitlySharedDataPointer< DGioFileInfo > createFileInfo(QString attr="*", DGioFileQueryInfoFlags queryInfoFlags=FILE_QUERY_INFO_NONE, unsigned long timeout_msec=ULONG_MAX)
Gets the requested information about the file.
Definition dgiofile.cpp:215
QString basename() const
Gets the base name (the last component of the path) of the DGioFile.
Definition dgiofile.cpp:179
QString path() const
Gets the local pathname of the DGioFile, if one exists.
Definition dgiofile.cpp:194
QExplicitlySharedDataPointer< DGioFileIterator > createFileIterator(QString attr="*", DGioFileQueryInfoFlags queryInfoFlags=FILE_QUERY_INFO_NONE)
Gets the requested information about the files in a directory.
Definition dgiofile.cpp:295
static DGioFile * createFromCmdArg(QString uri, QObject *parent=nullptr)
Create a DGioFile instance for a given argument from the command line.
Definition dgiofile.cpp:158
static DGioFile * createFromPath(QString path, QObject *parent=nullptr)
Create a DGioFile instance by given path.
Definition dgiofile.cpp:116
QExplicitlySharedDataPointer< DGioFileInfo > createFileSystemInfo(QString attr="*")
Obtains information about the filesystem the file is on.
Definition dgiofile.cpp:262
Definition dgiomountoperation.h:50
Definition dgiomount.h:19