From 2b525c6f3eecd5e4dc98cec8b7773da95a95964d Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Mon, 28 Oct 2019 17:10:33 +0800 Subject: [PATCH] feat: add interface for getting class of volumes and mounts. --- gio-qt/include/dgiomount.h | 1 + gio-qt/include/dgiovolume.h | 1 + gio-qt/source/dgiomount.cpp | 7 +++++++ gio-qt/source/dgiovolume.cpp | 7 +++++++ qgio-tools/main.cpp | 4 ++-- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gio-qt/include/dgiomount.h b/gio-qt/include/dgiomount.h index ee2d64d..5927eeb 100644 --- a/gio-qt/include/dgiomount.h +++ b/gio-qt/include/dgiomount.h @@ -42,6 +42,7 @@ public: QString name() const; QString uuid() const; + QString mountClass() const; bool isShadowed() const; bool canUnmount() const; bool canEject() const; diff --git a/gio-qt/include/dgiovolume.h b/gio-qt/include/dgiovolume.h index db6caca..97e2c77 100644 --- a/gio-qt/include/dgiovolume.h +++ b/gio-qt/include/dgiovolume.h @@ -47,6 +47,7 @@ public: ~DGioVolume(); QString name() const; + QString volumeClass() const; QString volumeMonitorName() const; bool canMount() const; bool canEject() const; diff --git a/gio-qt/source/dgiomount.cpp b/gio-qt/source/dgiomount.cpp index 6927d8d..5b7f633 100644 --- a/gio-qt/source/dgiomount.cpp +++ b/gio-qt/source/dgiomount.cpp @@ -130,6 +130,13 @@ QString DGioMount::uuid() const return d->uuid(); } +QString DGioMount::mountClass() const +{ + Q_D(const DGioMount); + + return QString(G_OBJECT_CLASS_NAME(G_OBJECT_GET_CLASS(d->m_gmmMountPtr->gobj()))); +} + /*! * \brief Determines if mount is shadowed. * diff --git a/gio-qt/source/dgiovolume.cpp b/gio-qt/source/dgiovolume.cpp index 23890c1..4906da7 100644 --- a/gio-qt/source/dgiovolume.cpp +++ b/gio-qt/source/dgiovolume.cpp @@ -84,6 +84,13 @@ QString DGioVolume::name() const return d->name(); } +QString DGioVolume::volumeClass() const +{ + Q_D(const DGioVolume); + + return QString(G_OBJECT_CLASS_NAME(G_OBJECT_GET_CLASS(d->m_gmmVolumePtr->gobj()))); +} + QString DGioVolume::volumeMonitorName() const { Q_D(const DGioVolume); diff --git a/qgio-tools/main.cpp b/qgio-tools/main.cpp index bd77c31..6dbf93b 100644 --- a/qgio-tools/main.cpp +++ b/qgio-tools/main.cpp @@ -115,7 +115,7 @@ int main(int argc, char * argv[]) QExplicitlySharedDataPointer f2 = p->getDefaultLocationFile(); qDebug() << f->uri() << f2->uri() << f->path() << f2->path(); qDebug() << f->uri() << f2->uri(); - qDebug() << p->name() << p->uuid() << p->canUnmount() << p->themedIconNames() << p->themedIconNames(); + qDebug() << p->name() << p->uuid() << p->mountClass() << p->canUnmount() << p->themedIconNames() << p->themedIconNames(); } qDebug() << "--------volumes--------------"; @@ -123,7 +123,7 @@ int main(int argc, char * argv[]) const QList > vols = DGioVolumeManager::getVolumes(); for (const QExplicitlySharedDataPointer &p : vols) { - qDebug() << p->name() << p->volumeMonitorName() + qDebug() << p->name() << p->volumeClass() << p->volumeMonitorName() << p->identifier(DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_UUID) << p->identifier(DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_CLASS) << p->identifier(DGioVolumeIdentifierType::VOLUME_IDENTIFIER_TYPE_LABEL)