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/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; } 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"); 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();