gio-qt 0.0.16
Loading...
Searching...
No Matches
dgiovolume.h
1// SPDX-FileCopyrightText: 2019 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DGIOVOLUME_H
6#define DGIOVOLUME_H
7
8#include <QObject>
9#include <QSharedData>
10
11namespace Gio {
12class Volume;
13}
14
15enum DGioVolumeIdentifierType {
16 VOLUME_IDENTIFIER_TYPE_LABEL,
17 VOLUME_IDENTIFIER_TYPE_NFS_MOUNT,
18 VOLUME_IDENTIFIER_TYPE_UNIX_DEVICE,
19 VOLUME_IDENTIFIER_TYPE_UUID,
20 VOLUME_IDENTIFIER_TYPE_CLASS
21};
22Q_ENUMS(DGioVolumeIdentifierType);
23
24class DGioMount;
25class DGioVolumePrivate;
26class DGioVolume : public QObject, public QSharedData
27{
28 Q_OBJECT
29public:
30 explicit DGioVolume(Gio::Volume *gmmVolumePtr, QObject *parent = nullptr);
31 ~DGioVolume();
32
33 QString name() const;
34 QString volumeClass() const;
35 QString volumeMonitorName() const;
36 bool canMount() const;
37 bool canEject() const;
38 bool shouldAutoMount() const;
39 void mount() const;
40
41 QExplicitlySharedDataPointer<DGioMount> getMount();
42
43 QString identifier(DGioVolumeIdentifierType id) const;
44
45private:
46 QScopedPointer<DGioVolumePrivate> d_ptr;
47
48 Q_DECLARE_PRIVATE(DGioVolume)
49};
50
51#endif // DGIOVOLUME_H
Definition dgiomount.h:19