#include <klocale.h>
#include <kdirmodel.h>
+#include <kdatetime.h>
#include <QtGui/QSortFilterProxyModel>
return retString;
}
+ int column;
+
+ switch (sortRole)
+ {
+ case DolphinView::SortByName: // KDirModel::Name
+ column = KDirModel::Name;
+ break;
+ case DolphinView::SortBySize: // KDirModel::Size
+ column = KDirModel::Size;
+ break;
+ case DolphinView::SortByDate: // KDirModel::ModifiedTime
+ column = KDirModel::ModifiedTime;
+ break;
+ case DolphinView::SortByPermissions: // KDirModel::Permissions
+ column = KDirModel::Permissions;
+ break;
+ case DolphinView::SortByOwner: // KDirModel::Owner
+ column = KDirModel::Owner;
+ break;
+ case DolphinView::SortByGroup: // KDirModel::Group
+ column = KDirModel::Group;
+ break;
+ case DolphinView::SortByType: // KDirModel::Type
+ column = KDirModel::Type;
+ break;
+ default:
+ column = KDirModel::Name;
+ }
+
// KDirModel checks columns to know to which role are
// we talking about
QModelIndex theIndex = index.model()->index(index.row(),
- sortRole,
+ column,
index.parent());
if (!theIndex.isValid()) {
const KDirModel *dirModel = qobject_cast<const KDirModel*>(index.model());
KFileItem *item = dirModel->itemForIndex(index);
- int fileSize;
+ int fileSize;
+ KDateTime modifiedTime;
switch (sortRole)
{
- case KDirModel::Name:
+ case DolphinView::SortByName:
if (data.toString().size())
{
if (!item->isHidden() && data.toString().at(0).isLetter())
}
break;
- case KDirModel::Size:
+ case DolphinView::SortByDate:
+ modifiedTime.setTime_t(item->time(KIO::UDS_MODIFICATION_TIME));
+ modifiedTime = modifiedTime.toLocalZone();
+
+ if (modifiedTime.daysTo(KDateTime::currentLocalDateTime()) == 0)
+ retString = i18n("Today");
+ else if (modifiedTime.daysTo(KDateTime::currentLocalDateTime()) == 1)
+ retString = i18n("Yesterday");
+ else if (modifiedTime.daysTo(KDateTime::currentLocalDateTime()) < 7)
+ retString = i18n("Less than a week");
+ else if (modifiedTime.daysTo(KDateTime::currentLocalDateTime()) < 31)
+ retString = i18n("Less than a month");
+ else if (modifiedTime.daysTo(KDateTime::currentLocalDateTime()) < 365)
+ retString = i18n("Less than a year");
+ else
+ retString = i18n("More than a year");
+ break;
+
+ case DolphinView::SortByPermissions:
+ break;
+
+ case DolphinView::SortByOwner:
+ break;
+
+ case DolphinView::SortByGroup:
+ break;
+
+ case DolphinView::SortBySize:
fileSize = (item) ? item->size() : -1;
if (item && item->isDir()) {
retString = i18n("Folders");
}
break;
- case KDirModel::Type:
+ case DolphinView::SortByType:
retString = item->mimeComment();
break;
}