From fbe5ddfe935112404585a545f68492dd3bb8d436 Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Fri, 26 Jul 2019 16:56:53 +0800 Subject: [PATCH] feat: support get file type (#4) --- gio-qt/dgiofile.cpp | 2 +- gio-qt/dgiofileinfo.cpp | 9 ++++++++- gio-qt/dgiofileinfo.h | 16 +++++++++++++++- gio-qt/dgiomount.cpp | 2 +- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/gio-qt/dgiofile.cpp b/gio-qt/dgiofile.cpp index d845d92..3daa72f 100644 --- a/gio-qt/dgiofile.cpp +++ b/gio-qt/dgiofile.cpp @@ -132,7 +132,7 @@ QExplicitlySharedDataPointer DGioFile::createFileSystemInfo() QExplicitlySharedDataPointer fileInfoPtr(new DGioFileInfo(gmmFileInfo.release())); return fileInfoPtr; } - } catch (Glib::Error error) { + } catch (const Glib::Error &error) { qDebug() << QString::fromStdString(error.what().raw()); } diff --git a/gio-qt/dgiofileinfo.cpp b/gio-qt/dgiofileinfo.cpp index 758b774..c242fb7 100644 --- a/gio-qt/dgiofileinfo.cpp +++ b/gio-qt/dgiofileinfo.cpp @@ -60,7 +60,14 @@ DGioFileInfo::~DGioFileInfo() } -bool DGioFileInfo::isReadOnly() const +DGioFileType DGioFileInfo::fileType() const +{ + Q_D(const DGioFileInfo); + + return static_cast(d->getGmmFileInfoInstance()->get_file_type()); +} + +bool DGioFileInfo::fsReadOnly() const { Q_D(const DGioFileInfo); diff --git a/gio-qt/dgiofileinfo.h b/gio-qt/dgiofileinfo.h index f2ac0f2..b607ff0 100644 --- a/gio-qt/dgiofileinfo.h +++ b/gio-qt/dgiofileinfo.h @@ -4,6 +4,17 @@ #include #include +enum DGioFileType { + FILE_TYPE_NOT_KNOWN, + FILE_TYPE_REGULAR, + FILE_TYPE_DIRECTORY, + FILE_TYPE_SYMBOLIC_LINK, + FILE_TYPE_SPECIAL, + FILE_TYPE_SHORTCUT, + FILE_TYPE_MOUNTABLE +}; +Q_ENUMS(DGioFileType); + namespace Gio { class FileInfo; } @@ -16,8 +27,11 @@ public: explicit DGioFileInfo(Gio::FileInfo *gmmFileInfoInfoPtr, QObject *parent = nullptr); ~DGioFileInfo(); - bool isReadOnly() const; + // file info + DGioFileType fileType() const; + // filesystem info. + bool fsReadOnly() const; quint64 fsTotalBytes() const; quint64 fsUsedBytes() const; quint64 fsFreeBytes() const; diff --git a/gio-qt/dgiomount.cpp b/gio-qt/dgiomount.cpp index 725c707..5a7e6e2 100644 --- a/gio-qt/dgiomount.cpp +++ b/gio-qt/dgiomount.cpp @@ -86,7 +86,7 @@ DGioMount *DGioMount::createFromPath(QString path, QObject *parent) if (gmmMount) { return new DGioMount(gmmMount.release(), parent); } - } catch (Glib::Error error) { + } catch (const Glib::Error &error) { qDebug() << QString::fromStdString(error.what().raw()); }