Changeset View
Changeset View
Standalone View
Standalone View
src/databaseinterface.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 1258 Lines • ▼ Show 20 Line(s) | 1205 | { | |||
---|---|---|---|---|---|
1259 | 1259 | | |||
1260 | if (listTables.contains(QLatin1String("DatabaseVersionV5")) && | 1260 | if (listTables.contains(QLatin1String("DatabaseVersionV5")) && | ||
1261 | !listTables.contains(QLatin1String("DatabaseVersionV9"))) { | 1261 | !listTables.contains(QLatin1String("DatabaseVersionV9"))) { | ||
1262 | upgradeDatabaseV9(); | 1262 | upgradeDatabaseV9(); | ||
1263 | upgradeDatabaseV11(); | 1263 | upgradeDatabaseV11(); | ||
1264 | upgradeDatabaseV12(); | 1264 | upgradeDatabaseV12(); | ||
1265 | upgradeDatabaseV13(); | 1265 | upgradeDatabaseV13(); | ||
1266 | upgradeDatabaseV14(); | 1266 | upgradeDatabaseV14(); | ||
1267 | upgradeDatabaseV15(); | ||||
1267 | 1268 | | |||
1268 | checkDatabaseSchema(); | 1269 | checkDatabaseSchema(); | ||
1269 | } else if (listTables.contains(QLatin1String("DatabaseVersionV9"))) { | 1270 | } else if (listTables.contains(QLatin1String("DatabaseVersionV9"))) { | ||
1270 | if (!listTables.contains(QLatin1String("DatabaseVersionV11"))) { | 1271 | if (!listTables.contains(QLatin1String("DatabaseVersionV11"))) { | ||
1271 | upgradeDatabaseV11(); | 1272 | upgradeDatabaseV11(); | ||
1272 | } | 1273 | } | ||
1273 | if (!listTables.contains(QLatin1String("DatabaseVersionV12"))) { | 1274 | if (!listTables.contains(QLatin1String("DatabaseVersionV12"))) { | ||
1274 | upgradeDatabaseV12(); | 1275 | upgradeDatabaseV12(); | ||
1275 | } | 1276 | } | ||
1276 | if (!listTables.contains(QLatin1String("DatabaseVersionV13"))) { | 1277 | if (!listTables.contains(QLatin1String("DatabaseVersionV13"))) { | ||
1277 | upgradeDatabaseV13(); | 1278 | upgradeDatabaseV13(); | ||
1278 | } | 1279 | } | ||
1279 | if (!listTables.contains(QLatin1String("DatabaseVersionV14"))) { | 1280 | if (!listTables.contains(QLatin1String("DatabaseVersionV14"))) { | ||
1280 | upgradeDatabaseV14(); | 1281 | upgradeDatabaseV14(); | ||
1281 | } | 1282 | } | ||
1283 | if (!listTables.contains(QStringLiteral("DatabaseVersionV15"))) { | ||||
1284 | upgradeDatabaseV15(); | ||||
1285 | } | ||||
1282 | 1286 | | |||
1283 | checkDatabaseSchema(); | 1287 | checkDatabaseSchema(); | ||
1284 | } else { | 1288 | } else { | ||
1285 | createDatabaseV9(); | 1289 | createDatabaseV9(); | ||
1286 | upgradeDatabaseV11(); | 1290 | upgradeDatabaseV11(); | ||
1287 | upgradeDatabaseV12(); | 1291 | upgradeDatabaseV12(); | ||
1288 | upgradeDatabaseV13(); | 1292 | upgradeDatabaseV13(); | ||
1289 | upgradeDatabaseV14(); | 1293 | upgradeDatabaseV14(); | ||
1294 | upgradeDatabaseV15(); | ||||
1290 | } | 1295 | } | ||
1291 | } | 1296 | } | ||
1292 | 1297 | | |||
1293 | void DatabaseInterface::createDatabaseV9() | 1298 | void DatabaseInterface::createDatabaseV9() | ||
1294 | { | 1299 | { | ||
1295 | qCInfo(orgKdeElisaDatabase) << "begin creation of v9 database schema"; | 1300 | qCInfo(orgKdeElisaDatabase) << "begin creation of v9 database schema"; | ||
1296 | 1301 | | |||
1297 | { | 1302 | { | ||
▲ Show 20 Lines • Show All 1585 Lines • ▼ Show 20 Line(s) | 2859 | { | |||
2883 | d->mTracksDatabase.transaction(); | 2888 | d->mTracksDatabase.transaction(); | ||
2884 | 2889 | | |||
2885 | { | 2890 | { | ||
2886 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 2891 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
2887 | 2892 | | |||
2888 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Radios` (" | 2893 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Radios` (" | ||
2889 | "`ID` INTEGER PRIMARY KEY AUTOINCREMENT, " | 2894 | "`ID` INTEGER PRIMARY KEY AUTOINCREMENT, " | ||
2890 | "`HttpAddress` VARCHAR(255) NOT NULL, " | 2895 | "`HttpAddress` VARCHAR(255) NOT NULL, " | ||
2891 | "`Priority` INTEGER NOT NULL, " | 2896 | "`Priority` INTEGER NOT NULL, " | ||
mgallien: Even though this branch has not been released, can you bump the database version and do this… | |||||
Thanks for the feedback. I wonder if there is a particular reason for creating some tables to check the database version? (DatabaseVersionV13, DatabaseVersionV14 ...). Maybe we could use on table with a version field? It could be more efficient/readable in DatabaseInterface::initDatabase ? jguidon: Thanks for the feedback.
I wonder if there is a particular reason for creating some tables to… | |||||
The current solution was what I found enough to do the job. mgallien: The current solution was what I found enough to do the job.
Feel free to propose another… | |||||
2892 | "`Title` VARCHAR(85) NOT NULL, " | 2897 | "`Title` VARCHAR(85) NOT NULL, " | ||
2893 | "`Rating` INTEGER NOT NULL DEFAULT 0, " | 2898 | "`Rating` INTEGER NOT NULL DEFAULT 0, " | ||
2894 | "`Genre` VARCHAR(55), " | 2899 | "`Genre` VARCHAR(55), " | ||
2895 | "`Comment` VARCHAR(255), " | 2900 | "`Comment` VARCHAR(255), " | ||
2896 | "UNIQUE (" | 2901 | "UNIQUE (" | ||
2897 | "`HttpAddress`" | 2902 | "`HttpAddress`" | ||
2898 | "), " | 2903 | "), " | ||
2899 | "UNIQUE (" | 2904 | "UNIQUE (" | ||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | 2948 | if (!result) { | |||
2946 | 2951 | | |||
2947 | Q_EMIT databaseError(); | 2952 | Q_EMIT databaseError(); | ||
2948 | } | 2953 | } | ||
2949 | } | 2954 | } | ||
2950 | 2955 | | |||
2951 | qCInfo(orgKdeElisaDatabase) << "finished update to v14 of database schema"; | 2956 | qCInfo(orgKdeElisaDatabase) << "finished update to v14 of database schema"; | ||
2952 | } | 2957 | } | ||
2953 | 2958 | | |||
2959 | void DatabaseInterface::upgradeDatabaseV15() | ||||
2960 | { | ||||
2961 | qCInfo(orgKdeElisaDatabase) << "begin update to v15 of database schema"; | ||||
2962 | | ||||
2963 | { | ||||
2964 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
2965 | | ||||
2966 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DatabaseVersionV15` (`Version` INTEGER PRIMARY KEY NOT NULL)")); | ||||
2967 | | ||||
2968 | if (!result) { | ||||
2969 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastQuery(); | ||||
2970 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastError(); | ||||
2971 | | ||||
2972 | Q_EMIT databaseError(); | ||||
2973 | } | ||||
2974 | } | ||||
2975 | | ||||
2976 | { | ||||
2977 | QSqlQuery disableForeignKeys(d->mTracksDatabase); | ||||
2978 | | ||||
2979 | auto result = disableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=OFF")); | ||||
2980 | | ||||
2981 | if (!result) { | ||||
2982 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << disableForeignKeys.lastQuery(); | ||||
2983 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << disableForeignKeys.lastError(); | ||||
2984 | | ||||
2985 | Q_EMIT databaseError(); | ||||
2986 | } | ||||
2987 | } | ||||
2988 | | ||||
2989 | d->mTracksDatabase.transaction(); | ||||
2990 | | ||||
2991 | { | ||||
2992 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
2993 | | ||||
2994 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `RadiosNew` (" | ||||
2995 | "`ID` INTEGER PRIMARY KEY AUTOINCREMENT, " | ||||
2996 | "`HttpAddress` VARCHAR(255) NOT NULL, " | ||||
2997 | "`ImageAddress` VARCHAR(255) NOT NULL, " | ||||
2998 | "`Title` VARCHAR(85) NOT NULL, " | ||||
2999 | "`Rating` INTEGER NOT NULL DEFAULT 0, " | ||||
3000 | "`Genre` VARCHAR(55), " | ||||
3001 | "`Comment` VARCHAR(255), " | ||||
3002 | "UNIQUE (" | ||||
3003 | "`HttpAddress`" | ||||
3004 | "), " | ||||
3005 | "UNIQUE (" | ||||
3006 | "`Title`, `HttpAddress`" | ||||
3007 | ") " | ||||
3008 | "CONSTRAINT fk_tracks_genre FOREIGN KEY (`Genre`) REFERENCES `Genre`(`Name`))" | ||||
3009 | )); | ||||
3010 | | ||||
3011 | if (!result) { | ||||
3012 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastQuery(); | ||||
3013 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastError(); | ||||
3014 | | ||||
3015 | Q_EMIT databaseError(); | ||||
3016 | } | ||||
3017 | } | ||||
3018 | | ||||
3019 | { | ||||
3020 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
3021 | | ||||
3022 | const auto &result = createSchemaQuery.exec(QStringLiteral("INSERT INTO RadiosNew SELECT ID, HttpAddress, '', Title, Rating, Genre, Comment FROM Radios")); | ||||
3023 | | ||||
3024 | if (!result) { | ||||
3025 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastQuery(); | ||||
3026 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastError(); | ||||
3027 | | ||||
3028 | Q_EMIT databaseError(); | ||||
3029 | } | ||||
3030 | } | ||||
3031 | | ||||
3032 | { | ||||
3033 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
3034 | | ||||
3035 | const auto &result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `Radios`")); | ||||
3036 | | ||||
3037 | if (!result) { | ||||
3038 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastQuery(); | ||||
3039 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastError(); | ||||
3040 | | ||||
3041 | Q_EMIT databaseError(); | ||||
3042 | } | ||||
3043 | } | ||||
3044 | | ||||
3045 | { | ||||
3046 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
3047 | | ||||
3048 | const auto &result = createSchemaQuery.exec(QStringLiteral("ALTER TABLE `RadiosNew` RENAME TO `Radios`")); | ||||
3049 | | ||||
3050 | if (!result) { | ||||
3051 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastQuery(); | ||||
3052 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << createSchemaQuery.lastError(); | ||||
3053 | | ||||
3054 | Q_EMIT databaseError(); | ||||
3055 | } | ||||
3056 | } | ||||
3057 | | ||||
3058 | { | ||||
3059 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
3060 | const auto &result = createSchemaQuery.exec(QStringLiteral("INSERT INTO `Radios` (`HttpAddress`, `ImageAddress`, `Title`) " | ||||
3061 | "SELECT 'https://chai5she.cdn.dvmr.fr/francemusique-lofi.mp3', 'https://static.radio.fr/images/broadcasts/07/f7/3366/c44.png', 'France Musique'" | ||||
3062 | )); | ||||
3063 | if (!result) { | ||||
3064 | qCInfo(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << createSchemaQuery.lastQuery(); | ||||
3065 | qCInfo(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << createSchemaQuery.lastError(); | ||||
3066 | | ||||
3067 | Q_EMIT databaseError(); | ||||
3068 | } | ||||
3069 | } | ||||
3070 | | ||||
3071 | d->mTracksDatabase.commit(); | ||||
3072 | | ||||
3073 | { | ||||
3074 | QSqlQuery enableForeignKeys(d->mTracksDatabase); | ||||
3075 | | ||||
3076 | auto result = enableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=ON")); | ||||
3077 | | ||||
3078 | if (!result) { | ||||
3079 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << enableForeignKeys.lastQuery(); | ||||
3080 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV15" << enableForeignKeys.lastError(); | ||||
3081 | | ||||
3082 | Q_EMIT databaseError(); | ||||
3083 | } | ||||
3084 | } | ||||
3085 | | ||||
3086 | qCInfo(orgKdeElisaDatabase) << "finished update to v15 of database schema"; | ||||
3087 | } | ||||
3088 | | ||||
2954 | void DatabaseInterface::checkDatabaseSchema() | 3089 | void DatabaseInterface::checkDatabaseSchema() | ||
2955 | { | 3090 | { | ||
2956 | checkAlbumsTableSchema(); | 3091 | checkAlbumsTableSchema(); | ||
2957 | if (d->mIsInBadState) | 3092 | if (d->mIsInBadState) | ||
2958 | { | 3093 | { | ||
2959 | resetDatabase(); | 3094 | resetDatabase(); | ||
2960 | return; | 3095 | return; | ||
2961 | } | 3096 | } | ||
▲ Show 20 Lines • Show All 709 Lines • ▼ Show 20 Line(s) | 3686 | { | |||
3671 | } | 3806 | } | ||
3672 | } | 3807 | } | ||
3673 | 3808 | | |||
3674 | { | 3809 | { | ||
3675 | auto selectAllRadiosText = QStringLiteral("SELECT " | 3810 | auto selectAllRadiosText = QStringLiteral("SELECT " | ||
3676 | "radios.`ID`, " | 3811 | "radios.`ID`, " | ||
3677 | "radios.`Title`, " | 3812 | "radios.`Title`, " | ||
3678 | "radios.`HttpAddress`, " | 3813 | "radios.`HttpAddress`, " | ||
3814 | "radios.`ImageAddress`, " | ||||
3679 | "radios.`Rating`, " | 3815 | "radios.`Rating`, " | ||
3680 | "trackGenre.`Name`, " | 3816 | "trackGenre.`Name`, " | ||
3681 | "radios.`Comment` " | 3817 | "radios.`Comment` " | ||
3682 | "FROM " | 3818 | "FROM " | ||
3683 | "`Radios` radios " | 3819 | "`Radios` radios " | ||
3684 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = radios.`Genre` " | 3820 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = radios.`Genre` " | ||
3685 | ""); | 3821 | ""); | ||
3686 | 3822 | | |||
▲ Show 20 Lines • Show All 915 Lines • ▼ Show 20 Line(s) | 4628 | { | |||
4602 | } | 4738 | } | ||
4603 | } | 4739 | } | ||
4604 | 4740 | | |||
4605 | { | 4741 | { | ||
4606 | auto selectRadioFromIdQueryText = QStringLiteral("SELECT " | 4742 | auto selectRadioFromIdQueryText = QStringLiteral("SELECT " | ||
4607 | "radios.`ID`, " | 4743 | "radios.`ID`, " | ||
4608 | "radios.`Title`, " | 4744 | "radios.`Title`, " | ||
4609 | "radios.`HttpAddress`, " | 4745 | "radios.`HttpAddress`, " | ||
4746 | "radios.`ImageAddress`, " | ||||
4610 | "radios.`Rating`, " | 4747 | "radios.`Rating`, " | ||
4611 | "trackGenre.`Name`, " | 4748 | "trackGenre.`Name`, " | ||
4612 | "radios.`Comment` " | 4749 | "radios.`Comment` " | ||
4613 | "FROM " | 4750 | "FROM " | ||
4614 | "`Radios` radios " | 4751 | "`Radios` radios " | ||
4615 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = radios.`Genre` " | 4752 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = radios.`Genre` " | ||
4616 | "WHERE " | 4753 | "WHERE " | ||
4617 | "radios.`ID` = :radioId " | 4754 | "radios.`ID` = :radioId " | ||
▲ Show 20 Lines • Show All 654 Lines • ▼ Show 20 Line(s) | |||||
5272 | 5409 | | |||
5273 | { | 5410 | { | ||
5274 | auto insertRadioQueryText = QStringLiteral("INSERT INTO `Radios` " | 5411 | auto insertRadioQueryText = QStringLiteral("INSERT INTO `Radios` " | ||
5275 | "(" | 5412 | "(" | ||
5276 | "`Title`, " | 5413 | "`Title`, " | ||
5277 | "`httpAddress`, " | 5414 | "`httpAddress`, " | ||
5278 | "`Comment`, " | 5415 | "`Comment`, " | ||
5279 | "`Rating`, " | 5416 | "`Rating`, " | ||
5280 | "`Priority`) " | 5417 | "`ImageAddress`) " | ||
5281 | "VALUES " | 5418 | "VALUES " | ||
5282 | "(" | 5419 | "(" | ||
5283 | ":title, " | 5420 | ":title, " | ||
5284 | ":httpAddress, " | 5421 | ":httpAddress, " | ||
5285 | ":comment, " | 5422 | ":comment, " | ||
5286 | ":trackRating," | 5423 | ":trackRating," | ||
5287 | "1)"); | 5424 | ":imageAddress)"); | ||
5288 | 5425 | | |||
5289 | auto result = prepareQuery(d->mInsertRadioQuery, insertRadioQueryText); | 5426 | auto result = prepareQuery(d->mInsertRadioQuery, insertRadioQueryText); | ||
5290 | 5427 | | |||
5291 | if (!result) { | 5428 | if (!result) { | ||
5292 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertRadioQuery.lastQuery(); | 5429 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertRadioQuery.lastQuery(); | ||
5293 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertRadioQuery.lastError(); | 5430 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertRadioQuery.lastError(); | ||
5294 | 5431 | | |||
5295 | Q_EMIT databaseError(); | 5432 | Q_EMIT databaseError(); | ||
Show All 15 Lines | |||||
5311 | } | 5448 | } | ||
5312 | 5449 | | |||
5313 | { | 5450 | { | ||
5314 | auto updateRadioQueryText = QStringLiteral("UPDATE `Radios` " | 5451 | auto updateRadioQueryText = QStringLiteral("UPDATE `Radios` " | ||
5315 | "SET " | 5452 | "SET " | ||
5316 | "`HttpAddress` = :httpAddress, " | 5453 | "`HttpAddress` = :httpAddress, " | ||
5317 | "`Title` = :title, " | 5454 | "`Title` = :title, " | ||
5318 | "`Comment` = :comment, " | 5455 | "`Comment` = :comment, " | ||
5319 | "`Rating` = :trackRating " | 5456 | "`Rating` = :trackRating, " | ||
5457 | "`ImageAddress` = :imageAddress " | ||||
5320 | "WHERE " | 5458 | "WHERE " | ||
5321 | "`ID` = :radioId"); | 5459 | "`ID` = :radioId"); | ||
5322 | 5460 | | |||
5323 | auto result = prepareQuery(d->mUpdateRadioQuery, updateRadioQueryText); | 5461 | auto result = prepareQuery(d->mUpdateRadioQuery, updateRadioQueryText); | ||
5324 | 5462 | | |||
5325 | if (!result) { | 5463 | if (!result) { | ||
5326 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateRadioQuery.lastQuery(); | 5464 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateRadioQuery.lastQuery(); | ||
5327 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateRadioQuery.lastError(); | 5465 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateRadioQuery.lastError(); | ||
▲ Show 20 Lines • Show All 1242 Lines • ▼ Show 20 Line(s) | |||||
6570 | } | 6708 | } | ||
6571 | 6709 | | |||
6572 | DataTypes::TrackDataType DatabaseInterface::buildRadioDataFromDatabaseRecord(const QSqlRecord &trackRecord) const | 6710 | DataTypes::TrackDataType DatabaseInterface::buildRadioDataFromDatabaseRecord(const QSqlRecord &trackRecord) const | ||
6573 | { | 6711 | { | ||
6574 | DataTypes::TrackDataType result; | 6712 | DataTypes::TrackDataType result; | ||
6575 | 6713 | | |||
6576 | result[DataTypes::TrackDataType::key_type::DatabaseIdRole] = trackRecord.value(0); | 6714 | result[DataTypes::TrackDataType::key_type::DatabaseIdRole] = trackRecord.value(0); | ||
6577 | result[DataTypes::TrackDataType::key_type::TitleRole] = trackRecord.value(1); | 6715 | result[DataTypes::TrackDataType::key_type::TitleRole] = trackRecord.value(1); | ||
6578 | | ||||
6579 | result[DataTypes::TrackDataType::key_type::AlbumRole] = i18n("Radios"); | 6716 | result[DataTypes::TrackDataType::key_type::AlbumRole] = i18n("Radios"); | ||
6580 | result[DataTypes::TrackDataType::key_type::ArtistRole] = trackRecord.value(1); | 6717 | result[DataTypes::TrackDataType::key_type::ArtistRole] = trackRecord.value(1); | ||
6581 | | ||||
6582 | result[DataTypes::TrackDataType::key_type::ResourceRole] = trackRecord.value(2); | 6718 | result[DataTypes::TrackDataType::key_type::ResourceRole] = trackRecord.value(2); | ||
6583 | result[DataTypes::TrackDataType::key_type::RatingRole] = trackRecord.value(3); | 6719 | result[DataTypes::TrackDataType::key_type::ImageUrlRole] = trackRecord.value(3); | ||
6584 | if (!trackRecord.value(4).isNull()) { | 6720 | result[DataTypes::TrackDataType::key_type::RatingRole] = trackRecord.value(4); | ||
6585 | result[DataTypes::TrackDataType::key_type::GenreRole] = trackRecord.value(4); | 6721 | if (!trackRecord.value(5).isNull()) { | ||
6722 | result[DataTypes::TrackDataType::key_type::GenreRole] = trackRecord.value(5); | ||||
6586 | } | 6723 | } | ||
6587 | result[DataTypes::TrackDataType::key_type::CommentRole] = trackRecord.value(5); | 6724 | result[DataTypes::TrackDataType::key_type::CommentRole] = trackRecord.value(6); | ||
6588 | result[DataTypes::TrackDataType::key_type::ElementTypeRole] = ElisaUtils::Radio; | 6725 | result[DataTypes::TrackDataType::key_type::ElementTypeRole] = ElisaUtils::Radio; | ||
6589 | 6726 | | |||
6590 | return result; | 6727 | return result; | ||
6591 | } | 6728 | } | ||
6592 | 6729 | | |||
6593 | void DatabaseInterface::internalRemoveTracksList(const QList<QUrl> &removedTracks) | 6730 | void DatabaseInterface::internalRemoveTracksList(const QList<QUrl> &removedTracks) | ||
6594 | { | 6731 | { | ||
6595 | QSet<qulonglong> modifiedAlbums; | 6732 | QSet<qulonglong> modifiedAlbums; | ||
▲ Show 20 Lines • Show All 389 Lines • ▼ Show 20 Line(s) | 7121 | if (oneTrack.databaseId() == -1ull) { | |||
6985 | query = d->mInsertRadioQuery; | 7122 | query = d->mInsertRadioQuery; | ||
6986 | } | 7123 | } | ||
6987 | 7124 | | |||
6988 | query.bindValue(QStringLiteral(":httpAddress"), oneTrack.resourceURI()); | 7125 | query.bindValue(QStringLiteral(":httpAddress"), oneTrack.resourceURI()); | ||
6989 | query.bindValue(QStringLiteral(":radioId"), oneTrack.databaseId()); | 7126 | query.bindValue(QStringLiteral(":radioId"), oneTrack.databaseId()); | ||
6990 | query.bindValue(QStringLiteral(":title"), oneTrack.title()); | 7127 | query.bindValue(QStringLiteral(":title"), oneTrack.title()); | ||
6991 | query.bindValue(QStringLiteral(":comment"), oneTrack.comment()); | 7128 | query.bindValue(QStringLiteral(":comment"), oneTrack.comment()); | ||
6992 | query.bindValue(QStringLiteral(":trackRating"), oneTrack.rating()); | 7129 | query.bindValue(QStringLiteral(":trackRating"), oneTrack.rating()); | ||
7130 | query.bindValue(QStringLiteral(":imageAddress"), oneTrack.albumCover()); | ||||
6993 | 7131 | | |||
6994 | auto result = execQuery(query); | 7132 | auto result = execQuery(query); | ||
6995 | 7133 | | |||
6996 | if (!result || !query.isActive()) { | 7134 | if (!result || !query.isActive()) { | ||
6997 | Q_EMIT databaseError(); | 7135 | Q_EMIT databaseError(); | ||
6998 | 7136 | | |||
6999 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << query.lastQuery(); | 7137 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << query.lastQuery(); | ||
7000 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << query.boundValues(); | 7138 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << query.boundValues(); | ||
▲ Show 20 Lines • Show All 935 Lines • Show Last 20 Lines |
Even though this branch has not been released, can you bump the database version and do this modification via a database upgrade. That will be nicer for people using builds from trunk (think of early testers via the flatpak package built by KDE for example).