From b5b7ad8958674db05315a62831a9c70e59e763e1 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 30 Mar 2015 12:28:13 +0200 Subject: [PATCH 1/3] Startup: fix resetting card database to default The check was inverted. LoadStatus::Ok = 0, so only when db->loadCardDatabase() returns 0 we know the card database path is correct --- cockatrice/src/carddatabase.cpp | 2 +- cockatrice/src/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index 64573617..8c0617d6 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -926,7 +926,7 @@ LoadStatus CardDatabase::loadCardDatabase(const QString &path, bool tokens) if (!tokens) { loadStatus = tempLoadStatus; - qDebug() << "loadCardDatabase(): Status = " << loadStatus; + qDebug() << "loadCardDatabase(): Path = " << path << " Status = " << loadStatus; } diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index b21cc374..672fb17a 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -146,7 +146,7 @@ int main(int argc, char *argv[]) const QString dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); #endif if (!db->getLoadSuccess()) - if (db->loadCardDatabase(dataDir + "/cards.xml")) + if (!db->loadCardDatabase(dataDir + "/cards.xml")) settingsCache->setCardDatabasePath(dataDir + "/cards.xml"); if (settingsCache->getTokenDatabasePath().isEmpty()) settingsCache->setTokenDatabasePath(dataDir + "/tokens.xml"); From 757795f7cd05ac23d498d5d1b650418d8af1de3b Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 30 Mar 2015 15:41:28 +0200 Subject: [PATCH 2/3] Deck editor: skip unnecessary card name comparison when no search term is defined --- cockatrice/src/carddatabasemodel.cpp | 30 +++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/cockatrice/src/carddatabasemodel.cpp b/cockatrice/src/carddatabasemodel.cpp index 6a8d3fe7..b84abdd0 100644 --- a/cockatrice/src/carddatabasemodel.cpp +++ b/cockatrice/src/carddatabasemodel.cpp @@ -123,21 +123,23 @@ bool CardDatabaseDisplayModel::lessThan(const QModelIndex &left, const QModelInd QString leftString = sourceModel()->data(left).toString(); QString rightString = sourceModel()->data(right).toString(); - if (leftString.compare(cardName, Qt::CaseInsensitive) == 0) {// exact match should be at top - return true; + if (!cardName.isEmpty()) + { + if (leftString.compare(cardName, Qt::CaseInsensitive) == 0) {// exact match should be at top + return true; + } + + if (rightString.compare(cardName, Qt::CaseInsensitive) == 0) {// exact match should be at top + return false; + } + + bool isLeftType2 = leftString.startsWith(cardName, Qt::CaseInsensitive); + bool isRightType2 = rightString.startsWith(cardName, Qt::CaseInsensitive); + if (isLeftType2 && !isRightType2) + return true; + if (isRightType2 && !isLeftType2) + return false; } - - if (rightString.compare(cardName, Qt::CaseInsensitive) == 0) {// exact match should be at top - return false; - } - - bool isLeftType2 = leftString.startsWith(cardName, Qt::CaseInsensitive); - bool isRightType2 = rightString.startsWith(cardName, Qt::CaseInsensitive); - if (isLeftType2 && !isRightType2) - return true; - if (isRightType2 && !isLeftType2) - return false; - return QString::localeAwareCompare(leftString, rightString) < 0; } From 399886c25c8d74b6ff3060b7db2a488bc2712890 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 30 Mar 2015 15:58:33 +0200 Subject: [PATCH 3/3] Sound engine: don't open() inexistent files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avoid error “QIODevice::read: device not open” --- cockatrice/src/soundengine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cockatrice/src/soundengine.cpp b/cockatrice/src/soundengine.cpp index 89820f9d..d1f5c214 100644 --- a/cockatrice/src/soundengine.cpp +++ b/cockatrice/src/soundengine.cpp @@ -22,6 +22,8 @@ void SoundEngine::cacheData() << "notification" << "draw" << "playcard" << "shuffle" << "tap" << "untap" << "cuckoo"; for (int i = 0; i < fileNames.size(); ++i) { QFile file(settingsCache->getSoundPath() + "/" + fileNames[i] + ".raw"); + if(!file.exists()) + continue; file.open(QIODevice::ReadOnly); audioData.insert(fileNames[i], file.readAll()); file.close();