From a30a4c02d1c8a9c8442010b6ae12a2477c936b92 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 3 Oct 2010 14:26:00 +0200 Subject: Change display in FSWidget Display "Date modified" field in FSWidget as dd-mm-yyyy. Also show mime- I guess I should subclass QFileSystemModel instead of reimplementing data() in the proxy, because sorting by mimetype doesn't work as expected. Unfortunately the reason eludes me... --- filesystemfileproxy.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'filesystemfileproxy.cpp') diff --git a/filesystemfileproxy.cpp b/filesystemfileproxy.cpp index 31059ec..06ad939 100644 --- a/filesystemfileproxy.cpp +++ b/filesystemfileproxy.cpp @@ -9,11 +9,39 @@ #include #include #include +#include + +#include #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(sourceModel()); -- cgit v1.2.3-70-g09d2