diff options
-rw-r--r-- | filesystemfileproxy.cpp | 28 | ||||
-rw-r--r-- | filesystemfileproxy.h | 5 |
2 files changed, 32 insertions, 1 deletions
diff --git a/filesystemfileproxy.cpp b/filesystemfileproxy.cpp index 31059ec..06ad939 100644 --- a/filesystemfileproxy.cpp +++ b/filesystemfileproxy.cpp @@ -9,11 +9,39 @@ #include <QVariant> #include <QFileSystemModel> #include <QFileInfo> +#include <QDateTime> + +#include <QDebug> #include "filesystemfileproxy.h" +#include "helper.h" FilesystemFileProxy::FilesystemFileProxy(QObject *parent) : QSortFilterProxyModel(parent) {} +QVariant FilesystemFileProxy::data(const QModelIndex &index, int role) const{ + if(!index.isValid()){ + return QVariant(); + } + + if(role == Qt::DisplayRole){ + if(index.column() == 2){ + QString filePath = index.data(QFileSystemModel::FilePathRole).toString(); + QString mimeType = Helper::mimeType(filePath); + if(mimeType.contains('/')){ + mimeType = mimeType.split('/').at(1); + mimeType = mimeType.remove(QRegExp("^x-")); + return mimeType; + } + } + if(index.column() == 3){ + QString filePath = index.data(QFileSystemModel::FilePathRole).toString(); + QFileInfo fi(filePath); + return fi.lastModified().toString("MM-dd-yyyy hh:mm"); + } + } + return QSortFilterProxyModel::data(index, role); +} + bool FilesystemFileProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const { if(left.model()->headerData(left.column(), Qt::Horizontal).toString() == tr("Name")){ QFileSystemModel *source = static_cast<QFileSystemModel*>(sourceModel()); diff --git a/filesystemfileproxy.h b/filesystemfileproxy.h index 9f9609b..a7b5e18 100644 --- a/filesystemfileproxy.h +++ b/filesystemfileproxy.h @@ -18,7 +18,10 @@ class FilesystemFileProxy : public QSortFilterProxyModel { public: FilesystemFileProxy(QObject *parent = 0); ~FilesystemFileProxy() {}; - bool lessThan(const QModelIndex &left, const QModelIndex &right) const; + virtual QVariant data(const QModelIndex &index, int role) const; + + protected: + virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const; }; #endif |