diff options
Diffstat (limited to 'filesystemfileproxy.cpp')
-rw-r--r-- | filesystemfileproxy.cpp | 28 |
1 files changed, 28 insertions, 0 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()); |