From b67af3b9d298105458dc84d39d7cc83459671ffc Mon Sep 17 00:00:00 2001 From: codestation Date: Thu, 19 Dec 2013 20:53:27 -0430 Subject: [PATCH] Only index the database when a valid uuid is present. Refresh the database when a PS Vita is connected. --- src/clientmanager.cpp | 9 +++++++-- src/cmaclient.cpp | 1 + src/database.cpp | 12 +++++++++--- src/database.h | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/clientmanager.cpp b/src/clientmanager.cpp index e43e7a3..ea9bb17 100644 --- a/src/clientmanager.cpp +++ b/src/clientmanager.cpp @@ -106,8 +106,13 @@ void ClientManager::start() void ClientManager::refreshDatabase() { - if(!db.reload()) { - emit messageSent(tr("Cannot refresh the database while is in use")); + bool prepared; + if(!db.reload(prepared)) { + if(prepared) { + emit messageSent(tr("Cannot refresh the database while is in use")); + } else { + emit messageSent(tr("No PS Vita system has been registered")); + } } else { progress.show(); } diff --git a/src/cmaclient.cpp b/src/cmaclient.cpp index 43a22fa..d539782 100644 --- a/src/cmaclient.cpp +++ b/src/cmaclient.cpp @@ -174,6 +174,7 @@ void CmaClient::enterEventLoop(vita_device_t *device) eventLoop.moveToThread(&thread); connect(&thread, SIGNAL(started()), &eventLoop, SLOT(process())); + connect(&eventLoop, SIGNAL(refreshDatabase()), this, SIGNAL(refreshDatabase()), Qt::DirectConnection); connect(&eventLoop, SIGNAL(finishedEventLoop()), &thread, SLOT(quit()), Qt::DirectConnection); thread.start(); diff --git a/src/database.cpp b/src/database.cpp index 2dd141f..448a3dd 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -58,10 +58,17 @@ void Database::setUUID(const QString uuid) QSettings().setValue("lastAccountId", uuid); } -bool Database::reload() +bool Database::reload(bool &prepared) { if(mutex.tryLock()) { - timer->start(); + if(CMARootObject::uuid != "ffffffffffffffff") { + timer->start(); + prepared = true; + } else { + mutex.unlock(); + prepared = false; + return false; + } return true; } else { return false; @@ -127,7 +134,6 @@ int Database::create() case VITA_OHFI_PSPSAVE: case VITA_OHFI_PSXAPP: case VITA_OHFI_PSMAPP: - obj->initObject(settings.value("appsPath").toString()); } diff --git a/src/database.h b/src/database.h index 5b3ae82..4c66f34 100644 --- a/src/database.h +++ b/src/database.h @@ -42,7 +42,7 @@ public: explicit Database(); ~Database(); - bool reload(); + bool reload(bool &prepared); void setUUID(const QString uuid); void addEntries(CMAObject *root); CMAObject *ohfiToObject(int ohfi);