Show sorted game entries on CMA (PSV side).

This commit is contained in:
codestation
2016-01-10 12:56:40 -04:30
parent 6218846688
commit b56e0bd530

View File

@@ -20,6 +20,7 @@
#include "cmautils.h"
#include "qlistdb.h"
#include "cmaobject.h"
#include "sforeader.h"
#include <QDir>
#include <QDirIterator>
@@ -28,6 +29,30 @@
#include <QThread>
#include <QDebug>
static bool nameLessThan(const QFileInfo &v1, const QFileInfo &v2)
{
if(v1.isDir() && v2.isDir()) {
SfoReader sfo;
QString t1, t2;
if(sfo.load(v1.absoluteFilePath() + QDir::separator() + "sce_sys" + QDir::separator() + "param.sfo") ||
sfo.load(v1.absoluteFilePath() + QDir::separator() + "PARAM.SFO")) {
t1 = QString(sfo.value("TITLE", ""));
}
if(sfo.load(v2.absoluteFilePath() + QDir::separator() + "sce_sys" + QDir::separator() + "param.sfo") ||
sfo.load(v2.absoluteFilePath() + QDir::separator() + "PARAM.SFO")) {
t2 = QString(sfo.value("TITLE", ""));
}
if(!t1.isEmpty() && !t2.isEmpty()) {
return t1 < t2;
}
}
return v1.absoluteFilePath() < v2.absoluteFilePath();
}
QListDB::QListDB(QObject *obj_parent) :
Database(obj_parent)
{
@@ -151,7 +176,6 @@ int QListDB::create()
}
qDebug("Added objects for OHFI 0x%02X: %i", ohfi_array[i], dir_count);
total_objects += dir_count;
object_list[ohfi_array[i]] = list;
}
@@ -215,6 +239,10 @@ int QListDB::recursiveScanRootDirectory(root_list &list, CMAObject *obj_parent,
dir.setSorting(QDir::Name | QDir::DirsFirst);
QFileInfoList qsl = dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot, QDir::Time);
if(obj_parent && !obj_parent->parent) {
qSort(qsl.begin(), qsl.end(), nameLessThan);
}
foreach(const QFileInfo &info, qsl) {
if(!continueOperation()) {