diff --git a/.gitignore b/.gitignore index 743eec4..ceb12ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ # User *.user + +# Build directory +build/ diff --git a/gio-qt/include/dgiovolume.h b/gio-qt/include/dgiovolume.h index d54b66f..007fd98 100644 --- a/gio-qt/include/dgiovolume.h +++ b/gio-qt/include/dgiovolume.h @@ -28,6 +28,14 @@ namespace Gio { class Volume; } +enum DGioVolumeIdentifierType { + VOLUME_IDENTIFIER_TYPE_LABEL, + VOLUME_IDENTIFIER_TYPE_NFS_MOUNT, + VOLUME_IDENTIFIER_TYPE_UUID, + VOLUME_IDENTIFIER_TYPE_CLASS +}; +Q_ENUMS(DGioVolumeIdentifierType); + class DGioMount; class DGioVolumePrivate; class DGioVolume : public QObject, public QSharedData @@ -44,6 +52,8 @@ public: QExplicitlySharedDataPointer getMount(); + QString identifier(DGioVolumeIdentifierType id) const; + private: QScopedPointer d_ptr; diff --git a/gio-qt/source/dgiovolume.cpp b/gio-qt/source/dgiovolume.cpp index 4bba35e..415c4eb 100644 --- a/gio-qt/source/dgiovolume.cpp +++ b/gio-qt/source/dgiovolume.cpp @@ -115,3 +115,17 @@ QExplicitlySharedDataPointer DGioVolume::getMount() return mntPtr; } + +QString DGioVolume::identifier(DGioVolumeIdentifierType id) const +{ + Q_D(const DGioVolume); + + const static QHash idtmap = { + {DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_LABEL, G_VOLUME_IDENTIFIER_KIND_LABEL}, + {DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_NFS_MOUNT, G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT}, + {DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_UUID, G_VOLUME_IDENTIFIER_KIND_UUID}, + {DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_CLASS, G_VOLUME_IDENTIFIER_KIND_CLASS} + }; + + return QString::fromStdString(d->getGmmVolumeInstance()->get_identifier(idtmap[id])); +} diff --git a/qgio-tools/main.cpp b/qgio-tools/main.cpp index 07b03ed..2acf252 100644 --- a/qgio-tools/main.cpp +++ b/qgio-tools/main.cpp @@ -123,7 +123,10 @@ int main(int argc, char * argv[]) const QList > vols = DGioVolumeManager::getVolumes(); for (const QExplicitlySharedDataPointer &p : vols) { - qDebug() << p->name(); + qDebug() << p->name() + << p->identifier(DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_UUID) + << p->identifier(DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_CLASS) + << p->identifier(DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_LABEL); } qDebug() << "----------drives------------";