mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Add role for file creation time.
Summary: At least on FreeBSD UFS and ZFS support birthtimes of files. Reviewers: #freebsd, #dolphin Subscribers: #konqueror Differential Revision: https://phabricator.kde.org/D6243
This commit is contained in:
parent
ea142de633
commit
d8061b4d9e
|
@ -334,6 +334,11 @@ QList<QPair<int, QVariant> > KFileItemModel::groups() const
|
||||||
return item->item.time(KFileItem::ModificationTime);
|
return item->item.time(KFileItem::ModificationTime);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case CreationTimeRole:
|
||||||
|
m_groups = timeRoleGroups([](const ItemData *item) {
|
||||||
|
return item->item.time(KFileItem::CreationTime);
|
||||||
|
});
|
||||||
|
break;
|
||||||
case AccessTimeRole:
|
case AccessTimeRole:
|
||||||
m_groups = timeRoleGroups([](const ItemData *item) {
|
m_groups = timeRoleGroups([](const ItemData *item) {
|
||||||
return item->item.time(KFileItem::AccessTime);
|
return item->item.time(KFileItem::AccessTime);
|
||||||
|
@ -1562,6 +1567,14 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem& item,
|
||||||
data.insert(sharedValue("modificationtime"), dateTime);
|
data.insert(sharedValue("modificationtime"), dateTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_requestRole[CreationTimeRole]) {
|
||||||
|
// Don't use KFileItem::timeString() as this is too expensive when
|
||||||
|
// having several thousands of items. Instead the formatting of the
|
||||||
|
// date-time will be done on-demand by the view when the date will be shown.
|
||||||
|
const QDateTime dateTime = item.time(KFileItem::CreationTime);
|
||||||
|
data.insert(sharedValue("creationtime"), dateTime);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_requestRole[AccessTimeRole]) {
|
if (m_requestRole[AccessTimeRole]) {
|
||||||
// Don't use KFileItem::timeString() as this is too expensive when
|
// Don't use KFileItem::timeString() as this is too expensive when
|
||||||
// having several thousands of items. Instead the formatting of the
|
// having several thousands of items. Instead the formatting of the
|
||||||
|
@ -1811,6 +1824,17 @@ int KFileItemModel::sortRoleCompare(const ItemData* a, const ItemData* b, const
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CreationTimeRole: {
|
||||||
|
const QDateTime dateTimeA = itemA.time(KFileItem::CreationTime);
|
||||||
|
const QDateTime dateTimeB = itemB.time(KFileItem::CreationTime);
|
||||||
|
if (dateTimeA < dateTimeB) {
|
||||||
|
result = -1;
|
||||||
|
} else if (dateTimeA > dateTimeB) {
|
||||||
|
result = +1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case DeletionTimeRole: {
|
case DeletionTimeRole: {
|
||||||
const QDateTime dateTimeA = a->values.value("deletiontime").toDateTime();
|
const QDateTime dateTimeA = a->values.value("deletiontime").toDateTime();
|
||||||
const QDateTime dateTimeB = b->values.value("deletiontime").toDateTime();
|
const QDateTime dateTimeB = b->values.value("deletiontime").toDateTime();
|
||||||
|
@ -2271,6 +2295,7 @@ const KFileItemModel::RoleInfoMap* KFileItemModel::rolesInfoMap(int& count)
|
||||||
{ "text", NameRole, I18N_NOOP2_NOSTRIP("@label", "Name"), 0, 0, false, false },
|
{ "text", NameRole, I18N_NOOP2_NOSTRIP("@label", "Name"), 0, 0, false, false },
|
||||||
{ "size", SizeRole, I18N_NOOP2_NOSTRIP("@label", "Size"), 0, 0, false, false },
|
{ "size", SizeRole, I18N_NOOP2_NOSTRIP("@label", "Size"), 0, 0, false, false },
|
||||||
{ "modificationtime", ModificationTimeRole, I18N_NOOP2_NOSTRIP("@label", "Modified"), 0, 0, false, false },
|
{ "modificationtime", ModificationTimeRole, I18N_NOOP2_NOSTRIP("@label", "Modified"), 0, 0, false, false },
|
||||||
|
{ "creationtime", CreationTimeRole, I18N_NOOP2_NOSTRIP("@label", "Created"), 0, 0, false, false },
|
||||||
{ "accesstime", AccessTimeRole, I18N_NOOP2_NOSTRIP("@label", "Accessed"), 0, 0, false, false },
|
{ "accesstime", AccessTimeRole, I18N_NOOP2_NOSTRIP("@label", "Accessed"), 0, 0, false, false },
|
||||||
{ "type", TypeRole, I18N_NOOP2_NOSTRIP("@label", "Type"), 0, 0, false, false },
|
{ "type", TypeRole, I18N_NOOP2_NOSTRIP("@label", "Type"), 0, 0, false, false },
|
||||||
{ "rating", RatingRole, I18N_NOOP2_NOSTRIP("@label", "Rating"), 0, 0, true, false },
|
{ "rating", RatingRole, I18N_NOOP2_NOSTRIP("@label", "Rating"), 0, 0, true, false },
|
||||||
|
|
|
@ -282,7 +282,7 @@ private slots:
|
||||||
private:
|
private:
|
||||||
enum RoleType {
|
enum RoleType {
|
||||||
// User visible roles:
|
// User visible roles:
|
||||||
NoRole, NameRole, SizeRole, ModificationTimeRole, AccessTimeRole, PermissionsRole, OwnerRole,
|
NoRole, NameRole, SizeRole, ModificationTimeRole, CreationTimeRole, AccessTimeRole, PermissionsRole, OwnerRole,
|
||||||
GroupRole, TypeRole, DestinationRole, PathRole, DeletionTimeRole,
|
GroupRole, TypeRole, DestinationRole, PathRole, DeletionTimeRole,
|
||||||
// User visible roles available with Baloo:
|
// User visible roles available with Baloo:
|
||||||
CommentRole, TagsRole, RatingRole, ImageSizeRole, OrientationRole,
|
CommentRole, TagsRole, RatingRole, ImageSizeRole, OrientationRole,
|
||||||
|
|
Loading…
Reference in a new issue