Show sorted game entries on CMA (PSV side).
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
#include "cmautils.h"
|
#include "cmautils.h"
|
||||||
#include "qlistdb.h"
|
#include "qlistdb.h"
|
||||||
#include "cmaobject.h"
|
#include "cmaobject.h"
|
||||||
|
#include "sforeader.h"
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QDirIterator>
|
#include <QDirIterator>
|
||||||
@@ -28,6 +29,30 @@
|
|||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QDebug>
|
#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) :
|
QListDB::QListDB(QObject *obj_parent) :
|
||||||
Database(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);
|
qDebug("Added objects for OHFI 0x%02X: %i", ohfi_array[i], dir_count);
|
||||||
|
|
||||||
total_objects += dir_count;
|
total_objects += dir_count;
|
||||||
object_list[ohfi_array[i]] = list;
|
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);
|
dir.setSorting(QDir::Name | QDir::DirsFirst);
|
||||||
QFileInfoList qsl = dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot, QDir::Time);
|
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) {
|
foreach(const QFileInfo &info, qsl) {
|
||||||
|
|
||||||
if(!continueOperation()) {
|
if(!continueOperation()) {
|
||||||
|
Reference in New Issue
Block a user