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