+ else if (sortRole() == DolphinView::SortByDate) {
+ // If an item is hidden (doesn't matter if file or folder) will have
+ // higher preference than a non-hidden item
+ if (leftFileItem->isHidden() && !rightFileItem->isHidden()) {
+ return true;
+ }
+ else if (!leftFileItem->isHidden() && rightFileItem->isHidden()) {
+ return false;
+ }
+
+ // On our priority, folders go above regular files
+ if (leftFileItem->isDir() && !rightFileItem->isDir()) {
+ return true;
+ }
+ else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
+ return false;
+ }
+
+ KDateTime leftTime;
+ leftTime.setTime_t(leftFileItem->time(KIO::UDS_MODIFICATION_TIME));
+ KDateTime rightTime;
+ rightTime.setTime_t(rightFileItem->time(KIO::UDS_MODIFICATION_TIME));
+
+ if (leftTime == rightTime)
+ {
+ const QString leftStr = dirModel->data(left, KDirModel::Name).toString();
+ const QString rightStr = dirModel->data(right, KDirModel::Name).toString();
+
+ return sortCaseSensitivity() ? (naturalCompare(leftStr, rightStr) < 0) :
+ (naturalCompare(leftStr.toLower(), rightStr.toLower()) < 0);
+ }
+
+ return leftTime > rightTime;
+ }
+ else if (sortRole() == DolphinView::SortByPermissions) {
+ }
+ else if (sortRole() == DolphinView::SortByOwner) {
+ }
+ else if (sortRole() == DolphinView::SortByGroup) {
+ }
+ else if (sortRole() == DolphinView::SortByType)