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 All 11 Lines | |||||
12 | * Lesser General Public License for more details. | 12 | * Lesser General Public License for more details. | ||
13 | * | 13 | * | ||
14 | * You should have received a copy of the GNU Lesser General Public License | 14 | * You should have received a copy of the GNU Lesser General Public License | ||
15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | 15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
16 | */ | 16 | */ | ||
17 | 17 | | |||
18 | #include "databaseinterface.h" | 18 | #include "databaseinterface.h" | ||
19 | 19 | | |||
20 | #include "databaseLogging.h" | ||||
21 | | ||||
20 | #include "musicaudiotrack.h" | 22 | #include "musicaudiotrack.h" | ||
21 | 23 | | |||
22 | #include <KI18n/KLocalizedString> | 24 | #include <KI18n/KLocalizedString> | ||
23 | 25 | | |||
24 | #include <QCoreApplication> | 26 | #include <QCoreApplication> | ||
25 | 27 | | |||
26 | #include <QSqlDatabase> | 28 | #include <QSqlDatabase> | ||
27 | #include <QSqlDriver> | 29 | #include <QSqlDriver> | ||
28 | #include <QSqlQuery> | 30 | #include <QSqlQuery> | ||
29 | #include <QSqlRecord> | 31 | #include <QSqlRecord> | ||
30 | #include <QSqlError> | 32 | #include <QSqlError> | ||
31 | 33 | | |||
32 | #include <QDateTime> | 34 | #include <QDateTime> | ||
33 | #include <QMutex> | 35 | #include <QMutex> | ||
34 | #include <QVariant> | 36 | #include <QVariant> | ||
35 | #include <QAtomicInt> | 37 | #include <QAtomicInt> | ||
38 | #include <QElapsedTimer> | ||||
36 | #include <QDebug> | 39 | #include <QDebug> | ||
37 | 40 | | |||
38 | #include <algorithm> | 41 | #include <algorithm> | ||
39 | 42 | | |||
40 | class DatabaseInterfacePrivate | 43 | class DatabaseInterfacePrivate | ||
41 | { | 44 | { | ||
42 | public: | 45 | public: | ||
43 | 46 | | |||
Show All 9 Lines | 48 | : mTracksDatabase(tracksDatabase), mSelectAlbumQuery(mTracksDatabase), | |||
53 | mSelectArtistQuery(mTracksDatabase), mUpdateTrackStatistics(mTracksDatabase), | 56 | mSelectArtistQuery(mTracksDatabase), mUpdateTrackStatistics(mTracksDatabase), | ||
54 | mRemoveTrackQuery(mTracksDatabase), mRemoveAlbumQuery(mTracksDatabase), | 57 | mRemoveTrackQuery(mTracksDatabase), mRemoveAlbumQuery(mTracksDatabase), | ||
55 | mRemoveArtistQuery(mTracksDatabase), mSelectAllTracksQuery(mTracksDatabase), | 58 | mRemoveArtistQuery(mTracksDatabase), mSelectAllTracksQuery(mTracksDatabase), | ||
56 | mInsertTrackMapping(mTracksDatabase), mUpdateTrackFirstPlayStatistics(mTracksDatabase), | 59 | mInsertTrackMapping(mTracksDatabase), mUpdateTrackFirstPlayStatistics(mTracksDatabase), | ||
57 | mInsertMusicSource(mTracksDatabase), mSelectMusicSource(mTracksDatabase), | 60 | mInsertMusicSource(mTracksDatabase), mSelectMusicSource(mTracksDatabase), | ||
58 | mUpdateTrackPriority(mTracksDatabase), mUpdateTrackFileModifiedTime(mTracksDatabase), | 61 | mUpdateTrackPriority(mTracksDatabase), mUpdateTrackFileModifiedTime(mTracksDatabase), | ||
59 | mSelectTracksMapping(mTracksDatabase), mSelectTracksMappingPriority(mTracksDatabase), | 62 | mSelectTracksMapping(mTracksDatabase), mSelectTracksMappingPriority(mTracksDatabase), | ||
60 | mUpdateAlbumArtUriFromAlbumIdQuery(mTracksDatabase), mSelectTracksMappingPriorityByTrackId(mTracksDatabase), | 63 | mUpdateAlbumArtUriFromAlbumIdQuery(mTracksDatabase), mSelectTracksMappingPriorityByTrackId(mTracksDatabase), | ||
61 | mSelectAllTrackFilesFromSourceQuery(mTracksDatabase), mSelectAlbumIdsFromArtist(mTracksDatabase), | 64 | mSelectAlbumIdsFromArtist(mTracksDatabase), mSelectAllTrackFilesQuery(mTracksDatabase), | ||
62 | mRemoveTracksMappingFromSource(mTracksDatabase), mRemoveTracksMapping(mTracksDatabase), | 65 | mRemoveTracksMappingFromSource(mTracksDatabase), mRemoveTracksMapping(mTracksDatabase), | ||
63 | mSelectTracksWithoutMappingQuery(mTracksDatabase), mSelectAlbumIdFromTitleAndArtistQuery(mTracksDatabase), | 66 | mSelectTracksWithoutMappingQuery(mTracksDatabase), mSelectAlbumIdFromTitleAndArtistQuery(mTracksDatabase), | ||
64 | mSelectAlbumIdFromTitleWithoutArtistQuery(mTracksDatabase), | 67 | mSelectAlbumIdFromTitleWithoutArtistQuery(mTracksDatabase), | ||
65 | mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery(mTracksDatabase), mSelectAlbumArtUriFromAlbumIdQuery(mTracksDatabase), | 68 | mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery(mTracksDatabase), mSelectAlbumArtUriFromAlbumIdQuery(mTracksDatabase), | ||
66 | mInsertComposerQuery(mTracksDatabase), mSelectComposerByNameQuery(mTracksDatabase), | 69 | mInsertComposerQuery(mTracksDatabase), mSelectComposerByNameQuery(mTracksDatabase), | ||
67 | mSelectComposerQuery(mTracksDatabase), mInsertLyricistQuery(mTracksDatabase), | 70 | mSelectComposerQuery(mTracksDatabase), mInsertLyricistQuery(mTracksDatabase), | ||
68 | mSelectLyricistByNameQuery(mTracksDatabase), mSelectLyricistQuery(mTracksDatabase), | 71 | mSelectLyricistByNameQuery(mTracksDatabase), mSelectLyricistQuery(mTracksDatabase), | ||
69 | mInsertGenreQuery(mTracksDatabase), mSelectGenreByNameQuery(mTracksDatabase), | 72 | mInsertGenreQuery(mTracksDatabase), mSelectGenreByNameQuery(mTracksDatabase), | ||
70 | mSelectGenreQuery(mTracksDatabase), mSelectAllTracksShortQuery(mTracksDatabase), | 73 | mSelectGenreQuery(mTracksDatabase), mSelectAllTracksShortQuery(mTracksDatabase), | ||
71 | mSelectAllAlbumsShortQuery(mTracksDatabase), mSelectAllComposersQuery(mTracksDatabase), | 74 | mSelectAllAlbumsShortQuery(mTracksDatabase), mSelectAllComposersQuery(mTracksDatabase), | ||
72 | mSelectAllLyricistsQuery(mTracksDatabase), mSelectCountAlbumsForComposerQuery(mTracksDatabase), | 75 | mSelectAllLyricistsQuery(mTracksDatabase), mSelectCountAlbumsForComposerQuery(mTracksDatabase), | ||
73 | mSelectCountAlbumsForLyricistQuery(mTracksDatabase), mSelectAllGenresQuery(mTracksDatabase), | 76 | mSelectCountAlbumsForLyricistQuery(mTracksDatabase), mSelectAllGenresQuery(mTracksDatabase), | ||
74 | mSelectGenreForArtistQuery(mTracksDatabase), mSelectGenreForAlbumQuery(mTracksDatabase), | 77 | mSelectGenreForArtistQuery(mTracksDatabase), mSelectGenreForAlbumQuery(mTracksDatabase), | ||
75 | mUpdateTrackQuery(mTracksDatabase), mUpdateAlbumArtistQuery(mTracksDatabase), | 78 | mUpdateTrackQuery(mTracksDatabase), mUpdateAlbumArtistQuery(mTracksDatabase), | ||
76 | mUpdateAlbumArtistInTracksQuery(mTracksDatabase), mQueryMaximumTrackIdQuery(mTracksDatabase), | 79 | mUpdateAlbumArtistInTracksQuery(mTracksDatabase), mQueryMaximumTrackIdQuery(mTracksDatabase), | ||
77 | mQueryMaximumAlbumIdQuery(mTracksDatabase), mQueryMaximumArtistIdQuery(mTracksDatabase), | 80 | mQueryMaximumAlbumIdQuery(mTracksDatabase), mQueryMaximumArtistIdQuery(mTracksDatabase), | ||
78 | mQueryMaximumLyricistIdQuery(mTracksDatabase), mQueryMaximumComposerIdQuery(mTracksDatabase), | 81 | mQueryMaximumLyricistIdQuery(mTracksDatabase), mQueryMaximumComposerIdQuery(mTracksDatabase), | ||
79 | mQueryMaximumGenreIdQuery(mTracksDatabase), mSelectAllArtistsWithGenreFilterQuery(mTracksDatabase), | 82 | mQueryMaximumGenreIdQuery(mTracksDatabase), mSelectAllArtistsWithGenreFilterQuery(mTracksDatabase), | ||
80 | mSelectAllAlbumsShortWithGenreArtistFilterQuery(mTracksDatabase), mSelectAllAlbumsShortWithArtistFilterQuery(mTracksDatabase), | 83 | mSelectAllAlbumsShortWithGenreArtistFilterQuery(mTracksDatabase), mSelectAllAlbumsShortWithArtistFilterQuery(mTracksDatabase), | ||
81 | mSelectAllRecentlyPlayedTracksQuery(mTracksDatabase), mSelectAllFrequentlyPlayedTracksQuery(mTracksDatabase), | 84 | mSelectAllRecentlyPlayedTracksQuery(mTracksDatabase), mSelectAllFrequentlyPlayedTracksQuery(mTracksDatabase), | ||
82 | mClearTracksTable(mTracksDatabase), mClearAlbumsTable(mTracksDatabase), mClearArtistsTable(mTracksDatabase), | 85 | mClearTracksTable(mTracksDatabase), mClearAlbumsTable(mTracksDatabase), mClearArtistsTable(mTracksDatabase), | ||
83 | mClearComposerTable(mTracksDatabase), mClearGenreTable(mTracksDatabase), mClearLyricistTable(mTracksDatabase), | 86 | mClearComposerTable(mTracksDatabase), mClearGenreTable(mTracksDatabase), mClearLyricistTable(mTracksDatabase), | ||
84 | mArtistMatchGenreQuery(mTracksDatabase) | 87 | mArtistMatchGenreQuery(mTracksDatabase), mSelectTrackIdQuery(mTracksDatabase) | ||
85 | { | 88 | { | ||
86 | } | 89 | } | ||
87 | 90 | | |||
88 | QSqlDatabase mTracksDatabase; | 91 | QSqlDatabase mTracksDatabase; | ||
89 | 92 | | |||
90 | QSqlQuery mSelectAlbumQuery; | 93 | QSqlQuery mSelectAlbumQuery; | ||
91 | 94 | | |||
92 | QSqlQuery mSelectTrackQuery; | 95 | QSqlQuery mSelectTrackQuery; | ||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Line(s) | |||||
142 | QSqlQuery mSelectTracksMapping; | 145 | QSqlQuery mSelectTracksMapping; | ||
143 | 146 | | |||
144 | QSqlQuery mSelectTracksMappingPriority; | 147 | QSqlQuery mSelectTracksMappingPriority; | ||
145 | 148 | | |||
146 | QSqlQuery mUpdateAlbumArtUriFromAlbumIdQuery; | 149 | QSqlQuery mUpdateAlbumArtUriFromAlbumIdQuery; | ||
147 | 150 | | |||
148 | QSqlQuery mSelectTracksMappingPriorityByTrackId; | 151 | QSqlQuery mSelectTracksMappingPriorityByTrackId; | ||
149 | 152 | | |||
150 | QSqlQuery mSelectAllTrackFilesFromSourceQuery; | | |||
151 | | ||||
152 | QSqlQuery mSelectAlbumIdsFromArtist; | 153 | QSqlQuery mSelectAlbumIdsFromArtist; | ||
153 | 154 | | |||
155 | QSqlQuery mSelectAllTrackFilesQuery; | ||||
156 | | ||||
154 | QSqlQuery mRemoveTracksMappingFromSource; | 157 | QSqlQuery mRemoveTracksMappingFromSource; | ||
155 | 158 | | |||
156 | QSqlQuery mRemoveTracksMapping; | 159 | QSqlQuery mRemoveTracksMapping; | ||
157 | 160 | | |||
158 | QSqlQuery mSelectTracksWithoutMappingQuery; | 161 | QSqlQuery mSelectTracksWithoutMappingQuery; | ||
159 | 162 | | |||
160 | QSqlQuery mSelectAlbumIdFromTitleAndArtistQuery; | 163 | QSqlQuery mSelectAlbumIdFromTitleAndArtistQuery; | ||
161 | 164 | | |||
▲ Show 20 Lines • Show All 76 Lines • ▼ Show 20 Line(s) | |||||
238 | QSqlQuery mClearComposerTable; | 241 | QSqlQuery mClearComposerTable; | ||
239 | 242 | | |||
240 | QSqlQuery mClearGenreTable; | 243 | QSqlQuery mClearGenreTable; | ||
241 | 244 | | |||
242 | QSqlQuery mClearLyricistTable; | 245 | QSqlQuery mClearLyricistTable; | ||
243 | 246 | | |||
244 | QSqlQuery mArtistMatchGenreQuery; | 247 | QSqlQuery mArtistMatchGenreQuery; | ||
245 | 248 | | |||
249 | QSqlQuery mSelectTrackIdQuery; | ||||
250 | | ||||
246 | QSet<qulonglong> mModifiedTrackIds; | 251 | QSet<qulonglong> mModifiedTrackIds; | ||
247 | 252 | | |||
248 | QSet<qulonglong> mModifiedAlbumIds; | 253 | QSet<qulonglong> mModifiedAlbumIds; | ||
249 | 254 | | |||
250 | QSet<qulonglong> mModifiedArtistIds; | 255 | QSet<qulonglong> mModifiedArtistIds; | ||
251 | 256 | | |||
252 | QSet<qulonglong> mInsertedTracks; | 257 | QSet<qulonglong> mInsertedTracks; | ||
253 | 258 | | |||
254 | QSet<qulonglong> mInsertedAlbums; | 259 | QSet<qulonglong> mInsertedAlbums; | ||
255 | 260 | | |||
256 | QSet<qulonglong> mInsertedArtists; | 261 | QSet<qulonglong> mInsertedArtists; | ||
257 | 262 | | |||
258 | qulonglong mAlbumId = 1; | 263 | qulonglong mAlbumId = 1; | ||
259 | 264 | | |||
260 | qulonglong mArtistId = 1; | 265 | qulonglong mArtistId = 1; | ||
261 | 266 | | |||
262 | qulonglong mComposerId = 1; | 267 | qulonglong mComposerId = 1; | ||
263 | 268 | | |||
264 | qulonglong mLyricistId = 1; | 269 | qulonglong mLyricistId = 1; | ||
265 | 270 | | |||
266 | qulonglong mGenreId = 1; | 271 | qulonglong mGenreId = 1; | ||
267 | 272 | | |||
268 | qulonglong mTrackId = 1; | 273 | qulonglong mTrackId = 1; | ||
269 | 274 | | |||
270 | qulonglong mDiscoverId = 1; | | |||
271 | | ||||
272 | QAtomicInt mStopRequest = 0; | 275 | QAtomicInt mStopRequest = 0; | ||
273 | 276 | | |||
274 | bool mInitFinished = false; | 277 | bool mInitFinished = false; | ||
275 | 278 | | |||
276 | }; | 279 | }; | ||
277 | 280 | | |||
278 | DatabaseInterface::DatabaseInterface(QObject *parent) : QObject(parent), d(nullptr) | 281 | DatabaseInterface::DatabaseInterface(QObject *parent) : QObject(parent), d(nullptr) | ||
279 | { | 282 | { | ||
280 | } | 283 | } | ||
281 | 284 | | |||
282 | DatabaseInterface::~DatabaseInterface() | 285 | DatabaseInterface::~DatabaseInterface() | ||
283 | { | 286 | { | ||
284 | if (d) { | 287 | if (d) { | ||
285 | d->mTracksDatabase.close(); | 288 | d->mTracksDatabase.close(); | ||
286 | } | 289 | } | ||
287 | } | 290 | } | ||
288 | 291 | | |||
289 | void DatabaseInterface::init(const QString &dbName, const QString &databaseFileName) | 292 | void DatabaseInterface::init(const QString &dbName, const QString &databaseFileName) | ||
290 | { | 293 | { | ||
291 | qInfo() << QCoreApplication::libraryPaths(); | | |||
292 | QSqlDatabase tracksDatabase = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), dbName); | 294 | QSqlDatabase tracksDatabase = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), dbName); | ||
293 | 295 | | |||
294 | if (!databaseFileName.isEmpty()) { | 296 | if (!databaseFileName.isEmpty()) { | ||
295 | tracksDatabase.setDatabaseName(QStringLiteral("file:") + databaseFileName); | 297 | tracksDatabase.setDatabaseName(QStringLiteral("file:") + databaseFileName); | ||
296 | } else { | 298 | } else { | ||
297 | tracksDatabase.setDatabaseName(QStringLiteral("file:memdb1?mode=memory")); | 299 | tracksDatabase.setDatabaseName(QStringLiteral("file:memdb1?mode=memory")); | ||
298 | } | 300 | } | ||
299 | tracksDatabase.setConnectOptions(QStringLiteral("foreign_keys = ON;locking_mode = EXCLUSIVE;QSQLITE_OPEN_URI;QSQLITE_BUSY_TIMEOUT=500000")); | 301 | tracksDatabase.setConnectOptions(QStringLiteral("foreign_keys = ON;locking_mode = EXCLUSIVE;QSQLITE_OPEN_URI;QSQLITE_BUSY_TIMEOUT=500000")); | ||
300 | 302 | | |||
301 | auto result = tracksDatabase.open(); | 303 | auto result = tracksDatabase.open(); | ||
302 | if (result) { | 304 | if (result) { | ||
303 | qDebug() << "database open"; | 305 | qCDebug(orgKdeElisaDatabase) << "database open"; | ||
304 | } else { | 306 | } else { | ||
305 | qDebug() << "database not open"; | 307 | qCDebug(orgKdeElisaDatabase) << "database not open"; | ||
306 | } | 308 | } | ||
307 | qDebug() << "DatabaseInterface::init" << (tracksDatabase.driver()->hasFeature(QSqlDriver::Transactions) ? "yes" : "no"); | 309 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::init" << (tracksDatabase.driver()->hasFeature(QSqlDriver::Transactions) ? "yes" : "no"); | ||
308 | 310 | | |||
309 | tracksDatabase.exec(QStringLiteral("PRAGMA foreign_keys = ON;")); | 311 | tracksDatabase.exec(QStringLiteral("PRAGMA foreign_keys = ON;")); | ||
310 | 312 | | |||
311 | d = std::make_unique<DatabaseInterfacePrivate>(tracksDatabase); | 313 | d = std::make_unique<DatabaseInterfacePrivate>(tracksDatabase); | ||
312 | 314 | | |||
313 | initDatabase(); | 315 | initDatabase(); | ||
314 | initRequest(); | 316 | initRequest(); | ||
315 | 317 | | |||
▲ Show 20 Lines • Show All 197 Lines • ▼ Show 20 Line(s) | 509 | { | |||
513 | 515 | | |||
514 | auto transactionResult = startTransaction(); | 516 | auto transactionResult = startTransaction(); | ||
515 | if (!transactionResult) { | 517 | if (!transactionResult) { | ||
516 | return result; | 518 | return result; | ||
517 | } | 519 | } | ||
518 | 520 | | |||
519 | d->mSelectTrackQuery.bindValue(QStringLiteral(":albumId"), databaseId); | 521 | d->mSelectTrackQuery.bindValue(QStringLiteral(":albumId"), databaseId); | ||
520 | 522 | | |||
521 | auto queryResult = d->mSelectTrackQuery.exec(); | 523 | auto queryResult = execQuery(d->mSelectTrackQuery); | ||
522 | 524 | | |||
523 | if (!queryResult || !d->mSelectTrackQuery.isSelect() || !d->mSelectTrackQuery.isActive()) { | 525 | if (!queryResult || !d->mSelectTrackQuery.isSelect() || !d->mSelectTrackQuery.isActive()) { | ||
524 | Q_EMIT databaseError(); | 526 | Q_EMIT databaseError(); | ||
525 | 527 | | |||
526 | qDebug() << "DatabaseInterface::albumData" << d->mSelectTrackQuery.lastQuery(); | 528 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::albumData" << d->mSelectTrackQuery.lastQuery(); | ||
527 | qDebug() << "DatabaseInterface::albumData" << d->mSelectTrackQuery.boundValues(); | 529 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::albumData" << d->mSelectTrackQuery.boundValues(); | ||
528 | qDebug() << "DatabaseInterface::albumData" << d->mSelectTrackQuery.lastError(); | 530 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::albumData" << d->mSelectTrackQuery.lastError(); | ||
529 | } | 531 | } | ||
530 | 532 | | |||
531 | while (d->mSelectTrackQuery.next()) { | 533 | while (d->mSelectTrackQuery.next()) { | ||
532 | const auto ¤tRecord = d->mSelectTrackQuery.record(); | 534 | const auto ¤tRecord = d->mSelectTrackQuery.record(); | ||
533 | 535 | | |||
534 | result.push_back(buildTrackDataFromDatabaseRecord(currentRecord)); | 536 | result.push_back(buildTrackDataFromDatabaseRecord(currentRecord)); | ||
535 | } | 537 | } | ||
536 | 538 | | |||
Show All 27 Lines | 565 | if (!transactionResult) { | |||
564 | return result; | 566 | return result; | ||
565 | } | 567 | } | ||
566 | 568 | | |||
567 | return result; | 569 | return result; | ||
568 | } | 570 | } | ||
569 | 571 | | |||
570 | DatabaseInterface::ListArtistDataType DatabaseInterface::allArtistsDataByGenre(const QString &genre) | 572 | DatabaseInterface::ListArtistDataType DatabaseInterface::allArtistsDataByGenre(const QString &genre) | ||
571 | { | 573 | { | ||
572 | qDebug() << "DatabaseInterface::allArtistsDataByGenre" << genre; | 574 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::allArtistsDataByGenre" << genre; | ||
573 | 575 | | |||
574 | auto result = ListArtistDataType{}; | 576 | auto result = ListArtistDataType{}; | ||
575 | 577 | | |||
576 | if (!d) { | 578 | if (!d) { | ||
577 | return result; | 579 | return result; | ||
578 | } | 580 | } | ||
579 | 581 | | |||
580 | auto transactionResult = startTransaction(); | 582 | auto transactionResult = startTransaction(); | ||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Line(s) | 623 | { | |||
623 | 625 | | |||
624 | if (!d) { | 626 | if (!d) { | ||
625 | return result; | 627 | return result; | ||
626 | } | 628 | } | ||
627 | 629 | | |||
628 | d->mArtistMatchGenreQuery.bindValue(QStringLiteral(":databaseId"), databaseId); | 630 | d->mArtistMatchGenreQuery.bindValue(QStringLiteral(":databaseId"), databaseId); | ||
629 | d->mArtistMatchGenreQuery.bindValue(QStringLiteral(":genreFilter"), genre); | 631 | d->mArtistMatchGenreQuery.bindValue(QStringLiteral(":genreFilter"), genre); | ||
630 | 632 | | |||
631 | auto queryResult = d->mArtistMatchGenreQuery.exec(); | 633 | auto queryResult = execQuery(d->mArtistMatchGenreQuery); | ||
632 | 634 | | |||
633 | if (!queryResult || !d->mArtistMatchGenreQuery.isSelect() || !d->mArtistMatchGenreQuery.isActive()) { | 635 | if (!queryResult || !d->mArtistMatchGenreQuery.isSelect() || !d->mArtistMatchGenreQuery.isActive()) { | ||
634 | Q_EMIT databaseError(); | 636 | Q_EMIT databaseError(); | ||
635 | 637 | | |||
636 | qDebug() << "DatabaseInterface::artistMatchGenre" << d->mArtistMatchGenreQuery.lastQuery(); | 638 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::artistMatchGenre" << d->mArtistMatchGenreQuery.lastQuery(); | ||
637 | qDebug() << "DatabaseInterface::artistMatchGenre" << d->mArtistMatchGenreQuery.boundValues(); | 639 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::artistMatchGenre" << d->mArtistMatchGenreQuery.boundValues(); | ||
638 | qDebug() << "DatabaseInterface::artistMatchGenre" << d->mArtistMatchGenreQuery.lastError(); | 640 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::artistMatchGenre" << d->mArtistMatchGenreQuery.lastError(); | ||
639 | 641 | | |||
640 | d->mArtistMatchGenreQuery.finish(); | 642 | d->mArtistMatchGenreQuery.finish(); | ||
641 | 643 | | |||
642 | auto transactionResult = finishTransaction(); | 644 | auto transactionResult = finishTransaction(); | ||
643 | if (!transactionResult) { | 645 | if (!transactionResult) { | ||
644 | return result; | 646 | return result; | ||
645 | } | 647 | } | ||
646 | 648 | | |||
647 | return result; | 649 | return result; | ||
648 | } | 650 | } | ||
649 | 651 | | |||
650 | result = d->mArtistMatchGenreQuery.next(); | 652 | result = d->mArtistMatchGenreQuery.next(); | ||
651 | 653 | | |||
652 | d->mArtistMatchGenreQuery.finish(); | 654 | d->mArtistMatchGenreQuery.finish(); | ||
653 | 655 | | |||
654 | qDebug() << "DatabaseInterface::internalArtistMatchGenre" << databaseId << (result ? "match" : "does not match"); | 656 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalArtistMatchGenre" << databaseId << (result ? "match" : "does not match"); | ||
655 | 657 | | |||
656 | return result; | 658 | return result; | ||
657 | } | 659 | } | ||
658 | 660 | | |||
659 | DatabaseInterface::ListTrackDataType DatabaseInterface::tracksDataFromAuthor(const QString &ArtistName) | 661 | DatabaseInterface::ListTrackDataType DatabaseInterface::tracksDataFromAuthor(const QString &ArtistName) | ||
660 | { | 662 | { | ||
661 | auto allTracks = ListTrackDataType{}; | 663 | auto allTracks = ListTrackDataType{}; | ||
662 | 664 | | |||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Line(s) | 728 | { | |||
745 | return result; | 747 | return result; | ||
746 | } | 748 | } | ||
747 | 749 | | |||
748 | void DatabaseInterface::applicationAboutToQuit() | 750 | void DatabaseInterface::applicationAboutToQuit() | ||
749 | { | 751 | { | ||
750 | d->mStopRequest = 1; | 752 | d->mStopRequest = 1; | ||
751 | } | 753 | } | ||
752 | 754 | | |||
753 | void DatabaseInterface::removeAllTracksFromSource(const QString &sourceName) | 755 | void DatabaseInterface::askRestoredTracks() | ||
754 | { | | |||
755 | auto transactionResult = startTransaction(); | | |||
756 | if (!transactionResult) { | | |||
757 | return; | | |||
758 | } | | |||
759 | | ||||
760 | initChangesTrackers(); | | |||
761 | | ||||
762 | auto allFileNames = internalAllFileNameFromSource(sourceName); | | |||
763 | | ||||
764 | auto allFileUrls = QList<QUrl>{}; | | |||
765 | | ||||
766 | for (auto oneUrlIt = allFileNames.begin(); oneUrlIt != allFileNames.end(); ++oneUrlIt) { | | |||
767 | allFileUrls.push_back(oneUrlIt.key()); | | |||
768 | } | | |||
769 | | ||||
770 | internalRemoveTracksList(allFileUrls); | | |||
771 | | ||||
772 | if (!d->mInsertedArtists.isEmpty()) { | | |||
773 | ListArtistDataType newArtists; | | |||
774 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | | |||
775 | newArtists.push_back({{DatabaseIdRole, artistId}}); | | |||
776 | } | | |||
777 | Q_EMIT artistsAdded(newArtists); | | |||
778 | } | | |||
779 | | ||||
780 | transactionResult = finishTransaction(); | | |||
781 | if (!transactionResult) { | | |||
782 | return; | | |||
783 | } | | |||
784 | } | | |||
785 | | ||||
786 | void DatabaseInterface::askRestoredTracks(const QString &musicSource) | | |||
787 | { | 756 | { | ||
788 | auto transactionResult = startTransaction(); | 757 | auto transactionResult = startTransaction(); | ||
789 | if (!transactionResult) { | 758 | if (!transactionResult) { | ||
790 | return; | 759 | return; | ||
791 | } | 760 | } | ||
792 | 761 | | |||
793 | auto result = internalAllFileNameFromSource(musicSource); | 762 | auto result = internalAllFileName(); | ||
794 | 763 | | |||
795 | Q_EMIT restoredTracks(musicSource, result); | 764 | Q_EMIT restoredTracks(result); | ||
796 | 765 | | |||
797 | transactionResult = finishTransaction(); | 766 | transactionResult = finishTransaction(); | ||
798 | if (!transactionResult) { | 767 | if (!transactionResult) { | ||
799 | return; | 768 | return; | ||
800 | } | 769 | } | ||
801 | } | 770 | } | ||
802 | 771 | | |||
803 | void DatabaseInterface::trackHasStartedPlaying(const QUrl &fileName, const QDateTime &time) | 772 | void DatabaseInterface::trackHasStartedPlaying(const QUrl &fileName, const QDateTime &time) | ||
Show All 13 Lines | |||||
817 | 786 | | |||
818 | void DatabaseInterface::clearData() | 787 | void DatabaseInterface::clearData() | ||
819 | { | 788 | { | ||
820 | auto transactionResult = startTransaction(); | 789 | auto transactionResult = startTransaction(); | ||
821 | if (!transactionResult) { | 790 | if (!transactionResult) { | ||
822 | return; | 791 | return; | ||
823 | } | 792 | } | ||
824 | 793 | | |||
825 | auto queryResult = d->mClearTracksTable.exec(); | 794 | auto queryResult = execQuery(d->mClearTracksTable); | ||
826 | 795 | | |||
827 | if (!queryResult || !d->mClearTracksTable.isActive()) { | 796 | if (!queryResult || !d->mClearTracksTable.isActive()) { | ||
828 | Q_EMIT databaseError(); | 797 | Q_EMIT databaseError(); | ||
829 | 798 | | |||
830 | qDebug() << "DatabaseInterface::clearData" << d->mClearTracksTable.lastQuery(); | 799 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearTracksTable.lastQuery(); | ||
831 | qDebug() << "DatabaseInterface::clearData" << d->mClearTracksTable.boundValues(); | 800 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearTracksTable.boundValues(); | ||
832 | qDebug() << "DatabaseInterface::clearData" << d->mClearTracksTable.lastError(); | 801 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearTracksTable.lastError(); | ||
833 | } | 802 | } | ||
834 | 803 | | |||
835 | d->mClearTracksTable.finish(); | 804 | d->mClearTracksTable.finish(); | ||
836 | 805 | | |||
837 | queryResult = d->mClearAlbumsTable.exec(); | 806 | queryResult = execQuery(d->mClearAlbumsTable); | ||
838 | 807 | | |||
839 | if (!queryResult || !d->mClearAlbumsTable.isActive()) { | 808 | if (!queryResult || !d->mClearAlbumsTable.isActive()) { | ||
840 | Q_EMIT databaseError(); | 809 | Q_EMIT databaseError(); | ||
841 | 810 | | |||
842 | qDebug() << "DatabaseInterface::clearData" << d->mClearAlbumsTable.lastQuery(); | 811 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearAlbumsTable.lastQuery(); | ||
843 | qDebug() << "DatabaseInterface::clearData" << d->mClearAlbumsTable.boundValues(); | 812 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearAlbumsTable.boundValues(); | ||
844 | qDebug() << "DatabaseInterface::clearData" << d->mClearAlbumsTable.lastError(); | 813 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearAlbumsTable.lastError(); | ||
845 | } | 814 | } | ||
846 | 815 | | |||
847 | d->mClearAlbumsTable.finish(); | 816 | d->mClearAlbumsTable.finish(); | ||
848 | 817 | | |||
849 | queryResult = d->mClearComposerTable.exec(); | 818 | queryResult = execQuery(d->mClearComposerTable); | ||
850 | 819 | | |||
851 | if (!queryResult || !d->mClearComposerTable.isActive()) { | 820 | if (!queryResult || !d->mClearComposerTable.isActive()) { | ||
852 | Q_EMIT databaseError(); | 821 | Q_EMIT databaseError(); | ||
853 | 822 | | |||
854 | qDebug() << "DatabaseInterface::clearData" << d->mClearComposerTable.lastQuery(); | 823 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearComposerTable.lastQuery(); | ||
855 | qDebug() << "DatabaseInterface::clearData" << d->mClearComposerTable.boundValues(); | 824 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearComposerTable.boundValues(); | ||
856 | qDebug() << "DatabaseInterface::clearData" << d->mClearComposerTable.lastError(); | 825 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearComposerTable.lastError(); | ||
857 | } | 826 | } | ||
858 | 827 | | |||
859 | d->mClearComposerTable.finish(); | 828 | d->mClearComposerTable.finish(); | ||
860 | 829 | | |||
861 | queryResult = d->mClearLyricistTable.exec(); | 830 | queryResult = execQuery(d->mClearLyricistTable); | ||
862 | 831 | | |||
863 | if (!queryResult || !d->mClearLyricistTable.isActive()) { | 832 | if (!queryResult || !d->mClearLyricistTable.isActive()) { | ||
864 | Q_EMIT databaseError(); | 833 | Q_EMIT databaseError(); | ||
865 | 834 | | |||
866 | qDebug() << "DatabaseInterface::clearData" << d->mClearLyricistTable.lastQuery(); | 835 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearLyricistTable.lastQuery(); | ||
867 | qDebug() << "DatabaseInterface::clearData" << d->mClearLyricistTable.boundValues(); | 836 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearLyricistTable.boundValues(); | ||
868 | qDebug() << "DatabaseInterface::clearData" << d->mClearLyricistTable.lastError(); | 837 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearLyricistTable.lastError(); | ||
869 | } | 838 | } | ||
870 | 839 | | |||
871 | d->mClearLyricistTable.finish(); | 840 | d->mClearLyricistTable.finish(); | ||
872 | 841 | | |||
873 | queryResult = d->mClearGenreTable.exec(); | 842 | queryResult = execQuery(d->mClearGenreTable); | ||
874 | 843 | | |||
875 | if (!queryResult || !d->mClearGenreTable.isActive()) { | 844 | if (!queryResult || !d->mClearGenreTable.isActive()) { | ||
876 | Q_EMIT databaseError(); | 845 | Q_EMIT databaseError(); | ||
877 | 846 | | |||
878 | qDebug() << "DatabaseInterface::clearData" << d->mClearGenreTable.lastQuery(); | 847 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearGenreTable.lastQuery(); | ||
879 | qDebug() << "DatabaseInterface::clearData" << d->mClearGenreTable.boundValues(); | 848 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearGenreTable.boundValues(); | ||
880 | qDebug() << "DatabaseInterface::clearData" << d->mClearGenreTable.lastError(); | 849 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearGenreTable.lastError(); | ||
881 | } | 850 | } | ||
882 | 851 | | |||
883 | d->mClearGenreTable.finish(); | 852 | d->mClearGenreTable.finish(); | ||
884 | 853 | | |||
885 | queryResult = d->mClearArtistsTable.exec(); | 854 | queryResult = execQuery(d->mClearArtistsTable); | ||
886 | 855 | | |||
887 | if (!queryResult || !d->mClearArtistsTable.isActive()) { | 856 | if (!queryResult || !d->mClearArtistsTable.isActive()) { | ||
888 | Q_EMIT databaseError(); | 857 | Q_EMIT databaseError(); | ||
889 | 858 | | |||
890 | qDebug() << "DatabaseInterface::clearData" << d->mClearArtistsTable.lastQuery(); | 859 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearArtistsTable.lastQuery(); | ||
891 | qDebug() << "DatabaseInterface::clearData" << d->mClearArtistsTable.boundValues(); | 860 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearArtistsTable.boundValues(); | ||
892 | qDebug() << "DatabaseInterface::clearData" << d->mClearArtistsTable.lastError(); | 861 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::clearData" << d->mClearArtistsTable.lastError(); | ||
893 | } | 862 | } | ||
894 | 863 | | |||
895 | d->mClearArtistsTable.finish(); | 864 | d->mClearArtistsTable.finish(); | ||
896 | 865 | | |||
897 | transactionResult = finishTransaction(); | 866 | transactionResult = finishTransaction(); | ||
898 | if (!transactionResult) { | 867 | if (!transactionResult) { | ||
899 | return; | 868 | return; | ||
900 | } | 869 | } | ||
Show All 16 Lines | 885 | { | |||
917 | d->mModifiedTrackIds.insert(trackId); | 886 | d->mModifiedTrackIds.insert(trackId); | ||
918 | } | 887 | } | ||
919 | 888 | | |||
920 | void DatabaseInterface::recordModifiedAlbum(qulonglong albumId) | 889 | void DatabaseInterface::recordModifiedAlbum(qulonglong albumId) | ||
921 | { | 890 | { | ||
922 | d->mModifiedAlbumIds.insert(albumId); | 891 | d->mModifiedAlbumIds.insert(albumId); | ||
923 | } | 892 | } | ||
924 | 893 | | |||
925 | void DatabaseInterface::insertTracksList(const QList<MusicAudioTrack> &tracks, const QHash<QString, QUrl> &covers, const QString &musicSource) | 894 | void DatabaseInterface::insertTracksList(const QList<MusicAudioTrack> &tracks, const QHash<QString, QUrl> &covers) | ||
926 | { | 895 | { | ||
896 | qCDebug(orgKdeElisaDatabase()) << "DatabaseInterface::insertTracksList" << tracks.count(); | ||||
927 | if (d->mStopRequest == 1) { | 897 | if (d->mStopRequest == 1) { | ||
898 | Q_EMIT finishInsertingTracksList(); | ||||
928 | return; | 899 | return; | ||
929 | } | 900 | } | ||
930 | 901 | | |||
931 | auto transactionResult = startTransaction(); | 902 | auto transactionResult = startTransaction(); | ||
932 | if (!transactionResult) { | 903 | if (!transactionResult) { | ||
904 | Q_EMIT finishInsertingTracksList(); | ||||
933 | return; | 905 | return; | ||
934 | } | 906 | } | ||
935 | 907 | | |||
936 | initChangesTrackers(); | 908 | initChangesTrackers(); | ||
937 | 909 | | |||
938 | for(const auto &oneTrack : tracks) { | 910 | for(const auto &oneTrack : tracks) { | ||
939 | d->mSelectTracksMapping.bindValue(QStringLiteral(":fileName"), oneTrack.resourceURI()); | 911 | d->mSelectTracksMapping.bindValue(QStringLiteral(":fileName"), oneTrack.resourceURI()); | ||
940 | 912 | | |||
941 | auto result = d->mSelectTracksMapping.exec(); | 913 | auto result = execQuery(d->mSelectTracksMapping); | ||
942 | 914 | | |||
943 | if (!result || !d->mSelectTracksMapping.isSelect() || !d->mSelectTracksMapping.isActive()) { | 915 | if (!result || !d->mSelectTracksMapping.isSelect() || !d->mSelectTracksMapping.isActive()) { | ||
944 | Q_EMIT databaseError(); | 916 | Q_EMIT databaseError(); | ||
945 | 917 | | |||
946 | qDebug() << "DatabaseInterface::insertTracksList" << d->mSelectTracksMapping.lastQuery(); | 918 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertTracksList" << d->mSelectTracksMapping.lastQuery(); | ||
947 | qDebug() << "DatabaseInterface::insertTracksList" << d->mSelectTracksMapping.boundValues(); | 919 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertTracksList" << d->mSelectTracksMapping.boundValues(); | ||
948 | qDebug() << "DatabaseInterface::insertTracksList" << d->mSelectTracksMapping.lastError(); | 920 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertTracksList" << d->mSelectTracksMapping.lastError(); | ||
949 | 921 | | |||
950 | d->mSelectTracksMapping.finish(); | 922 | d->mSelectTracksMapping.finish(); | ||
951 | 923 | | |||
952 | rollBackTransaction(); | 924 | rollBackTransaction(); | ||
925 | Q_EMIT finishInsertingTracksList(); | ||||
953 | return; | 926 | return; | ||
954 | } | 927 | } | ||
955 | 928 | | |||
956 | bool isNewTrack = !d->mSelectTracksMapping.next(); | 929 | bool isNewTrack = !d->mSelectTracksMapping.next(); | ||
957 | 930 | | |||
958 | auto discoverId = insertMusicSource(musicSource); | | |||
959 | | ||||
960 | if (isNewTrack) { | 931 | if (isNewTrack) { | ||
961 | insertTrackOrigin(oneTrack.resourceURI(), oneTrack.fileModificationTime(), | 932 | insertTrackOrigin(oneTrack.resourceURI(), oneTrack.fileModificationTime(), | ||
962 | QDateTime::currentDateTime(), discoverId); | 933 | QDateTime::currentDateTime()); | ||
963 | } else if (!d->mSelectTracksMapping.record().value(0).isNull() && d->mSelectTracksMapping.record().value(0).toULongLong() != 0) { | 934 | } else if (!d->mSelectTracksMapping.record().value(0).isNull() && d->mSelectTracksMapping.record().value(0).toULongLong() != 0) { | ||
964 | updateTrackOrigin(oneTrack.resourceURI(), oneTrack.fileModificationTime()); | 935 | updateTrackOrigin(oneTrack.resourceURI(), oneTrack.fileModificationTime()); | ||
965 | } | 936 | } | ||
966 | 937 | | |||
967 | d->mSelectTracksMapping.finish(); | 938 | d->mSelectTracksMapping.finish(); | ||
968 | 939 | | |||
969 | bool isInserted = false; | 940 | bool isInserted = false; | ||
970 | 941 | | |||
971 | const auto insertedTrackId = internalInsertTrack(discoverId, oneTrack, covers, isInserted); | 942 | const auto insertedTrackId = internalInsertTrack(oneTrack, covers, isInserted); | ||
972 | 943 | | |||
973 | if (isInserted && insertedTrackId != 0) { | 944 | if (isInserted && insertedTrackId != 0) { | ||
974 | d->mInsertedTracks.insert(insertedTrackId); | 945 | d->mInsertedTracks.insert(insertedTrackId); | ||
975 | } | 946 | } | ||
976 | 947 | | |||
977 | if (d->mStopRequest == 1) { | 948 | if (d->mStopRequest == 1) { | ||
978 | transactionResult = finishTransaction(); | 949 | transactionResult = finishTransaction(); | ||
979 | if (!transactionResult) { | 950 | if (!transactionResult) { | ||
951 | Q_EMIT finishInsertingTracksList(); | ||||
980 | return; | 952 | return; | ||
981 | } | 953 | } | ||
954 | Q_EMIT finishInsertingTracksList(); | ||||
982 | return; | 955 | return; | ||
983 | } | 956 | } | ||
984 | } | 957 | } | ||
985 | 958 | | |||
986 | if (!d->mInsertedArtists.isEmpty()) { | 959 | if (!d->mInsertedArtists.isEmpty()) { | ||
987 | ListArtistDataType newArtists; | 960 | ListArtistDataType newArtists; | ||
988 | 961 | | |||
989 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | 962 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | ||
990 | newArtists.push_back({{DatabaseIdRole, artistId}}); | 963 | newArtists.push_back({{DatabaseIdRole, artistId}}); | ||
991 | } | 964 | } | ||
992 | qInfo() << "artistsAdded" << newArtists.size(); | 965 | qCInfo(orgKdeElisaDatabase) << "artistsAdded" << newArtists.size(); | ||
993 | Q_EMIT artistsAdded(newArtists); | 966 | Q_EMIT artistsAdded(newArtists); | ||
994 | } | 967 | } | ||
995 | 968 | | |||
996 | if (!d->mInsertedAlbums.isEmpty()) { | 969 | if (!d->mInsertedAlbums.isEmpty()) { | ||
997 | ListAlbumDataType newAlbums; | 970 | ListAlbumDataType newAlbums; | ||
998 | 971 | | |||
999 | for (auto albumId : qAsConst(d->mInsertedAlbums)) { | 972 | for (auto albumId : qAsConst(d->mInsertedAlbums)) { | ||
1000 | d->mModifiedAlbumIds.remove(albumId); | 973 | d->mModifiedAlbumIds.remove(albumId); | ||
1001 | newAlbums.push_back(internalOneAlbumPartialData(albumId)); | 974 | newAlbums.push_back(internalOneAlbumPartialData(albumId)); | ||
1002 | } | 975 | } | ||
1003 | 976 | | |||
1004 | qInfo() << "albumsAdded" << newAlbums.size(); | 977 | qCInfo(orgKdeElisaDatabase) << "albumsAdded" << newAlbums.size(); | ||
1005 | Q_EMIT albumsAdded(newAlbums); | 978 | Q_EMIT albumsAdded(newAlbums); | ||
1006 | } | 979 | } | ||
1007 | 980 | | |||
1008 | for (auto albumId : qAsConst(d->mModifiedAlbumIds)) { | 981 | for (auto albumId : qAsConst(d->mModifiedAlbumIds)) { | ||
1009 | Q_EMIT albumModified({{DatabaseIdRole, albumId}}, albumId); | 982 | Q_EMIT albumModified({{DatabaseIdRole, albumId}}, albumId); | ||
1010 | } | 983 | } | ||
1011 | 984 | | |||
1012 | if (!d->mInsertedTracks.isEmpty()) { | 985 | if (!d->mInsertedTracks.isEmpty()) { | ||
1013 | ListTrackDataType newTracks; | 986 | ListTrackDataType newTracks; | ||
1014 | 987 | | |||
1015 | for (auto trackId : qAsConst(d->mInsertedTracks)) { | 988 | for (auto trackId : qAsConst(d->mInsertedTracks)) { | ||
1016 | newTracks.push_back(internalOneTrackPartialData(trackId)); | 989 | newTracks.push_back(internalOneTrackPartialData(trackId)); | ||
1017 | d->mModifiedTrackIds.remove(trackId); | 990 | d->mModifiedTrackIds.remove(trackId); | ||
1018 | } | 991 | } | ||
1019 | 992 | | |||
1020 | qInfo() << "tracksAdded" << newTracks.size(); | 993 | qCInfo(orgKdeElisaDatabase) << "tracksAdded" << newTracks.size(); | ||
1021 | Q_EMIT tracksAdded(newTracks); | 994 | Q_EMIT tracksAdded(newTracks); | ||
1022 | } | 995 | } | ||
1023 | 996 | | |||
1024 | for (auto trackId : qAsConst(d->mModifiedTrackIds)) { | 997 | for (auto trackId : qAsConst(d->mModifiedTrackIds)) { | ||
1025 | Q_EMIT trackModified(internalOneTrackPartialData(trackId)); | 998 | Q_EMIT trackModified(internalOneTrackPartialData(trackId)); | ||
1026 | } | 999 | } | ||
1027 | 1000 | | |||
1028 | transactionResult = finishTransaction(); | 1001 | transactionResult = finishTransaction(); | ||
1029 | if (!transactionResult) { | 1002 | if (!transactionResult) { | ||
1003 | Q_EMIT finishInsertingTracksList(); | ||||
1030 | return; | 1004 | return; | ||
1031 | } | 1005 | } | ||
1006 | Q_EMIT finishInsertingTracksList(); | ||||
1032 | } | 1007 | } | ||
1033 | 1008 | | |||
1034 | void DatabaseInterface::removeTracksList(const QList<QUrl> &removedTracks) | 1009 | void DatabaseInterface::removeTracksList(const QList<QUrl> &removedTracks) | ||
1035 | { | 1010 | { | ||
1036 | auto transactionResult = startTransaction(); | 1011 | auto transactionResult = startTransaction(); | ||
1037 | if (!transactionResult) { | 1012 | if (!transactionResult) { | ||
1013 | Q_EMIT finishRemovingTracksList(); | ||||
1038 | return; | 1014 | return; | ||
1039 | } | 1015 | } | ||
1040 | 1016 | | |||
1041 | initChangesTrackers(); | 1017 | initChangesTrackers(); | ||
1042 | 1018 | | |||
1043 | internalRemoveTracksList(removedTracks); | 1019 | internalRemoveTracksList(removedTracks); | ||
1044 | 1020 | | |||
1045 | if (!d->mInsertedArtists.isEmpty()) { | 1021 | if (!d->mInsertedArtists.isEmpty()) { | ||
1046 | ListArtistDataType newArtists; | 1022 | ListArtistDataType newArtists; | ||
1047 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | 1023 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | ||
1048 | newArtists.push_back({{DatabaseIdRole, artistId}}); | 1024 | newArtists.push_back({{DatabaseIdRole, artistId}}); | ||
1049 | } | 1025 | } | ||
1050 | Q_EMIT artistsAdded(newArtists); | 1026 | Q_EMIT artistsAdded(newArtists); | ||
1051 | } | 1027 | } | ||
1052 | 1028 | | |||
1053 | transactionResult = finishTransaction(); | 1029 | transactionResult = finishTransaction(); | ||
1054 | if (!transactionResult) { | 1030 | if (!transactionResult) { | ||
1031 | Q_EMIT finishRemovingTracksList(); | ||||
1055 | return; | 1032 | return; | ||
1056 | } | 1033 | } | ||
1034 | | ||||
1035 | Q_EMIT finishRemovingTracksList(); | ||||
1057 | } | 1036 | } | ||
1058 | 1037 | | |||
1059 | bool DatabaseInterface::startTransaction() const | 1038 | bool DatabaseInterface::startTransaction() const | ||
1060 | { | 1039 | { | ||
1061 | auto result = false; | 1040 | auto result = false; | ||
1062 | 1041 | | |||
1063 | auto transactionResult = d->mTracksDatabase.transaction(); | 1042 | auto transactionResult = d->mTracksDatabase.transaction(); | ||
1064 | if (!transactionResult) { | 1043 | if (!transactionResult) { | ||
1065 | qDebug() << "transaction failed" << d->mTracksDatabase.lastError() << d->mTracksDatabase.lastError().driverText(); | 1044 | qCDebug(orgKdeElisaDatabase) << "transaction failed" << d->mTracksDatabase.lastError() << d->mTracksDatabase.lastError().driverText(); | ||
1066 | 1045 | | |||
1067 | return result; | 1046 | return result; | ||
1068 | } | 1047 | } | ||
1069 | 1048 | | |||
1070 | result = true; | 1049 | result = true; | ||
1071 | 1050 | | |||
1072 | return result; | 1051 | return result; | ||
1073 | } | 1052 | } | ||
1074 | 1053 | | |||
1075 | bool DatabaseInterface::finishTransaction() const | 1054 | bool DatabaseInterface::finishTransaction() const | ||
1076 | { | 1055 | { | ||
1077 | auto result = false; | 1056 | auto result = false; | ||
1078 | 1057 | | |||
1079 | auto transactionResult = d->mTracksDatabase.commit(); | 1058 | auto transactionResult = d->mTracksDatabase.commit(); | ||
1080 | 1059 | | |||
1081 | if (!transactionResult) { | 1060 | if (!transactionResult) { | ||
1082 | qDebug() << "commit failed" << d->mTracksDatabase.lastError() << d->mTracksDatabase.lastError().nativeErrorCode(); | 1061 | qCDebug(orgKdeElisaDatabase) << "commit failed" << d->mTracksDatabase.lastError() << d->mTracksDatabase.lastError().nativeErrorCode(); | ||
1083 | 1062 | | |||
1084 | return result; | 1063 | return result; | ||
1085 | } | 1064 | } | ||
1086 | 1065 | | |||
1087 | result = true; | 1066 | result = true; | ||
1088 | 1067 | | |||
1089 | return result; | 1068 | return result; | ||
1090 | } | 1069 | } | ||
1091 | 1070 | | |||
1092 | bool DatabaseInterface::rollBackTransaction() const | 1071 | bool DatabaseInterface::rollBackTransaction() const | ||
1093 | { | 1072 | { | ||
1094 | auto result = false; | 1073 | auto result = false; | ||
1095 | 1074 | | |||
1096 | auto transactionResult = d->mTracksDatabase.rollback(); | 1075 | auto transactionResult = d->mTracksDatabase.rollback(); | ||
1097 | 1076 | | |||
1098 | if (!transactionResult) { | 1077 | if (!transactionResult) { | ||
1099 | qDebug() << "commit failed" << d->mTracksDatabase.lastError() << d->mTracksDatabase.lastError().nativeErrorCode(); | 1078 | qCDebug(orgKdeElisaDatabase) << "commit failed" << d->mTracksDatabase.lastError() << d->mTracksDatabase.lastError().nativeErrorCode(); | ||
1100 | 1079 | | |||
1101 | return result; | 1080 | return result; | ||
1102 | } | 1081 | } | ||
1103 | 1082 | | |||
1104 | result = true; | 1083 | result = true; | ||
1105 | 1084 | | |||
1106 | return result; | 1085 | return result; | ||
1107 | } | 1086 | } | ||
Show All 26 Lines | 1112 | if (listTables.indexOf(oneTable) == -1) { | |||
1134 | continue; | 1113 | continue; | ||
1135 | } | 1114 | } | ||
1136 | 1115 | | |||
1137 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1116 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1138 | 1117 | | |||
1139 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE ") + oneTable); | 1118 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE ") + oneTable); | ||
1140 | 1119 | | |||
1141 | if (!result) { | 1120 | if (!result) { | ||
1142 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1121 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1143 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1122 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1144 | 1123 | | |||
1145 | Q_EMIT databaseError(); | 1124 | Q_EMIT databaseError(); | ||
1146 | } | 1125 | } | ||
1147 | } | 1126 | } | ||
1148 | 1127 | | |||
1149 | listTables = d->mTracksDatabase.tables(); | 1128 | listTables = d->mTracksDatabase.tables(); | ||
1150 | } | 1129 | } | ||
1151 | 1130 | | |||
1152 | if (listTables.contains(QStringLiteral("DatabaseVersionV9"))) { | 1131 | if (listTables.contains(QStringLiteral("DatabaseVersionV9"))) { | ||
1153 | if (!listTables.contains(QStringLiteral("DatabaseVersionV11"))) { | 1132 | if (!listTables.contains(QStringLiteral("DatabaseVersionV11"))) { | ||
1154 | upgradeDatabaseV11(); | 1133 | upgradeDatabaseV11(); | ||
1155 | } | 1134 | } | ||
1135 | if (!listTables.contains(QStringLiteral("DatabaseVersionV12"))) { | ||||
1136 | upgradeDatabaseV12(); | ||||
1137 | } | ||||
1156 | } else { | 1138 | } else { | ||
1157 | createDatabaseV9(); | 1139 | createDatabaseV9(); | ||
1158 | upgradeDatabaseV11(); | 1140 | upgradeDatabaseV11(); | ||
1141 | upgradeDatabaseV12(); | ||||
1159 | } | 1142 | } | ||
1160 | } | 1143 | } | ||
1161 | 1144 | | |||
1162 | void DatabaseInterface::createDatabaseV9() | 1145 | void DatabaseInterface::createDatabaseV9() | ||
1163 | { | 1146 | { | ||
1164 | { | 1147 | { | ||
1165 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1148 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1166 | 1149 | | |||
1167 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DatabaseVersionV9` (`Version` INTEGER PRIMARY KEY NOT NULL)")); | 1150 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DatabaseVersionV9` (`Version` INTEGER PRIMARY KEY NOT NULL)")); | ||
1168 | 1151 | | |||
1169 | if (!result) { | 1152 | if (!result) { | ||
1170 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1153 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1171 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1154 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1172 | 1155 | | |||
1173 | Q_EMIT databaseError(); | 1156 | Q_EMIT databaseError(); | ||
1174 | } | 1157 | } | ||
1175 | } | 1158 | } | ||
1176 | 1159 | | |||
1177 | { | 1160 | { | ||
1178 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1161 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1179 | 1162 | | |||
1180 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DiscoverSource` (`ID` INTEGER PRIMARY KEY NOT NULL, " | 1163 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DiscoverSource` (`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1181 | "`Name` VARCHAR(55) NOT NULL, " | 1164 | "`Name` VARCHAR(55) NOT NULL, " | ||
1182 | "UNIQUE (`Name`))")); | 1165 | "UNIQUE (`Name`))")); | ||
1183 | 1166 | | |||
1184 | if (!result) { | 1167 | if (!result) { | ||
1185 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1168 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1186 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1169 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1187 | 1170 | | |||
1188 | Q_EMIT databaseError(); | 1171 | Q_EMIT databaseError(); | ||
1189 | } | 1172 | } | ||
1190 | } | 1173 | } | ||
1191 | 1174 | | |||
1192 | { | 1175 | { | ||
1193 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1176 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1194 | 1177 | | |||
1195 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Artists` (`ID` INTEGER PRIMARY KEY NOT NULL, " | 1178 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Artists` (`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1196 | "`Name` VARCHAR(55) NOT NULL, " | 1179 | "`Name` VARCHAR(55) NOT NULL, " | ||
1197 | "UNIQUE (`Name`))")); | 1180 | "UNIQUE (`Name`))")); | ||
1198 | 1181 | | |||
1199 | if (!result) { | 1182 | if (!result) { | ||
1200 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1183 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1201 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1184 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1202 | 1185 | | |||
1203 | Q_EMIT databaseError(); | 1186 | Q_EMIT databaseError(); | ||
1204 | } | 1187 | } | ||
1205 | } | 1188 | } | ||
1206 | 1189 | | |||
1207 | { | 1190 | { | ||
1208 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1191 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1209 | 1192 | | |||
1210 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Composer` (`ID` INTEGER PRIMARY KEY NOT NULL, " | 1193 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Composer` (`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1211 | "`Name` VARCHAR(55) NOT NULL, " | 1194 | "`Name` VARCHAR(55) NOT NULL, " | ||
1212 | "UNIQUE (`Name`))")); | 1195 | "UNIQUE (`Name`))")); | ||
1213 | 1196 | | |||
1214 | if (!result) { | 1197 | if (!result) { | ||
1215 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1198 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1216 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1199 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1217 | 1200 | | |||
1218 | Q_EMIT databaseError(); | 1201 | Q_EMIT databaseError(); | ||
1219 | } | 1202 | } | ||
1220 | } | 1203 | } | ||
1221 | 1204 | | |||
1222 | { | 1205 | { | ||
1223 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1206 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1224 | 1207 | | |||
1225 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Genre` (`ID` INTEGER PRIMARY KEY NOT NULL, " | 1208 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Genre` (`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1226 | "`Name` VARCHAR(85) NOT NULL, " | 1209 | "`Name` VARCHAR(85) NOT NULL, " | ||
1227 | "UNIQUE (`Name`))")); | 1210 | "UNIQUE (`Name`))")); | ||
1228 | 1211 | | |||
1229 | if (!result) { | 1212 | if (!result) { | ||
1230 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1213 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1231 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1214 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1232 | 1215 | | |||
1233 | Q_EMIT databaseError(); | 1216 | Q_EMIT databaseError(); | ||
1234 | } | 1217 | } | ||
1235 | } | 1218 | } | ||
1236 | 1219 | | |||
1237 | { | 1220 | { | ||
1238 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1221 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1239 | 1222 | | |||
1240 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Lyricist` (`ID` INTEGER PRIMARY KEY NOT NULL, " | 1223 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Lyricist` (`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1241 | "`Name` VARCHAR(55) NOT NULL, " | 1224 | "`Name` VARCHAR(55) NOT NULL, " | ||
1242 | "UNIQUE (`Name`))")); | 1225 | "UNIQUE (`Name`))")); | ||
1243 | 1226 | | |||
1244 | if (!result) { | 1227 | if (!result) { | ||
1245 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1228 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1246 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1229 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1247 | 1230 | | |||
1248 | Q_EMIT databaseError(); | 1231 | Q_EMIT databaseError(); | ||
1249 | } | 1232 | } | ||
1250 | } | 1233 | } | ||
1251 | 1234 | | |||
1252 | { | 1235 | { | ||
1253 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1236 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1254 | 1237 | | |||
1255 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Albums` (" | 1238 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Albums` (" | ||
1256 | "`ID` INTEGER PRIMARY KEY NOT NULL, " | 1239 | "`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1257 | "`Title` VARCHAR(55) NOT NULL, " | 1240 | "`Title` VARCHAR(55) NOT NULL, " | ||
1258 | "`ArtistName` VARCHAR(55), " | 1241 | "`ArtistName` VARCHAR(55), " | ||
1259 | "`AlbumPath` VARCHAR(255) NOT NULL, " | 1242 | "`AlbumPath` VARCHAR(255) NOT NULL, " | ||
1260 | "`CoverFileName` VARCHAR(255) NOT NULL, " | 1243 | "`CoverFileName` VARCHAR(255) NOT NULL, " | ||
1261 | "UNIQUE (`Title`, `ArtistName`, `AlbumPath`), " | 1244 | "UNIQUE (`Title`, `ArtistName`, `AlbumPath`), " | ||
1262 | "CONSTRAINT fk_artists FOREIGN KEY (`ArtistName`) REFERENCES `Artists`(`Name`) " | 1245 | "CONSTRAINT fk_artists FOREIGN KEY (`ArtistName`) REFERENCES `Artists`(`Name`) " | ||
1263 | "ON DELETE CASCADE)")); | 1246 | "ON DELETE CASCADE)")); | ||
1264 | 1247 | | |||
1265 | if (!result) { | 1248 | if (!result) { | ||
1266 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1249 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1267 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1250 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1268 | } | 1251 | } | ||
1269 | } | 1252 | } | ||
1270 | 1253 | | |||
1271 | { | 1254 | { | ||
1272 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1255 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1273 | 1256 | | |||
1274 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Tracks` (" | 1257 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `Tracks` (" | ||
1275 | "`ID` INTEGER PRIMARY KEY NOT NULL, " | 1258 | "`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
Show All 27 Lines | |||||
1303 | "CONSTRAINT fk_tracks_composer FOREIGN KEY (`Composer`) REFERENCES `Composer`(`Name`), " | 1286 | "CONSTRAINT fk_tracks_composer FOREIGN KEY (`Composer`) REFERENCES `Composer`(`Name`), " | ||
1304 | "CONSTRAINT fk_tracks_lyricist FOREIGN KEY (`Lyricist`) REFERENCES `Lyricist`(`Name`), " | 1287 | "CONSTRAINT fk_tracks_lyricist FOREIGN KEY (`Lyricist`) REFERENCES `Lyricist`(`Name`), " | ||
1305 | "CONSTRAINT fk_tracks_genre FOREIGN KEY (`Genre`) REFERENCES `Genre`(`Name`), " | 1288 | "CONSTRAINT fk_tracks_genre FOREIGN KEY (`Genre`) REFERENCES `Genre`(`Name`), " | ||
1306 | "CONSTRAINT fk_tracks_album FOREIGN KEY (" | 1289 | "CONSTRAINT fk_tracks_album FOREIGN KEY (" | ||
1307 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)" | 1290 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)" | ||
1308 | "REFERENCES `Albums`(`Title`, `ArtistName`, `AlbumPath`))")); | 1291 | "REFERENCES `Albums`(`Title`, `ArtistName`, `AlbumPath`))")); | ||
1309 | 1292 | | |||
1310 | if (!result) { | 1293 | if (!result) { | ||
1311 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1294 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1312 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1295 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1313 | 1296 | | |||
1314 | Q_EMIT databaseError(); | 1297 | Q_EMIT databaseError(); | ||
1315 | } | 1298 | } | ||
1316 | } | 1299 | } | ||
1317 | 1300 | | |||
1318 | { | 1301 | { | ||
1319 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1302 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1320 | 1303 | | |||
1321 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `TracksMapping` (" | 1304 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `TracksMapping` (" | ||
1322 | "`TrackID` INTEGER NULL, " | 1305 | "`TrackID` INTEGER NULL, " | ||
1323 | "`DiscoverID` INTEGER NOT NULL, " | 1306 | "`DiscoverID` INTEGER NOT NULL, " | ||
1324 | "`FileName` VARCHAR(255) NOT NULL, " | 1307 | "`FileName` VARCHAR(255) NOT NULL, " | ||
1325 | "`Priority` INTEGER NOT NULL, " | 1308 | "`Priority` INTEGER NOT NULL, " | ||
1326 | "`FileModifiedTime` DATETIME NOT NULL, " | 1309 | "`FileModifiedTime` DATETIME NOT NULL, " | ||
1327 | "PRIMARY KEY (`FileName`), " | 1310 | "PRIMARY KEY (`FileName`), " | ||
1328 | "CONSTRAINT TracksUnique UNIQUE (`TrackID`, `Priority`), " | 1311 | "CONSTRAINT TracksUnique UNIQUE (`TrackID`, `Priority`), " | ||
1329 | "CONSTRAINT fk_tracksmapping_trackID FOREIGN KEY (`TrackID`) REFERENCES `Tracks`(`ID`) ON DELETE CASCADE, " | 1312 | "CONSTRAINT fk_tracksmapping_trackID FOREIGN KEY (`TrackID`) REFERENCES `Tracks`(`ID`) ON DELETE CASCADE, " | ||
1330 | "CONSTRAINT fk_tracksmapping_discoverID FOREIGN KEY (`DiscoverID`) REFERENCES `DiscoverSource`(`ID`))")); | 1313 | "CONSTRAINT fk_tracksmapping_discoverID FOREIGN KEY (`DiscoverID`) REFERENCES `DiscoverSource`(`ID`))")); | ||
1331 | 1314 | | |||
1332 | if (!result) { | 1315 | if (!result) { | ||
1333 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1316 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1334 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1317 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1335 | } | 1318 | } | ||
1336 | } | 1319 | } | ||
1337 | 1320 | | |||
1338 | { | 1321 | { | ||
1339 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 1322 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1340 | 1323 | | |||
1341 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 1324 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1342 | "IF NOT EXISTS " | 1325 | "IF NOT EXISTS " | ||
1343 | "`TitleAlbumsIndex` ON `Albums` " | 1326 | "`TitleAlbumsIndex` ON `Albums` " | ||
1344 | "(`Title`)")); | 1327 | "(`Title`)")); | ||
1345 | 1328 | | |||
1346 | if (!result) { | 1329 | if (!result) { | ||
1347 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 1330 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1348 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 1331 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1349 | 1332 | | |||
1350 | Q_EMIT databaseError(); | 1333 | Q_EMIT databaseError(); | ||
1351 | } | 1334 | } | ||
1352 | } | 1335 | } | ||
1353 | 1336 | | |||
1354 | { | 1337 | { | ||
1355 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 1338 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1356 | 1339 | | |||
1357 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 1340 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1358 | "IF NOT EXISTS " | 1341 | "IF NOT EXISTS " | ||
1359 | "`ArtistNameAlbumsIndex` ON `Albums` " | 1342 | "`ArtistNameAlbumsIndex` ON `Albums` " | ||
1360 | "(`ArtistName`)")); | 1343 | "(`ArtistName`)")); | ||
1361 | 1344 | | |||
1362 | if (!result) { | 1345 | if (!result) { | ||
1363 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 1346 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1364 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 1347 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1365 | 1348 | | |||
1366 | Q_EMIT databaseError(); | 1349 | Q_EMIT databaseError(); | ||
1367 | } | 1350 | } | ||
1368 | } | 1351 | } | ||
1369 | 1352 | | |||
1370 | { | 1353 | { | ||
1371 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 1354 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1372 | 1355 | | |||
1373 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 1356 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1374 | "IF NOT EXISTS " | 1357 | "IF NOT EXISTS " | ||
1375 | "`TracksAlbumIndex` ON `Tracks` " | 1358 | "`TracksAlbumIndex` ON `Tracks` " | ||
1376 | "(`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | 1359 | "(`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||
1377 | 1360 | | |||
1378 | if (!result) { | 1361 | if (!result) { | ||
1379 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 1362 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1380 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 1363 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1381 | 1364 | | |||
1382 | Q_EMIT databaseError(); | 1365 | Q_EMIT databaseError(); | ||
1383 | } | 1366 | } | ||
1384 | } | 1367 | } | ||
1385 | 1368 | | |||
1386 | { | 1369 | { | ||
1387 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 1370 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1388 | 1371 | | |||
1389 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 1372 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1390 | "IF NOT EXISTS " | 1373 | "IF NOT EXISTS " | ||
1391 | "`ArtistNameIndex` ON `Tracks` " | 1374 | "`ArtistNameIndex` ON `Tracks` " | ||
1392 | "(`ArtistName`)")); | 1375 | "(`ArtistName`)")); | ||
1393 | 1376 | | |||
1394 | if (!result) { | 1377 | if (!result) { | ||
1395 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 1378 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1396 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 1379 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1397 | 1380 | | |||
1398 | Q_EMIT databaseError(); | 1381 | Q_EMIT databaseError(); | ||
1399 | } | 1382 | } | ||
1400 | } | 1383 | } | ||
1401 | 1384 | | |||
1402 | { | 1385 | { | ||
1403 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 1386 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1404 | 1387 | | |||
1405 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 1388 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1406 | "IF NOT EXISTS " | 1389 | "IF NOT EXISTS " | ||
1407 | "`AlbumArtistNameIndex` ON `Tracks` " | 1390 | "`AlbumArtistNameIndex` ON `Tracks` " | ||
1408 | "(`AlbumArtistName`)")); | 1391 | "(`AlbumArtistName`)")); | ||
1409 | 1392 | | |||
1410 | if (!result) { | 1393 | if (!result) { | ||
1411 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 1394 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1412 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 1395 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1413 | 1396 | | |||
1414 | Q_EMIT databaseError(); | 1397 | Q_EMIT databaseError(); | ||
1415 | } | 1398 | } | ||
1416 | } | 1399 | } | ||
1417 | 1400 | | |||
1418 | { | 1401 | { | ||
1419 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 1402 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1420 | 1403 | | |||
1421 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 1404 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1422 | "IF NOT EXISTS " | 1405 | "IF NOT EXISTS " | ||
1423 | "`TracksFileNameIndex` ON `TracksMapping` " | 1406 | "`TracksFileNameIndex` ON `TracksMapping` " | ||
1424 | "(`FileName`)")); | 1407 | "(`FileName`)")); | ||
1425 | 1408 | | |||
1426 | if (!result) { | 1409 | if (!result) { | ||
1427 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 1410 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1428 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 1411 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1429 | 1412 | | |||
1430 | Q_EMIT databaseError(); | 1413 | Q_EMIT databaseError(); | ||
1431 | } | 1414 | } | ||
1432 | } | 1415 | } | ||
1433 | } | 1416 | } | ||
1434 | 1417 | | |||
1435 | void DatabaseInterface::upgradeDatabaseV11() | 1418 | void DatabaseInterface::upgradeDatabaseV11() | ||
1436 | { | 1419 | { | ||
1437 | qDebug() << "begin update to v11 of database schema"; | 1420 | qCDebug(orgKdeElisaDatabase) << "begin update to v11 of database schema"; | ||
1438 | 1421 | | |||
1439 | { | 1422 | { | ||
1440 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1423 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1441 | 1424 | | |||
1442 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DatabaseVersionV11` (`Version` INTEGER PRIMARY KEY NOT NULL)")); | 1425 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DatabaseVersionV11` (`Version` INTEGER PRIMARY KEY NOT NULL)")); | ||
1443 | 1426 | | |||
1444 | if (!result) { | 1427 | if (!result) { | ||
1445 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1428 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1446 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1429 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1447 | 1430 | | |||
1448 | Q_EMIT databaseError(); | 1431 | Q_EMIT databaseError(); | ||
1449 | } | 1432 | } | ||
1450 | } | 1433 | } | ||
1451 | 1434 | | |||
1452 | { | 1435 | { | ||
1453 | QSqlQuery disableForeignKeys(d->mTracksDatabase); | 1436 | QSqlQuery disableForeignKeys(d->mTracksDatabase); | ||
1454 | 1437 | | |||
1455 | auto result = disableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=OFF")); | 1438 | auto result = disableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=OFF")); | ||
1456 | 1439 | | |||
1457 | if (!result) { | 1440 | if (!result) { | ||
1458 | qDebug() << "DatabaseInterface::initDatabase" << disableForeignKeys.lastQuery(); | 1441 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << disableForeignKeys.lastQuery(); | ||
1459 | qDebug() << "DatabaseInterface::initDatabase" << disableForeignKeys.lastError(); | 1442 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << disableForeignKeys.lastError(); | ||
1460 | 1443 | | |||
1461 | Q_EMIT databaseError(); | 1444 | Q_EMIT databaseError(); | ||
1462 | } | 1445 | } | ||
1463 | } | 1446 | } | ||
1464 | 1447 | | |||
1465 | d->mTracksDatabase.transaction(); | 1448 | d->mTracksDatabase.transaction(); | ||
1466 | 1449 | | |||
1467 | { | 1450 | { | ||
1468 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1451 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1469 | 1452 | | |||
1470 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `TracksData` (" | 1453 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `TracksData` (" | ||
1471 | "`DiscoverID` INTEGER NOT NULL, " | 1454 | "`DiscoverID` INTEGER NOT NULL, " | ||
1472 | "`FileName` VARCHAR(255) NOT NULL, " | 1455 | "`FileName` VARCHAR(255) NOT NULL, " | ||
1473 | "`FileModifiedTime` DATETIME NOT NULL, " | 1456 | "`FileModifiedTime` DATETIME NOT NULL, " | ||
1474 | "`ImportDate` INTEGER NOT NULL, " | 1457 | "`ImportDate` INTEGER NOT NULL, " | ||
1475 | "`FirstPlayDate` INTEGER, " | 1458 | "`FirstPlayDate` INTEGER, " | ||
1476 | "`LastPlayDate` INTEGER, " | 1459 | "`LastPlayDate` INTEGER, " | ||
1477 | "`PlayCounter` INTEGER NOT NULL, " | 1460 | "`PlayCounter` INTEGER NOT NULL, " | ||
1478 | "PRIMARY KEY (`FileName`, `DiscoverID`), " | 1461 | "PRIMARY KEY (`FileName`, `DiscoverID`), " | ||
1479 | "CONSTRAINT fk_tracksmapping_discoverID FOREIGN KEY (`DiscoverID`) REFERENCES `DiscoverSource`(`ID`))")); | 1462 | "CONSTRAINT fk_tracksmapping_discoverID FOREIGN KEY (`DiscoverID`) REFERENCES `DiscoverSource`(`ID`))")); | ||
1480 | 1463 | | |||
1481 | if (!result) { | 1464 | if (!result) { | ||
1482 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1465 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1483 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1466 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1484 | } | 1467 | } | ||
1485 | } | 1468 | } | ||
1486 | 1469 | | |||
1487 | { | 1470 | { | ||
1488 | QSqlQuery copyDataQuery(d->mTracksDatabase); | 1471 | QSqlQuery copyDataQuery(d->mTracksDatabase); | ||
1489 | 1472 | | |||
1490 | auto result = copyDataQuery.exec(QStringLiteral("INSERT INTO `TracksData` " | 1473 | auto result = copyDataQuery.exec(QStringLiteral("INSERT INTO `TracksData` " | ||
1491 | "SELECT " | 1474 | "SELECT " | ||
1492 | "m.`DiscoverID`, " | 1475 | "m.`DiscoverID`, " | ||
1493 | "m.`FileName`, " | 1476 | "m.`FileName`, " | ||
1494 | "m.`FileModifiedTime`, " | 1477 | "m.`FileModifiedTime`, " | ||
1495 | "t.`ImportDate`, " | 1478 | "t.`ImportDate`, " | ||
1496 | "t.`FirstPlayDate`, " | 1479 | "t.`FirstPlayDate`, " | ||
1497 | "t.`LastPlayDate`, " | 1480 | "t.`LastPlayDate`, " | ||
1498 | "t.`PlayCounter` " | 1481 | "t.`PlayCounter` " | ||
1499 | "FROM " | 1482 | "FROM " | ||
1500 | "`Tracks` t, " | 1483 | "`Tracks` t, " | ||
1501 | "`TracksMapping` m " | 1484 | "`TracksMapping` m " | ||
1502 | "WHERE " | 1485 | "WHERE " | ||
1503 | "t.`ID` = m.`TrackID`")); | 1486 | "t.`ID` = m.`TrackID`")); | ||
1504 | 1487 | | |||
1505 | if (!result) { | 1488 | if (!result) { | ||
1506 | qDebug() << "DatabaseInterface::initDatabase" << copyDataQuery.lastQuery(); | 1489 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastQuery(); | ||
1507 | qDebug() << "DatabaseInterface::initDatabase" << copyDataQuery.lastError(); | 1490 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastError(); | ||
1508 | 1491 | | |||
1509 | Q_EMIT databaseError(); | 1492 | Q_EMIT databaseError(); | ||
1510 | } | 1493 | } | ||
1511 | } | 1494 | } | ||
1512 | 1495 | | |||
1513 | { | 1496 | { | ||
1514 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1497 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1515 | 1498 | | |||
Show All 34 Lines | 1499 | auto result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `NewTracks` (" | |||
1550 | "CONSTRAINT fk_tracks_lyricist FOREIGN KEY (`Lyricist`) REFERENCES `Lyricist`(`Name`), " | 1533 | "CONSTRAINT fk_tracks_lyricist FOREIGN KEY (`Lyricist`) REFERENCES `Lyricist`(`Name`), " | ||
1551 | "CONSTRAINT fk_tracks_genre FOREIGN KEY (`Genre`) REFERENCES `Genre`(`Name`), " | 1534 | "CONSTRAINT fk_tracks_genre FOREIGN KEY (`Genre`) REFERENCES `Genre`(`Name`), " | ||
1552 | "CONSTRAINT fk_tracks_discoverID FOREIGN KEY (`DiscoverID`) REFERENCES `DiscoverSource`(`ID`)" | 1535 | "CONSTRAINT fk_tracks_discoverID FOREIGN KEY (`DiscoverID`) REFERENCES `DiscoverSource`(`ID`)" | ||
1553 | "CONSTRAINT fk_tracks_album FOREIGN KEY (" | 1536 | "CONSTRAINT fk_tracks_album FOREIGN KEY (" | ||
1554 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)" | 1537 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)" | ||
1555 | "REFERENCES `Albums`(`Title`, `ArtistName`, `AlbumPath`))")); | 1538 | "REFERENCES `Albums`(`Title`, `ArtistName`, `AlbumPath`))")); | ||
1556 | 1539 | | |||
1557 | if (!result) { | 1540 | if (!result) { | ||
1558 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1541 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1559 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1542 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1560 | 1543 | | |||
1561 | Q_EMIT databaseError(); | 1544 | Q_EMIT databaseError(); | ||
1562 | } | 1545 | } | ||
1563 | } | 1546 | } | ||
1564 | 1547 | | |||
1565 | { | 1548 | { | ||
1566 | QSqlQuery copyDataQuery(d->mTracksDatabase); | 1549 | QSqlQuery copyDataQuery(d->mTracksDatabase); | ||
1567 | 1550 | | |||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Line(s) | 1551 | auto result = copyDataQuery.exec(QStringLiteral("INSERT OR IGNORE INTO `NewTracks` " | |||
1613 | "t.`HasEmbeddedCover` " | 1596 | "t.`HasEmbeddedCover` " | ||
1614 | "FROM " | 1597 | "FROM " | ||
1615 | "`Tracks` t, " | 1598 | "`Tracks` t, " | ||
1616 | "`TracksMapping` m " | 1599 | "`TracksMapping` m " | ||
1617 | "WHERE " | 1600 | "WHERE " | ||
1618 | "t.`ID` = m.`TrackID`")); | 1601 | "t.`ID` = m.`TrackID`")); | ||
1619 | 1602 | | |||
1620 | if (!result) { | 1603 | if (!result) { | ||
1621 | qDebug() << "DatabaseInterface::initDatabase" << copyDataQuery.lastQuery(); | 1604 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastQuery(); | ||
1622 | qDebug() << "DatabaseInterface::initDatabase" << copyDataQuery.lastError(); | 1605 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastError(); | ||
1623 | 1606 | | |||
1624 | Q_EMIT databaseError(); | 1607 | Q_EMIT databaseError(); | ||
1625 | } | 1608 | } | ||
1626 | } | 1609 | } | ||
1627 | 1610 | | |||
1628 | { | 1611 | { | ||
1629 | QSqlQuery updateDataQuery(d->mTracksDatabase); | 1612 | QSqlQuery updateDataQuery(d->mTracksDatabase); | ||
1630 | 1613 | | |||
1631 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | 1614 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | ||
1632 | "SET " | 1615 | "SET " | ||
1633 | "`TrackNumber` = NULL " | 1616 | "`TrackNumber` = NULL " | ||
1634 | "WHERE " | 1617 | "WHERE " | ||
1635 | "`TrackNumber` = -1")); | 1618 | "`TrackNumber` = -1")); | ||
1636 | 1619 | | |||
1637 | if (!result) { | 1620 | if (!result) { | ||
1638 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | 1621 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | ||
1639 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | 1622 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | ||
1640 | 1623 | | |||
1641 | Q_EMIT databaseError(); | 1624 | Q_EMIT databaseError(); | ||
1642 | } | 1625 | } | ||
1643 | } | 1626 | } | ||
1644 | 1627 | | |||
1645 | { | 1628 | { | ||
1646 | QSqlQuery updateDataQuery(d->mTracksDatabase); | 1629 | QSqlQuery updateDataQuery(d->mTracksDatabase); | ||
1647 | 1630 | | |||
1648 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | 1631 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | ||
1649 | "SET " | 1632 | "SET " | ||
1650 | "`Channels` = NULL " | 1633 | "`Channels` = NULL " | ||
1651 | "WHERE " | 1634 | "WHERE " | ||
1652 | "`Channels` = -1")); | 1635 | "`Channels` = -1")); | ||
1653 | 1636 | | |||
1654 | if (!result) { | 1637 | if (!result) { | ||
1655 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | 1638 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | ||
1656 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | 1639 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | ||
1657 | 1640 | | |||
1658 | Q_EMIT databaseError(); | 1641 | Q_EMIT databaseError(); | ||
1659 | } | 1642 | } | ||
1660 | } | 1643 | } | ||
1661 | 1644 | | |||
1662 | { | 1645 | { | ||
1663 | QSqlQuery updateDataQuery(d->mTracksDatabase); | 1646 | QSqlQuery updateDataQuery(d->mTracksDatabase); | ||
1664 | 1647 | | |||
1665 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | 1648 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | ||
1666 | "SET " | 1649 | "SET " | ||
1667 | "`BitRate` = NULL " | 1650 | "`BitRate` = NULL " | ||
1668 | "WHERE " | 1651 | "WHERE " | ||
1669 | "`BitRate` = -1")); | 1652 | "`BitRate` = -1")); | ||
1670 | 1653 | | |||
1671 | if (!result) { | 1654 | if (!result) { | ||
1672 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | 1655 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | ||
1673 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | 1656 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | ||
1674 | 1657 | | |||
1675 | Q_EMIT databaseError(); | 1658 | Q_EMIT databaseError(); | ||
1676 | } | 1659 | } | ||
1677 | } | 1660 | } | ||
1678 | 1661 | | |||
1679 | { | 1662 | { | ||
1680 | QSqlQuery updateDataQuery(d->mTracksDatabase); | 1663 | QSqlQuery updateDataQuery(d->mTracksDatabase); | ||
1681 | 1664 | | |||
1682 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | 1665 | auto result = updateDataQuery.exec(QStringLiteral("UPDATE `NewTracks` " | ||
1683 | "SET " | 1666 | "SET " | ||
1684 | "`SampleRate` = NULL " | 1667 | "`SampleRate` = NULL " | ||
1685 | "WHERE " | 1668 | "WHERE " | ||
1686 | "`SampleRate` = -1")); | 1669 | "`SampleRate` = -1")); | ||
1687 | 1670 | | |||
1688 | if (!result) { | 1671 | if (!result) { | ||
1689 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | 1672 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastQuery(); | ||
1690 | qDebug() << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | 1673 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << updateDataQuery.lastError(); | ||
1691 | 1674 | | |||
1692 | Q_EMIT databaseError(); | 1675 | Q_EMIT databaseError(); | ||
1693 | } | 1676 | } | ||
1694 | } | 1677 | } | ||
1695 | 1678 | | |||
1696 | { | 1679 | { | ||
1697 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1680 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1698 | 1681 | | |||
1699 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `Tracks`")); | 1682 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `Tracks`")); | ||
1700 | 1683 | | |||
1701 | if (!result) { | 1684 | if (!result) { | ||
1702 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1685 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1703 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1686 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1704 | 1687 | | |||
1705 | Q_EMIT databaseError(); | 1688 | Q_EMIT databaseError(); | ||
1706 | } | 1689 | } | ||
1707 | } | 1690 | } | ||
1708 | 1691 | | |||
1709 | { | 1692 | { | ||
1710 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1693 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1711 | 1694 | | |||
1712 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `TracksMapping`")); | 1695 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `TracksMapping`")); | ||
1713 | 1696 | | |||
1714 | if (!result) { | 1697 | if (!result) { | ||
1715 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 1698 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1716 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 1699 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1700 | | ||||
1701 | Q_EMIT databaseError(); | ||||
1702 | } | ||||
1703 | } | ||||
1704 | | ||||
1705 | { | ||||
1706 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
1707 | | ||||
1708 | auto result = createSchemaQuery.exec(QStringLiteral("ALTER TABLE `NewTracks` RENAME TO `Tracks`")); | ||||
1709 | | ||||
1710 | if (!result) { | ||||
1711 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
1712 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
1713 | | ||||
1714 | Q_EMIT databaseError(); | ||||
1715 | } | ||||
1716 | } | ||||
1717 | | ||||
1718 | d->mTracksDatabase.commit(); | ||||
1719 | | ||||
1720 | { | ||||
1721 | QSqlQuery enableForeignKeys(d->mTracksDatabase); | ||||
1722 | | ||||
1723 | auto result = enableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=ON")); | ||||
1724 | | ||||
1725 | if (!result) { | ||||
1726 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << enableForeignKeys.lastQuery(); | ||||
1727 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << enableForeignKeys.lastError(); | ||||
1728 | | ||||
1729 | Q_EMIT databaseError(); | ||||
1730 | } | ||||
1731 | } | ||||
1732 | | ||||
1733 | { | ||||
1734 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||||
1735 | | ||||
1736 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||||
1737 | "IF NOT EXISTS " | ||||
1738 | "`TracksAlbumIndex` ON `Tracks` " | ||||
1739 | "(`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||||
1740 | | ||||
1741 | if (!result) { | ||||
1742 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||||
1743 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||||
1744 | | ||||
1745 | Q_EMIT databaseError(); | ||||
1746 | } | ||||
1747 | } | ||||
1748 | | ||||
1749 | { | ||||
1750 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||||
1751 | | ||||
1752 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||||
1753 | "IF NOT EXISTS " | ||||
1754 | "`ArtistNameIndex` ON `Tracks` " | ||||
1755 | "(`ArtistName`)")); | ||||
1756 | | ||||
1757 | if (!result) { | ||||
1758 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||||
1759 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||||
1760 | | ||||
1761 | Q_EMIT databaseError(); | ||||
1762 | } | ||||
1763 | } | ||||
1764 | | ||||
1765 | { | ||||
1766 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||||
1767 | | ||||
1768 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||||
1769 | "IF NOT EXISTS " | ||||
1770 | "`AlbumArtistNameIndex` ON `Tracks` " | ||||
1771 | "(`AlbumArtistName`)")); | ||||
1772 | | ||||
1773 | if (!result) { | ||||
1774 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||||
1775 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||||
1776 | | ||||
1777 | Q_EMIT databaseError(); | ||||
1778 | } | ||||
1779 | } | ||||
1780 | | ||||
1781 | { | ||||
1782 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||||
1783 | | ||||
1784 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||||
1785 | "IF NOT EXISTS " | ||||
1786 | "`TracksUniqueData` ON `Tracks` " | ||||
1787 | "(`Title`, `ArtistName`, " | ||||
1788 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||||
1789 | | ||||
1790 | if (!result) { | ||||
1791 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||||
1792 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||||
1793 | | ||||
1794 | Q_EMIT databaseError(); | ||||
1795 | } | ||||
1796 | } | ||||
1797 | | ||||
1798 | { | ||||
1799 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||||
1800 | | ||||
1801 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||||
1802 | "IF NOT EXISTS " | ||||
1803 | "`TracksUniqueDataPriority` ON `Tracks` " | ||||
1804 | "(`Priority`, `Title`, `ArtistName`, " | ||||
1805 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||||
1806 | | ||||
1807 | if (!result) { | ||||
1808 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||||
1809 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||||
1810 | | ||||
1811 | Q_EMIT databaseError(); | ||||
1812 | } | ||||
1813 | } | ||||
1814 | | ||||
1815 | { | ||||
1816 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||||
1817 | | ||||
1818 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||||
1819 | "IF NOT EXISTS " | ||||
1820 | "`TracksFileNameIndex` ON `Tracks` " | ||||
1821 | "(`FileName`)")); | ||||
1822 | | ||||
1823 | if (!result) { | ||||
1824 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||||
1825 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||||
1826 | | ||||
1827 | Q_EMIT databaseError(); | ||||
1828 | } | ||||
1829 | } | ||||
1830 | | ||||
1831 | qCDebug(orgKdeElisaDatabase) << "finished update to v11 of database schema"; | ||||
1832 | } | ||||
1833 | | ||||
1834 | void DatabaseInterface::upgradeDatabaseV12() | ||||
1835 | { | ||||
1836 | qCDebug(orgKdeElisaDatabase) << "begin update to v12 of database schema"; | ||||
1837 | | ||||
1838 | { | ||||
1839 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
1840 | | ||||
1841 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `DatabaseVersionV12` (`Version` INTEGER PRIMARY KEY NOT NULL)")); | ||||
1842 | | ||||
1843 | if (!result) { | ||||
1844 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
1845 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
1846 | | ||||
1847 | Q_EMIT databaseError(); | ||||
1848 | } | ||||
1849 | } | ||||
1850 | | ||||
1851 | { | ||||
1852 | QSqlQuery disableForeignKeys(d->mTracksDatabase); | ||||
1853 | | ||||
1854 | auto result = disableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=OFF")); | ||||
1855 | | ||||
1856 | if (!result) { | ||||
1857 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << disableForeignKeys.lastQuery(); | ||||
1858 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << disableForeignKeys.lastError(); | ||||
1859 | | ||||
1860 | Q_EMIT databaseError(); | ||||
1861 | } | ||||
1862 | } | ||||
1863 | | ||||
1864 | d->mTracksDatabase.transaction(); | ||||
1865 | | ||||
1866 | { | ||||
1867 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
1868 | | ||||
1869 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `NewTracks` (" | ||||
1870 | "`ID` INTEGER PRIMARY KEY AUTOINCREMENT, " | ||||
1871 | "`FileName` VARCHAR(255) NOT NULL, " | ||||
1872 | "`Priority` INTEGER NOT NULL, " | ||||
1873 | "`Title` VARCHAR(85) NOT NULL, " | ||||
1874 | "`ArtistName` VARCHAR(55), " | ||||
1875 | "`AlbumTitle` VARCHAR(55), " | ||||
1876 | "`AlbumArtistName` VARCHAR(55), " | ||||
1877 | "`AlbumPath` VARCHAR(255), " | ||||
1878 | "`TrackNumber` INTEGER, " | ||||
1879 | "`DiscNumber` INTEGER, " | ||||
1880 | "`Duration` INTEGER NOT NULL, " | ||||
1881 | "`Rating` INTEGER NOT NULL DEFAULT 0, " | ||||
1882 | "`Genre` VARCHAR(55), " | ||||
1883 | "`Composer` VARCHAR(55), " | ||||
1884 | "`Lyricist` VARCHAR(55), " | ||||
1885 | "`Comment` VARCHAR(255), " | ||||
1886 | "`Year` INTEGER, " | ||||
1887 | "`Channels` INTEGER, " | ||||
1888 | "`BitRate` INTEGER, " | ||||
1889 | "`SampleRate` INTEGER, " | ||||
1890 | "`HasEmbeddedCover` BOOLEAN NOT NULL, " | ||||
1891 | "UNIQUE (" | ||||
1892 | "`FileName`" | ||||
1893 | "), " | ||||
1894 | "UNIQUE (" | ||||
1895 | "`Priority`, `Title`, `ArtistName`, " | ||||
1896 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`" | ||||
1897 | "), " | ||||
1898 | "CONSTRAINT fk_fileName FOREIGN KEY (`FileName`) " | ||||
1899 | "REFERENCES `TracksData`(`FileName`) ON DELETE CASCADE, " | ||||
1900 | "CONSTRAINT fk_artist FOREIGN KEY (`ArtistName`) REFERENCES `Artists`(`Name`), " | ||||
1901 | "CONSTRAINT fk_tracks_composer FOREIGN KEY (`Composer`) REFERENCES `Composer`(`Name`), " | ||||
1902 | "CONSTRAINT fk_tracks_lyricist FOREIGN KEY (`Lyricist`) REFERENCES `Lyricist`(`Name`), " | ||||
1903 | "CONSTRAINT fk_tracks_genre FOREIGN KEY (`Genre`) REFERENCES `Genre`(`Name`), " | ||||
1904 | "CONSTRAINT fk_tracks_album FOREIGN KEY (" | ||||
1905 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)" | ||||
1906 | "REFERENCES `Albums`(`Title`, `ArtistName`, `AlbumPath`))")); | ||||
1907 | | ||||
1908 | if (!result) { | ||||
1909 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
1910 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
1911 | } | ||||
1912 | } | ||||
1913 | | ||||
1914 | { | ||||
1915 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
1916 | | ||||
1917 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `NewTracksData` (" | ||||
1918 | "`FileName` VARCHAR(255) NOT NULL, " | ||||
1919 | "`FileModifiedTime` DATETIME NOT NULL, " | ||||
1920 | "`ImportDate` INTEGER NOT NULL, " | ||||
1921 | "`FirstPlayDate` INTEGER, " | ||||
1922 | "`LastPlayDate` INTEGER, " | ||||
1923 | "`PlayCounter` INTEGER NOT NULL, " | ||||
1924 | "PRIMARY KEY (`FileName`))")); | ||||
1925 | | ||||
1926 | if (!result) { | ||||
1927 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
1928 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
1929 | } | ||||
1930 | } | ||||
1931 | | ||||
1932 | { | ||||
1933 | QSqlQuery copyDataQuery(d->mTracksDatabase); | ||||
1934 | | ||||
1935 | auto result = copyDataQuery.exec(QStringLiteral("INSERT INTO `NewTracksData` " | ||||
1936 | "SELECT " | ||||
1937 | "td.`FileName`, " | ||||
1938 | "td.`FileModifiedTime`, " | ||||
1939 | "td.`ImportDate`, " | ||||
1940 | "td.`FirstPlayDate`, " | ||||
1941 | "td.`LastPlayDate`, " | ||||
1942 | "td.`PlayCounter` " | ||||
1943 | "FROM " | ||||
1944 | "`TracksData` td")); | ||||
1945 | | ||||
1946 | if (!result) { | ||||
1947 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastQuery(); | ||||
1948 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastError(); | ||||
1949 | | ||||
1950 | Q_EMIT databaseError(); | ||||
1951 | } | ||||
1952 | } | ||||
1953 | | ||||
1954 | { | ||||
1955 | QSqlQuery copyDataQuery(d->mTracksDatabase); | ||||
1956 | | ||||
1957 | auto result = copyDataQuery.exec(QStringLiteral("INSERT INTO `NewTracks` " | ||||
1958 | "SELECT " | ||||
1959 | "t.`ID`, " | ||||
1960 | "t.`FileName`, " | ||||
1961 | "t.`Priority`, " | ||||
1962 | "t.`Title`, " | ||||
1963 | "t.`ArtistName`, " | ||||
1964 | "t.`AlbumTitle`, " | ||||
1965 | "t.`AlbumArtistName`, " | ||||
1966 | "t.`AlbumPath`, " | ||||
1967 | "t.`TrackNumber`, " | ||||
1968 | "t.`DiscNumber`, " | ||||
1969 | "t.`Duration`, " | ||||
1970 | "t.`Rating`, " | ||||
1971 | "t.`Genre`, " | ||||
1972 | "t.`Composer`, " | ||||
1973 | "t.`Lyricist`, " | ||||
1974 | "t.`Comment`, " | ||||
1975 | "t.`Year`, " | ||||
1976 | "t.`Channels`, " | ||||
1977 | "t.`BitRate`, " | ||||
1978 | "t.`SampleRate`, " | ||||
1979 | "t.`HasEmbeddedCover` " | ||||
1980 | "FROM " | ||||
1981 | "`Tracks` t")); | ||||
1982 | | ||||
1983 | if (!result) { | ||||
1984 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastQuery(); | ||||
1985 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << copyDataQuery.lastError(); | ||||
1986 | | ||||
1987 | Q_EMIT databaseError(); | ||||
1988 | } | ||||
1989 | } | ||||
1990 | | ||||
1991 | { | ||||
1992 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
1993 | | ||||
1994 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `TracksData`")); | ||||
1995 | | ||||
1996 | if (!result) { | ||||
1997 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
1998 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
1999 | | ||||
2000 | Q_EMIT databaseError(); | ||||
2001 | } | ||||
2002 | } | ||||
2003 | | ||||
2004 | { | ||||
2005 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
2006 | | ||||
2007 | auto result = createSchemaQuery.exec(QStringLiteral("DROP TABLE `Tracks`")); | ||||
2008 | | ||||
2009 | if (!result) { | ||||
2010 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
2011 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
2012 | | ||||
2013 | Q_EMIT databaseError(); | ||||
2014 | } | ||||
2015 | } | ||||
2016 | | ||||
2017 | { | ||||
2018 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||||
2019 | | ||||
2020 | auto result = createSchemaQuery.exec(QStringLiteral("ALTER TABLE `NewTracksData` RENAME TO `TracksData`")); | ||||
2021 | | ||||
2022 | if (!result) { | ||||
2023 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||||
2024 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||||
1717 | 2025 | | |||
1718 | Q_EMIT databaseError(); | 2026 | Q_EMIT databaseError(); | ||
1719 | } | 2027 | } | ||
1720 | } | 2028 | } | ||
1721 | 2029 | | |||
1722 | { | 2030 | { | ||
1723 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 2031 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1724 | 2032 | | |||
1725 | auto result = createSchemaQuery.exec(QStringLiteral("ALTER TABLE `NewTracks` RENAME TO `Tracks`")); | 2033 | auto result = createSchemaQuery.exec(QStringLiteral("ALTER TABLE `NewTracks` RENAME TO `Tracks`")); | ||
1726 | 2034 | | |||
1727 | if (!result) { | 2035 | if (!result) { | ||
1728 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | 2036 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastQuery(); | ||
1729 | qDebug() << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | 2037 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createSchemaQuery.lastError(); | ||
1730 | 2038 | | |||
1731 | Q_EMIT databaseError(); | 2039 | Q_EMIT databaseError(); | ||
1732 | } | 2040 | } | ||
1733 | } | 2041 | } | ||
1734 | 2042 | | |||
1735 | d->mTracksDatabase.commit(); | 2043 | d->mTracksDatabase.commit(); | ||
1736 | 2044 | | |||
1737 | { | 2045 | { | ||
1738 | QSqlQuery enableForeignKeys(d->mTracksDatabase); | 2046 | QSqlQuery enableForeignKeys(d->mTracksDatabase); | ||
1739 | 2047 | | |||
1740 | auto result = enableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=ON")); | 2048 | auto result = enableForeignKeys.exec(QStringLiteral(" PRAGMA foreign_keys=ON")); | ||
1741 | 2049 | | |||
1742 | if (!result) { | 2050 | if (!result) { | ||
1743 | qDebug() << "DatabaseInterface::initDatabase" << enableForeignKeys.lastQuery(); | 2051 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << enableForeignKeys.lastQuery(); | ||
1744 | qDebug() << "DatabaseInterface::initDatabase" << enableForeignKeys.lastError(); | 2052 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << enableForeignKeys.lastError(); | ||
1745 | 2053 | | |||
1746 | Q_EMIT databaseError(); | 2054 | Q_EMIT databaseError(); | ||
1747 | } | 2055 | } | ||
1748 | } | 2056 | } | ||
1749 | 2057 | | |||
1750 | { | 2058 | { | ||
1751 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 2059 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1752 | 2060 | | |||
1753 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 2061 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1754 | "IF NOT EXISTS " | 2062 | "IF NOT EXISTS " | ||
1755 | "`TracksAlbumIndex` ON `Tracks` " | 2063 | "`TracksAlbumIndex` ON `Tracks` " | ||
1756 | "(`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | 2064 | "(`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||
1757 | 2065 | | |||
1758 | if (!result) { | 2066 | if (!result) { | ||
1759 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 2067 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1760 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 2068 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1761 | 2069 | | |||
1762 | Q_EMIT databaseError(); | 2070 | Q_EMIT databaseError(); | ||
1763 | } | 2071 | } | ||
1764 | } | 2072 | } | ||
1765 | 2073 | | |||
1766 | { | 2074 | { | ||
1767 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 2075 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1768 | 2076 | | |||
1769 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 2077 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1770 | "IF NOT EXISTS " | 2078 | "IF NOT EXISTS " | ||
1771 | "`ArtistNameIndex` ON `Tracks` " | 2079 | "`ArtistNameIndex` ON `Tracks` " | ||
1772 | "(`ArtistName`)")); | 2080 | "(`ArtistName`)")); | ||
1773 | 2081 | | |||
1774 | if (!result) { | 2082 | if (!result) { | ||
1775 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 2083 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1776 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 2084 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1777 | 2085 | | |||
1778 | Q_EMIT databaseError(); | 2086 | Q_EMIT databaseError(); | ||
1779 | } | 2087 | } | ||
1780 | } | 2088 | } | ||
1781 | 2089 | | |||
1782 | { | 2090 | { | ||
1783 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 2091 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1784 | 2092 | | |||
1785 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 2093 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1786 | "IF NOT EXISTS " | 2094 | "IF NOT EXISTS " | ||
1787 | "`AlbumArtistNameIndex` ON `Tracks` " | 2095 | "`AlbumArtistNameIndex` ON `Tracks` " | ||
1788 | "(`AlbumArtistName`)")); | 2096 | "(`AlbumArtistName`)")); | ||
1789 | 2097 | | |||
1790 | if (!result) { | 2098 | if (!result) { | ||
1791 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 2099 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1792 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 2100 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1793 | 2101 | | |||
1794 | Q_EMIT databaseError(); | 2102 | Q_EMIT databaseError(); | ||
1795 | } | 2103 | } | ||
1796 | } | 2104 | } | ||
1797 | 2105 | | |||
1798 | { | 2106 | { | ||
1799 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 2107 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1800 | 2108 | | |||
1801 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 2109 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1802 | "IF NOT EXISTS " | 2110 | "IF NOT EXISTS " | ||
1803 | "`TracksUniqueData` ON `Tracks` " | 2111 | "`TracksUniqueData` ON `Tracks` " | ||
1804 | "(`Title`, `ArtistName`, " | 2112 | "(`Title`, `ArtistName`, " | ||
1805 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | 2113 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||
1806 | 2114 | | |||
1807 | if (!result) { | 2115 | if (!result) { | ||
1808 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 2116 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1809 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 2117 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1810 | 2118 | | |||
1811 | Q_EMIT databaseError(); | 2119 | Q_EMIT databaseError(); | ||
1812 | } | 2120 | } | ||
1813 | } | 2121 | } | ||
1814 | 2122 | | |||
1815 | { | 2123 | { | ||
1816 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 2124 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1817 | 2125 | | |||
1818 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 2126 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1819 | "IF NOT EXISTS " | 2127 | "IF NOT EXISTS " | ||
1820 | "`TracksUniqueDataPriority` ON `Tracks` " | 2128 | "`TracksUniqueDataPriority` ON `Tracks` " | ||
1821 | "(`Priority`, `Title`, `ArtistName`, " | 2129 | "(`Priority`, `Title`, `ArtistName`, " | ||
1822 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | 2130 | "`AlbumTitle`, `AlbumArtistName`, `AlbumPath`)")); | ||
1823 | 2131 | | |||
1824 | if (!result) { | 2132 | if (!result) { | ||
1825 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 2133 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1826 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 2134 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1827 | 2135 | | |||
1828 | Q_EMIT databaseError(); | 2136 | Q_EMIT databaseError(); | ||
1829 | } | 2137 | } | ||
1830 | } | 2138 | } | ||
1831 | 2139 | | |||
1832 | { | 2140 | { | ||
1833 | QSqlQuery createTrackIndex(d->mTracksDatabase); | 2141 | QSqlQuery createTrackIndex(d->mTracksDatabase); | ||
1834 | 2142 | | |||
1835 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | 2143 | const auto &result = createTrackIndex.exec(QStringLiteral("CREATE INDEX " | ||
1836 | "IF NOT EXISTS " | 2144 | "IF NOT EXISTS " | ||
1837 | "`TracksFileNameIndex` ON `Tracks` " | 2145 | "`TracksFileNameIndex` ON `Tracks` " | ||
1838 | "(`FileName`)")); | 2146 | "(`FileName`)")); | ||
1839 | 2147 | | |||
1840 | if (!result) { | 2148 | if (!result) { | ||
1841 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | 2149 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastQuery(); | ||
1842 | qDebug() << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | 2150 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initDatabase" << createTrackIndex.lastError(); | ||
1843 | 2151 | | |||
1844 | Q_EMIT databaseError(); | 2152 | Q_EMIT databaseError(); | ||
1845 | } | 2153 | } | ||
1846 | } | 2154 | } | ||
1847 | 2155 | | |||
1848 | qDebug() << "finished update to v11 of database schema"; | 2156 | qCDebug(orgKdeElisaDatabase) << "finished update to v12 of database schema"; | ||
1849 | } | 2157 | } | ||
1850 | 2158 | | |||
1851 | void DatabaseInterface::initRequest() | 2159 | void DatabaseInterface::initRequest() | ||
1852 | { | 2160 | { | ||
1853 | auto transactionResult = startTransaction(); | 2161 | auto transactionResult = startTransaction(); | ||
1854 | if (!transactionResult) { | 2162 | if (!transactionResult) { | ||
1855 | return; | 2163 | return; | ||
1856 | } | 2164 | } | ||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Line(s) | 2167 | auto selectAlbumQueryText = QStringLiteral("SELECT " | |||
1909 | "`Genre` genres ON tracks.`Genre` = genres.`Name` " | 2217 | "`Genre` genres ON tracks.`Genre` = genres.`Name` " | ||
1910 | "WHERE " | 2218 | "WHERE " | ||
1911 | "album.`ID` = :albumId " | 2219 | "album.`ID` = :albumId " | ||
1912 | "GROUP BY album.`ID`"); | 2220 | "GROUP BY album.`ID`"); | ||
1913 | 2221 | | |||
1914 | auto result = prepareQuery(d->mSelectAlbumQuery, selectAlbumQueryText); | 2222 | auto result = prepareQuery(d->mSelectAlbumQuery, selectAlbumQueryText); | ||
1915 | 2223 | | |||
1916 | if (!result) { | 2224 | if (!result) { | ||
1917 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumQuery.lastQuery(); | 2225 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumQuery.lastQuery(); | ||
1918 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumQuery.lastError(); | 2226 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumQuery.lastError(); | ||
1919 | 2227 | | |||
1920 | Q_EMIT databaseError(); | 2228 | Q_EMIT databaseError(); | ||
1921 | } | 2229 | } | ||
1922 | } | 2230 | } | ||
1923 | 2231 | | |||
1924 | { | 2232 | { | ||
1925 | auto selectAllGenresText = QStringLiteral("SELECT " | 2233 | auto selectAllGenresText = QStringLiteral("SELECT " | ||
1926 | "genre.`ID`, " | 2234 | "genre.`ID`, " | ||
1927 | "genre.`Name` " | 2235 | "genre.`Name` " | ||
1928 | "FROM `Genre` genre " | 2236 | "FROM `Genre` genre " | ||
1929 | "ORDER BY genre.`Name` COLLATE NOCASE"); | 2237 | "ORDER BY genre.`Name` COLLATE NOCASE"); | ||
1930 | 2238 | | |||
1931 | auto result = prepareQuery(d->mSelectAllGenresQuery, selectAllGenresText); | 2239 | auto result = prepareQuery(d->mSelectAllGenresQuery, selectAllGenresText); | ||
1932 | 2240 | | |||
1933 | if (!result) { | 2241 | if (!result) { | ||
1934 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllGenresQuery.lastQuery(); | 2242 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllGenresQuery.lastQuery(); | ||
1935 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllGenresQuery.lastError(); | 2243 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllGenresQuery.lastError(); | ||
1936 | 2244 | | |||
1937 | Q_EMIT databaseError(); | 2245 | Q_EMIT databaseError(); | ||
1938 | } | 2246 | } | ||
1939 | } | 2247 | } | ||
1940 | 2248 | | |||
1941 | { | 2249 | { | ||
1942 | auto selectAllAlbumsText = QStringLiteral("SELECT " | 2250 | auto selectAllAlbumsText = QStringLiteral("SELECT " | ||
1943 | "album.`ID`, " | 2251 | "album.`ID`, " | ||
Show All 31 Lines | |||||
1975 | ") AND " | 2283 | ") AND " | ||
1976 | "tracks.`AlbumPath` = album.`AlbumPath` " | 2284 | "tracks.`AlbumPath` = album.`AlbumPath` " | ||
1977 | "GROUP BY album.`ID`, album.`Title`, album.`AlbumPath` " | 2285 | "GROUP BY album.`ID`, album.`Title`, album.`AlbumPath` " | ||
1978 | "ORDER BY album.`Title` COLLATE NOCASE"); | 2286 | "ORDER BY album.`Title` COLLATE NOCASE"); | ||
1979 | 2287 | | |||
1980 | auto result = prepareQuery(d->mSelectAllAlbumsShortQuery, selectAllAlbumsText); | 2288 | auto result = prepareQuery(d->mSelectAllAlbumsShortQuery, selectAllAlbumsText); | ||
1981 | 2289 | | |||
1982 | if (!result) { | 2290 | if (!result) { | ||
1983 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortQuery.lastQuery(); | 2291 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortQuery.lastQuery(); | ||
1984 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortQuery.lastError(); | 2292 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortQuery.lastError(); | ||
1985 | 2293 | | |||
1986 | Q_EMIT databaseError(); | 2294 | Q_EMIT databaseError(); | ||
1987 | } | 2295 | } | ||
1988 | } | 2296 | } | ||
1989 | 2297 | | |||
1990 | { | 2298 | { | ||
1991 | auto selectAllAlbumsText = QStringLiteral("SELECT " | 2299 | auto selectAllAlbumsText = QStringLiteral("SELECT " | ||
1992 | "album.`ID`, " | 2300 | "album.`ID`, " | ||
Show All 29 Lines | |||||
2022 | " (tracks2.`ArtistName` = :artistFilter OR tracks2.`AlbumArtistName` = :artistFilter) " | 2330 | " (tracks2.`ArtistName` = :artistFilter OR tracks2.`AlbumArtistName` = :artistFilter) " | ||
2023 | ") " | 2331 | ") " | ||
2024 | "GROUP BY album.`ID`, album.`Title`, album.`AlbumPath` " | 2332 | "GROUP BY album.`ID`, album.`Title`, album.`AlbumPath` " | ||
2025 | "ORDER BY album.`Title` COLLATE NOCASE"); | 2333 | "ORDER BY album.`Title` COLLATE NOCASE"); | ||
2026 | 2334 | | |||
2027 | auto result = prepareQuery(d->mSelectAllAlbumsShortWithGenreArtistFilterQuery, selectAllAlbumsText); | 2335 | auto result = prepareQuery(d->mSelectAllAlbumsShortWithGenreArtistFilterQuery, selectAllAlbumsText); | ||
2028 | 2336 | | |||
2029 | if (!result) { | 2337 | if (!result) { | ||
2030 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithGenreArtistFilterQuery.lastQuery(); | 2338 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithGenreArtistFilterQuery.lastQuery(); | ||
2031 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithGenreArtistFilterQuery.lastError(); | 2339 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithGenreArtistFilterQuery.lastError(); | ||
2032 | 2340 | | |||
2033 | Q_EMIT databaseError(); | 2341 | Q_EMIT databaseError(); | ||
2034 | } | 2342 | } | ||
2035 | } | 2343 | } | ||
2036 | 2344 | | |||
2037 | { | 2345 | { | ||
2038 | auto selectAllAlbumsText = QStringLiteral("SELECT " | 2346 | auto selectAllAlbumsText = QStringLiteral("SELECT " | ||
2039 | "album.`ID`, " | 2347 | "album.`ID`, " | ||
Show All 26 Lines | |||||
2066 | " (tracks2.`ArtistName` = :artistFilter OR tracks2.`AlbumArtistName` = :artistFilter) " | 2374 | " (tracks2.`ArtistName` = :artistFilter OR tracks2.`AlbumArtistName` = :artistFilter) " | ||
2067 | ") " | 2375 | ") " | ||
2068 | "GROUP BY album.`ID`, album.`Title`, album.`AlbumPath` " | 2376 | "GROUP BY album.`ID`, album.`Title`, album.`AlbumPath` " | ||
2069 | "ORDER BY album.`Title` COLLATE NOCASE"); | 2377 | "ORDER BY album.`Title` COLLATE NOCASE"); | ||
2070 | 2378 | | |||
2071 | auto result = prepareQuery(d->mSelectAllAlbumsShortWithArtistFilterQuery, selectAllAlbumsText); | 2379 | auto result = prepareQuery(d->mSelectAllAlbumsShortWithArtistFilterQuery, selectAllAlbumsText); | ||
2072 | 2380 | | |||
2073 | if (!result) { | 2381 | if (!result) { | ||
2074 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithArtistFilterQuery.lastQuery(); | 2382 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithArtistFilterQuery.lastQuery(); | ||
2075 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithArtistFilterQuery.lastError(); | 2383 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllAlbumsShortWithArtistFilterQuery.lastError(); | ||
2076 | 2384 | | |||
2077 | Q_EMIT databaseError(); | 2385 | Q_EMIT databaseError(); | ||
2078 | } | 2386 | } | ||
2079 | } | 2387 | } | ||
2080 | 2388 | | |||
2081 | { | 2389 | { | ||
2082 | auto selectAllArtistsWithFilterText = QStringLiteral("SELECT artists.`ID`, " | 2390 | auto selectAllArtistsWithFilterText = QStringLiteral("SELECT artists.`ID`, " | ||
2083 | "artists.`Name`, " | 2391 | "artists.`Name`, " | ||
2084 | "GROUP_CONCAT(genres.`Name`, ', ') as AllGenres " | 2392 | "GROUP_CONCAT(genres.`Name`, ', ') as AllGenres " | ||
2085 | "FROM `Artists` artists LEFT JOIN " | 2393 | "FROM `Artists` artists LEFT JOIN " | ||
2086 | "`Tracks` tracks ON artists.`Name` = tracks.`ArtistName` LEFT JOIN " | 2394 | "`Tracks` tracks ON artists.`Name` = tracks.`ArtistName` LEFT JOIN " | ||
2087 | "`Genre` genres ON tracks.`Genre` = genres.`Name` " | 2395 | "`Genre` genres ON tracks.`Genre` = genres.`Name` " | ||
2088 | "GROUP BY artists.`ID` " | 2396 | "GROUP BY artists.`ID` " | ||
2089 | "ORDER BY artists.`Name` COLLATE NOCASE"); | 2397 | "ORDER BY artists.`Name` COLLATE NOCASE"); | ||
2090 | 2398 | | |||
2091 | auto result = prepareQuery(d->mSelectAllArtistsQuery, selectAllArtistsWithFilterText); | 2399 | auto result = prepareQuery(d->mSelectAllArtistsQuery, selectAllArtistsWithFilterText); | ||
2092 | 2400 | | |||
2093 | if (!result) { | 2401 | if (!result) { | ||
2094 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllArtistsQuery.lastQuery(); | 2402 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllArtistsQuery.lastQuery(); | ||
2095 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllArtistsQuery.lastError(); | 2403 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllArtistsQuery.lastError(); | ||
2096 | 2404 | | |||
2097 | Q_EMIT databaseError(); | 2405 | Q_EMIT databaseError(); | ||
2098 | } | 2406 | } | ||
2099 | } | 2407 | } | ||
2100 | 2408 | | |||
2101 | { | 2409 | { | ||
2102 | auto selectAllArtistsWithGenreFilterText = QStringLiteral("SELECT artists.`ID`, " | 2410 | auto selectAllArtistsWithGenreFilterText = QStringLiteral("SELECT artists.`ID`, " | ||
2103 | "artists.`Name`, " | 2411 | "artists.`Name`, " | ||
Show All 13 Lines | |||||
2117 | " genre2.`Name` = :genreFilter " | 2425 | " genre2.`Name` = :genreFilter " | ||
2118 | ") " | 2426 | ") " | ||
2119 | "GROUP BY artists.`ID` " | 2427 | "GROUP BY artists.`ID` " | ||
2120 | "ORDER BY artists.`Name` COLLATE NOCASE"); | 2428 | "ORDER BY artists.`Name` COLLATE NOCASE"); | ||
2121 | 2429 | | |||
2122 | auto result = prepareQuery(d->mSelectAllArtistsWithGenreFilterQuery, selectAllArtistsWithGenreFilterText); | 2430 | auto result = prepareQuery(d->mSelectAllArtistsWithGenreFilterQuery, selectAllArtistsWithGenreFilterText); | ||
2123 | 2431 | | |||
2124 | if (!result) { | 2432 | if (!result) { | ||
2125 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllArtistsWithGenreFilterQuery.lastQuery(); | 2433 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllArtistsWithGenreFilterQuery.lastQuery(); | ||
2126 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllArtistsWithGenreFilterQuery.lastError(); | 2434 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllArtistsWithGenreFilterQuery.lastError(); | ||
2127 | 2435 | | |||
2128 | Q_EMIT databaseError(); | 2436 | Q_EMIT databaseError(); | ||
2129 | } | 2437 | } | ||
2130 | } | 2438 | } | ||
2131 | 2439 | | |||
2132 | { | 2440 | { | ||
2133 | auto artistMatchGenreText = QStringLiteral("SELECT artists.`ID` " | 2441 | auto artistMatchGenreText = QStringLiteral("SELECT artists.`ID` " | ||
2134 | "FROM `Artists` artists LEFT JOIN " | 2442 | "FROM `Artists` artists LEFT JOIN " | ||
Show All 10 Lines | |||||
2145 | " tracks2.`Genre` = genre2.`Name` AND " | 2453 | " tracks2.`Genre` = genre2.`Name` AND " | ||
2146 | " genre2.`Name` = :genreFilter " | 2454 | " genre2.`Name` = :genreFilter " | ||
2147 | ") AND " | 2455 | ") AND " | ||
2148 | "artists.`ID` = :databaseId"); | 2456 | "artists.`ID` = :databaseId"); | ||
2149 | 2457 | | |||
2150 | auto result = prepareQuery(d->mArtistMatchGenreQuery, artistMatchGenreText); | 2458 | auto result = prepareQuery(d->mArtistMatchGenreQuery, artistMatchGenreText); | ||
2151 | 2459 | | |||
2152 | if (!result) { | 2460 | if (!result) { | ||
2153 | qDebug() << "DatabaseInterface::initRequest" << d->mArtistMatchGenreQuery.lastQuery(); | 2461 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mArtistMatchGenreQuery.lastQuery(); | ||
2154 | qDebug() << "DatabaseInterface::initRequest" << d->mArtistMatchGenreQuery.lastError(); | 2462 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mArtistMatchGenreQuery.lastError(); | ||
2155 | 2463 | | |||
2156 | Q_EMIT databaseError(); | 2464 | Q_EMIT databaseError(); | ||
2157 | } | 2465 | } | ||
2158 | } | 2466 | } | ||
2159 | 2467 | | |||
2160 | { | 2468 | { | ||
2161 | auto selectAllComposersWithFilterText = QStringLiteral("SELECT `ID`, " | 2469 | auto selectAllComposersWithFilterText = QStringLiteral("SELECT `ID`, " | ||
2162 | "`Name` " | 2470 | "`Name` " | ||
2163 | "FROM `Artists` " | 2471 | "FROM `Artists` " | ||
2164 | "ORDER BY `Name` COLLATE NOCASE"); | 2472 | "ORDER BY `Name` COLLATE NOCASE"); | ||
2165 | 2473 | | |||
2166 | auto result = prepareQuery(d->mSelectAllComposersQuery, selectAllComposersWithFilterText); | 2474 | auto result = prepareQuery(d->mSelectAllComposersQuery, selectAllComposersWithFilterText); | ||
2167 | 2475 | | |||
2168 | if (!result) { | 2476 | if (!result) { | ||
2169 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllComposersQuery.lastQuery(); | 2477 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllComposersQuery.lastQuery(); | ||
2170 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllComposersQuery.lastError(); | 2478 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllComposersQuery.lastError(); | ||
2171 | 2479 | | |||
2172 | Q_EMIT databaseError(); | 2480 | Q_EMIT databaseError(); | ||
2173 | } | 2481 | } | ||
2174 | } | 2482 | } | ||
2175 | 2483 | | |||
2176 | { | 2484 | { | ||
2177 | auto selectAllLyricistsWithFilterText = QStringLiteral("SELECT `ID`, " | 2485 | auto selectAllLyricistsWithFilterText = QStringLiteral("SELECT `ID`, " | ||
2178 | "`Name` " | 2486 | "`Name` " | ||
2179 | "FROM `Lyricist` " | 2487 | "FROM `Lyricist` " | ||
2180 | "ORDER BY `Name` COLLATE NOCASE"); | 2488 | "ORDER BY `Name` COLLATE NOCASE"); | ||
2181 | 2489 | | |||
2182 | auto result = prepareQuery(d->mSelectAllLyricistsQuery, selectAllLyricistsWithFilterText); | 2490 | auto result = prepareQuery(d->mSelectAllLyricistsQuery, selectAllLyricistsWithFilterText); | ||
2183 | 2491 | | |||
2184 | if (!result) { | 2492 | if (!result) { | ||
2185 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllLyricistsQuery.lastQuery(); | 2493 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllLyricistsQuery.lastQuery(); | ||
2186 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllLyricistsQuery.lastError(); | 2494 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllLyricistsQuery.lastError(); | ||
2187 | 2495 | | |||
2188 | Q_EMIT databaseError(); | 2496 | Q_EMIT databaseError(); | ||
2189 | } | 2497 | } | ||
2190 | } | 2498 | } | ||
2191 | 2499 | | |||
2192 | { | 2500 | { | ||
2193 | auto selectAllTracksText = QStringLiteral("SELECT " | 2501 | auto selectAllTracksText = QStringLiteral("SELECT " | ||
2194 | "tracks.`ID`, " | 2502 | "tracks.`ID`, " | ||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Line(s) | |||||
2258 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | 2566 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | ||
2259 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 2567 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
2260 | ")" | 2568 | ")" | ||
2261 | ""); | 2569 | ""); | ||
2262 | 2570 | | |||
2263 | auto result = prepareQuery(d->mSelectAllTracksQuery, selectAllTracksText); | 2571 | auto result = prepareQuery(d->mSelectAllTracksQuery, selectAllTracksText); | ||
2264 | 2572 | | |||
2265 | if (!result) { | 2573 | if (!result) { | ||
2266 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllTracksQuery.lastQuery(); | 2574 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllTracksQuery.lastQuery(); | ||
2267 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllTracksQuery.lastError(); | 2575 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllTracksQuery.lastError(); | ||
2268 | 2576 | | |||
2269 | Q_EMIT databaseError(); | 2577 | Q_EMIT databaseError(); | ||
2270 | } | 2578 | } | ||
2271 | } | 2579 | } | ||
2272 | 2580 | | |||
2273 | { | 2581 | { | ||
2274 | auto selectAllTracksText = QStringLiteral("SELECT " | 2582 | auto selectAllTracksText = QStringLiteral("SELECT " | ||
2275 | "tracks.`ID`, " | 2583 | "tracks.`ID`, " | ||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Line(s) | |||||
2341 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 2649 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
2342 | ")" | 2650 | ")" | ||
2343 | "ORDER BY tracksMapping.`LastPlayDate` DESC " | 2651 | "ORDER BY tracksMapping.`LastPlayDate` DESC " | ||
2344 | "LIMIT :maximumResults"); | 2652 | "LIMIT :maximumResults"); | ||
2345 | 2653 | | |||
2346 | auto result = prepareQuery(d->mSelectAllRecentlyPlayedTracksQuery, selectAllTracksText); | 2654 | auto result = prepareQuery(d->mSelectAllRecentlyPlayedTracksQuery, selectAllTracksText); | ||
2347 | 2655 | | |||
2348 | if (!result) { | 2656 | if (!result) { | ||
2349 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllRecentlyPlayedTracksQuery.lastQuery(); | 2657 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllRecentlyPlayedTracksQuery.lastQuery(); | ||
2350 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllRecentlyPlayedTracksQuery.lastError(); | 2658 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllRecentlyPlayedTracksQuery.lastError(); | ||
2351 | 2659 | | |||
2352 | Q_EMIT databaseError(); | 2660 | Q_EMIT databaseError(); | ||
2353 | } | 2661 | } | ||
2354 | } | 2662 | } | ||
2355 | 2663 | | |||
2356 | { | 2664 | { | ||
2357 | auto selectAllTracksText = QStringLiteral("SELECT " | 2665 | auto selectAllTracksText = QStringLiteral("SELECT " | ||
2358 | "tracks.`ID`, " | 2666 | "tracks.`ID`, " | ||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Line(s) | |||||
2424 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 2732 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
2425 | ")" | 2733 | ")" | ||
2426 | "ORDER BY CAST(tracksMapping.`PlayCounter` AS REAL) / ((CAST(strftime('%s','now') as INTEGER) - CAST(tracksMapping.`FirstPlayDate` / 1000 as INTEGER)) / CAST(1000 AS REAL)) DESC " | 2734 | "ORDER BY CAST(tracksMapping.`PlayCounter` AS REAL) / ((CAST(strftime('%s','now') as INTEGER) - CAST(tracksMapping.`FirstPlayDate` / 1000 as INTEGER)) / CAST(1000 AS REAL)) DESC " | ||
2427 | "LIMIT :maximumResults"); | 2735 | "LIMIT :maximumResults"); | ||
2428 | 2736 | | |||
2429 | auto result = prepareQuery(d->mSelectAllFrequentlyPlayedTracksQuery, selectAllTracksText); | 2737 | auto result = prepareQuery(d->mSelectAllFrequentlyPlayedTracksQuery, selectAllTracksText); | ||
2430 | 2738 | | |||
2431 | if (!result) { | 2739 | if (!result) { | ||
2432 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllFrequentlyPlayedTracksQuery.lastQuery(); | 2740 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllFrequentlyPlayedTracksQuery.lastQuery(); | ||
2433 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllFrequentlyPlayedTracksQuery.lastError(); | 2741 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllFrequentlyPlayedTracksQuery.lastError(); | ||
2434 | 2742 | | |||
2435 | Q_EMIT databaseError(); | 2743 | Q_EMIT databaseError(); | ||
2436 | } | 2744 | } | ||
2437 | } | 2745 | } | ||
2438 | 2746 | | |||
2439 | { | 2747 | { | ||
2440 | auto clearAlbumsTableText = QStringLiteral("DELETE FROM `Albums`"); | 2748 | auto clearAlbumsTableText = QStringLiteral("DELETE FROM `Albums`"); | ||
2441 | 2749 | | |||
2442 | auto result = prepareQuery(d->mClearAlbumsTable, clearAlbumsTableText); | 2750 | auto result = prepareQuery(d->mClearAlbumsTable, clearAlbumsTableText); | ||
2443 | 2751 | | |||
2444 | if (!result) { | 2752 | if (!result) { | ||
2445 | qDebug() << "DatabaseInterface::initRequest" << d->mClearAlbumsTable.lastQuery(); | 2753 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearAlbumsTable.lastQuery(); | ||
2446 | qDebug() << "DatabaseInterface::initRequest" << d->mClearAlbumsTable.lastError(); | 2754 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearAlbumsTable.lastError(); | ||
2447 | 2755 | | |||
2448 | Q_EMIT databaseError(); | 2756 | Q_EMIT databaseError(); | ||
2449 | } | 2757 | } | ||
2450 | } | 2758 | } | ||
2451 | 2759 | | |||
2452 | { | 2760 | { | ||
2453 | auto clearArtistsTableText = QStringLiteral("DELETE FROM `Artists`"); | 2761 | auto clearArtistsTableText = QStringLiteral("DELETE FROM `Artists`"); | ||
2454 | 2762 | | |||
2455 | auto result = prepareQuery(d->mClearArtistsTable, clearArtistsTableText); | 2763 | auto result = prepareQuery(d->mClearArtistsTable, clearArtistsTableText); | ||
2456 | 2764 | | |||
2457 | if (!result) { | 2765 | if (!result) { | ||
2458 | qDebug() << "DatabaseInterface::initRequest" << d->mClearArtistsTable.lastQuery(); | 2766 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearArtistsTable.lastQuery(); | ||
2459 | qDebug() << "DatabaseInterface::initRequest" << d->mClearArtistsTable.lastError(); | 2767 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearArtistsTable.lastError(); | ||
2460 | 2768 | | |||
2461 | Q_EMIT databaseError(); | 2769 | Q_EMIT databaseError(); | ||
2462 | } | 2770 | } | ||
2463 | } | 2771 | } | ||
2464 | 2772 | | |||
2465 | { | 2773 | { | ||
2466 | auto clearComposerTableText = QStringLiteral("DELETE FROM `Composer`"); | 2774 | auto clearComposerTableText = QStringLiteral("DELETE FROM `Composer`"); | ||
2467 | 2775 | | |||
2468 | auto result = prepareQuery(d->mClearComposerTable, clearComposerTableText); | 2776 | auto result = prepareQuery(d->mClearComposerTable, clearComposerTableText); | ||
2469 | 2777 | | |||
2470 | if (!result) { | 2778 | if (!result) { | ||
2471 | qDebug() << "DatabaseInterface::initRequest" << d->mClearComposerTable.lastQuery(); | 2779 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearComposerTable.lastQuery(); | ||
2472 | qDebug() << "DatabaseInterface::initRequest" << d->mClearComposerTable.lastError(); | 2780 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearComposerTable.lastError(); | ||
2473 | 2781 | | |||
2474 | Q_EMIT databaseError(); | 2782 | Q_EMIT databaseError(); | ||
2475 | } | 2783 | } | ||
2476 | } | 2784 | } | ||
2477 | 2785 | | |||
2478 | { | 2786 | { | ||
2479 | auto clearGenreTableText = QStringLiteral("DELETE FROM `Genre`"); | 2787 | auto clearGenreTableText = QStringLiteral("DELETE FROM `Genre`"); | ||
2480 | 2788 | | |||
2481 | auto result = prepareQuery(d->mClearGenreTable, clearGenreTableText); | 2789 | auto result = prepareQuery(d->mClearGenreTable, clearGenreTableText); | ||
2482 | 2790 | | |||
2483 | if (!result) { | 2791 | if (!result) { | ||
2484 | qDebug() << "DatabaseInterface::initRequest" << d->mClearGenreTable.lastQuery(); | 2792 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearGenreTable.lastQuery(); | ||
2485 | qDebug() << "DatabaseInterface::initRequest" << d->mClearGenreTable.lastError(); | 2793 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearGenreTable.lastError(); | ||
2486 | 2794 | | |||
2487 | Q_EMIT databaseError(); | 2795 | Q_EMIT databaseError(); | ||
2488 | } | 2796 | } | ||
2489 | } | 2797 | } | ||
2490 | 2798 | | |||
2491 | { | 2799 | { | ||
2492 | auto clearLyricistTableText = QStringLiteral("DELETE FROM `Lyricist`"); | 2800 | auto clearLyricistTableText = QStringLiteral("DELETE FROM `Lyricist`"); | ||
2493 | 2801 | | |||
2494 | auto result = prepareQuery(d->mClearLyricistTable, clearLyricistTableText); | 2802 | auto result = prepareQuery(d->mClearLyricistTable, clearLyricistTableText); | ||
2495 | 2803 | | |||
2496 | if (!result) { | 2804 | if (!result) { | ||
2497 | qDebug() << "DatabaseInterface::initRequest" << d->mClearLyricistTable.lastQuery(); | 2805 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearLyricistTable.lastQuery(); | ||
2498 | qDebug() << "DatabaseInterface::initRequest" << d->mClearLyricistTable.lastError(); | 2806 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearLyricistTable.lastError(); | ||
2499 | 2807 | | |||
2500 | Q_EMIT databaseError(); | 2808 | Q_EMIT databaseError(); | ||
2501 | } | 2809 | } | ||
2502 | } | 2810 | } | ||
2503 | 2811 | | |||
2504 | { | 2812 | { | ||
2505 | auto clearTracksTableText = QStringLiteral("DELETE FROM `Tracks`"); | 2813 | auto clearTracksTableText = QStringLiteral("DELETE FROM `Tracks`"); | ||
2506 | 2814 | | |||
2507 | auto result = prepareQuery(d->mClearTracksTable, clearTracksTableText); | 2815 | auto result = prepareQuery(d->mClearTracksTable, clearTracksTableText); | ||
2508 | 2816 | | |||
2509 | if (!result) { | 2817 | if (!result) { | ||
2510 | qDebug() << "DatabaseInterface::initRequest" << d->mClearTracksTable.lastQuery(); | 2818 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearTracksTable.lastQuery(); | ||
2511 | qDebug() << "DatabaseInterface::initRequest" << d->mClearTracksTable.lastError(); | 2819 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mClearTracksTable.lastError(); | ||
2512 | 2820 | | |||
2513 | Q_EMIT databaseError(); | 2821 | Q_EMIT databaseError(); | ||
2514 | } | 2822 | } | ||
2515 | } | 2823 | } | ||
2516 | 2824 | | |||
2517 | { | 2825 | { | ||
2518 | auto selectAllTracksShortText = QStringLiteral("SELECT " | 2826 | auto selectAllTracksShortText = QStringLiteral("SELECT " | ||
2519 | "tracks.`ID`, " | 2827 | "tracks.`ID`, " | ||
Show All 14 Lines | |||||
2534 | "tracks.`AlbumTitle` = album.`Title` AND " | 2842 | "tracks.`AlbumTitle` = album.`Title` AND " | ||
2535 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | 2843 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | ||
2536 | "tracks.`AlbumPath` = album.`AlbumPath` " | 2844 | "tracks.`AlbumPath` = album.`AlbumPath` " | ||
2537 | ""); | 2845 | ""); | ||
2538 | 2846 | | |||
2539 | auto result = prepareQuery(d->mSelectAllTracksShortQuery, selectAllTracksShortText); | 2847 | auto result = prepareQuery(d->mSelectAllTracksShortQuery, selectAllTracksShortText); | ||
2540 | 2848 | | |||
2541 | if (!result) { | 2849 | if (!result) { | ||
2542 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllTracksShortQuery.lastQuery(); | 2850 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllTracksShortQuery.lastQuery(); | ||
2543 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllTracksShortQuery.lastError(); | 2851 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllTracksShortQuery.lastError(); | ||
2544 | 2852 | | |||
2545 | Q_EMIT databaseError(); | 2853 | Q_EMIT databaseError(); | ||
2546 | } | 2854 | } | ||
2547 | } | 2855 | } | ||
2548 | 2856 | | |||
2549 | { | 2857 | { | ||
2550 | auto selectArtistByNameText = QStringLiteral("SELECT `ID`, " | 2858 | auto selectArtistByNameText = QStringLiteral("SELECT `ID`, " | ||
2551 | "`Name` " | 2859 | "`Name` " | ||
2552 | "FROM `Artists` " | 2860 | "FROM `Artists` " | ||
2553 | "WHERE " | 2861 | "WHERE " | ||
2554 | "`Name` = :name"); | 2862 | "`Name` = :name"); | ||
2555 | 2863 | | |||
2556 | auto result = prepareQuery(d->mSelectArtistByNameQuery, selectArtistByNameText); | 2864 | auto result = prepareQuery(d->mSelectArtistByNameQuery, selectArtistByNameText); | ||
2557 | 2865 | | |||
2558 | if (!result) { | 2866 | if (!result) { | ||
2559 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectArtistByNameQuery.lastQuery(); | 2867 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectArtistByNameQuery.lastQuery(); | ||
2560 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectArtistByNameQuery.lastError(); | 2868 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectArtistByNameQuery.lastError(); | ||
2561 | 2869 | | |||
2562 | Q_EMIT databaseError(); | 2870 | Q_EMIT databaseError(); | ||
2563 | } | 2871 | } | ||
2564 | } | 2872 | } | ||
2565 | 2873 | | |||
2566 | { | 2874 | { | ||
2567 | auto selectComposerByNameText = QStringLiteral("SELECT `ID`, " | 2875 | auto selectComposerByNameText = QStringLiteral("SELECT `ID`, " | ||
2568 | "`Name` " | 2876 | "`Name` " | ||
2569 | "FROM `Composer` " | 2877 | "FROM `Composer` " | ||
2570 | "WHERE " | 2878 | "WHERE " | ||
2571 | "`Name` = :name"); | 2879 | "`Name` = :name"); | ||
2572 | 2880 | | |||
2573 | auto result = prepareQuery(d->mSelectComposerByNameQuery, selectComposerByNameText); | 2881 | auto result = prepareQuery(d->mSelectComposerByNameQuery, selectComposerByNameText); | ||
2574 | 2882 | | |||
2575 | if (!result) { | 2883 | if (!result) { | ||
2576 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectComposerByNameQuery.lastQuery(); | 2884 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectComposerByNameQuery.lastQuery(); | ||
2577 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectComposerByNameQuery.lastError(); | 2885 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectComposerByNameQuery.lastError(); | ||
2578 | } | 2886 | } | ||
2579 | } | 2887 | } | ||
2580 | 2888 | | |||
2581 | { | 2889 | { | ||
2582 | auto selectLyricistByNameText = QStringLiteral("SELECT `ID`, " | 2890 | auto selectLyricistByNameText = QStringLiteral("SELECT `ID`, " | ||
2583 | "`Name` " | 2891 | "`Name` " | ||
2584 | "FROM `Lyricist` " | 2892 | "FROM `Lyricist` " | ||
2585 | "WHERE " | 2893 | "WHERE " | ||
2586 | "`Name` = :name"); | 2894 | "`Name` = :name"); | ||
2587 | 2895 | | |||
2588 | auto result = prepareQuery(d->mSelectLyricistByNameQuery, selectLyricistByNameText); | 2896 | auto result = prepareQuery(d->mSelectLyricistByNameQuery, selectLyricistByNameText); | ||
2589 | 2897 | | |||
2590 | if (!result) { | 2898 | if (!result) { | ||
2591 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectLyricistByNameQuery.lastQuery(); | 2899 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectLyricistByNameQuery.lastQuery(); | ||
2592 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectLyricistByNameQuery.lastError(); | 2900 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectLyricistByNameQuery.lastError(); | ||
2593 | } | 2901 | } | ||
2594 | } | 2902 | } | ||
2595 | 2903 | | |||
2596 | { | 2904 | { | ||
2597 | auto selectGenreByNameText = QStringLiteral("SELECT `ID`, " | 2905 | auto selectGenreByNameText = QStringLiteral("SELECT `ID`, " | ||
2598 | "`Name` " | 2906 | "`Name` " | ||
2599 | "FROM `Genre` " | 2907 | "FROM `Genre` " | ||
2600 | "WHERE " | 2908 | "WHERE " | ||
2601 | "`Name` = :name"); | 2909 | "`Name` = :name"); | ||
2602 | 2910 | | |||
2603 | auto result = prepareQuery(d->mSelectGenreByNameQuery, selectGenreByNameText); | 2911 | auto result = prepareQuery(d->mSelectGenreByNameQuery, selectGenreByNameText); | ||
2604 | 2912 | | |||
2605 | if (!result) { | 2913 | if (!result) { | ||
2606 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreByNameQuery.lastQuery(); | 2914 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreByNameQuery.lastQuery(); | ||
2607 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreByNameQuery.lastError(); | 2915 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreByNameQuery.lastError(); | ||
2608 | 2916 | | |||
2609 | Q_EMIT databaseError(); | 2917 | Q_EMIT databaseError(); | ||
2610 | } | 2918 | } | ||
2611 | } | 2919 | } | ||
2612 | 2920 | | |||
2613 | { | 2921 | { | ||
2614 | auto insertArtistsText = QStringLiteral("INSERT INTO `Artists` (`ID`, `Name`) " | 2922 | auto insertArtistsText = QStringLiteral("INSERT INTO `Artists` (`ID`, `Name`) " | ||
2615 | "VALUES (:artistId, :name)"); | 2923 | "VALUES (:artistId, :name)"); | ||
2616 | 2924 | | |||
2617 | auto result = prepareQuery(d->mInsertArtistsQuery, insertArtistsText); | 2925 | auto result = prepareQuery(d->mInsertArtistsQuery, insertArtistsText); | ||
2618 | 2926 | | |||
2619 | if (!result) { | 2927 | if (!result) { | ||
2620 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertArtistsQuery.lastQuery(); | 2928 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertArtistsQuery.lastQuery(); | ||
2621 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertArtistsQuery.lastError(); | 2929 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertArtistsQuery.lastError(); | ||
2622 | 2930 | | |||
2623 | Q_EMIT databaseError(); | 2931 | Q_EMIT databaseError(); | ||
2624 | } | 2932 | } | ||
2625 | } | 2933 | } | ||
2626 | 2934 | | |||
2627 | { | 2935 | { | ||
2628 | auto insertGenreText = QStringLiteral("INSERT INTO `Genre` (`ID`, `Name`) " | 2936 | auto insertGenreText = QStringLiteral("INSERT INTO `Genre` (`ID`, `Name`) " | ||
2629 | "VALUES (:genreId, :name)"); | 2937 | "VALUES (:genreId, :name)"); | ||
2630 | 2938 | | |||
2631 | auto result = prepareQuery(d->mInsertGenreQuery, insertGenreText); | 2939 | auto result = prepareQuery(d->mInsertGenreQuery, insertGenreText); | ||
2632 | 2940 | | |||
2633 | if (!result) { | 2941 | if (!result) { | ||
2634 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertGenreQuery.lastQuery(); | 2942 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertGenreQuery.lastQuery(); | ||
2635 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertGenreQuery.lastError(); | 2943 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertGenreQuery.lastError(); | ||
2636 | 2944 | | |||
2637 | Q_EMIT databaseError(); | 2945 | Q_EMIT databaseError(); | ||
2638 | } | 2946 | } | ||
2639 | } | 2947 | } | ||
2640 | 2948 | | |||
2641 | { | 2949 | { | ||
2642 | auto insertComposerText = QStringLiteral("INSERT INTO `Composer` (`ID`, `Name`) " | 2950 | auto insertComposerText = QStringLiteral("INSERT INTO `Composer` (`ID`, `Name`) " | ||
2643 | "VALUES (:composerId, :name)"); | 2951 | "VALUES (:composerId, :name)"); | ||
2644 | 2952 | | |||
2645 | auto result = prepareQuery(d->mInsertComposerQuery, insertComposerText); | 2953 | auto result = prepareQuery(d->mInsertComposerQuery, insertComposerText); | ||
2646 | 2954 | | |||
2647 | if (!result) { | 2955 | if (!result) { | ||
2648 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertComposerQuery.lastQuery(); | 2956 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertComposerQuery.lastQuery(); | ||
2649 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertComposerQuery.lastError(); | 2957 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertComposerQuery.lastError(); | ||
2650 | } | 2958 | } | ||
2651 | } | 2959 | } | ||
2652 | 2960 | | |||
2653 | { | 2961 | { | ||
2654 | auto insertLyricistText = QStringLiteral("INSERT INTO `Lyricist` (`ID`, `Name`) " | 2962 | auto insertLyricistText = QStringLiteral("INSERT INTO `Lyricist` (`ID`, `Name`) " | ||
2655 | "VALUES (:lyricistId, :name)"); | 2963 | "VALUES (:lyricistId, :name)"); | ||
2656 | 2964 | | |||
2657 | auto result = prepareQuery(d->mInsertLyricistQuery, insertLyricistText); | 2965 | auto result = prepareQuery(d->mInsertLyricistQuery, insertLyricistText); | ||
2658 | 2966 | | |||
2659 | if (!result) { | 2967 | if (!result) { | ||
2660 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertLyricistQuery.lastQuery(); | 2968 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertLyricistQuery.lastQuery(); | ||
2661 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertLyricistQuery.lastError(); | 2969 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertLyricistQuery.lastError(); | ||
2662 | } | 2970 | } | ||
2663 | } | 2971 | } | ||
2664 | 2972 | | |||
2665 | { | 2973 | { | ||
2666 | auto selectTrackQueryText = QStringLiteral("SELECT " | 2974 | auto selectTrackQueryText = QStringLiteral("SELECT " | ||
2667 | "tracks.`ID`, " | 2975 | "tracks.`ID`, " | ||
2668 | "tracks.`Title`, " | 2976 | "tracks.`Title`, " | ||
2669 | "album.`ID`, " | 2977 | "album.`ID`, " | ||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | |||||
2734 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 3042 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
2735 | ")" | 3043 | ")" | ||
2736 | "ORDER BY tracks.`DiscNumber` ASC, " | 3044 | "ORDER BY tracks.`DiscNumber` ASC, " | ||
2737 | "tracks.`TrackNumber` ASC"); | 3045 | "tracks.`TrackNumber` ASC"); | ||
2738 | 3046 | | |||
2739 | auto result = prepareQuery(d->mSelectTrackQuery, selectTrackQueryText); | 3047 | auto result = prepareQuery(d->mSelectTrackQuery, selectTrackQueryText); | ||
2740 | 3048 | | |||
2741 | if (!result) { | 3049 | if (!result) { | ||
2742 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackQuery.lastQuery(); | 3050 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackQuery.lastQuery(); | ||
2743 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackQuery.lastError(); | 3051 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackQuery.lastError(); | ||
2744 | 3052 | | |||
2745 | Q_EMIT databaseError(); | 3053 | Q_EMIT databaseError(); | ||
2746 | } | 3054 | } | ||
2747 | } | 3055 | } | ||
3056 | | ||||
3057 | { | ||||
3058 | auto selectTrackQueryText = QStringLiteral("SELECT " | ||||
3059 | "tracks.`ID` " | ||||
3060 | "FROM " | ||||
3061 | "`Tracks` tracks, " | ||||
3062 | "`TracksData` tracksMapping " | ||||
3063 | "LEFT JOIN " | ||||
3064 | "`Albums` album " | ||||
3065 | "ON " | ||||
3066 | "album.`ID` = :albumId AND " | ||||
3067 | "tracks.`AlbumTitle` = album.`Title` AND " | ||||
3068 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | ||||
3069 | "tracks.`AlbumPath` = album.`AlbumPath` " | ||||
3070 | "WHERE " | ||||
3071 | "tracksMapping.`FileName` = tracks.`FileName` AND " | ||||
3072 | "album.`ID` = :albumId AND " | ||||
3073 | "tracks.`Priority` = (" | ||||
3074 | " SELECT " | ||||
3075 | " MIN(`Priority`) " | ||||
3076 | " FROM " | ||||
3077 | " `Tracks` tracks2 " | ||||
3078 | " WHERE " | ||||
3079 | " tracks.`Title` = tracks2.`Title` AND " | ||||
3080 | " (tracks.`ArtistName` IS NULL OR tracks.`ArtistName` = tracks2.`ArtistName`) AND " | ||||
3081 | " (tracks.`AlbumTitle` IS NULL OR tracks.`AlbumTitle` = tracks2.`AlbumTitle`) AND " | ||||
3082 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | ||||
3083 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||||
3084 | ")" | ||||
3085 | "ORDER BY tracks.`DiscNumber` ASC, " | ||||
3086 | "tracks.`TrackNumber` ASC"); | ||||
3087 | | ||||
3088 | auto result = prepareQuery(d->mSelectTrackIdQuery, selectTrackQueryText); | ||||
3089 | | ||||
3090 | if (!result) { | ||||
3091 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdQuery.lastQuery(); | ||||
3092 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdQuery.lastError(); | ||||
3093 | | ||||
3094 | Q_EMIT databaseError(); | ||||
3095 | } | ||||
3096 | } | ||||
3097 | | ||||
2748 | { | 3098 | { | ||
2749 | auto selectTrackFromIdQueryText = QStringLiteral("SELECT " | 3099 | auto selectTrackFromIdQueryText = QStringLiteral("SELECT " | ||
2750 | "tracks.`Id`, " | 3100 | "tracks.`Id`, " | ||
2751 | "tracks.`Title`, " | 3101 | "tracks.`Title`, " | ||
2752 | "album.`ID`, " | 3102 | "album.`ID`, " | ||
2753 | "tracks.`ArtistName`, " | 3103 | "tracks.`ArtistName`, " | ||
2754 | "tracks.`AlbumArtistName`, " | 3104 | "tracks.`AlbumArtistName`, " | ||
2755 | "tracksMapping.`FileName`, " | 3105 | "tracksMapping.`FileName`, " | ||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Line(s) | |||||
2815 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | 3165 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | ||
2816 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 3166 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
2817 | ")" | 3167 | ")" | ||
2818 | ""); | 3168 | ""); | ||
2819 | 3169 | | |||
2820 | auto result = prepareQuery(d->mSelectTrackFromIdQuery, selectTrackFromIdQueryText); | 3170 | auto result = prepareQuery(d->mSelectTrackFromIdQuery, selectTrackFromIdQueryText); | ||
2821 | 3171 | | |||
2822 | if (!result) { | 3172 | if (!result) { | ||
2823 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackFromIdQuery.lastQuery(); | 3173 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackFromIdQuery.lastQuery(); | ||
2824 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackFromIdQuery.lastError(); | 3174 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackFromIdQuery.lastError(); | ||
2825 | 3175 | | |||
2826 | Q_EMIT databaseError(); | 3176 | Q_EMIT databaseError(); | ||
2827 | } | 3177 | } | ||
2828 | } | 3178 | } | ||
2829 | { | 3179 | { | ||
2830 | auto selectCountAlbumsQueryText = QStringLiteral("SELECT count(*) " | 3180 | auto selectCountAlbumsQueryText = QStringLiteral("SELECT count(*) " | ||
2831 | "FROM `Albums` album " | 3181 | "FROM `Albums` album " | ||
2832 | "WHERE album.`ArtistName` = :artistName "); | 3182 | "WHERE album.`ArtistName` = :artistName "); | ||
2833 | 3183 | | |||
2834 | const auto result = prepareQuery(d->mSelectCountAlbumsForArtistQuery, selectCountAlbumsQueryText); | 3184 | const auto result = prepareQuery(d->mSelectCountAlbumsForArtistQuery, selectCountAlbumsQueryText); | ||
2835 | 3185 | | |||
2836 | if (!result) { | 3186 | if (!result) { | ||
2837 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForArtistQuery.lastQuery(); | 3187 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForArtistQuery.lastQuery(); | ||
2838 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForArtistQuery.lastError(); | 3188 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForArtistQuery.lastError(); | ||
2839 | 3189 | | |||
2840 | Q_EMIT databaseError(); | 3190 | Q_EMIT databaseError(); | ||
2841 | } | 3191 | } | ||
2842 | } | 3192 | } | ||
2843 | 3193 | | |||
2844 | { | 3194 | { | ||
2845 | auto selectGenreForArtistQueryText = QStringLiteral("SELECT DISTINCT trackGenre.`Name` " | 3195 | auto selectGenreForArtistQueryText = QStringLiteral("SELECT DISTINCT trackGenre.`Name` " | ||
2846 | "FROM " | 3196 | "FROM " | ||
2847 | "`Tracks` tracks " | 3197 | "`Tracks` tracks " | ||
2848 | "LEFT JOIN " | 3198 | "LEFT JOIN " | ||
2849 | "`Albums` album " | 3199 | "`Albums` album " | ||
2850 | "ON " | 3200 | "ON " | ||
2851 | "tracks.`AlbumTitle` = album.`Title` AND " | 3201 | "tracks.`AlbumTitle` = album.`Title` AND " | ||
2852 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | 3202 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | ||
2853 | "tracks.`AlbumPath` = album.`AlbumPath` " | 3203 | "tracks.`AlbumPath` = album.`AlbumPath` " | ||
2854 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = tracks.`Genre` " | 3204 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = tracks.`Genre` " | ||
2855 | "WHERE " | 3205 | "WHERE " | ||
2856 | "album.`ArtistName` = :artistName"); | 3206 | "album.`ArtistName` = :artistName"); | ||
2857 | 3207 | | |||
2858 | const auto result = prepareQuery(d->mSelectGenreForArtistQuery, selectGenreForArtistQueryText); | 3208 | const auto result = prepareQuery(d->mSelectGenreForArtistQuery, selectGenreForArtistQueryText); | ||
2859 | 3209 | | |||
2860 | if (!result) { | 3210 | if (!result) { | ||
2861 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreForArtistQuery.lastQuery(); | 3211 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreForArtistQuery.lastQuery(); | ||
2862 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreForArtistQuery.lastError(); | 3212 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreForArtistQuery.lastError(); | ||
2863 | 3213 | | |||
2864 | Q_EMIT databaseError(); | 3214 | Q_EMIT databaseError(); | ||
2865 | } | 3215 | } | ||
2866 | } | 3216 | } | ||
2867 | 3217 | | |||
2868 | { | 3218 | { | ||
2869 | auto selectGenreForAlbumQueryText = QStringLiteral("SELECT DISTINCT trackGenre.`Name` " | 3219 | auto selectGenreForAlbumQueryText = QStringLiteral("SELECT DISTINCT trackGenre.`Name` " | ||
2870 | "FROM " | 3220 | "FROM " | ||
2871 | "`Tracks` tracks " | 3221 | "`Tracks` tracks " | ||
2872 | "LEFT JOIN " | 3222 | "LEFT JOIN " | ||
2873 | "`Albums` album " | 3223 | "`Albums` album " | ||
2874 | "ON " | 3224 | "ON " | ||
2875 | "tracks.`AlbumTitle` = album.`Title` AND " | 3225 | "tracks.`AlbumTitle` = album.`Title` AND " | ||
2876 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | 3226 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | ||
2877 | "tracks.`AlbumPath` = album.`AlbumPath` " | 3227 | "tracks.`AlbumPath` = album.`AlbumPath` " | ||
2878 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = tracks.`Genre` " | 3228 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = tracks.`Genre` " | ||
2879 | "WHERE " | 3229 | "WHERE " | ||
2880 | "album.`ID` = :albumId"); | 3230 | "album.`ID` = :albumId"); | ||
2881 | 3231 | | |||
2882 | const auto result = prepareQuery(d->mSelectGenreForAlbumQuery, selectGenreForAlbumQueryText); | 3232 | const auto result = prepareQuery(d->mSelectGenreForAlbumQuery, selectGenreForAlbumQueryText); | ||
2883 | 3233 | | |||
2884 | if (!result) { | 3234 | if (!result) { | ||
2885 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreForAlbumQuery.lastQuery(); | 3235 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreForAlbumQuery.lastQuery(); | ||
2886 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreForAlbumQuery.lastError(); | 3236 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreForAlbumQuery.lastError(); | ||
2887 | 3237 | | |||
2888 | Q_EMIT databaseError(); | 3238 | Q_EMIT databaseError(); | ||
2889 | } | 3239 | } | ||
2890 | } | 3240 | } | ||
2891 | 3241 | | |||
2892 | { | 3242 | { | ||
2893 | auto selectCountAlbumsQueryText = QStringLiteral("SELECT distinct count(album.`ID`) " | 3243 | auto selectCountAlbumsQueryText = QStringLiteral("SELECT distinct count(album.`ID`) " | ||
2894 | "FROM " | 3244 | "FROM " | ||
2895 | "`Tracks` tracks, " | 3245 | "`Tracks` tracks, " | ||
2896 | "`Albums` album " | 3246 | "`Albums` album " | ||
2897 | "LEFT JOIN `Composer` albumComposer ON albumComposer.`Name` = tracks.`Composer` " | 3247 | "LEFT JOIN `Composer` albumComposer ON albumComposer.`Name` = tracks.`Composer` " | ||
2898 | "WHERE " | 3248 | "WHERE " | ||
2899 | "(tracks.`AlbumTitle` = album.`Title` OR tracks.`AlbumTitle` IS NULL ) AND " | 3249 | "(tracks.`AlbumTitle` = album.`Title` OR tracks.`AlbumTitle` IS NULL ) AND " | ||
2900 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | 3250 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | ||
2901 | "(tracks.`AlbumPath` = album.`AlbumPath` OR tracks.`AlbumPath` IS NULL ) AND " | 3251 | "(tracks.`AlbumPath` = album.`AlbumPath` OR tracks.`AlbumPath` IS NULL ) AND " | ||
2902 | "albumComposer.`Name` = :artistName"); | 3252 | "albumComposer.`Name` = :artistName"); | ||
2903 | 3253 | | |||
2904 | const auto result = prepareQuery(d->mSelectCountAlbumsForComposerQuery, selectCountAlbumsQueryText); | 3254 | const auto result = prepareQuery(d->mSelectCountAlbumsForComposerQuery, selectCountAlbumsQueryText); | ||
2905 | 3255 | | |||
2906 | if (!result) { | 3256 | if (!result) { | ||
2907 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForComposerQuery.lastQuery(); | 3257 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForComposerQuery.lastQuery(); | ||
2908 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForComposerQuery.lastError(); | 3258 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForComposerQuery.lastError(); | ||
2909 | 3259 | | |||
2910 | Q_EMIT databaseError(); | 3260 | Q_EMIT databaseError(); | ||
2911 | } | 3261 | } | ||
2912 | } | 3262 | } | ||
2913 | 3263 | | |||
2914 | { | 3264 | { | ||
2915 | auto selectCountAlbumsQueryText = QStringLiteral("SELECT distinct count(album.`ID`) " | 3265 | auto selectCountAlbumsQueryText = QStringLiteral("SELECT distinct count(album.`ID`) " | ||
2916 | "FROM " | 3266 | "FROM " | ||
2917 | "`Tracks` tracks, " | 3267 | "`Tracks` tracks, " | ||
2918 | "`Albums` album " | 3268 | "`Albums` album " | ||
2919 | "LEFT JOIN `Lyricist` albumLyricist ON albumLyricist.`Name` = tracks.`Lyricist` " | 3269 | "LEFT JOIN `Lyricist` albumLyricist ON albumLyricist.`Name` = tracks.`Lyricist` " | ||
2920 | "WHERE " | 3270 | "WHERE " | ||
2921 | "(tracks.`AlbumTitle` = album.`Title` OR tracks.`AlbumTitle` IS NULL ) AND " | 3271 | "(tracks.`AlbumTitle` = album.`Title` OR tracks.`AlbumTitle` IS NULL ) AND " | ||
2922 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | 3272 | "(tracks.`AlbumArtistName` = album.`ArtistName` OR tracks.`AlbumArtistName` IS NULL ) AND " | ||
2923 | "(tracks.`AlbumPath` = album.`AlbumPath` OR tracks.`AlbumPath` IS NULL ) AND " | 3273 | "(tracks.`AlbumPath` = album.`AlbumPath` OR tracks.`AlbumPath` IS NULL ) AND " | ||
2924 | "albumLyricist.`Name` = :artistName"); | 3274 | "albumLyricist.`Name` = :artistName"); | ||
2925 | 3275 | | |||
2926 | const auto result = prepareQuery(d->mSelectCountAlbumsForLyricistQuery, selectCountAlbumsQueryText); | 3276 | const auto result = prepareQuery(d->mSelectCountAlbumsForLyricistQuery, selectCountAlbumsQueryText); | ||
2927 | 3277 | | |||
2928 | if (!result) { | 3278 | if (!result) { | ||
2929 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForLyricistQuery.lastQuery(); | 3279 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForLyricistQuery.lastQuery(); | ||
2930 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForLyricistQuery.lastError(); | 3280 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectCountAlbumsForLyricistQuery.lastError(); | ||
2931 | 3281 | | |||
2932 | Q_EMIT databaseError(); | 3282 | Q_EMIT databaseError(); | ||
2933 | } | 3283 | } | ||
2934 | } | 3284 | } | ||
2935 | 3285 | | |||
2936 | { | 3286 | { | ||
2937 | auto selectAlbumIdFromTitleQueryText = QStringLiteral("SELECT " | 3287 | auto selectAlbumIdFromTitleQueryText = QStringLiteral("SELECT " | ||
2938 | "album.`ID` " | 3288 | "album.`ID` " | ||
2939 | "FROM " | 3289 | "FROM " | ||
2940 | "`Albums` album " | 3290 | "`Albums` album " | ||
2941 | "WHERE " | 3291 | "WHERE " | ||
2942 | "album.`ArtistName` = :artistName AND " | 3292 | "album.`ArtistName` = :artistName AND " | ||
2943 | "album.`Title` = :title"); | 3293 | "album.`Title` = :title"); | ||
2944 | 3294 | | |||
2945 | auto result = prepareQuery(d->mSelectAlbumIdFromTitleQuery, selectAlbumIdFromTitleQueryText); | 3295 | auto result = prepareQuery(d->mSelectAlbumIdFromTitleQuery, selectAlbumIdFromTitleQueryText); | ||
2946 | 3296 | | |||
2947 | if (!result) { | 3297 | if (!result) { | ||
2948 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleQuery.lastQuery(); | 3298 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleQuery.lastQuery(); | ||
2949 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleQuery.lastError(); | 3299 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleQuery.lastError(); | ||
2950 | 3300 | | |||
2951 | Q_EMIT databaseError(); | 3301 | Q_EMIT databaseError(); | ||
2952 | } | 3302 | } | ||
2953 | } | 3303 | } | ||
2954 | 3304 | | |||
2955 | { | 3305 | { | ||
2956 | auto selectAlbumIdFromTitleAndArtistQueryText = QStringLiteral("SELECT " | 3306 | auto selectAlbumIdFromTitleAndArtistQueryText = QStringLiteral("SELECT " | ||
2957 | "album.`ID` " | 3307 | "album.`ID` " | ||
2958 | "FROM " | 3308 | "FROM " | ||
2959 | "`Albums` album " | 3309 | "`Albums` album " | ||
2960 | "WHERE " | 3310 | "WHERE " | ||
2961 | "album.`ArtistName` = :artistName AND " | 3311 | "album.`ArtistName` = :artistName AND " | ||
2962 | "album.`Title` = :title AND " | 3312 | "album.`Title` = :title AND " | ||
2963 | "album.`AlbumPath` = :albumPath"); | 3313 | "album.`AlbumPath` = :albumPath"); | ||
2964 | 3314 | | |||
2965 | auto result = prepareQuery(d->mSelectAlbumIdFromTitleAndArtistQuery, selectAlbumIdFromTitleAndArtistQueryText); | 3315 | auto result = prepareQuery(d->mSelectAlbumIdFromTitleAndArtistQuery, selectAlbumIdFromTitleAndArtistQueryText); | ||
2966 | 3316 | | |||
2967 | if (!result) { | 3317 | if (!result) { | ||
2968 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastQuery(); | 3318 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastQuery(); | ||
2969 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastError(); | 3319 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastError(); | ||
2970 | 3320 | | |||
2971 | Q_EMIT databaseError(); | 3321 | Q_EMIT databaseError(); | ||
2972 | } | 3322 | } | ||
2973 | } | 3323 | } | ||
2974 | 3324 | | |||
2975 | { | 3325 | { | ||
2976 | auto selectAlbumIdFromTitleWithoutArtistQueryText = QStringLiteral("SELECT " | 3326 | auto selectAlbumIdFromTitleWithoutArtistQueryText = QStringLiteral("SELECT " | ||
2977 | "album.`ID` " | 3327 | "album.`ID` " | ||
2978 | "FROM " | 3328 | "FROM " | ||
2979 | "`Albums` album " | 3329 | "`Albums` album " | ||
2980 | "WHERE " | 3330 | "WHERE " | ||
2981 | "album.`AlbumPath` = :albumPath AND " | 3331 | "album.`AlbumPath` = :albumPath AND " | ||
2982 | "album.`Title` = :title AND " | 3332 | "album.`Title` = :title AND " | ||
2983 | "album.`ArtistName` IS NULL"); | 3333 | "album.`ArtistName` IS NULL"); | ||
2984 | 3334 | | |||
2985 | auto result = prepareQuery(d->mSelectAlbumIdFromTitleWithoutArtistQuery, selectAlbumIdFromTitleWithoutArtistQueryText); | 3335 | auto result = prepareQuery(d->mSelectAlbumIdFromTitleWithoutArtistQuery, selectAlbumIdFromTitleWithoutArtistQueryText); | ||
2986 | 3336 | | |||
2987 | if (!result) { | 3337 | if (!result) { | ||
2988 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastQuery(); | 3338 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastQuery(); | ||
2989 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastError(); | 3339 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastError(); | ||
2990 | 3340 | | |||
2991 | Q_EMIT databaseError(); | 3341 | Q_EMIT databaseError(); | ||
2992 | } | 3342 | } | ||
2993 | } | 3343 | } | ||
2994 | 3344 | | |||
2995 | { | 3345 | { | ||
2996 | auto insertAlbumQueryText = QStringLiteral("INSERT INTO `Albums` " | 3346 | auto insertAlbumQueryText = QStringLiteral("INSERT INTO `Albums` " | ||
2997 | "(`ID`, " | 3347 | "(`ID`, " | ||
2998 | "`Title`, " | 3348 | "`Title`, " | ||
2999 | "`ArtistName`, " | 3349 | "`ArtistName`, " | ||
3000 | "`AlbumPath`, " | 3350 | "`AlbumPath`, " | ||
3001 | "`CoverFileName`) " | 3351 | "`CoverFileName`) " | ||
3002 | "VALUES " | 3352 | "VALUES " | ||
3003 | "(:albumId, " | 3353 | "(:albumId, " | ||
3004 | ":title, " | 3354 | ":title, " | ||
3005 | ":albumArtist, " | 3355 | ":albumArtist, " | ||
3006 | ":albumPath, " | 3356 | ":albumPath, " | ||
3007 | ":coverFileName)"); | 3357 | ":coverFileName)"); | ||
3008 | 3358 | | |||
3009 | auto result = prepareQuery(d->mInsertAlbumQuery, insertAlbumQueryText); | 3359 | auto result = prepareQuery(d->mInsertAlbumQuery, insertAlbumQueryText); | ||
3010 | 3360 | | |||
3011 | if (!result) { | 3361 | if (!result) { | ||
3012 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertAlbumQuery.lastQuery(); | 3362 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertAlbumQuery.lastQuery(); | ||
3013 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertAlbumQuery.lastError(); | 3363 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertAlbumQuery.lastError(); | ||
3014 | 3364 | | |||
3015 | Q_EMIT databaseError(); | 3365 | Q_EMIT databaseError(); | ||
3016 | } | 3366 | } | ||
3017 | } | 3367 | } | ||
3018 | 3368 | | |||
3019 | { | 3369 | { | ||
3020 | auto insertTrackMappingQueryText = QStringLiteral("INSERT INTO " | 3370 | auto insertTrackMappingQueryText = QStringLiteral("INSERT INTO " | ||
3021 | "`TracksData` " | 3371 | "`TracksData` " | ||
3022 | "(`FileName`, " | 3372 | "(`FileName`, " | ||
3023 | "`DiscoverID`, " | | |||
3024 | "`FileModifiedTime`, " | 3373 | "`FileModifiedTime`, " | ||
3025 | "`ImportDate`, " | 3374 | "`ImportDate`, " | ||
3026 | "`PlayCounter`) " | 3375 | "`PlayCounter`) " | ||
3027 | "VALUES (:fileName, :discoverId, :mtime, :importDate, 0)"); | 3376 | "VALUES (:fileName, :mtime, :importDate, 0)"); | ||
3028 | 3377 | | |||
3029 | auto result = prepareQuery(d->mInsertTrackMapping, insertTrackMappingQueryText); | 3378 | auto result = prepareQuery(d->mInsertTrackMapping, insertTrackMappingQueryText); | ||
3030 | 3379 | | |||
3031 | if (!result) { | 3380 | if (!result) { | ||
3032 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertTrackMapping.lastQuery(); | 3381 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertTrackMapping.lastQuery(); | ||
3033 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertTrackMapping.lastError(); | 3382 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertTrackMapping.lastError(); | ||
3034 | 3383 | | |||
3035 | Q_EMIT databaseError(); | 3384 | Q_EMIT databaseError(); | ||
3036 | } | 3385 | } | ||
3037 | } | 3386 | } | ||
3038 | 3387 | | |||
3039 | { | 3388 | { | ||
3040 | auto initialUpdateTracksValidityQueryText = QStringLiteral("UPDATE `TracksData` " | 3389 | auto initialUpdateTracksValidityQueryText = QStringLiteral("UPDATE `TracksData` " | ||
3041 | "SET " | 3390 | "SET " | ||
3042 | "`FileModifiedTime` = :mtime " | 3391 | "`FileModifiedTime` = :mtime " | ||
3043 | "WHERE `FileName` = :fileName"); | 3392 | "WHERE `FileName` = :fileName"); | ||
3044 | 3393 | | |||
3045 | auto result = prepareQuery(d->mUpdateTrackFileModifiedTime, initialUpdateTracksValidityQueryText); | 3394 | auto result = prepareQuery(d->mUpdateTrackFileModifiedTime, initialUpdateTracksValidityQueryText); | ||
3046 | 3395 | | |||
3047 | if (!result) { | 3396 | if (!result) { | ||
3048 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackFileModifiedTime.lastQuery(); | 3397 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackFileModifiedTime.lastQuery(); | ||
3049 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackFileModifiedTime.lastError(); | 3398 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackFileModifiedTime.lastError(); | ||
3050 | 3399 | | |||
3051 | Q_EMIT databaseError(); | 3400 | Q_EMIT databaseError(); | ||
3052 | } | 3401 | } | ||
3053 | } | 3402 | } | ||
3054 | 3403 | | |||
3055 | { | 3404 | { | ||
3056 | auto initialUpdateTracksValidityQueryText = QStringLiteral("UPDATE `Tracks` " | 3405 | auto initialUpdateTracksValidityQueryText = QStringLiteral("UPDATE `Tracks` " | ||
3057 | "SET " | 3406 | "SET " | ||
3058 | "`Priority` = :priority " | 3407 | "`Priority` = :priority " | ||
3059 | "WHERE `FileName` = :fileName"); | 3408 | "WHERE `FileName` = :fileName"); | ||
3060 | 3409 | | |||
3061 | auto result = prepareQuery(d->mUpdateTrackPriority, initialUpdateTracksValidityQueryText); | 3410 | auto result = prepareQuery(d->mUpdateTrackPriority, initialUpdateTracksValidityQueryText); | ||
3062 | 3411 | | |||
3063 | if (!result) { | 3412 | if (!result) { | ||
3064 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackPriority.lastQuery(); | 3413 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackPriority.lastQuery(); | ||
3065 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackPriority.lastError(); | 3414 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackPriority.lastError(); | ||
3066 | 3415 | | |||
3067 | Q_EMIT databaseError(); | 3416 | Q_EMIT databaseError(); | ||
3068 | } | 3417 | } | ||
3069 | } | 3418 | } | ||
3070 | 3419 | | |||
3071 | { | 3420 | { | ||
3072 | auto removeTracksMappingFromSourceQueryText = QStringLiteral("DELETE FROM `TracksData` " | 3421 | auto removeTracksMappingFromSourceQueryText = QStringLiteral("DELETE FROM `TracksData` " | ||
3073 | "WHERE `FileName` = :fileName AND `DiscoverID` = :sourceId"); | 3422 | "WHERE `FileName` = :fileName"); | ||
3074 | 3423 | | |||
3075 | auto result = prepareQuery(d->mRemoveTracksMappingFromSource, removeTracksMappingFromSourceQueryText); | 3424 | auto result = prepareQuery(d->mRemoveTracksMappingFromSource, removeTracksMappingFromSourceQueryText); | ||
3076 | 3425 | | |||
3077 | if (!result) { | 3426 | if (!result) { | ||
3078 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveTracksMappingFromSource.lastQuery(); | 3427 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveTracksMappingFromSource.lastQuery(); | ||
3079 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveTracksMappingFromSource.lastError(); | 3428 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveTracksMappingFromSource.lastError(); | ||
3080 | 3429 | | |||
3081 | Q_EMIT databaseError(); | 3430 | Q_EMIT databaseError(); | ||
3082 | } | 3431 | } | ||
3083 | } | 3432 | } | ||
3084 | 3433 | | |||
3085 | { | 3434 | { | ||
3086 | auto removeTracksMappingQueryText = QStringLiteral("DELETE FROM `TracksData` " | 3435 | auto removeTracksMappingQueryText = QStringLiteral("DELETE FROM `TracksData` " | ||
3087 | "WHERE `FileName` = :fileName"); | 3436 | "WHERE `FileName` = :fileName"); | ||
3088 | 3437 | | |||
3089 | auto result = prepareQuery(d->mRemoveTracksMapping, removeTracksMappingQueryText); | 3438 | auto result = prepareQuery(d->mRemoveTracksMapping, removeTracksMappingQueryText); | ||
3090 | 3439 | | |||
3091 | if (!result) { | 3440 | if (!result) { | ||
3092 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveTracksMapping.lastQuery(); | 3441 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveTracksMapping.lastQuery(); | ||
3093 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveTracksMapping.lastError(); | 3442 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveTracksMapping.lastError(); | ||
3094 | 3443 | | |||
3095 | Q_EMIT databaseError(); | 3444 | Q_EMIT databaseError(); | ||
3096 | } | 3445 | } | ||
3097 | } | 3446 | } | ||
3098 | 3447 | | |||
3099 | { | 3448 | { | ||
3100 | auto selectTracksWithoutMappingQueryText = QStringLiteral("SELECT " | 3449 | auto selectTracksWithoutMappingQueryText = QStringLiteral("SELECT " | ||
3101 | "tracks.`Id`, " | 3450 | "tracks.`Id`, " | ||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Line(s) | |||||
3153 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = tracks.`Genre` " | 3502 | "LEFT JOIN `Genre` trackGenre ON trackGenre.`Name` = tracks.`Genre` " | ||
3154 | "WHERE " | 3503 | "WHERE " | ||
3155 | "tracks.`FileName` = tracksMapping.`FileName` AND " | 3504 | "tracks.`FileName` = tracksMapping.`FileName` AND " | ||
3156 | "tracks.`FileName` NOT IN (SELECT tracksMapping2.`FileName` FROM `TracksData` tracksMapping2)"); | 3505 | "tracks.`FileName` NOT IN (SELECT tracksMapping2.`FileName` FROM `TracksData` tracksMapping2)"); | ||
3157 | 3506 | | |||
3158 | auto result = prepareQuery(d->mSelectTracksWithoutMappingQuery, selectTracksWithoutMappingQueryText); | 3507 | auto result = prepareQuery(d->mSelectTracksWithoutMappingQuery, selectTracksWithoutMappingQueryText); | ||
3159 | 3508 | | |||
3160 | if (!result) { | 3509 | if (!result) { | ||
3161 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksWithoutMappingQuery.lastQuery(); | 3510 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksWithoutMappingQuery.lastQuery(); | ||
3162 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksWithoutMappingQuery.lastError(); | 3511 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksWithoutMappingQuery.lastError(); | ||
3163 | 3512 | | |||
3164 | Q_EMIT databaseError(); | 3513 | Q_EMIT databaseError(); | ||
3165 | } | 3514 | } | ||
3166 | } | 3515 | } | ||
3167 | 3516 | | |||
3168 | { | 3517 | { | ||
3169 | auto selectTracksMappingQueryText = QStringLiteral("SELECT " | 3518 | auto selectTracksMappingQueryText = QStringLiteral("SELECT " | ||
3170 | "track.`ID`, " | 3519 | "track.`ID`, " | ||
3171 | "trackData.`FileName`, " | 3520 | "trackData.`FileName`, " | ||
3172 | "trackData.`DiscoverID`, " | | |||
3173 | "track.`Priority`, " | 3521 | "track.`Priority`, " | ||
3174 | "trackData.`FileModifiedTime` " | 3522 | "trackData.`FileModifiedTime` " | ||
3175 | "FROM " | 3523 | "FROM " | ||
3176 | "`TracksData` trackData " | 3524 | "`TracksData` trackData " | ||
3177 | "LEFT JOIN " | 3525 | "LEFT JOIN " | ||
3178 | "`Tracks` track " | 3526 | "`Tracks` track " | ||
3179 | "ON " | 3527 | "ON " | ||
3180 | "track.`FileName` = trackData.`FileName` " | 3528 | "track.`FileName` = trackData.`FileName` " | ||
3181 | "WHERE " | 3529 | "WHERE " | ||
3182 | "trackData.`FileName` = :fileName"); | 3530 | "trackData.`FileName` = :fileName"); | ||
3183 | 3531 | | |||
3184 | auto result = prepareQuery(d->mSelectTracksMapping, selectTracksMappingQueryText); | 3532 | auto result = prepareQuery(d->mSelectTracksMapping, selectTracksMappingQueryText); | ||
3185 | 3533 | | |||
3186 | if (!result) { | 3534 | if (!result) { | ||
3187 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksMapping.lastQuery(); | 3535 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksMapping.lastQuery(); | ||
3188 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksMapping.lastError(); | 3536 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksMapping.lastError(); | ||
3189 | 3537 | | |||
3190 | Q_EMIT databaseError(); | 3538 | Q_EMIT databaseError(); | ||
3191 | } | 3539 | } | ||
3192 | } | 3540 | } | ||
3193 | 3541 | | |||
3194 | { | 3542 | { | ||
3195 | auto selectTracksMappingPriorityQueryText = QStringLiteral("SELECT " | 3543 | auto selectTracksMappingPriorityQueryText = QStringLiteral("SELECT " | ||
3196 | "max(tracks.`Priority`) AS Priority " | 3544 | "max(tracks.`Priority`) AS Priority " | ||
3197 | "FROM " | 3545 | "FROM " | ||
3198 | "`Tracks` tracks, " | 3546 | "`Tracks` tracks, " | ||
3199 | "`Albums` albums " | 3547 | "`Albums` albums " | ||
3200 | "WHERE " | 3548 | "WHERE " | ||
3201 | "tracks.`Title` = :title AND " | 3549 | "tracks.`Title` = :title AND " | ||
3202 | "(tracks.`ArtistName` = :trackArtist OR tracks.`ArtistName` IS NULL) AND " | 3550 | "(tracks.`ArtistName` = :trackArtist OR tracks.`ArtistName` IS NULL) AND " | ||
3203 | "(tracks.`AlbumTitle` = :album OR tracks.`AlbumTitle` IS NULL) AND " | 3551 | "(tracks.`AlbumTitle` = :album OR tracks.`AlbumTitle` IS NULL) AND " | ||
3204 | "(tracks.`AlbumArtistName` = :albumArtist OR tracks.`AlbumArtistName` IS NULL) AND " | 3552 | "(tracks.`AlbumArtistName` = :albumArtist OR tracks.`AlbumArtistName` IS NULL) AND " | ||
3205 | "(tracks.`AlbumPath` = :albumPath OR tracks.`AlbumPath` IS NULL)"); | 3553 | "(tracks.`AlbumPath` = :albumPath OR tracks.`AlbumPath` IS NULL)"); | ||
3206 | 3554 | | |||
3207 | auto result = prepareQuery(d->mSelectTracksMappingPriority, selectTracksMappingPriorityQueryText); | 3555 | auto result = prepareQuery(d->mSelectTracksMappingPriority, selectTracksMappingPriorityQueryText); | ||
3208 | 3556 | | |||
3209 | if (!result) { | 3557 | if (!result) { | ||
3210 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriority.lastQuery(); | 3558 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriority.lastQuery(); | ||
3211 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriority.lastError(); | 3559 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriority.lastError(); | ||
3212 | 3560 | | |||
3213 | Q_EMIT databaseError(); | 3561 | Q_EMIT databaseError(); | ||
3214 | } | 3562 | } | ||
3215 | } | 3563 | } | ||
3216 | 3564 | | |||
3217 | { | 3565 | { | ||
3218 | auto selectTracksMappingPriorityQueryByTrackIdText = QStringLiteral("SELECT " | 3566 | auto selectTracksMappingPriorityQueryByTrackIdText = QStringLiteral("SELECT " | ||
3219 | "MAX(track.`Priority`) " | 3567 | "MAX(track.`Priority`) " | ||
3220 | "FROM " | 3568 | "FROM " | ||
3221 | "`TracksData` trackData, " | 3569 | "`TracksData` trackData, " | ||
3222 | "`Tracks` track " | 3570 | "`Tracks` track " | ||
3223 | "WHERE " | 3571 | "WHERE " | ||
3224 | "track.`ID` = :trackId AND " | 3572 | "track.`ID` = :trackId AND " | ||
3225 | "trackData.`FileName` = track.`FileName`"); | 3573 | "trackData.`FileName` = track.`FileName`"); | ||
3226 | 3574 | | |||
3227 | auto result = prepareQuery(d->mSelectTracksMappingPriorityByTrackId, selectTracksMappingPriorityQueryByTrackIdText); | 3575 | auto result = prepareQuery(d->mSelectTracksMappingPriorityByTrackId, selectTracksMappingPriorityQueryByTrackIdText); | ||
3228 | 3576 | | |||
3229 | if (!result) { | 3577 | if (!result) { | ||
3230 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriorityByTrackId.lastQuery(); | 3578 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriorityByTrackId.lastQuery(); | ||
3231 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriorityByTrackId.lastError(); | 3579 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksMappingPriorityByTrackId.lastError(); | ||
3232 | 3580 | | |||
3233 | Q_EMIT databaseError(); | 3581 | Q_EMIT databaseError(); | ||
3234 | } | 3582 | } | ||
3235 | } | 3583 | } | ||
3236 | 3584 | | |||
3237 | { | 3585 | { | ||
3238 | auto selectAllTrackFilesFromSourceQueryText = QStringLiteral("SELECT " | 3586 | auto selectAllTrackFilesFromSourceQueryText = QStringLiteral("SELECT " | ||
3239 | "tracksMapping.`FileName`, " | 3587 | "tracksMapping.`FileName`, " | ||
3240 | "tracksMapping.`FileModifiedTime` " | 3588 | "tracksMapping.`FileModifiedTime` " | ||
3241 | "FROM " | 3589 | "FROM " | ||
3242 | "`TracksData` tracksMapping, " | 3590 | "`TracksData` tracksMapping, " | ||
3243 | "`Tracks` tracks, " | 3591 | "`Tracks` tracks " | ||
3244 | "`DiscoverSource` source " | | |||
3245 | "WHERE " | 3592 | "WHERE " | ||
3246 | "tracksMapping.`DiscoverID` = source.`ID` AND " | 3593 | "tracks.`FileName` = tracksMapping.`FileName`"); | ||
3247 | "tracks.`FileName` = tracksMapping.`FileName` AND " | | |||
3248 | "source.`Name` = :sourceName"); | | |||
3249 | 3594 | | |||
3250 | auto result = prepareQuery(d->mSelectAllTrackFilesFromSourceQuery, selectAllTrackFilesFromSourceQueryText); | 3595 | auto result = prepareQuery(d->mSelectAllTrackFilesQuery, selectAllTrackFilesFromSourceQueryText); | ||
3251 | 3596 | | |||
3252 | if (!result) { | 3597 | if (!result) { | ||
3253 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllTrackFilesFromSourceQuery.lastQuery(); | 3598 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllTrackFilesQuery.lastQuery(); | ||
3254 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAllTrackFilesFromSourceQuery.lastError(); | 3599 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAllTrackFilesQuery.lastError(); | ||
3255 | 3600 | | |||
3256 | Q_EMIT databaseError(); | 3601 | Q_EMIT databaseError(); | ||
3257 | } | 3602 | } | ||
3258 | } | 3603 | } | ||
3259 | 3604 | | |||
3260 | { | 3605 | { | ||
3261 | auto insertMusicSourceQueryText = QStringLiteral("INSERT OR IGNORE INTO `DiscoverSource` (`ID`, `Name`) " | 3606 | auto insertMusicSourceQueryText = QStringLiteral("INSERT OR IGNORE INTO `DiscoverSource` (`ID`, `Name`) " | ||
3262 | "VALUES (:discoverId, :name)"); | 3607 | "VALUES (:discoverId, :name)"); | ||
3263 | 3608 | | |||
3264 | auto result = prepareQuery(d->mInsertMusicSource, insertMusicSourceQueryText); | 3609 | auto result = prepareQuery(d->mInsertMusicSource, insertMusicSourceQueryText); | ||
3265 | 3610 | | |||
3266 | if (!result) { | 3611 | if (!result) { | ||
3267 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertMusicSource.lastQuery(); | 3612 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertMusicSource.lastQuery(); | ||
3268 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertMusicSource.lastError(); | 3613 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertMusicSource.lastError(); | ||
3269 | 3614 | | |||
3270 | Q_EMIT databaseError(); | 3615 | Q_EMIT databaseError(); | ||
3271 | } | 3616 | } | ||
3272 | } | 3617 | } | ||
3273 | 3618 | | |||
3274 | { | 3619 | { | ||
3275 | auto selectMusicSourceQueryText = QStringLiteral("SELECT `ID` FROM `DiscoverSource` WHERE `Name` = :name"); | 3620 | auto selectMusicSourceQueryText = QStringLiteral("SELECT `ID` FROM `DiscoverSource` WHERE `Name` = :name"); | ||
3276 | 3621 | | |||
3277 | auto result = prepareQuery(d->mSelectMusicSource, selectMusicSourceQueryText); | 3622 | auto result = prepareQuery(d->mSelectMusicSource, selectMusicSourceQueryText); | ||
3278 | 3623 | | |||
3279 | if (!result) { | 3624 | if (!result) { | ||
3280 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectMusicSource.lastQuery(); | 3625 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectMusicSource.lastQuery(); | ||
3281 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectMusicSource.lastError(); | 3626 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectMusicSource.lastError(); | ||
3282 | 3627 | | |||
3283 | Q_EMIT databaseError(); | 3628 | Q_EMIT databaseError(); | ||
3284 | } | 3629 | } | ||
3285 | } | 3630 | } | ||
3286 | 3631 | | |||
3287 | { | 3632 | { | ||
3288 | auto selectTrackQueryText = QStringLiteral("SELECT " | 3633 | auto selectTrackQueryText = QStringLiteral("SELECT " | ||
3289 | "tracks.`ID`, tracksMapping.`FileName` " | 3634 | "tracks.`ID`, tracksMapping.`FileName` " | ||
Show All 21 Lines | |||||
3311 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | 3656 | " (tracks.`AlbumArtistName` IS NULL OR tracks.`AlbumArtistName` = tracks2.`AlbumArtistName`) AND " | ||
3312 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 3657 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
3313 | ")" | 3658 | ")" | ||
3314 | ""); | 3659 | ""); | ||
3315 | 3660 | | |||
3316 | auto result = prepareQuery(d->mSelectTrackIdFromTitleAlbumIdArtistQuery, selectTrackQueryText); | 3661 | auto result = prepareQuery(d->mSelectTrackIdFromTitleAlbumIdArtistQuery, selectTrackQueryText); | ||
3317 | 3662 | | |||
3318 | if (!result) { | 3663 | if (!result) { | ||
3319 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumIdArtistQuery.lastQuery(); | 3664 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumIdArtistQuery.lastQuery(); | ||
3320 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumIdArtistQuery.lastError(); | 3665 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumIdArtistQuery.lastError(); | ||
3321 | 3666 | | |||
3322 | Q_EMIT databaseError(); | 3667 | Q_EMIT databaseError(); | ||
3323 | } | 3668 | } | ||
3324 | } | 3669 | } | ||
3325 | 3670 | | |||
3326 | { | 3671 | { | ||
3327 | auto insertTrackQueryText = QStringLiteral("INSERT INTO `Tracks` " | 3672 | auto insertTrackQueryText = QStringLiteral("INSERT INTO `Tracks` " | ||
3328 | "(" | 3673 | "(" | ||
3329 | "`ID`, " | 3674 | "`ID`, " | ||
3330 | "`DiscoverID`, " | | |||
3331 | "`FileName`, " | 3675 | "`FileName`, " | ||
3332 | "`Priority`, " | 3676 | "`Priority`, " | ||
3333 | "`Title`, " | 3677 | "`Title`, " | ||
3334 | "`ArtistName`, " | 3678 | "`ArtistName`, " | ||
3335 | "`AlbumTitle`, " | 3679 | "`AlbumTitle`, " | ||
3336 | "`AlbumArtistName`, " | 3680 | "`AlbumArtistName`, " | ||
3337 | "`AlbumPath`, " | 3681 | "`AlbumPath`, " | ||
3338 | "`Genre`, " | 3682 | "`Genre`, " | ||
3339 | "`Composer`, " | 3683 | "`Composer`, " | ||
3340 | "`Lyricist`, " | 3684 | "`Lyricist`, " | ||
3341 | "`Comment`, " | 3685 | "`Comment`, " | ||
3342 | "`TrackNumber`, " | 3686 | "`TrackNumber`, " | ||
3343 | "`DiscNumber`, " | 3687 | "`DiscNumber`, " | ||
3344 | "`Channels`, " | 3688 | "`Channels`, " | ||
3345 | "`BitRate`, " | 3689 | "`BitRate`, " | ||
3346 | "`SampleRate`, " | 3690 | "`SampleRate`, " | ||
3347 | "`Year`, " | 3691 | "`Year`, " | ||
3348 | "`Duration`, " | 3692 | "`Duration`, " | ||
3349 | "`Rating`, " | 3693 | "`Rating`, " | ||
3350 | "`HasEmbeddedCover`) " | 3694 | "`HasEmbeddedCover`) " | ||
3351 | "VALUES " | 3695 | "VALUES " | ||
3352 | "(" | 3696 | "(" | ||
3353 | ":trackId, " | 3697 | ":trackId, " | ||
3354 | ":discoverId, " | | |||
3355 | ":fileName, " | 3698 | ":fileName, " | ||
3356 | ":priority, " | 3699 | ":priority, " | ||
3357 | ":title, " | 3700 | ":title, " | ||
3358 | ":artistName, " | 3701 | ":artistName, " | ||
3359 | ":albumTitle, " | 3702 | ":albumTitle, " | ||
3360 | ":albumArtistName, " | 3703 | ":albumArtistName, " | ||
3361 | ":albumPath, " | 3704 | ":albumPath, " | ||
3362 | ":genre, " | 3705 | ":genre, " | ||
3363 | ":composer, " | 3706 | ":composer, " | ||
3364 | ":lyricist, " | 3707 | ":lyricist, " | ||
3365 | ":comment, " | 3708 | ":comment, " | ||
3366 | ":trackNumber, " | 3709 | ":trackNumber, " | ||
3367 | ":discNumber, " | 3710 | ":discNumber, " | ||
3368 | ":channels, " | 3711 | ":channels, " | ||
3369 | ":bitRate, " | 3712 | ":bitRate, " | ||
3370 | ":sampleRate, " | 3713 | ":sampleRate, " | ||
3371 | ":year, " | 3714 | ":year, " | ||
3372 | ":trackDuration, " | 3715 | ":trackDuration, " | ||
3373 | ":trackRating, " | 3716 | ":trackRating, " | ||
3374 | ":hasEmbeddedCover)"); | 3717 | ":hasEmbeddedCover)"); | ||
3375 | 3718 | | |||
3376 | auto result = prepareQuery(d->mInsertTrackQuery, insertTrackQueryText); | 3719 | auto result = prepareQuery(d->mInsertTrackQuery, insertTrackQueryText); | ||
3377 | 3720 | | |||
3378 | if (!result) { | 3721 | if (!result) { | ||
3379 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertTrackQuery.lastQuery(); | 3722 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertTrackQuery.lastQuery(); | ||
3380 | qDebug() << "DatabaseInterface::initRequest" << d->mInsertTrackQuery.lastError(); | 3723 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mInsertTrackQuery.lastError(); | ||
3381 | 3724 | | |||
3382 | Q_EMIT databaseError(); | 3725 | Q_EMIT databaseError(); | ||
3383 | } | 3726 | } | ||
3384 | } | 3727 | } | ||
3385 | 3728 | | |||
3386 | { | 3729 | { | ||
3387 | auto updateTrackQueryText = QStringLiteral("UPDATE `Tracks` " | 3730 | auto updateTrackQueryText = QStringLiteral("UPDATE `Tracks` " | ||
3388 | "SET " | 3731 | "SET " | ||
Show All 16 Lines | |||||
3405 | " `Duration` = :trackDuration, " | 3748 | " `Duration` = :trackDuration, " | ||
3406 | "`Rating` = :trackRating " | 3749 | "`Rating` = :trackRating " | ||
3407 | "WHERE " | 3750 | "WHERE " | ||
3408 | "`ID` = :trackId"); | 3751 | "`ID` = :trackId"); | ||
3409 | 3752 | | |||
3410 | auto result = prepareQuery(d->mUpdateTrackQuery, updateTrackQueryText); | 3753 | auto result = prepareQuery(d->mUpdateTrackQuery, updateTrackQueryText); | ||
3411 | 3754 | | |||
3412 | if (!result) { | 3755 | if (!result) { | ||
3413 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackQuery.lastQuery(); | 3756 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackQuery.lastQuery(); | ||
3414 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackQuery.lastError(); | 3757 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackQuery.lastError(); | ||
3415 | 3758 | | |||
3416 | Q_EMIT databaseError(); | 3759 | Q_EMIT databaseError(); | ||
3417 | } | 3760 | } | ||
3418 | } | 3761 | } | ||
3419 | 3762 | | |||
3420 | { | 3763 | { | ||
3421 | auto updateAlbumArtistQueryText = QStringLiteral("UPDATE `Albums` " | 3764 | auto updateAlbumArtistQueryText = QStringLiteral("UPDATE `Albums` " | ||
3422 | "SET " | 3765 | "SET " | ||
3423 | "`ArtistName` = :artistName " | 3766 | "`ArtistName` = :artistName " | ||
3424 | "WHERE " | 3767 | "WHERE " | ||
3425 | "`ID` = :albumId"); | 3768 | "`ID` = :albumId"); | ||
3426 | 3769 | | |||
3427 | auto result = prepareQuery(d->mUpdateAlbumArtistQuery, updateAlbumArtistQueryText); | 3770 | auto result = prepareQuery(d->mUpdateAlbumArtistQuery, updateAlbumArtistQueryText); | ||
3428 | 3771 | | |||
3429 | if (!result) { | 3772 | if (!result) { | ||
3430 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistQuery.lastQuery(); | 3773 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistQuery.lastQuery(); | ||
3431 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistQuery.lastError(); | 3774 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistQuery.lastError(); | ||
3432 | 3775 | | |||
3433 | Q_EMIT databaseError(); | 3776 | Q_EMIT databaseError(); | ||
3434 | } | 3777 | } | ||
3435 | } | 3778 | } | ||
3436 | 3779 | | |||
3437 | { | 3780 | { | ||
3438 | auto updateAlbumArtistInTracksQueryText = QStringLiteral("UPDATE `Tracks` " | 3781 | auto updateAlbumArtistInTracksQueryText = QStringLiteral("UPDATE `Tracks` " | ||
3439 | "SET " | 3782 | "SET " | ||
3440 | "`AlbumArtistName` = :artistName " | 3783 | "`AlbumArtistName` = :artistName " | ||
3441 | "WHERE " | 3784 | "WHERE " | ||
3442 | "`AlbumTitle` = :albumTitle AND " | 3785 | "`AlbumTitle` = :albumTitle AND " | ||
3443 | "`AlbumPath` = :albumPath AND " | 3786 | "`AlbumPath` = :albumPath AND " | ||
3444 | "`AlbumArtistName` IS NULL"); | 3787 | "`AlbumArtistName` IS NULL"); | ||
3445 | 3788 | | |||
3446 | auto result = prepareQuery(d->mUpdateAlbumArtistInTracksQuery, updateAlbumArtistInTracksQueryText); | 3789 | auto result = prepareQuery(d->mUpdateAlbumArtistInTracksQuery, updateAlbumArtistInTracksQueryText); | ||
3447 | 3790 | | |||
3448 | if (!result) { | 3791 | if (!result) { | ||
3449 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistInTracksQuery.lastQuery(); | 3792 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistInTracksQuery.lastQuery(); | ||
3450 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistInTracksQuery.lastError(); | 3793 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtistInTracksQuery.lastError(); | ||
3451 | 3794 | | |||
3452 | Q_EMIT databaseError(); | 3795 | Q_EMIT databaseError(); | ||
3453 | } | 3796 | } | ||
3454 | } | 3797 | } | ||
3455 | 3798 | | |||
3456 | { | 3799 | { | ||
3457 | auto queryMaximumTrackIdQueryText = QStringLiteral("SELECT MAX(tracks.`ID`)" | 3800 | auto queryMaximumTrackIdQueryText = QStringLiteral("SELECT MAX(tracks.`ID`)" | ||
3458 | "FROM " | 3801 | "FROM " | ||
3459 | "`Tracks` tracks"); | 3802 | "`Tracks` tracks"); | ||
3460 | 3803 | | |||
3461 | auto result = prepareQuery(d->mQueryMaximumTrackIdQuery, queryMaximumTrackIdQueryText); | 3804 | auto result = prepareQuery(d->mQueryMaximumTrackIdQuery, queryMaximumTrackIdQueryText); | ||
3462 | 3805 | | |||
3463 | if (!result) { | 3806 | if (!result) { | ||
3464 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumTrackIdQuery.lastQuery(); | 3807 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumTrackIdQuery.lastQuery(); | ||
3465 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumTrackIdQuery.lastError(); | 3808 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumTrackIdQuery.lastError(); | ||
3466 | 3809 | | |||
3467 | Q_EMIT databaseError(); | 3810 | Q_EMIT databaseError(); | ||
3468 | } | 3811 | } | ||
3469 | } | 3812 | } | ||
3470 | 3813 | | |||
3471 | { | 3814 | { | ||
3472 | auto queryMaximumAlbumIdQueryText = QStringLiteral("SELECT MAX(albums.`ID`)" | 3815 | auto queryMaximumAlbumIdQueryText = QStringLiteral("SELECT MAX(albums.`ID`)" | ||
3473 | "FROM " | 3816 | "FROM " | ||
3474 | "`Albums` albums"); | 3817 | "`Albums` albums"); | ||
3475 | 3818 | | |||
3476 | auto result = prepareQuery(d->mQueryMaximumAlbumIdQuery, queryMaximumAlbumIdQueryText); | 3819 | auto result = prepareQuery(d->mQueryMaximumAlbumIdQuery, queryMaximumAlbumIdQueryText); | ||
3477 | 3820 | | |||
3478 | if (!result) { | 3821 | if (!result) { | ||
3479 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumAlbumIdQuery.lastQuery(); | 3822 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumAlbumIdQuery.lastQuery(); | ||
3480 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumAlbumIdQuery.lastError(); | 3823 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumAlbumIdQuery.lastError(); | ||
3481 | 3824 | | |||
3482 | Q_EMIT databaseError(); | 3825 | Q_EMIT databaseError(); | ||
3483 | } | 3826 | } | ||
3484 | } | 3827 | } | ||
3485 | 3828 | | |||
3486 | { | 3829 | { | ||
3487 | auto queryMaximumArtistIdQueryText = QStringLiteral("SELECT MAX(artists.`ID`)" | 3830 | auto queryMaximumArtistIdQueryText = QStringLiteral("SELECT MAX(artists.`ID`)" | ||
3488 | "FROM " | 3831 | "FROM " | ||
3489 | "`Artists` artists"); | 3832 | "`Artists` artists"); | ||
3490 | 3833 | | |||
3491 | auto result = prepareQuery(d->mQueryMaximumArtistIdQuery, queryMaximumArtistIdQueryText); | 3834 | auto result = prepareQuery(d->mQueryMaximumArtistIdQuery, queryMaximumArtistIdQueryText); | ||
3492 | 3835 | | |||
3493 | if (!result) { | 3836 | if (!result) { | ||
3494 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumArtistIdQuery.lastQuery(); | 3837 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumArtistIdQuery.lastQuery(); | ||
3495 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumArtistIdQuery.lastError(); | 3838 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumArtistIdQuery.lastError(); | ||
3496 | 3839 | | |||
3497 | Q_EMIT databaseError(); | 3840 | Q_EMIT databaseError(); | ||
3498 | } | 3841 | } | ||
3499 | } | 3842 | } | ||
3500 | 3843 | | |||
3501 | { | 3844 | { | ||
3502 | auto queryMaximumLyricistIdQueryText = QStringLiteral("SELECT MAX(lyricists.`ID`)" | 3845 | auto queryMaximumLyricistIdQueryText = QStringLiteral("SELECT MAX(lyricists.`ID`)" | ||
3503 | "FROM " | 3846 | "FROM " | ||
3504 | "`Lyricist` lyricists"); | 3847 | "`Lyricist` lyricists"); | ||
3505 | 3848 | | |||
3506 | auto result = prepareQuery(d->mQueryMaximumLyricistIdQuery, queryMaximumLyricistIdQueryText); | 3849 | auto result = prepareQuery(d->mQueryMaximumLyricistIdQuery, queryMaximumLyricistIdQueryText); | ||
3507 | 3850 | | |||
3508 | if (!result) { | 3851 | if (!result) { | ||
3509 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumLyricistIdQuery.lastQuery(); | 3852 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumLyricistIdQuery.lastQuery(); | ||
3510 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumLyricistIdQuery.lastError(); | 3853 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumLyricistIdQuery.lastError(); | ||
3511 | 3854 | | |||
3512 | Q_EMIT databaseError(); | 3855 | Q_EMIT databaseError(); | ||
3513 | } | 3856 | } | ||
3514 | } | 3857 | } | ||
3515 | 3858 | | |||
3516 | { | 3859 | { | ||
3517 | auto queryMaximumComposerIdQueryText = QStringLiteral("SELECT MAX(composers.`ID`)" | 3860 | auto queryMaximumComposerIdQueryText = QStringLiteral("SELECT MAX(composers.`ID`)" | ||
3518 | "FROM " | 3861 | "FROM " | ||
3519 | "`Composer` composers"); | 3862 | "`Composer` composers"); | ||
3520 | 3863 | | |||
3521 | auto result = prepareQuery(d->mQueryMaximumComposerIdQuery, queryMaximumComposerIdQueryText); | 3864 | auto result = prepareQuery(d->mQueryMaximumComposerIdQuery, queryMaximumComposerIdQueryText); | ||
3522 | 3865 | | |||
3523 | if (!result) { | 3866 | if (!result) { | ||
3524 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumComposerIdQuery.lastQuery(); | 3867 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumComposerIdQuery.lastQuery(); | ||
3525 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumComposerIdQuery.lastError(); | 3868 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumComposerIdQuery.lastError(); | ||
3526 | 3869 | | |||
3527 | Q_EMIT databaseError(); | 3870 | Q_EMIT databaseError(); | ||
3528 | } | 3871 | } | ||
3529 | } | 3872 | } | ||
3530 | 3873 | | |||
3531 | { | 3874 | { | ||
3532 | auto queryMaximumGenreIdQueryText = QStringLiteral("SELECT MAX(genres.`ID`)" | 3875 | auto queryMaximumGenreIdQueryText = QStringLiteral("SELECT MAX(genres.`ID`)" | ||
3533 | "FROM " | 3876 | "FROM " | ||
3534 | "`Genre` genres"); | 3877 | "`Genre` genres"); | ||
3535 | 3878 | | |||
3536 | auto result = prepareQuery(d->mQueryMaximumGenreIdQuery, queryMaximumGenreIdQueryText); | 3879 | auto result = prepareQuery(d->mQueryMaximumGenreIdQuery, queryMaximumGenreIdQueryText); | ||
3537 | 3880 | | |||
3538 | if (!result) { | 3881 | if (!result) { | ||
3539 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumGenreIdQuery.lastQuery(); | 3882 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumGenreIdQuery.lastQuery(); | ||
3540 | qDebug() << "DatabaseInterface::initRequest" << d->mQueryMaximumGenreIdQuery.lastError(); | 3883 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mQueryMaximumGenreIdQuery.lastError(); | ||
3541 | 3884 | | |||
3542 | Q_EMIT databaseError(); | 3885 | Q_EMIT databaseError(); | ||
3543 | } | 3886 | } | ||
3544 | } | 3887 | } | ||
3545 | 3888 | | |||
3546 | { | 3889 | { | ||
3547 | auto selectTrackQueryText = QStringLiteral("SELECT " | 3890 | auto selectTrackQueryText = QStringLiteral("SELECT " | ||
3548 | "tracks.ID " | 3891 | "tracks.ID " | ||
3549 | "FROM " | 3892 | "FROM " | ||
3550 | "`Tracks` tracks " | 3893 | "`Tracks` tracks " | ||
3551 | "WHERE " | 3894 | "WHERE " | ||
3552 | "tracks.`Title` = :title AND " | 3895 | "tracks.`Title` = :title AND " | ||
3553 | "tracks.`AlbumTitle` = :album AND " | 3896 | "tracks.`AlbumTitle` = :album AND " | ||
3554 | "tracks.`TrackNumber` = :trackNumber AND " | 3897 | "tracks.`TrackNumber` = :trackNumber AND " | ||
3555 | "tracks.`DiscNumber` = :discNumber AND " | 3898 | "tracks.`DiscNumber` = :discNumber AND " | ||
3556 | "tracks.`ArtistName` = :artist"); | 3899 | "tracks.`ArtistName` = :artist"); | ||
3557 | 3900 | | |||
3558 | auto result = prepareQuery(d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery, selectTrackQueryText); | 3901 | auto result = prepareQuery(d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery, selectTrackQueryText); | ||
3559 | 3902 | | |||
3560 | if (!result) { | 3903 | if (!result) { | ||
3561 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastQuery(); | 3904 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastQuery(); | ||
3562 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastError(); | 3905 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastError(); | ||
3563 | 3906 | | |||
3564 | Q_EMIT databaseError(); | 3907 | Q_EMIT databaseError(); | ||
3565 | } | 3908 | } | ||
3566 | } | 3909 | } | ||
3567 | 3910 | | |||
3568 | { | 3911 | { | ||
3569 | auto selectTrackQueryText = QStringLiteral("SELECT " | 3912 | auto selectTrackQueryText = QStringLiteral("SELECT " | ||
3570 | "tracks.ID " | 3913 | "tracks.ID " | ||
3571 | "FROM " | 3914 | "FROM " | ||
3572 | "`Tracks` tracks, " | 3915 | "`Tracks` tracks, " | ||
3573 | "`Albums` albums " | 3916 | "`Albums` albums " | ||
3574 | "WHERE " | 3917 | "WHERE " | ||
3575 | "tracks.`Title` = :title AND " | 3918 | "tracks.`Title` = :title AND " | ||
3576 | "tracks.`Priority` = :priority AND " | 3919 | "tracks.`Priority` = :priority AND " | ||
3577 | "(tracks.`ArtistName` = :trackArtist OR tracks.`ArtistName` IS NULL) AND " | 3920 | "(tracks.`ArtistName` = :trackArtist OR tracks.`ArtistName` IS NULL) AND " | ||
3578 | "(tracks.`AlbumTitle` = :album OR tracks.`AlbumTitle` IS NULL) AND " | 3921 | "(tracks.`AlbumTitle` = :album OR tracks.`AlbumTitle` IS NULL) AND " | ||
3579 | "(tracks.`AlbumArtistName` = :albumArtist OR tracks.`AlbumArtistName` IS NULL) AND " | 3922 | "(tracks.`AlbumArtistName` = :albumArtist OR tracks.`AlbumArtistName` IS NULL) AND " | ||
3580 | "(tracks.`AlbumPath` = :albumPath OR tracks.`AlbumPath` IS NULL)"); | 3923 | "(tracks.`AlbumPath` = :albumPath OR tracks.`AlbumPath` IS NULL)"); | ||
3581 | 3924 | | |||
3582 | auto result = prepareQuery(d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery, selectTrackQueryText); | 3925 | auto result = prepareQuery(d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery, selectTrackQueryText); | ||
3583 | 3926 | | |||
3584 | if (!result) { | 3927 | if (!result) { | ||
3585 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastQuery(); | 3928 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastQuery(); | ||
3586 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastError(); | 3929 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastError(); | ||
3587 | 3930 | | |||
3588 | Q_EMIT databaseError(); | 3931 | Q_EMIT databaseError(); | ||
3589 | } | 3932 | } | ||
3590 | } | 3933 | } | ||
3591 | 3934 | | |||
3592 | { | 3935 | { | ||
3593 | auto selectAlbumArtUriFromAlbumIdQueryText = QStringLiteral("SELECT `CoverFileName`" | 3936 | auto selectAlbumArtUriFromAlbumIdQueryText = QStringLiteral("SELECT `CoverFileName`" | ||
3594 | "FROM " | 3937 | "FROM " | ||
3595 | "`Albums` " | 3938 | "`Albums` " | ||
3596 | "WHERE " | 3939 | "WHERE " | ||
3597 | "`ID` = :albumId"); | 3940 | "`ID` = :albumId"); | ||
3598 | 3941 | | |||
3599 | auto result = prepareQuery(d->mSelectAlbumArtUriFromAlbumIdQuery, selectAlbumArtUriFromAlbumIdQueryText); | 3942 | auto result = prepareQuery(d->mSelectAlbumArtUriFromAlbumIdQuery, selectAlbumArtUriFromAlbumIdQueryText); | ||
3600 | 3943 | | |||
3601 | if (!result) { | 3944 | if (!result) { | ||
3602 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastQuery(); | 3945 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastQuery(); | ||
3603 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastError(); | 3946 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastError(); | ||
3604 | 3947 | | |||
3605 | Q_EMIT databaseError(); | 3948 | Q_EMIT databaseError(); | ||
3606 | } | 3949 | } | ||
3607 | } | 3950 | } | ||
3608 | 3951 | | |||
3609 | { | 3952 | { | ||
3610 | auto updateAlbumArtUriFromAlbumIdQueryText = QStringLiteral("UPDATE `Albums` " | 3953 | auto updateAlbumArtUriFromAlbumIdQueryText = QStringLiteral("UPDATE `Albums` " | ||
3611 | "SET `CoverFileName` = :coverFileName " | 3954 | "SET `CoverFileName` = :coverFileName " | ||
3612 | "WHERE " | 3955 | "WHERE " | ||
3613 | "`ID` = :albumId"); | 3956 | "`ID` = :albumId"); | ||
3614 | 3957 | | |||
3615 | auto result = prepareQuery(d->mUpdateAlbumArtUriFromAlbumIdQuery, updateAlbumArtUriFromAlbumIdQueryText); | 3958 | auto result = prepareQuery(d->mUpdateAlbumArtUriFromAlbumIdQuery, updateAlbumArtUriFromAlbumIdQueryText); | ||
3616 | 3959 | | |||
3617 | if (!result) { | 3960 | if (!result) { | ||
3618 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastQuery(); | 3961 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastQuery(); | ||
3619 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastError(); | 3962 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastError(); | ||
3620 | 3963 | | |||
3621 | Q_EMIT databaseError(); | 3964 | Q_EMIT databaseError(); | ||
3622 | } | 3965 | } | ||
3623 | } | 3966 | } | ||
3624 | 3967 | | |||
3625 | { | 3968 | { | ||
3626 | auto selectTracksFromArtistQueryText = QStringLiteral("SELECT " | 3969 | auto selectTracksFromArtistQueryText = QStringLiteral("SELECT " | ||
3627 | "tracks.`ID`, " | 3970 | "tracks.`ID`, " | ||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Line(s) | |||||
3693 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | 4036 | " (tracks.`AlbumPath` IS NULL OR tracks.`AlbumPath` = tracks2.`AlbumPath`)" | ||
3694 | ")" | 4037 | ")" | ||
3695 | "ORDER BY tracks.`Title` ASC, " | 4038 | "ORDER BY tracks.`Title` ASC, " | ||
3696 | "album.`Title` ASC"); | 4039 | "album.`Title` ASC"); | ||
3697 | 4040 | | |||
3698 | auto result = prepareQuery(d->mSelectTracksFromArtist, selectTracksFromArtistQueryText); | 4041 | auto result = prepareQuery(d->mSelectTracksFromArtist, selectTracksFromArtistQueryText); | ||
3699 | 4042 | | |||
3700 | if (!result) { | 4043 | if (!result) { | ||
3701 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksFromArtist.lastQuery(); | 4044 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksFromArtist.lastQuery(); | ||
3702 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectTracksFromArtist.lastError(); | 4045 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectTracksFromArtist.lastError(); | ||
3703 | 4046 | | |||
3704 | Q_EMIT databaseError(); | 4047 | Q_EMIT databaseError(); | ||
3705 | } | 4048 | } | ||
3706 | } | 4049 | } | ||
3707 | 4050 | | |||
3708 | { | 4051 | { | ||
3709 | auto selectAlbumIdsFromArtistQueryText = QStringLiteral("SELECT " | 4052 | auto selectAlbumIdsFromArtistQueryText = QStringLiteral("SELECT " | ||
3710 | "album.`ID` " | 4053 | "album.`ID` " | ||
3711 | "FROM " | 4054 | "FROM " | ||
3712 | "`Albums` album " | 4055 | "`Albums` album " | ||
3713 | "WHERE " | 4056 | "WHERE " | ||
3714 | "album.`ArtistName` = :artistName"); | 4057 | "album.`ArtistName` = :artistName"); | ||
3715 | 4058 | | |||
3716 | auto result = prepareQuery(d->mSelectAlbumIdsFromArtist, selectAlbumIdsFromArtistQueryText); | 4059 | auto result = prepareQuery(d->mSelectAlbumIdsFromArtist, selectAlbumIdsFromArtistQueryText); | ||
3717 | 4060 | | |||
3718 | if (!result) { | 4061 | if (!result) { | ||
3719 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdsFromArtist.lastQuery(); | 4062 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdsFromArtist.lastQuery(); | ||
3720 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectAlbumIdsFromArtist.lastError(); | 4063 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectAlbumIdsFromArtist.lastError(); | ||
3721 | 4064 | | |||
3722 | Q_EMIT databaseError(); | 4065 | Q_EMIT databaseError(); | ||
3723 | } | 4066 | } | ||
3724 | } | 4067 | } | ||
3725 | 4068 | | |||
3726 | { | 4069 | { | ||
3727 | auto selectArtistQueryText = QStringLiteral("SELECT `ID`, " | 4070 | auto selectArtistQueryText = QStringLiteral("SELECT `ID`, " | ||
3728 | "`Name` " | 4071 | "`Name` " | ||
3729 | "FROM `Artists` " | 4072 | "FROM `Artists` " | ||
3730 | "WHERE " | 4073 | "WHERE " | ||
3731 | "`ID` = :artistId"); | 4074 | "`ID` = :artistId"); | ||
3732 | 4075 | | |||
3733 | auto result = prepareQuery(d->mSelectArtistQuery, selectArtistQueryText); | 4076 | auto result = prepareQuery(d->mSelectArtistQuery, selectArtistQueryText); | ||
3734 | 4077 | | |||
3735 | if (!result) { | 4078 | if (!result) { | ||
3736 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectArtistQuery.lastQuery(); | 4079 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectArtistQuery.lastQuery(); | ||
3737 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectArtistQuery.lastError(); | 4080 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectArtistQuery.lastError(); | ||
3738 | 4081 | | |||
3739 | Q_EMIT databaseError(); | 4082 | Q_EMIT databaseError(); | ||
3740 | } | 4083 | } | ||
3741 | } | 4084 | } | ||
3742 | 4085 | | |||
3743 | { | 4086 | { | ||
3744 | auto updateTrackStatisticsQueryText = QStringLiteral("UPDATE `TracksData` " | 4087 | auto updateTrackStatisticsQueryText = QStringLiteral("UPDATE `TracksData` " | ||
3745 | "SET " | 4088 | "SET " | ||
3746 | "`LastPlayDate` = :playDate, " | 4089 | "`LastPlayDate` = :playDate, " | ||
3747 | "`PlayCounter` = `PlayCounter` + 1 " | 4090 | "`PlayCounter` = `PlayCounter` + 1 " | ||
3748 | "WHERE " | 4091 | "WHERE " | ||
3749 | "`FileName` = :fileName"); | 4092 | "`FileName` = :fileName"); | ||
3750 | 4093 | | |||
3751 | auto result = prepareQuery(d->mUpdateTrackStatistics, updateTrackStatisticsQueryText); | 4094 | auto result = prepareQuery(d->mUpdateTrackStatistics, updateTrackStatisticsQueryText); | ||
3752 | 4095 | | |||
3753 | if (!result) { | 4096 | if (!result) { | ||
3754 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackStatistics.lastQuery(); | 4097 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackStatistics.lastQuery(); | ||
3755 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackStatistics.lastError(); | 4098 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackStatistics.lastError(); | ||
3756 | 4099 | | |||
3757 | Q_EMIT databaseError(); | 4100 | Q_EMIT databaseError(); | ||
3758 | } | 4101 | } | ||
3759 | } | 4102 | } | ||
3760 | 4103 | | |||
3761 | { | 4104 | { | ||
3762 | auto updateTrackFirstPlayStatisticsQueryText = QStringLiteral("UPDATE `TracksData` " | 4105 | auto updateTrackFirstPlayStatisticsQueryText = QStringLiteral("UPDATE `TracksData` " | ||
3763 | "SET " | 4106 | "SET " | ||
3764 | "`FirstPlayDate` = :playDate " | 4107 | "`FirstPlayDate` = :playDate " | ||
3765 | "WHERE " | 4108 | "WHERE " | ||
3766 | "`FileName` = :fileName AND " | 4109 | "`FileName` = :fileName AND " | ||
3767 | "`FirstPlayDate` IS NULL"); | 4110 | "`FirstPlayDate` IS NULL"); | ||
3768 | 4111 | | |||
3769 | auto result = prepareQuery(d->mUpdateTrackFirstPlayStatistics, updateTrackFirstPlayStatisticsQueryText); | 4112 | auto result = prepareQuery(d->mUpdateTrackFirstPlayStatistics, updateTrackFirstPlayStatisticsQueryText); | ||
3770 | 4113 | | |||
3771 | if (!result) { | 4114 | if (!result) { | ||
3772 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackFirstPlayStatistics.lastQuery(); | 4115 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackFirstPlayStatistics.lastQuery(); | ||
3773 | qDebug() << "DatabaseInterface::initRequest" << d->mUpdateTrackFirstPlayStatistics.lastError(); | 4116 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mUpdateTrackFirstPlayStatistics.lastError(); | ||
3774 | 4117 | | |||
3775 | Q_EMIT databaseError(); | 4118 | Q_EMIT databaseError(); | ||
3776 | } | 4119 | } | ||
3777 | } | 4120 | } | ||
3778 | 4121 | | |||
3779 | { | 4122 | { | ||
3780 | auto selectGenreQueryText = QStringLiteral("SELECT `ID`, " | 4123 | auto selectGenreQueryText = QStringLiteral("SELECT `ID`, " | ||
3781 | "`Name` " | 4124 | "`Name` " | ||
3782 | "FROM `Genre` " | 4125 | "FROM `Genre` " | ||
3783 | "WHERE " | 4126 | "WHERE " | ||
3784 | "`ID` = :genreId"); | 4127 | "`ID` = :genreId"); | ||
3785 | 4128 | | |||
3786 | auto result = prepareQuery(d->mSelectGenreQuery, selectGenreQueryText); | 4129 | auto result = prepareQuery(d->mSelectGenreQuery, selectGenreQueryText); | ||
3787 | 4130 | | |||
3788 | if (!result) { | 4131 | if (!result) { | ||
3789 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreQuery.lastQuery(); | 4132 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreQuery.lastQuery(); | ||
3790 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectGenreQuery.lastError(); | 4133 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectGenreQuery.lastError(); | ||
3791 | 4134 | | |||
3792 | Q_EMIT databaseError(); | 4135 | Q_EMIT databaseError(); | ||
3793 | } | 4136 | } | ||
3794 | } | 4137 | } | ||
3795 | 4138 | | |||
3796 | { | 4139 | { | ||
3797 | auto selectComposerQueryText = QStringLiteral("SELECT `ID`, " | 4140 | auto selectComposerQueryText = QStringLiteral("SELECT `ID`, " | ||
3798 | "`Name` " | 4141 | "`Name` " | ||
3799 | "FROM `Composer` " | 4142 | "FROM `Composer` " | ||
3800 | "WHERE " | 4143 | "WHERE " | ||
3801 | "`ID` = :composerId"); | 4144 | "`ID` = :composerId"); | ||
3802 | 4145 | | |||
3803 | auto result = prepareQuery(d->mSelectComposerQuery, selectComposerQueryText); | 4146 | auto result = prepareQuery(d->mSelectComposerQuery, selectComposerQueryText); | ||
3804 | 4147 | | |||
3805 | if (!result) { | 4148 | if (!result) { | ||
3806 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectComposerQuery.lastQuery(); | 4149 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectComposerQuery.lastQuery(); | ||
3807 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectComposerQuery.lastError(); | 4150 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectComposerQuery.lastError(); | ||
3808 | } | 4151 | } | ||
3809 | } | 4152 | } | ||
3810 | 4153 | | |||
3811 | { | 4154 | { | ||
3812 | auto selectLyricistQueryText = QStringLiteral("SELECT `ID`, " | 4155 | auto selectLyricistQueryText = QStringLiteral("SELECT `ID`, " | ||
3813 | "`Name` " | 4156 | "`Name` " | ||
3814 | "FROM `Lyricist` " | 4157 | "FROM `Lyricist` " | ||
3815 | "WHERE " | 4158 | "WHERE " | ||
3816 | "`ID` = :lyricistId"); | 4159 | "`ID` = :lyricistId"); | ||
3817 | 4160 | | |||
3818 | auto result = prepareQuery(d->mSelectLyricistQuery, selectLyricistQueryText); | 4161 | auto result = prepareQuery(d->mSelectLyricistQuery, selectLyricistQueryText); | ||
3819 | 4162 | | |||
3820 | if (!result) { | 4163 | if (!result) { | ||
3821 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectLyricistQuery.lastQuery(); | 4164 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectLyricistQuery.lastQuery(); | ||
3822 | qDebug() << "DatabaseInterface::initRequest" << d->mSelectLyricistQuery.lastError(); | 4165 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mSelectLyricistQuery.lastError(); | ||
3823 | } | 4166 | } | ||
3824 | } | 4167 | } | ||
3825 | 4168 | | |||
3826 | { | 4169 | { | ||
3827 | auto removeTrackQueryText = QStringLiteral("DELETE FROM `Tracks` " | 4170 | auto removeTrackQueryText = QStringLiteral("DELETE FROM `Tracks` " | ||
3828 | "WHERE " | 4171 | "WHERE " | ||
3829 | "`ID` = :trackId"); | 4172 | "`ID` = :trackId"); | ||
3830 | 4173 | | |||
3831 | auto result = prepareQuery(d->mRemoveTrackQuery, removeTrackQueryText); | 4174 | auto result = prepareQuery(d->mRemoveTrackQuery, removeTrackQueryText); | ||
3832 | 4175 | | |||
3833 | if (!result) { | 4176 | if (!result) { | ||
3834 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveTrackQuery.lastQuery(); | 4177 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveTrackQuery.lastQuery(); | ||
3835 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveTrackQuery.lastError(); | 4178 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveTrackQuery.lastError(); | ||
3836 | 4179 | | |||
3837 | Q_EMIT databaseError(); | 4180 | Q_EMIT databaseError(); | ||
3838 | } | 4181 | } | ||
3839 | } | 4182 | } | ||
3840 | 4183 | | |||
3841 | { | 4184 | { | ||
3842 | auto removeAlbumQueryText = QStringLiteral("DELETE FROM `Albums` " | 4185 | auto removeAlbumQueryText = QStringLiteral("DELETE FROM `Albums` " | ||
3843 | "WHERE " | 4186 | "WHERE " | ||
3844 | "`ID` = :albumId"); | 4187 | "`ID` = :albumId"); | ||
3845 | 4188 | | |||
3846 | auto result = prepareQuery(d->mRemoveAlbumQuery, removeAlbumQueryText); | 4189 | auto result = prepareQuery(d->mRemoveAlbumQuery, removeAlbumQueryText); | ||
3847 | 4190 | | |||
3848 | if (!result) { | 4191 | if (!result) { | ||
3849 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveAlbumQuery.lastQuery(); | 4192 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveAlbumQuery.lastQuery(); | ||
3850 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveAlbumQuery.lastError(); | 4193 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveAlbumQuery.lastError(); | ||
3851 | 4194 | | |||
3852 | Q_EMIT databaseError(); | 4195 | Q_EMIT databaseError(); | ||
3853 | } | 4196 | } | ||
3854 | } | 4197 | } | ||
3855 | 4198 | | |||
3856 | { | 4199 | { | ||
3857 | auto removeAlbumQueryText = QStringLiteral("DELETE FROM `Artists` " | 4200 | auto removeAlbumQueryText = QStringLiteral("DELETE FROM `Artists` " | ||
3858 | "WHERE " | 4201 | "WHERE " | ||
3859 | "`ID` = :artistId"); | 4202 | "`ID` = :artistId"); | ||
3860 | 4203 | | |||
3861 | auto result = prepareQuery(d->mRemoveArtistQuery, removeAlbumQueryText); | 4204 | auto result = prepareQuery(d->mRemoveArtistQuery, removeAlbumQueryText); | ||
3862 | 4205 | | |||
3863 | if (!result) { | 4206 | if (!result) { | ||
3864 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveArtistQuery.lastQuery(); | 4207 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveArtistQuery.lastQuery(); | ||
3865 | qDebug() << "DatabaseInterface::initRequest" << d->mRemoveArtistQuery.lastError(); | 4208 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::initRequest" << d->mRemoveArtistQuery.lastError(); | ||
3866 | 4209 | | |||
3867 | Q_EMIT databaseError(); | 4210 | Q_EMIT databaseError(); | ||
3868 | } | 4211 | } | ||
3869 | } | 4212 | } | ||
3870 | 4213 | | |||
3871 | finishTransaction(); | 4214 | finishTransaction(); | ||
3872 | 4215 | | |||
3873 | d->mInitFinished = true; | 4216 | d->mInitFinished = true; | ||
Show All 13 Lines | 4229 | if (!albumArtist.isEmpty() || !trackArtist.isEmpty()) { | |||
3887 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":title"), title); | 4230 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":title"), title); | ||
3888 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | 4231 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | ||
3889 | if (!albumArtist.isEmpty()) { | 4232 | if (!albumArtist.isEmpty()) { | ||
3890 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":artistName"), albumArtist); | 4233 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":artistName"), albumArtist); | ||
3891 | } else { | 4234 | } else { | ||
3892 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":artistName"), trackArtist); | 4235 | d->mSelectAlbumIdFromTitleAndArtistQuery.bindValue(QStringLiteral(":artistName"), trackArtist); | ||
3893 | } | 4236 | } | ||
3894 | 4237 | | |||
3895 | auto queryResult = d->mSelectAlbumIdFromTitleAndArtistQuery.exec(); | 4238 | auto queryResult = execQuery(d->mSelectAlbumIdFromTitleAndArtistQuery); | ||
3896 | 4239 | | |||
3897 | if (!queryResult || !d->mSelectAlbumIdFromTitleAndArtistQuery.isSelect() || !d->mSelectAlbumIdFromTitleAndArtistQuery.isActive()) { | 4240 | if (!queryResult || !d->mSelectAlbumIdFromTitleAndArtistQuery.isSelect() || !d->mSelectAlbumIdFromTitleAndArtistQuery.isActive()) { | ||
3898 | Q_EMIT databaseError(); | 4241 | Q_EMIT databaseError(); | ||
3899 | 4242 | | |||
3900 | qDebug() << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastQuery(); | 4243 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastQuery(); | ||
3901 | qDebug() << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleAndArtistQuery.boundValues(); | 4244 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleAndArtistQuery.boundValues(); | ||
3902 | qDebug() << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastError(); | 4245 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleAndArtistQuery.lastError(); | ||
3903 | 4246 | | |||
3904 | d->mSelectAlbumIdFromTitleAndArtistQuery.finish(); | 4247 | d->mSelectAlbumIdFromTitleAndArtistQuery.finish(); | ||
3905 | 4248 | | |||
3906 | return result; | 4249 | return result; | ||
3907 | } | 4250 | } | ||
3908 | 4251 | | |||
3909 | if (d->mSelectAlbumIdFromTitleAndArtistQuery.next()) { | 4252 | if (d->mSelectAlbumIdFromTitleAndArtistQuery.next()) { | ||
3910 | result = d->mSelectAlbumIdFromTitleAndArtistQuery.record().value(0).toULongLong(); | 4253 | result = d->mSelectAlbumIdFromTitleAndArtistQuery.record().value(0).toULongLong(); | ||
3911 | 4254 | | |||
3912 | d->mSelectAlbumIdFromTitleAndArtistQuery.finish(); | 4255 | d->mSelectAlbumIdFromTitleAndArtistQuery.finish(); | ||
3913 | 4256 | | |||
3914 | return result; | 4257 | return result; | ||
3915 | } | 4258 | } | ||
3916 | 4259 | | |||
3917 | d->mSelectAlbumIdFromTitleAndArtistQuery.finish(); | 4260 | d->mSelectAlbumIdFromTitleAndArtistQuery.finish(); | ||
3918 | } | 4261 | } | ||
3919 | 4262 | | |||
3920 | if (result == 0) { | 4263 | if (result == 0) { | ||
3921 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.bindValue(QStringLiteral(":title"), title); | 4264 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.bindValue(QStringLiteral(":title"), title); | ||
3922 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | 4265 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | ||
3923 | 4266 | | |||
3924 | auto queryResult = d->mSelectAlbumIdFromTitleWithoutArtistQuery.exec(); | 4267 | auto queryResult = execQuery(d->mSelectAlbumIdFromTitleWithoutArtistQuery); | ||
3925 | 4268 | | |||
3926 | if (!queryResult || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isSelect() || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isActive()) { | 4269 | if (!queryResult || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isSelect() || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isActive()) { | ||
3927 | Q_EMIT databaseError(); | 4270 | Q_EMIT databaseError(); | ||
3928 | 4271 | | |||
3929 | qDebug() << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastQuery(); | 4272 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastQuery(); | ||
3930 | qDebug() << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.boundValues(); | 4273 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.boundValues(); | ||
3931 | qDebug() << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastError(); | 4274 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastError(); | ||
3932 | 4275 | | |||
3933 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.finish(); | 4276 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.finish(); | ||
3934 | 4277 | | |||
3935 | return result; | 4278 | return result; | ||
3936 | } | 4279 | } | ||
3937 | 4280 | | |||
3938 | if (d->mSelectAlbumIdFromTitleWithoutArtistQuery.next()) { | 4281 | if (d->mSelectAlbumIdFromTitleWithoutArtistQuery.next()) { | ||
3939 | result = d->mSelectAlbumIdFromTitleWithoutArtistQuery.record().value(0).toULongLong(); | 4282 | result = d->mSelectAlbumIdFromTitleWithoutArtistQuery.record().value(0).toULongLong(); | ||
Show All 12 Lines | 4294 | if (!albumArtist.isEmpty()) { | |||
3952 | insertArtist(albumArtist); | 4295 | insertArtist(albumArtist); | ||
3953 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":albumArtist"), albumArtist); | 4296 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":albumArtist"), albumArtist); | ||
3954 | } else { | 4297 | } else { | ||
3955 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":albumArtist"), {}); | 4298 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":albumArtist"), {}); | ||
3956 | } | 4299 | } | ||
3957 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | 4300 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | ||
3958 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":coverFileName"), albumArtURI); | 4301 | d->mInsertAlbumQuery.bindValue(QStringLiteral(":coverFileName"), albumArtURI); | ||
3959 | 4302 | | |||
3960 | auto queryResult = d->mInsertAlbumQuery.exec(); | 4303 | auto queryResult = execQuery(d->mInsertAlbumQuery); | ||
3961 | 4304 | | |||
3962 | if (!queryResult || !d->mInsertAlbumQuery.isActive()) { | 4305 | if (!queryResult || !d->mInsertAlbumQuery.isActive()) { | ||
3963 | Q_EMIT databaseError(); | 4306 | Q_EMIT databaseError(); | ||
3964 | 4307 | | |||
3965 | qDebug() << "DatabaseInterface::insertAlbum" << d->mInsertAlbumQuery.lastQuery(); | 4308 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mInsertAlbumQuery.lastQuery(); | ||
3966 | qDebug() << "DatabaseInterface::insertAlbum" << d->mInsertAlbumQuery.boundValues(); | 4309 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mInsertAlbumQuery.boundValues(); | ||
3967 | qDebug() << "DatabaseInterface::insertAlbum" << d->mInsertAlbumQuery.lastError(); | 4310 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertAlbum" << d->mInsertAlbumQuery.lastError(); | ||
3968 | 4311 | | |||
3969 | d->mInsertAlbumQuery.finish(); | 4312 | d->mInsertAlbumQuery.finish(); | ||
3970 | 4313 | | |||
3971 | return result; | 4314 | return result; | ||
3972 | } | 4315 | } | ||
3973 | 4316 | | |||
3974 | result = d->mAlbumId; | 4317 | result = d->mAlbumId; | ||
3975 | 4318 | | |||
Show All 17 Lines | 4330 | { | |||
3993 | } | 4336 | } | ||
3994 | 4337 | | |||
3995 | auto storedAlbumArtUri = internalAlbumArtUriFromAlbumId(albumId); | 4338 | auto storedAlbumArtUri = internalAlbumArtUriFromAlbumId(albumId); | ||
3996 | 4339 | | |||
3997 | if (!storedAlbumArtUri.isValid() || storedAlbumArtUri != albumArtUri) { | 4340 | if (!storedAlbumArtUri.isValid() || storedAlbumArtUri != albumArtUri) { | ||
3998 | d->mUpdateAlbumArtUriFromAlbumIdQuery.bindValue(QStringLiteral(":albumId"), albumId); | 4341 | d->mUpdateAlbumArtUriFromAlbumIdQuery.bindValue(QStringLiteral(":albumId"), albumId); | ||
3999 | d->mUpdateAlbumArtUriFromAlbumIdQuery.bindValue(QStringLiteral(":coverFileName"), albumArtUri); | 4342 | d->mUpdateAlbumArtUriFromAlbumIdQuery.bindValue(QStringLiteral(":coverFileName"), albumArtUri); | ||
4000 | 4343 | | |||
4001 | auto result = d->mUpdateAlbumArtUriFromAlbumIdQuery.exec(); | 4344 | auto result = execQuery(d->mUpdateAlbumArtUriFromAlbumIdQuery); | ||
4002 | 4345 | | |||
4003 | if (!result || !d->mUpdateAlbumArtUriFromAlbumIdQuery.isActive()) { | 4346 | if (!result || !d->mUpdateAlbumArtUriFromAlbumIdQuery.isActive()) { | ||
4004 | Q_EMIT databaseError(); | 4347 | Q_EMIT databaseError(); | ||
4005 | 4348 | | |||
4006 | qDebug() << "DatabaseInterface::updateAlbumFromId" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastQuery(); | 4349 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumFromId" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastQuery(); | ||
4007 | qDebug() << "DatabaseInterface::updateAlbumFromId" << d->mUpdateAlbumArtUriFromAlbumIdQuery.boundValues(); | 4350 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumFromId" << d->mUpdateAlbumArtUriFromAlbumIdQuery.boundValues(); | ||
4008 | qDebug() << "DatabaseInterface::updateAlbumFromId" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastError(); | 4351 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumFromId" << d->mUpdateAlbumArtUriFromAlbumIdQuery.lastError(); | ||
4009 | 4352 | | |||
4010 | d->mUpdateAlbumArtUriFromAlbumIdQuery.finish(); | 4353 | d->mUpdateAlbumArtUriFromAlbumIdQuery.finish(); | ||
4011 | 4354 | | |||
4012 | return modifiedAlbum; | 4355 | return modifiedAlbum; | ||
4013 | } | 4356 | } | ||
4014 | 4357 | | |||
4015 | d->mUpdateAlbumArtUriFromAlbumIdQuery.finish(); | 4358 | d->mUpdateAlbumArtUriFromAlbumIdQuery.finish(); | ||
4016 | 4359 | | |||
Show All 14 Lines | 4373 | { | |||
4031 | auto result = qulonglong(0); | 4374 | auto result = qulonglong(0); | ||
4032 | 4375 | | |||
4033 | if (name.isEmpty()) { | 4376 | if (name.isEmpty()) { | ||
4034 | return result; | 4377 | return result; | ||
4035 | } | 4378 | } | ||
4036 | 4379 | | |||
4037 | d->mSelectArtistByNameQuery.bindValue(QStringLiteral(":name"), name); | 4380 | d->mSelectArtistByNameQuery.bindValue(QStringLiteral(":name"), name); | ||
4038 | 4381 | | |||
4039 | auto queryResult = d->mSelectArtistByNameQuery.exec(); | 4382 | auto queryResult = execQuery(d->mSelectArtistByNameQuery); | ||
4040 | 4383 | | |||
4041 | if (!queryResult || !d->mSelectArtistByNameQuery.isSelect() || !d->mSelectArtistByNameQuery.isActive()) { | 4384 | if (!queryResult || !d->mSelectArtistByNameQuery.isSelect() || !d->mSelectArtistByNameQuery.isActive()) { | ||
4042 | Q_EMIT databaseError(); | 4385 | Q_EMIT databaseError(); | ||
4043 | 4386 | | |||
4044 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastQuery(); | 4387 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastQuery(); | ||
4045 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.boundValues(); | 4388 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.boundValues(); | ||
4046 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastError(); | 4389 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastError(); | ||
4047 | 4390 | | |||
4048 | d->mSelectArtistByNameQuery.finish(); | 4391 | d->mSelectArtistByNameQuery.finish(); | ||
4049 | 4392 | | |||
4050 | return result; | 4393 | return result; | ||
4051 | } | 4394 | } | ||
4052 | 4395 | | |||
4053 | if (d->mSelectArtistByNameQuery.next()) { | 4396 | if (d->mSelectArtistByNameQuery.next()) { | ||
4054 | result = d->mSelectArtistByNameQuery.record().value(0).toULongLong(); | 4397 | result = d->mSelectArtistByNameQuery.record().value(0).toULongLong(); | ||
4055 | 4398 | | |||
4056 | d->mSelectArtistByNameQuery.finish(); | 4399 | d->mSelectArtistByNameQuery.finish(); | ||
4057 | 4400 | | |||
4058 | return result; | 4401 | return result; | ||
4059 | } | 4402 | } | ||
4060 | 4403 | | |||
4061 | d->mSelectArtistByNameQuery.finish(); | 4404 | d->mSelectArtistByNameQuery.finish(); | ||
4062 | 4405 | | |||
4063 | d->mInsertArtistsQuery.bindValue(QStringLiteral(":artistId"), d->mArtistId); | 4406 | d->mInsertArtistsQuery.bindValue(QStringLiteral(":artistId"), d->mArtistId); | ||
4064 | d->mInsertArtistsQuery.bindValue(QStringLiteral(":name"), name); | 4407 | d->mInsertArtistsQuery.bindValue(QStringLiteral(":name"), name); | ||
4065 | 4408 | | |||
4066 | queryResult = d->mInsertArtistsQuery.exec(); | 4409 | queryResult = execQuery(d->mInsertArtistsQuery); | ||
4067 | 4410 | | |||
4068 | if (!queryResult || !d->mInsertArtistsQuery.isActive()) { | 4411 | if (!queryResult || !d->mInsertArtistsQuery.isActive()) { | ||
4069 | Q_EMIT databaseError(); | 4412 | Q_EMIT databaseError(); | ||
4070 | 4413 | | |||
4071 | qDebug() << "DatabaseInterface::insertArtist" << d->mInsertArtistsQuery.lastQuery(); | 4414 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mInsertArtistsQuery.lastQuery(); | ||
4072 | qDebug() << "DatabaseInterface::insertArtist" << d->mInsertArtistsQuery.boundValues(); | 4415 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mInsertArtistsQuery.boundValues(); | ||
4073 | qDebug() << "DatabaseInterface::insertArtist" << d->mInsertArtistsQuery.lastError(); | 4416 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mInsertArtistsQuery.lastError(); | ||
4074 | 4417 | | |||
4075 | d->mInsertArtistsQuery.finish(); | 4418 | d->mInsertArtistsQuery.finish(); | ||
4076 | 4419 | | |||
4077 | return result; | 4420 | return result; | ||
4078 | } | 4421 | } | ||
4079 | 4422 | | |||
4080 | result = d->mArtistId; | 4423 | result = d->mArtistId; | ||
4081 | 4424 | | |||
Show All 11 Lines | 4435 | { | |||
4093 | auto result = qulonglong(0); | 4436 | auto result = qulonglong(0); | ||
4094 | 4437 | | |||
4095 | if (name.isEmpty()) { | 4438 | if (name.isEmpty()) { | ||
4096 | return result; | 4439 | return result; | ||
4097 | } | 4440 | } | ||
4098 | 4441 | | |||
4099 | d->mSelectComposerByNameQuery.bindValue(QStringLiteral(":name"), name); | 4442 | d->mSelectComposerByNameQuery.bindValue(QStringLiteral(":name"), name); | ||
4100 | 4443 | | |||
4101 | auto queryResult = d->mSelectComposerByNameQuery.exec(); | 4444 | auto queryResult = execQuery(d->mSelectComposerByNameQuery); | ||
4102 | 4445 | | |||
4103 | if (!queryResult || !d->mSelectComposerByNameQuery.isSelect() || !d->mSelectComposerByNameQuery.isActive()) { | 4446 | if (!queryResult || !d->mSelectComposerByNameQuery.isSelect() || !d->mSelectComposerByNameQuery.isActive()) { | ||
4104 | Q_EMIT databaseError(); | 4447 | Q_EMIT databaseError(); | ||
4105 | 4448 | | |||
4106 | qDebug() << "DatabaseInterface::insertComposer" << d->mSelectComposerByNameQuery.lastQuery(); | 4449 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertComposer" << d->mSelectComposerByNameQuery.lastQuery(); | ||
4107 | qDebug() << "DatabaseInterface::insertComposer" << d->mSelectComposerByNameQuery.boundValues(); | 4450 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertComposer" << d->mSelectComposerByNameQuery.boundValues(); | ||
4108 | qDebug() << "DatabaseInterface::insertComposer" << d->mSelectComposerByNameQuery.lastError(); | 4451 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertComposer" << d->mSelectComposerByNameQuery.lastError(); | ||
4109 | 4452 | | |||
4110 | d->mSelectComposerByNameQuery.finish(); | 4453 | d->mSelectComposerByNameQuery.finish(); | ||
4111 | 4454 | | |||
4112 | return result; | 4455 | return result; | ||
4113 | } | 4456 | } | ||
4114 | 4457 | | |||
4115 | 4458 | | |||
4116 | if (d->mSelectComposerByNameQuery.next()) { | 4459 | if (d->mSelectComposerByNameQuery.next()) { | ||
4117 | result = d->mSelectComposerByNameQuery.record().value(0).toULongLong(); | 4460 | result = d->mSelectComposerByNameQuery.record().value(0).toULongLong(); | ||
4118 | 4461 | | |||
4119 | d->mSelectComposerByNameQuery.finish(); | 4462 | d->mSelectComposerByNameQuery.finish(); | ||
4120 | 4463 | | |||
4121 | return result; | 4464 | return result; | ||
4122 | } | 4465 | } | ||
4123 | 4466 | | |||
4124 | d->mSelectComposerByNameQuery.finish(); | 4467 | d->mSelectComposerByNameQuery.finish(); | ||
4125 | 4468 | | |||
4126 | d->mInsertComposerQuery.bindValue(QStringLiteral(":composerId"), d->mComposerId); | 4469 | d->mInsertComposerQuery.bindValue(QStringLiteral(":composerId"), d->mComposerId); | ||
4127 | d->mInsertComposerQuery.bindValue(QStringLiteral(":name"), name); | 4470 | d->mInsertComposerQuery.bindValue(QStringLiteral(":name"), name); | ||
4128 | 4471 | | |||
4129 | queryResult = d->mInsertComposerQuery.exec(); | 4472 | queryResult = execQuery(d->mInsertComposerQuery); | ||
4130 | 4473 | | |||
4131 | if (!queryResult || !d->mInsertComposerQuery.isActive()) { | 4474 | if (!queryResult || !d->mInsertComposerQuery.isActive()) { | ||
4132 | Q_EMIT databaseError(); | 4475 | Q_EMIT databaseError(); | ||
4133 | 4476 | | |||
4134 | qDebug() << "DatabaseInterface::insertComposer" << d->mInsertComposerQuery.lastQuery(); | 4477 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertComposer" << d->mInsertComposerQuery.lastQuery(); | ||
4135 | qDebug() << "DatabaseInterface::insertComposer" << d->mInsertComposerQuery.boundValues(); | 4478 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertComposer" << d->mInsertComposerQuery.boundValues(); | ||
4136 | qDebug() << "DatabaseInterface::insertComposer" << d->mInsertComposerQuery.lastError(); | 4479 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertComposer" << d->mInsertComposerQuery.lastError(); | ||
4137 | 4480 | | |||
4138 | d->mInsertComposerQuery.finish(); | 4481 | d->mInsertComposerQuery.finish(); | ||
4139 | 4482 | | |||
4140 | return result; | 4483 | return result; | ||
4141 | } | 4484 | } | ||
4142 | 4485 | | |||
4143 | result = d->mComposerId; | 4486 | result = d->mComposerId; | ||
4144 | 4487 | | |||
Show All 11 Lines | 4498 | { | |||
4156 | auto result = qulonglong(0); | 4499 | auto result = qulonglong(0); | ||
4157 | 4500 | | |||
4158 | if (name.isEmpty()) { | 4501 | if (name.isEmpty()) { | ||
4159 | return result; | 4502 | return result; | ||
4160 | } | 4503 | } | ||
4161 | 4504 | | |||
4162 | d->mSelectGenreByNameQuery.bindValue(QStringLiteral(":name"), name); | 4505 | d->mSelectGenreByNameQuery.bindValue(QStringLiteral(":name"), name); | ||
4163 | 4506 | | |||
4164 | auto queryResult = d->mSelectGenreByNameQuery.exec(); | 4507 | auto queryResult = execQuery(d->mSelectGenreByNameQuery); | ||
4165 | 4508 | | |||
4166 | if (!queryResult || !d->mSelectGenreByNameQuery.isSelect() || !d->mSelectGenreByNameQuery.isActive()) { | 4509 | if (!queryResult || !d->mSelectGenreByNameQuery.isSelect() || !d->mSelectGenreByNameQuery.isActive()) { | ||
4167 | Q_EMIT databaseError(); | 4510 | Q_EMIT databaseError(); | ||
4168 | 4511 | | |||
4169 | qDebug() << "DatabaseInterface::insertGenre" << d->mSelectGenreByNameQuery.lastQuery(); | 4512 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertGenre" << d->mSelectGenreByNameQuery.lastQuery(); | ||
4170 | qDebug() << "DatabaseInterface::insertGenre" << d->mSelectGenreByNameQuery.boundValues(); | 4513 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertGenre" << d->mSelectGenreByNameQuery.boundValues(); | ||
4171 | qDebug() << "DatabaseInterface::insertGenre" << d->mSelectGenreByNameQuery.lastError(); | 4514 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertGenre" << d->mSelectGenreByNameQuery.lastError(); | ||
4172 | 4515 | | |||
4173 | d->mSelectGenreByNameQuery.finish(); | 4516 | d->mSelectGenreByNameQuery.finish(); | ||
4174 | 4517 | | |||
4175 | return result; | 4518 | return result; | ||
4176 | } | 4519 | } | ||
4177 | 4520 | | |||
4178 | if (d->mSelectGenreByNameQuery.next()) { | 4521 | if (d->mSelectGenreByNameQuery.next()) { | ||
4179 | result = d->mSelectGenreByNameQuery.record().value(0).toULongLong(); | 4522 | result = d->mSelectGenreByNameQuery.record().value(0).toULongLong(); | ||
4180 | 4523 | | |||
4181 | d->mSelectGenreByNameQuery.finish(); | 4524 | d->mSelectGenreByNameQuery.finish(); | ||
4182 | 4525 | | |||
4183 | return result; | 4526 | return result; | ||
4184 | } | 4527 | } | ||
4185 | 4528 | | |||
4186 | d->mSelectGenreByNameQuery.finish(); | 4529 | d->mSelectGenreByNameQuery.finish(); | ||
4187 | 4530 | | |||
4188 | d->mInsertGenreQuery.bindValue(QStringLiteral(":genreId"), d->mGenreId); | 4531 | d->mInsertGenreQuery.bindValue(QStringLiteral(":genreId"), d->mGenreId); | ||
4189 | d->mInsertGenreQuery.bindValue(QStringLiteral(":name"), name); | 4532 | d->mInsertGenreQuery.bindValue(QStringLiteral(":name"), name); | ||
4190 | 4533 | | |||
4191 | queryResult = d->mInsertGenreQuery.exec(); | 4534 | queryResult = execQuery(d->mInsertGenreQuery); | ||
4192 | 4535 | | |||
4193 | if (!queryResult || !d->mInsertGenreQuery.isActive()) { | 4536 | if (!queryResult || !d->mInsertGenreQuery.isActive()) { | ||
4194 | Q_EMIT databaseError(); | 4537 | Q_EMIT databaseError(); | ||
4195 | 4538 | | |||
4196 | qDebug() << "DatabaseInterface::insertGenre" << d->mInsertGenreQuery.lastQuery(); | 4539 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertGenre" << d->mInsertGenreQuery.lastQuery(); | ||
4197 | qDebug() << "DatabaseInterface::insertGenre" << d->mInsertGenreQuery.boundValues(); | 4540 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertGenre" << d->mInsertGenreQuery.boundValues(); | ||
4198 | qDebug() << "DatabaseInterface::insertGenre" << d->mInsertGenreQuery.lastError(); | 4541 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertGenre" << d->mInsertGenreQuery.lastError(); | ||
4199 | 4542 | | |||
4200 | d->mInsertGenreQuery.finish(); | 4543 | d->mInsertGenreQuery.finish(); | ||
4201 | 4544 | | |||
4202 | return result; | 4545 | return result; | ||
4203 | } | 4546 | } | ||
4204 | 4547 | | |||
4205 | result = d->mGenreId; | 4548 | result = d->mGenreId; | ||
4206 | 4549 | | |||
4207 | ++d->mGenreId; | 4550 | ++d->mGenreId; | ||
4208 | 4551 | | |||
4209 | d->mInsertGenreQuery.finish(); | 4552 | d->mInsertGenreQuery.finish(); | ||
4210 | 4553 | | |||
4211 | Q_EMIT genresAdded({{{DatabaseIdRole, result}}}); | 4554 | Q_EMIT genresAdded({{{DatabaseIdRole, result}}}); | ||
4212 | 4555 | | |||
4213 | return result; | 4556 | return result; | ||
4214 | } | 4557 | } | ||
4215 | 4558 | | |||
4216 | void DatabaseInterface::insertTrackOrigin(const QUrl &fileNameURI, const QDateTime &fileModifiedTime, | 4559 | void DatabaseInterface::insertTrackOrigin(const QUrl &fileNameURI, const QDateTime &fileModifiedTime, | ||
4217 | const QDateTime &importDate, qulonglong discoverId) | 4560 | const QDateTime &importDate) | ||
4218 | { | 4561 | { | ||
4219 | d->mInsertTrackMapping.bindValue(QStringLiteral(":discoverId"), discoverId); | | |||
4220 | d->mInsertTrackMapping.bindValue(QStringLiteral(":fileName"), fileNameURI); | 4562 | d->mInsertTrackMapping.bindValue(QStringLiteral(":fileName"), fileNameURI); | ||
4221 | d->mInsertTrackMapping.bindValue(QStringLiteral(":priority"), 1); | 4563 | d->mInsertTrackMapping.bindValue(QStringLiteral(":priority"), 1); | ||
4222 | d->mInsertTrackMapping.bindValue(QStringLiteral(":mtime"), fileModifiedTime); | 4564 | d->mInsertTrackMapping.bindValue(QStringLiteral(":mtime"), fileModifiedTime); | ||
4223 | d->mInsertTrackMapping.bindValue(QStringLiteral(":importDate"), importDate.toMSecsSinceEpoch()); | 4565 | d->mInsertTrackMapping.bindValue(QStringLiteral(":importDate"), importDate.toMSecsSinceEpoch()); | ||
4224 | 4566 | | |||
4225 | auto queryResult = d->mInsertTrackMapping.exec(); | 4567 | auto queryResult = execQuery(d->mInsertTrackMapping); | ||
4226 | 4568 | | |||
4227 | if (!queryResult || !d->mInsertTrackMapping.isActive()) { | 4569 | if (!queryResult || !d->mInsertTrackMapping.isActive()) { | ||
4228 | Q_EMIT databaseError(); | 4570 | Q_EMIT databaseError(); | ||
4229 | 4571 | | |||
4230 | qDebug() << "DatabaseInterface::insertArtist" << d->mInsertTrackMapping.lastQuery(); | 4572 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mInsertTrackMapping.lastQuery(); | ||
4231 | qDebug() << "DatabaseInterface::insertArtist" << d->mInsertTrackMapping.boundValues(); | 4573 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mInsertTrackMapping.boundValues(); | ||
4232 | qDebug() << "DatabaseInterface::insertArtist" << d->mInsertTrackMapping.lastError(); | 4574 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mInsertTrackMapping.lastError(); | ||
4233 | 4575 | | |||
4234 | d->mInsertTrackMapping.finish(); | 4576 | d->mInsertTrackMapping.finish(); | ||
4235 | 4577 | | |||
4236 | return; | 4578 | return; | ||
4237 | } | 4579 | } | ||
4238 | 4580 | | |||
4239 | d->mInsertTrackMapping.finish(); | 4581 | d->mInsertTrackMapping.finish(); | ||
4240 | } | 4582 | } | ||
4241 | 4583 | | |||
4242 | void DatabaseInterface::updateTrackOrigin(const QUrl &fileName, const QDateTime &fileModifiedTime) | 4584 | void DatabaseInterface::updateTrackOrigin(const QUrl &fileName, const QDateTime &fileModifiedTime) | ||
4243 | { | 4585 | { | ||
4244 | d->mUpdateTrackFileModifiedTime.bindValue(QStringLiteral(":fileName"), fileName); | 4586 | d->mUpdateTrackFileModifiedTime.bindValue(QStringLiteral(":fileName"), fileName); | ||
4245 | d->mUpdateTrackFileModifiedTime.bindValue(QStringLiteral(":mtime"), fileModifiedTime); | 4587 | d->mUpdateTrackFileModifiedTime.bindValue(QStringLiteral(":mtime"), fileModifiedTime); | ||
4246 | 4588 | | |||
4247 | auto queryResult = d->mUpdateTrackFileModifiedTime.exec(); | 4589 | auto queryResult = execQuery(d->mUpdateTrackFileModifiedTime); | ||
4248 | 4590 | | |||
4249 | if (!queryResult || !d->mUpdateTrackFileModifiedTime.isActive()) { | 4591 | if (!queryResult || !d->mUpdateTrackFileModifiedTime.isActive()) { | ||
4250 | Q_EMIT databaseError(); | 4592 | Q_EMIT databaseError(); | ||
4251 | 4593 | | |||
4252 | qDebug() << "DatabaseInterface::updateTrackOrigin" << d->mUpdateTrackFileModifiedTime.lastQuery(); | 4594 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackOrigin" << d->mUpdateTrackFileModifiedTime.lastQuery(); | ||
4253 | qDebug() << "DatabaseInterface::updateTrackOrigin" << d->mUpdateTrackFileModifiedTime.boundValues(); | 4595 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackOrigin" << d->mUpdateTrackFileModifiedTime.boundValues(); | ||
4254 | qDebug() << "DatabaseInterface::updateTrackOrigin" << d->mUpdateTrackFileModifiedTime.lastError(); | 4596 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackOrigin" << d->mUpdateTrackFileModifiedTime.lastError(); | ||
4255 | 4597 | | |||
4256 | d->mUpdateTrackFileModifiedTime.finish(); | 4598 | d->mUpdateTrackFileModifiedTime.finish(); | ||
4257 | 4599 | | |||
4258 | return; | 4600 | return; | ||
4259 | } | 4601 | } | ||
4260 | 4602 | | |||
4261 | d->mUpdateTrackFileModifiedTime.finish(); | 4603 | d->mUpdateTrackFileModifiedTime.finish(); | ||
4262 | } | 4604 | } | ||
4263 | 4605 | | |||
4264 | qulonglong DatabaseInterface::internalInsertTrack(qulonglong discoverId, const MusicAudioTrack &oneTrack, | 4606 | qulonglong DatabaseInterface::internalInsertTrack(const MusicAudioTrack &oneTrack, | ||
4265 | const QHash<QString, QUrl> &covers, bool &isInserted) | 4607 | const QHash<QString, QUrl> &covers, bool &isInserted) | ||
4266 | { | 4608 | { | ||
4267 | qulonglong resultId = 0; | 4609 | qulonglong resultId = 0; | ||
4268 | 4610 | | |||
4269 | if (oneTrack.title().isEmpty()) { | 4611 | if (oneTrack.title().isEmpty()) { | ||
4270 | return resultId; | 4612 | return resultId; | ||
4271 | } | 4613 | } | ||
4272 | 4614 | | |||
Show All 18 Lines | 4630 | if (isModifiedTrack) { | |||
4291 | auto oldTrack = internalTrackFromDatabaseId(existingTrackId); | 4633 | auto oldTrack = internalTrackFromDatabaseId(existingTrackId); | ||
4292 | oldAlbumId = oldTrack.albumId(); | 4634 | oldAlbumId = oldTrack.albumId(); | ||
4293 | 4635 | | |||
4294 | auto isSameTrack = true; | 4636 | auto isSameTrack = true; | ||
4295 | isSameTrack = isSameTrack && (oldTrack.title() == oneTrack.title()); | 4637 | isSameTrack = isSameTrack && (oldTrack.title() == oneTrack.title()); | ||
4296 | isSameTrack = isSameTrack && (oldTrack.albumName() == oneTrack.albumName()); | 4638 | isSameTrack = isSameTrack && (oldTrack.albumName() == oneTrack.albumName()); | ||
4297 | isSameTrack = isSameTrack && (oldTrack.artist() == oneTrack.artist()); | 4639 | isSameTrack = isSameTrack && (oldTrack.artist() == oneTrack.artist()); | ||
4298 | isSameTrack = isSameTrack && (oldTrack.albumArtist() == oneTrack.albumArtist()); | 4640 | isSameTrack = isSameTrack && (oldTrack.albumArtist() == oneTrack.albumArtist()); | ||
4641 | isSameTrack = isSameTrack && (oldTrack.trackNumberIsValid() == oneTrack.trackNumberIsValid()); | ||||
4642 | if (isSameTrack && oldTrack.trackNumberIsValid()) { | ||||
4299 | isSameTrack = isSameTrack && (oldTrack.trackNumber() == oneTrack.trackNumber()); | 4643 | isSameTrack = isSameTrack && (oldTrack.trackNumber() == oneTrack.trackNumber()); | ||
4644 | } | ||||
4645 | isSameTrack = isSameTrack && (oldTrack.discNumberIsValid() == oneTrack.discNumberIsValid()); | ||||
4646 | if (isSameTrack && oldTrack.discNumberIsValid()) { | ||||
4300 | isSameTrack = isSameTrack && (oldTrack.discNumber() == oneTrack.discNumber()); | 4647 | isSameTrack = isSameTrack && (oldTrack.discNumber() == oneTrack.discNumber()); | ||
4648 | } | ||||
4301 | isSameTrack = isSameTrack && (oldTrack.duration() == oneTrack.duration()); | 4649 | isSameTrack = isSameTrack && (oldTrack.duration() == oneTrack.duration()); | ||
4302 | isSameTrack = isSameTrack && (oldTrack.rating() == oneTrack.rating()); | 4650 | isSameTrack = isSameTrack && (oldTrack.rating() == oneTrack.rating()); | ||
4303 | isSameTrack = isSameTrack && (oldTrack.resourceURI() == oneTrack.resourceURI()); | 4651 | isSameTrack = isSameTrack && (oldTrack.resourceURI() == oneTrack.resourceURI()); | ||
4304 | isSameTrack = isSameTrack && (oldTrack.genre() == oneTrack.genre()); | 4652 | isSameTrack = isSameTrack && (oldTrack.genre() == oneTrack.genre()); | ||
4305 | isSameTrack = isSameTrack && (oldTrack.composer() == oneTrack.composer()); | 4653 | isSameTrack = isSameTrack && (oldTrack.composer() == oneTrack.composer()); | ||
4306 | isSameTrack = isSameTrack && (oldTrack.lyricist() == oneTrack.lyricist()); | 4654 | isSameTrack = isSameTrack && (oldTrack.lyricist() == oneTrack.lyricist()); | ||
4307 | isSameTrack = isSameTrack && (oldTrack.comment() == oneTrack.comment()); | 4655 | isSameTrack = isSameTrack && (oldTrack.comment() == oneTrack.comment()); | ||
4308 | isSameTrack = isSameTrack && (oldTrack.year() == oneTrack.year()); | 4656 | isSameTrack = isSameTrack && (oldTrack.year() == oneTrack.year()); | ||
4657 | isSameTrack = isSameTrack && (oldTrack.channelsIsValid() == oneTrack.channelsIsValid()); | ||||
4658 | if (isSameTrack && oldTrack.channelsIsValid()) { | ||||
4309 | isSameTrack = isSameTrack && (oldTrack.channels() == oneTrack.channels()); | 4659 | isSameTrack = isSameTrack && (oldTrack.channels() == oneTrack.channels()); | ||
4660 | } | ||||
4661 | isSameTrack = isSameTrack && (oldTrack.bitRateIsValid() == oneTrack.bitRateIsValid()); | ||||
4662 | if (isSameTrack && oldTrack.bitRateIsValid()) { | ||||
4310 | isSameTrack = isSameTrack && (oldTrack.bitRate() == oneTrack.bitRate()); | 4663 | isSameTrack = isSameTrack && (oldTrack.bitRate() == oneTrack.bitRate()); | ||
4664 | } | ||||
4665 | isSameTrack = isSameTrack && (oldTrack.sampleRateIsValid() == oneTrack.sampleRateIsValid()); | ||||
4666 | if (isSameTrack && oldTrack.sampleRateIsValid()) { | ||||
4311 | isSameTrack = isSameTrack && (oldTrack.sampleRate() == oneTrack.sampleRate()); | 4667 | isSameTrack = isSameTrack && (oldTrack.sampleRate() == oneTrack.sampleRate()); | ||
4668 | } | ||||
4312 | 4669 | | |||
4313 | if (isSameTrack) { | 4670 | if (isSameTrack) { | ||
4314 | return resultId; | 4671 | return resultId; | ||
4315 | } | 4672 | } | ||
4316 | 4673 | | |||
4317 | auto newTrack = oneTrack; | 4674 | auto newTrack = oneTrack; | ||
4318 | newTrack.setDatabaseId(resultId); | 4675 | newTrack.setDatabaseId(resultId); | ||
4319 | updateTrackInDatabase(newTrack, trackPath); | 4676 | updateTrackInDatabase(newTrack, trackPath); | ||
Show All 37 Lines | 4706 | while(true) { | |||
4357 | } | 4714 | } | ||
4358 | } | 4715 | } | ||
4359 | 4716 | | |||
4360 | resultId = existingTrackId; | 4717 | resultId = existingTrackId; | ||
4361 | 4718 | | |||
4362 | const auto &albumData = internalOneAlbumPartialData(albumId); | 4719 | const auto &albumData = internalOneAlbumPartialData(albumId); | ||
4363 | 4720 | | |||
4364 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackId"), existingTrackId); | 4721 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackId"), existingTrackId); | ||
4365 | d->mInsertTrackQuery.bindValue(QStringLiteral(":discoverId"), discoverId); | | |||
4366 | d->mInsertTrackQuery.bindValue(QStringLiteral(":fileName"), oneTrack.resourceURI()); | 4722 | d->mInsertTrackQuery.bindValue(QStringLiteral(":fileName"), oneTrack.resourceURI()); | ||
4367 | d->mInsertTrackQuery.bindValue(QStringLiteral(":priority"), priority); | 4723 | d->mInsertTrackQuery.bindValue(QStringLiteral(":priority"), priority); | ||
4368 | d->mInsertTrackQuery.bindValue(QStringLiteral(":title"), oneTrack.title()); | 4724 | d->mInsertTrackQuery.bindValue(QStringLiteral(":title"), oneTrack.title()); | ||
4369 | insertArtist(oneTrack.artist()); | 4725 | insertArtist(oneTrack.artist()); | ||
4370 | d->mInsertTrackQuery.bindValue(QStringLiteral(":artistName"), oneTrack.artist()); | 4726 | d->mInsertTrackQuery.bindValue(QStringLiteral(":artistName"), oneTrack.artist()); | ||
4371 | d->mInsertTrackQuery.bindValue(QStringLiteral(":albumTitle"), albumData[AlbumDataType::key_type::TitleRole]); | 4727 | d->mInsertTrackQuery.bindValue(QStringLiteral(":albumTitle"), albumData[AlbumDataType::key_type::TitleRole]); | ||
4372 | d->mInsertTrackQuery.bindValue(QStringLiteral(":albumArtistName"), albumData[AlbumDataType::key_type::ArtistRole]); | 4728 | d->mInsertTrackQuery.bindValue(QStringLiteral(":albumArtistName"), albumData[AlbumDataType::key_type::ArtistRole]); | ||
4373 | d->mInsertTrackQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | 4729 | d->mInsertTrackQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | ||
4730 | if (oneTrack.trackNumberIsValid()) { | ||||
4374 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackNumber"), oneTrack.trackNumber()); | 4731 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackNumber"), oneTrack.trackNumber()); | ||
4732 | } | ||||
4733 | if (oneTrack.discNumberIsValid()) { | ||||
4375 | d->mInsertTrackQuery.bindValue(QStringLiteral(":discNumber"), oneTrack.discNumber()); | 4734 | d->mInsertTrackQuery.bindValue(QStringLiteral(":discNumber"), oneTrack.discNumber()); | ||
4735 | } | ||||
4376 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackDuration"), QVariant::fromValue<qlonglong>(oneTrack.duration().msecsSinceStartOfDay())); | 4736 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackDuration"), QVariant::fromValue<qlonglong>(oneTrack.duration().msecsSinceStartOfDay())); | ||
4377 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackRating"), oneTrack.rating()); | 4737 | d->mInsertTrackQuery.bindValue(QStringLiteral(":trackRating"), oneTrack.rating()); | ||
4378 | if (insertGenre(oneTrack.genre()) != 0) { | 4738 | if (insertGenre(oneTrack.genre()) != 0) { | ||
4379 | d->mInsertTrackQuery.bindValue(QStringLiteral(":genre"), oneTrack.genre()); | 4739 | d->mInsertTrackQuery.bindValue(QStringLiteral(":genre"), oneTrack.genre()); | ||
4380 | } else { | 4740 | } else { | ||
4381 | d->mInsertTrackQuery.bindValue(QStringLiteral(":genre"), {}); | 4741 | d->mInsertTrackQuery.bindValue(QStringLiteral(":genre"), {}); | ||
4382 | } | 4742 | } | ||
4383 | if (insertComposer(oneTrack.composer()) != 0) { | 4743 | if (insertComposer(oneTrack.composer()) != 0) { | ||
4384 | d->mInsertTrackQuery.bindValue(QStringLiteral(":composer"), oneTrack.composer()); | 4744 | d->mInsertTrackQuery.bindValue(QStringLiteral(":composer"), oneTrack.composer()); | ||
4385 | } else { | 4745 | } else { | ||
4386 | d->mInsertTrackQuery.bindValue(QStringLiteral(":composer"), {}); | 4746 | d->mInsertTrackQuery.bindValue(QStringLiteral(":composer"), {}); | ||
4387 | } | 4747 | } | ||
4388 | if (insertLyricist(oneTrack.lyricist()) != 0) { | 4748 | if (insertLyricist(oneTrack.lyricist()) != 0) { | ||
4389 | d->mInsertTrackQuery.bindValue(QStringLiteral(":lyricist"), oneTrack.lyricist()); | 4749 | d->mInsertTrackQuery.bindValue(QStringLiteral(":lyricist"), oneTrack.lyricist()); | ||
4390 | } else { | 4750 | } else { | ||
4391 | d->mInsertTrackQuery.bindValue(QStringLiteral(":lyricist"), {}); | 4751 | d->mInsertTrackQuery.bindValue(QStringLiteral(":lyricist"), {}); | ||
4392 | } | 4752 | } | ||
4393 | d->mInsertTrackQuery.bindValue(QStringLiteral(":comment"), oneTrack.comment()); | 4753 | d->mInsertTrackQuery.bindValue(QStringLiteral(":comment"), oneTrack.comment()); | ||
4394 | d->mInsertTrackQuery.bindValue(QStringLiteral(":year"), oneTrack.year()); | 4754 | d->mInsertTrackQuery.bindValue(QStringLiteral(":year"), oneTrack.year()); | ||
4755 | if (oneTrack.channelsIsValid()) { | ||||
4395 | d->mInsertTrackQuery.bindValue(QStringLiteral(":channels"), oneTrack.channels()); | 4756 | d->mInsertTrackQuery.bindValue(QStringLiteral(":channels"), oneTrack.channels()); | ||
4757 | } | ||||
4758 | if (oneTrack.bitRateIsValid()) { | ||||
4396 | d->mInsertTrackQuery.bindValue(QStringLiteral(":bitRate"), oneTrack.bitRate()); | 4759 | d->mInsertTrackQuery.bindValue(QStringLiteral(":bitRate"), oneTrack.bitRate()); | ||
4760 | } | ||||
4761 | if (oneTrack.sampleRateIsValid()) { | ||||
4397 | d->mInsertTrackQuery.bindValue(QStringLiteral(":sampleRate"), oneTrack.sampleRate()); | 4762 | d->mInsertTrackQuery.bindValue(QStringLiteral(":sampleRate"), oneTrack.sampleRate()); | ||
4763 | } | ||||
4398 | d->mInsertTrackQuery.bindValue(QStringLiteral(":hasEmbeddedCover"), oneTrack.hasEmbeddedCover()); | 4764 | d->mInsertTrackQuery.bindValue(QStringLiteral(":hasEmbeddedCover"), oneTrack.hasEmbeddedCover()); | ||
4399 | 4765 | | |||
4400 | auto result = d->mInsertTrackQuery.exec(); | 4766 | auto result = execQuery(d->mInsertTrackQuery); | ||
4401 | 4767 | | |||
4402 | if (result && d->mInsertTrackQuery.isActive()) { | 4768 | if (result && d->mInsertTrackQuery.isActive()) { | ||
4403 | d->mInsertTrackQuery.finish(); | 4769 | d->mInsertTrackQuery.finish(); | ||
4404 | 4770 | | |||
4405 | if (!isModifiedTrack) { | 4771 | if (!isModifiedTrack) { | ||
4406 | ++d->mTrackId; | 4772 | ++d->mTrackId; | ||
4407 | } | 4773 | } | ||
4408 | 4774 | | |||
Show All 20 Lines | 4787 | if (albumId != 0) { | |||
4429 | } | 4795 | } | ||
4430 | recordModifiedAlbum(albumId); | 4796 | recordModifiedAlbum(albumId); | ||
4431 | } | 4797 | } | ||
4432 | } else { | 4798 | } else { | ||
4433 | d->mInsertTrackQuery.finish(); | 4799 | d->mInsertTrackQuery.finish(); | ||
4434 | 4800 | | |||
4435 | Q_EMIT databaseError(); | 4801 | Q_EMIT databaseError(); | ||
4436 | 4802 | | |||
4437 | qDebug() << "DatabaseInterface::internalInsertTrack" << oneTrack << oneTrack.resourceURI(); | 4803 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack" << oneTrack << oneTrack.resourceURI(); | ||
4438 | qDebug() << "DatabaseInterface::internalInsertTrack" << d->mInsertTrackQuery.lastQuery(); | 4804 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack" << d->mInsertTrackQuery.lastQuery(); | ||
4439 | qDebug() << "DatabaseInterface::internalInsertTrack" << d->mInsertTrackQuery.boundValues(); | 4805 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack" << d->mInsertTrackQuery.boundValues(); | ||
4440 | qDebug() << "DatabaseInterface::internalInsertTrack" << d->mInsertTrackQuery.lastError(); | 4806 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack" << d->mInsertTrackQuery.lastError(); | ||
4441 | } | 4807 | } | ||
4442 | 4808 | | |||
4443 | return resultId; | 4809 | return resultId; | ||
4444 | } | 4810 | } | ||
4445 | 4811 | | |||
4446 | MusicAudioTrack DatabaseInterface::buildTrackFromDatabaseRecord(const QSqlRecord &trackRecord) const | 4812 | MusicAudioTrack DatabaseInterface::buildTrackFromDatabaseRecord(const QSqlRecord &trackRecord) const | ||
4447 | { | 4813 | { | ||
4448 | auto id = trackRecord.value(0).toULongLong(); | 4814 | auto id = trackRecord.value(0).toULongLong(); | ||
Show All 10 Lines | |||||
4459 | result.setArtist(trackRecord.value(3).toString()); | 4825 | result.setArtist(trackRecord.value(3).toString()); | ||
4460 | 4826 | | |||
4461 | if (trackRecord.value(4).isValid()) { | 4827 | if (trackRecord.value(4).isValid()) { | ||
4462 | result.setAlbumArtist(trackRecord.value(4).toString()); | 4828 | result.setAlbumArtist(trackRecord.value(4).toString()); | ||
4463 | } | 4829 | } | ||
4464 | 4830 | | |||
4465 | result.setResourceURI(trackRecord.value(5).toUrl()); | 4831 | result.setResourceURI(trackRecord.value(5).toUrl()); | ||
4466 | result.setFileModificationTime(trackRecord.value(6).toDateTime()); | 4832 | result.setFileModificationTime(trackRecord.value(6).toDateTime()); | ||
4833 | if (trackRecord.value(7).isValid()) { | ||||
4467 | result.setTrackNumber(trackRecord.value(7).toInt()); | 4834 | result.setTrackNumber(trackRecord.value(7).toInt()); | ||
4835 | } | ||||
4836 | if (trackRecord.value(8).isValid()) { | ||||
4468 | result.setDiscNumber(trackRecord.value(8).toInt()); | 4837 | result.setDiscNumber(trackRecord.value(8).toInt()); | ||
4838 | } | ||||
4469 | result.setDuration(QTime::fromMSecsSinceStartOfDay(trackRecord.value(9).toInt())); | 4839 | result.setDuration(QTime::fromMSecsSinceStartOfDay(trackRecord.value(9).toInt())); | ||
4470 | result.setAlbumName(trackRecord.value(10).toString()); | 4840 | result.setAlbumName(trackRecord.value(10).toString()); | ||
4471 | result.setRating(trackRecord.value(11).toInt()); | 4841 | result.setRating(trackRecord.value(11).toInt()); | ||
4472 | result.setAlbumCover(trackRecord.value(12).toUrl()); | 4842 | result.setAlbumCover(trackRecord.value(12).toUrl()); | ||
4473 | result.setIsSingleDiscAlbum(trackRecord.value(13).toBool()); | 4843 | result.setIsSingleDiscAlbum(trackRecord.value(13).toBool()); | ||
4474 | result.setGenre(trackRecord.value(14).toString()); | 4844 | result.setGenre(trackRecord.value(14).toString()); | ||
4475 | result.setComposer(trackRecord.value(15).toString()); | 4845 | result.setComposer(trackRecord.value(15).toString()); | ||
4476 | result.setLyricist(trackRecord.value(16).toString()); | 4846 | result.setLyricist(trackRecord.value(16).toString()); | ||
4477 | result.setComment(trackRecord.value(17).toString()); | 4847 | result.setComment(trackRecord.value(17).toString()); | ||
4478 | result.setYear(trackRecord.value(18).toInt()); | 4848 | result.setYear(trackRecord.value(18).toInt()); | ||
4479 | result.setChannels(trackRecord.value(19).toInt()); | 4849 | if (trackRecord.value(19).isValid()) { | ||
4480 | result.setBitRate(trackRecord.value(20).toInt()); | 4850 | bool isValid; | ||
4481 | result.setSampleRate(trackRecord.value(21).toInt()); | 4851 | auto value = trackRecord.value(19).toInt(&isValid); | ||
4852 | if (isValid) { | ||||
4853 | result.setChannels(value); | ||||
4854 | } | ||||
4855 | } | ||||
4856 | if (trackRecord.value(20).isValid()) { | ||||
4857 | bool isValid; | ||||
4858 | auto value = trackRecord.value(20).toInt(&isValid); | ||||
4859 | if (isValid) { | ||||
4860 | result.setBitRate(value); | ||||
4861 | } | ||||
4862 | } | ||||
4863 | if (trackRecord.value(21).isValid()) { | ||||
4864 | bool isValid; | ||||
4865 | auto value = trackRecord.value(21).toInt(&isValid); | ||||
4866 | if (isValid) { | ||||
4867 | result.setSampleRate(value); | ||||
4868 | } | ||||
4869 | } | ||||
4482 | result.setAlbumId(trackRecord.value(2).toULongLong()); | 4870 | result.setAlbumId(trackRecord.value(2).toULongLong()); | ||
4483 | result.setHasEmbeddedCover(trackRecord.value(22).toBool()); | 4871 | result.setHasEmbeddedCover(trackRecord.value(22).toBool()); | ||
4484 | 4872 | | |||
4485 | result.setValid(true); | 4873 | result.setValid(true); | ||
4486 | 4874 | | |||
4487 | return result; | 4875 | return result; | ||
4488 | } | 4876 | } | ||
4489 | 4877 | | |||
4490 | DatabaseInterface::TrackDataType DatabaseInterface::buildTrackDataFromDatabaseRecord(const QSqlRecord &trackRecord) const | 4878 | DatabaseInterface::TrackDataType DatabaseInterface::buildTrackDataFromDatabaseRecord(const QSqlRecord &trackRecord) const | ||
4491 | { | 4879 | { | ||
4492 | TrackDataType result; | 4880 | TrackDataType result; | ||
4493 | 4881 | | |||
4494 | result[TrackDataType::key_type::DatabaseIdRole] = trackRecord.value(0); | 4882 | result[TrackDataType::key_type::DatabaseIdRole] = trackRecord.value(0); | ||
4495 | result[TrackDataType::key_type::TitleRole] = trackRecord.value(1); | 4883 | result[TrackDataType::key_type::TitleRole] = trackRecord.value(1); | ||
4884 | if (!trackRecord.value(10).isNull()) { | ||||
4496 | result[TrackDataType::key_type::AlbumRole] = trackRecord.value(10); | 4885 | result[TrackDataType::key_type::AlbumRole] = trackRecord.value(10); | ||
4497 | result[TrackDataType::key_type::AlbumIdRole] = trackRecord.value(2); | 4886 | result[TrackDataType::key_type::AlbumIdRole] = trackRecord.value(2); | ||
4887 | } | ||||
4888 | if (!trackRecord.value(3).isNull()) { | ||||
4498 | result[TrackDataType::key_type::ArtistRole] = trackRecord.value(3); | 4889 | result[TrackDataType::key_type::ArtistRole] = trackRecord.value(3); | ||
4890 | } | ||||
4891 | if (!trackRecord.value(4).isNull()) { | ||||
4499 | result[TrackDataType::key_type::AlbumArtistRole] = trackRecord.value(4); | 4892 | result[TrackDataType::key_type::AlbumArtistRole] = trackRecord.value(4); | ||
4893 | } | ||||
4500 | result[TrackDataType::key_type::ResourceRole] = trackRecord.value(5); | 4894 | result[TrackDataType::key_type::ResourceRole] = trackRecord.value(5); | ||
4895 | if (!trackRecord.value(7).isNull()) { | ||||
4501 | result[TrackDataType::key_type::TrackNumberRole] = trackRecord.value(7); | 4896 | result[TrackDataType::key_type::TrackNumberRole] = trackRecord.value(7); | ||
4897 | } | ||||
4898 | if (!trackRecord.value(8).isNull()) { | ||||
4502 | result[TrackDataType::key_type::DiscNumberRole] = trackRecord.value(8); | 4899 | result[TrackDataType::key_type::DiscNumberRole] = trackRecord.value(8); | ||
4900 | } | ||||
4503 | result[TrackDataType::key_type::DurationRole] = QTime::fromMSecsSinceStartOfDay(trackRecord.value(9).toInt()); | 4901 | result[TrackDataType::key_type::DurationRole] = QTime::fromMSecsSinceStartOfDay(trackRecord.value(9).toInt()); | ||
4504 | result[TrackDataType::key_type::MilliSecondsDurationRole] = trackRecord.value(9).toInt(); | 4902 | result[TrackDataType::key_type::MilliSecondsDurationRole] = trackRecord.value(9).toInt(); | ||
4505 | result[TrackDataType::key_type::RatingRole] = trackRecord.value(11); | 4903 | result[TrackDataType::key_type::RatingRole] = trackRecord.value(11); | ||
4904 | if (!trackRecord.value(12).isNull()) { | ||||
4506 | result[TrackDataType::key_type::ImageUrlRole] = QUrl(trackRecord.value(12).toString()); | 4905 | result[TrackDataType::key_type::ImageUrlRole] = QUrl(trackRecord.value(12).toString()); | ||
4906 | } | ||||
4507 | result[TrackDataType::key_type::IsSingleDiscAlbumRole] = trackRecord.value(13); | 4907 | result[TrackDataType::key_type::IsSingleDiscAlbumRole] = trackRecord.value(13); | ||
4908 | if (!trackRecord.value(14).isNull()) { | ||||
4508 | result[TrackDataType::key_type::GenreRole] = trackRecord.value(14); | 4909 | result[TrackDataType::key_type::GenreRole] = trackRecord.value(14); | ||
4910 | } | ||||
4911 | if (!trackRecord.value(15).isNull()) { | ||||
4509 | result[TrackDataType::key_type::ComposerRole] = trackRecord.value(15); | 4912 | result[TrackDataType::key_type::ComposerRole] = trackRecord.value(15); | ||
4913 | } | ||||
4914 | if (!trackRecord.value(16).isNull()) { | ||||
4510 | result[TrackDataType::key_type::LyricistRole] = trackRecord.value(16); | 4915 | result[TrackDataType::key_type::LyricistRole] = trackRecord.value(16); | ||
4916 | } | ||||
4511 | result[TrackDataType::key_type::HasEmbeddedCover] = trackRecord.value(22); | 4917 | result[TrackDataType::key_type::HasEmbeddedCover] = trackRecord.value(22); | ||
4512 | result[TrackDataType::key_type::FileModificationTime] = trackRecord.value(6); | 4918 | result[TrackDataType::key_type::FileModificationTime] = trackRecord.value(6); | ||
4919 | if (!trackRecord.value(24).isNull()) { | ||||
4513 | result[TrackDataType::key_type::FirstPlayDate] = trackRecord.value(24); | 4920 | result[TrackDataType::key_type::FirstPlayDate] = trackRecord.value(24); | ||
4921 | } | ||||
4922 | if (!trackRecord.value(25).isNull()) { | ||||
4514 | result[TrackDataType::key_type::LastPlayDate] = trackRecord.value(25); | 4923 | result[TrackDataType::key_type::LastPlayDate] = trackRecord.value(25); | ||
4924 | } | ||||
4515 | result[TrackDataType::key_type::PlayCounter] = trackRecord.value(26); | 4925 | result[TrackDataType::key_type::PlayCounter] = trackRecord.value(26); | ||
4516 | result[TrackDataType::key_type::PlayFrequency] = trackRecord.value(27); | 4926 | result[TrackDataType::key_type::PlayFrequency] = trackRecord.value(27); | ||
4517 | result[DataType::key_type::ElementTypeRole] = ElisaUtils::Track; | 4927 | result[DataType::key_type::ElementTypeRole] = ElisaUtils::Track; | ||
4518 | 4928 | | |||
4519 | return result; | 4929 | return result; | ||
4520 | } | 4930 | } | ||
4521 | 4931 | | |||
4522 | void DatabaseInterface::internalRemoveTracksList(const QList<QUrl> &removedTracks) | 4932 | void DatabaseInterface::internalRemoveTracksList(const QList<QUrl> &removedTracks) | ||
Show All 28 Lines | 4941 | for (const auto &removedTrackFileName : removedTracks) { | |||
4551 | 4961 | | |||
4552 | if (removedArtistId != 0 && allTracksFromArtist.isEmpty() && allAlbumsFromArtist.isEmpty()) { | 4962 | if (removedArtistId != 0 && allTracksFromArtist.isEmpty() && allAlbumsFromArtist.isEmpty()) { | ||
4553 | removeArtistInDatabase(removedArtistId); | 4963 | removeArtistInDatabase(removedArtistId); | ||
4554 | Q_EMIT artistRemoved(removedArtistId); | 4964 | Q_EMIT artistRemoved(removedArtistId); | ||
4555 | } | 4965 | } | ||
4556 | 4966 | | |||
4557 | d->mRemoveTracksMapping.bindValue(QStringLiteral(":fileName"), removedTrackFileName.toString()); | 4967 | d->mRemoveTracksMapping.bindValue(QStringLiteral(":fileName"), removedTrackFileName.toString()); | ||
4558 | 4968 | | |||
4559 | auto result = d->mRemoveTracksMapping.exec(); | 4969 | auto result = execQuery(d->mRemoveTracksMapping); | ||
4560 | 4970 | | |||
4561 | if (!result || !d->mRemoveTracksMapping.isActive()) { | 4971 | if (!result || !d->mRemoveTracksMapping.isActive()) { | ||
4562 | Q_EMIT databaseError(); | 4972 | Q_EMIT databaseError(); | ||
4563 | 4973 | | |||
4564 | qDebug() << "DatabaseInterface::internalRemoveTracksList" << d->mRemoveTracksMapping.lastQuery(); | 4974 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalRemoveTracksList" << d->mRemoveTracksMapping.lastQuery(); | ||
4565 | qDebug() << "DatabaseInterface::internalRemoveTracksList" << d->mRemoveTracksMapping.boundValues(); | 4975 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalRemoveTracksList" << d->mRemoveTracksMapping.boundValues(); | ||
4566 | qDebug() << "DatabaseInterface::internalRemoveTracksList" << d->mRemoveTracksMapping.lastError(); | 4976 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalRemoveTracksList" << d->mRemoveTracksMapping.lastError(); | ||
4567 | 4977 | | |||
4568 | continue; | 4978 | continue; | ||
4569 | } | 4979 | } | ||
4570 | 4980 | | |||
4571 | d->mRemoveTracksMapping.finish(); | 4981 | d->mRemoveTracksMapping.finish(); | ||
4572 | } | 4982 | } | ||
4573 | 4983 | | |||
4574 | for (auto modifiedAlbumId : modifiedAlbums) { | 4984 | for (auto modifiedAlbumId : modifiedAlbums) { | ||
Show All 20 Lines | |||||
4595 | } | 5005 | } | ||
4596 | 5006 | | |||
4597 | QUrl DatabaseInterface::internalAlbumArtUriFromAlbumId(qulonglong albumId) | 5007 | QUrl DatabaseInterface::internalAlbumArtUriFromAlbumId(qulonglong albumId) | ||
4598 | { | 5008 | { | ||
4599 | auto result = QUrl(); | 5009 | auto result = QUrl(); | ||
4600 | 5010 | | |||
4601 | d->mSelectAlbumArtUriFromAlbumIdQuery.bindValue(QStringLiteral(":albumId"), albumId); | 5011 | d->mSelectAlbumArtUriFromAlbumIdQuery.bindValue(QStringLiteral(":albumId"), albumId); | ||
4602 | 5012 | | |||
4603 | auto queryResult = d->mSelectAlbumArtUriFromAlbumIdQuery.exec(); | 5013 | auto queryResult = execQuery(d->mSelectAlbumArtUriFromAlbumIdQuery); | ||
4604 | 5014 | | |||
4605 | if (!queryResult || !d->mSelectAlbumArtUriFromAlbumIdQuery.isSelect() || !d->mSelectAlbumArtUriFromAlbumIdQuery.isActive()) { | 5015 | if (!queryResult || !d->mSelectAlbumArtUriFromAlbumIdQuery.isSelect() || !d->mSelectAlbumArtUriFromAlbumIdQuery.isActive()) { | ||
4606 | Q_EMIT databaseError(); | 5016 | Q_EMIT databaseError(); | ||
4607 | 5017 | | |||
4608 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastQuery(); | 5018 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastQuery(); | ||
4609 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectAlbumArtUriFromAlbumIdQuery.boundValues(); | 5019 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectAlbumArtUriFromAlbumIdQuery.boundValues(); | ||
4610 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastError(); | 5020 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectAlbumArtUriFromAlbumIdQuery.lastError(); | ||
4611 | 5021 | | |||
4612 | d->mSelectAlbumArtUriFromAlbumIdQuery.finish(); | 5022 | d->mSelectAlbumArtUriFromAlbumIdQuery.finish(); | ||
4613 | 5023 | | |||
4614 | return result; | 5024 | return result; | ||
4615 | } | 5025 | } | ||
4616 | 5026 | | |||
4617 | if (!d->mSelectAlbumArtUriFromAlbumIdQuery.next()) { | 5027 | if (!d->mSelectAlbumArtUriFromAlbumIdQuery.next()) { | ||
4618 | d->mSelectAlbumArtUriFromAlbumIdQuery.finish(); | 5028 | d->mSelectAlbumArtUriFromAlbumIdQuery.finish(); | ||
Show All 9 Lines | |||||
4628 | } | 5038 | } | ||
4629 | 5039 | | |||
4630 | bool DatabaseInterface::isValidArtist(qulonglong albumId) | 5040 | bool DatabaseInterface::isValidArtist(qulonglong albumId) | ||
4631 | { | 5041 | { | ||
4632 | auto result = false; | 5042 | auto result = false; | ||
4633 | 5043 | | |||
4634 | d->mSelectAlbumQuery.bindValue(QStringLiteral(":albumId"), albumId); | 5044 | d->mSelectAlbumQuery.bindValue(QStringLiteral(":albumId"), albumId); | ||
4635 | 5045 | | |||
4636 | auto queryResult = d->mSelectAlbumQuery.exec(); | 5046 | auto queryResult = execQuery(d->mSelectAlbumQuery); | ||
4637 | 5047 | | |||
4638 | if (!queryResult || !d->mSelectAlbumQuery.isSelect() || !d->mSelectAlbumQuery.isActive()) { | 5048 | if (!queryResult || !d->mSelectAlbumQuery.isSelect() || !d->mSelectAlbumQuery.isActive()) { | ||
4639 | Q_EMIT databaseError(); | 5049 | Q_EMIT databaseError(); | ||
4640 | 5050 | | |||
4641 | qDebug() << "DatabaseInterface::internalAlbumFromId" << d->mSelectAlbumQuery.lastQuery(); | 5051 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumFromId" << d->mSelectAlbumQuery.lastQuery(); | ||
4642 | qDebug() << "DatabaseInterface::internalAlbumFromId" << d->mSelectAlbumQuery.boundValues(); | 5052 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumFromId" << d->mSelectAlbumQuery.boundValues(); | ||
4643 | qDebug() << "DatabaseInterface::internalAlbumFromId" << d->mSelectAlbumQuery.lastError(); | 5053 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumFromId" << d->mSelectAlbumQuery.lastError(); | ||
4644 | 5054 | | |||
4645 | d->mSelectAlbumQuery.finish(); | 5055 | d->mSelectAlbumQuery.finish(); | ||
4646 | 5056 | | |||
4647 | return result; | 5057 | return result; | ||
4648 | } | 5058 | } | ||
4649 | 5059 | | |||
4650 | if (!d->mSelectAlbumQuery.next()) { | 5060 | if (!d->mSelectAlbumQuery.next()) { | ||
4651 | d->mSelectAlbumQuery.finish(); | 5061 | d->mSelectAlbumQuery.finish(); | ||
4652 | 5062 | | |||
4653 | return result; | 5063 | return result; | ||
4654 | } | 5064 | } | ||
4655 | 5065 | | |||
4656 | const auto ¤tRecord = d->mSelectAlbumQuery.record(); | 5066 | const auto ¤tRecord = d->mSelectAlbumQuery.record(); | ||
4657 | 5067 | | |||
4658 | result = !currentRecord.value(2).toString().isEmpty(); | 5068 | result = !currentRecord.value(2).toString().isEmpty(); | ||
4659 | 5069 | | |||
4660 | return result; | 5070 | return result; | ||
4661 | } | 5071 | } | ||
4662 | 5072 | | |||
4663 | QHash<QUrl, QDateTime> DatabaseInterface::internalAllFileNameFromSource(const QString &sourceName) | | |||
4664 | { | | |||
4665 | QHash<QUrl, QDateTime> allFileNames; | | |||
4666 | | ||||
4667 | d->mSelectAllTrackFilesFromSourceQuery.bindValue(QStringLiteral(":sourceName"), sourceName); | | |||
4668 | | ||||
4669 | auto queryResult = d->mSelectAllTrackFilesFromSourceQuery.exec(); | | |||
4670 | | ||||
4671 | if (!queryResult || !d->mSelectAllTrackFilesFromSourceQuery.isSelect() || !d->mSelectAllTrackFilesFromSourceQuery.isActive()) { | | |||
4672 | Q_EMIT databaseError(); | | |||
4673 | | ||||
4674 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mSelectAllTrackFilesFromSourceQuery.lastQuery(); | | |||
4675 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mSelectAllTrackFilesFromSourceQuery.boundValues(); | | |||
4676 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mSelectAllTrackFilesFromSourceQuery.lastError(); | | |||
4677 | | ||||
4678 | d->mSelectAllTrackFilesFromSourceQuery.finish(); | | |||
4679 | | ||||
4680 | return allFileNames; | | |||
4681 | } | | |||
4682 | | ||||
4683 | while(d->mSelectAllTrackFilesFromSourceQuery.next()) { | | |||
4684 | auto fileName = d->mSelectAllTrackFilesFromSourceQuery.record().value(0).toUrl(); | | |||
4685 | auto fileModificationTime = d->mSelectAllTrackFilesFromSourceQuery.record().value(1).toDateTime(); | | |||
4686 | | ||||
4687 | allFileNames[fileName] = fileModificationTime; | | |||
4688 | } | | |||
4689 | | ||||
4690 | d->mSelectAllTrackFilesFromSourceQuery.finish(); | | |||
4691 | | ||||
4692 | return allFileNames; | | |||
4693 | } | | |||
4694 | | ||||
4695 | bool DatabaseInterface::internalGenericPartialData(QSqlQuery &query) | 5073 | bool DatabaseInterface::internalGenericPartialData(QSqlQuery &query) | ||
4696 | { | 5074 | { | ||
4697 | auto result = false; | 5075 | auto result = false; | ||
4698 | 5076 | | |||
4699 | auto queryResult = query.exec(); | 5077 | auto queryResult = execQuery(query); | ||
4700 | 5078 | | |||
4701 | if (!queryResult || !query.isSelect() || !query.isActive()) { | 5079 | if (!queryResult || !query.isSelect() || !query.isActive()) { | ||
4702 | Q_EMIT databaseError(); | 5080 | Q_EMIT databaseError(); | ||
4703 | 5081 | | |||
4704 | qDebug() << "DatabaseInterface::internalAllGenericPartialData" << query.lastQuery(); | 5082 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAllGenericPartialData" << query.lastQuery(); | ||
4705 | qDebug() << "DatabaseInterface::internalAllGenericPartialData" << query.boundValues(); | 5083 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAllGenericPartialData" << query.boundValues(); | ||
4706 | qDebug() << "DatabaseInterface::internalAllGenericPartialData" << query.lastError(); | 5084 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAllGenericPartialData" << query.lastError(); | ||
4707 | 5085 | | |||
4708 | query.finish(); | 5086 | query.finish(); | ||
4709 | 5087 | | |||
4710 | auto transactionResult = finishTransaction(); | 5088 | auto transactionResult = finishTransaction(); | ||
4711 | if (!transactionResult) { | 5089 | if (!transactionResult) { | ||
4712 | return result; | 5090 | return result; | ||
4713 | } | 5091 | } | ||
4714 | 5092 | | |||
Show All 10 Lines | 5102 | { | |||
4725 | auto result = qulonglong(0); | 5103 | auto result = qulonglong(0); | ||
4726 | 5104 | | |||
4727 | if (name.isEmpty()) { | 5105 | if (name.isEmpty()) { | ||
4728 | return result; | 5106 | return result; | ||
4729 | } | 5107 | } | ||
4730 | 5108 | | |||
4731 | d->mSelectLyricistByNameQuery.bindValue(QStringLiteral(":name"), name); | 5109 | d->mSelectLyricistByNameQuery.bindValue(QStringLiteral(":name"), name); | ||
4732 | 5110 | | |||
4733 | auto queryResult = d->mSelectLyricistByNameQuery.exec(); | 5111 | auto queryResult = execQuery(d->mSelectLyricistByNameQuery); | ||
4734 | 5112 | | |||
4735 | if (!queryResult || !d->mSelectLyricistByNameQuery.isSelect() || !d->mSelectLyricistByNameQuery.isActive()) { | 5113 | if (!queryResult || !d->mSelectLyricistByNameQuery.isSelect() || !d->mSelectLyricistByNameQuery.isActive()) { | ||
4736 | Q_EMIT databaseError(); | 5114 | Q_EMIT databaseError(); | ||
4737 | 5115 | | |||
4738 | qDebug() << "DatabaseInterface::insertLyricist" << d->mSelectLyricistByNameQuery.lastQuery(); | 5116 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertLyricist" << d->mSelectLyricistByNameQuery.lastQuery(); | ||
4739 | qDebug() << "DatabaseInterface::insertLyricist" << d->mSelectLyricistByNameQuery.boundValues(); | 5117 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertLyricist" << d->mSelectLyricistByNameQuery.boundValues(); | ||
4740 | qDebug() << "DatabaseInterface::insertLyricist" << d->mSelectLyricistByNameQuery.lastError(); | 5118 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertLyricist" << d->mSelectLyricistByNameQuery.lastError(); | ||
4741 | 5119 | | |||
4742 | d->mSelectLyricistByNameQuery.finish(); | 5120 | d->mSelectLyricistByNameQuery.finish(); | ||
4743 | 5121 | | |||
4744 | return result; | 5122 | return result; | ||
4745 | } | 5123 | } | ||
4746 | 5124 | | |||
4747 | if (d->mSelectLyricistByNameQuery.next()) { | 5125 | if (d->mSelectLyricistByNameQuery.next()) { | ||
4748 | result = d->mSelectLyricistByNameQuery.record().value(0).toULongLong(); | 5126 | result = d->mSelectLyricistByNameQuery.record().value(0).toULongLong(); | ||
4749 | 5127 | | |||
4750 | d->mSelectLyricistByNameQuery.finish(); | 5128 | d->mSelectLyricistByNameQuery.finish(); | ||
4751 | 5129 | | |||
4752 | return result; | 5130 | return result; | ||
4753 | } | 5131 | } | ||
4754 | 5132 | | |||
4755 | d->mSelectLyricistByNameQuery.finish(); | 5133 | d->mSelectLyricistByNameQuery.finish(); | ||
4756 | 5134 | | |||
4757 | d->mInsertLyricistQuery.bindValue(QStringLiteral(":lyricistId"), d->mLyricistId); | 5135 | d->mInsertLyricistQuery.bindValue(QStringLiteral(":lyricistId"), d->mLyricistId); | ||
4758 | d->mInsertLyricistQuery.bindValue(QStringLiteral(":name"), name); | 5136 | d->mInsertLyricistQuery.bindValue(QStringLiteral(":name"), name); | ||
4759 | 5137 | | |||
4760 | queryResult = d->mInsertLyricistQuery.exec(); | 5138 | queryResult = execQuery(d->mInsertLyricistQuery); | ||
4761 | 5139 | | |||
4762 | if (!queryResult || !d->mInsertLyricistQuery.isActive()) { | 5140 | if (!queryResult || !d->mInsertLyricistQuery.isActive()) { | ||
4763 | Q_EMIT databaseError(); | 5141 | Q_EMIT databaseError(); | ||
4764 | 5142 | | |||
4765 | qDebug() << "DatabaseInterface::insertLyricist" << d->mInsertLyricistQuery.lastQuery(); | 5143 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertLyricist" << d->mInsertLyricistQuery.lastQuery(); | ||
4766 | qDebug() << "DatabaseInterface::insertLyricist" << d->mInsertLyricistQuery.boundValues(); | 5144 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertLyricist" << d->mInsertLyricistQuery.boundValues(); | ||
4767 | qDebug() << "DatabaseInterface::insertLyricist" << d->mInsertLyricistQuery.lastError(); | 5145 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertLyricist" << d->mInsertLyricistQuery.lastError(); | ||
4768 | 5146 | | |||
4769 | d->mInsertLyricistQuery.finish(); | 5147 | d->mInsertLyricistQuery.finish(); | ||
4770 | 5148 | | |||
4771 | return result; | 5149 | return result; | ||
4772 | } | 5150 | } | ||
4773 | 5151 | | |||
4774 | result = d->mLyricistId; | 5152 | result = d->mLyricistId; | ||
4775 | 5153 | | |||
4776 | ++d->mLyricistId; | 5154 | ++d->mLyricistId; | ||
4777 | 5155 | | |||
4778 | d->mInsertLyricistQuery.finish(); | 5156 | d->mInsertLyricistQuery.finish(); | ||
4779 | 5157 | | |||
4780 | Q_EMIT lyricistsAdded(internalAllLyricistsPartialData()); | 5158 | Q_EMIT lyricistsAdded(internalAllLyricistsPartialData()); | ||
4781 | 5159 | | |||
4782 | return result; | 5160 | return result; | ||
4783 | } | 5161 | } | ||
4784 | 5162 | | |||
5163 | QHash<QUrl, QDateTime> DatabaseInterface::internalAllFileName() | ||||
5164 | { | ||||
5165 | auto allFileNames = QHash<QUrl, QDateTime>{}; | ||||
5166 | | ||||
5167 | auto queryResult = execQuery(d->mSelectAllTrackFilesQuery); | ||||
5168 | | ||||
5169 | if (!queryResult || !d->mSelectAllTrackFilesQuery.isSelect() || !d->mSelectAllTrackFilesQuery.isActive()) { | ||||
5170 | Q_EMIT databaseError(); | ||||
5171 | | ||||
5172 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertMusicSource" << d->mSelectAllTrackFilesQuery.lastQuery(); | ||||
5173 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertMusicSource" << d->mSelectAllTrackFilesQuery.boundValues(); | ||||
5174 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertMusicSource" << d->mSelectAllTrackFilesQuery.lastError(); | ||||
5175 | | ||||
5176 | d->mSelectAllTrackFilesQuery.finish(); | ||||
5177 | | ||||
5178 | return allFileNames; | ||||
5179 | } | ||||
5180 | | ||||
5181 | while(d->mSelectAllTrackFilesQuery.next()) { | ||||
5182 | auto fileName = d->mSelectAllTrackFilesQuery.record().value(0).toUrl(); | ||||
5183 | auto fileModificationTime = d->mSelectAllTrackFilesQuery.record().value(1).toDateTime(); | ||||
5184 | | ||||
5185 | allFileNames[fileName] = fileModificationTime; | ||||
5186 | } | ||||
5187 | | ||||
5188 | d->mSelectAllTrackFilesQuery.finish(); | ||||
5189 | | ||||
5190 | return allFileNames; | ||||
5191 | } | ||||
5192 | | ||||
4785 | qulonglong DatabaseInterface::internalArtistIdFromName(const QString &name) | 5193 | qulonglong DatabaseInterface::internalArtistIdFromName(const QString &name) | ||
4786 | { | 5194 | { | ||
4787 | auto result = qulonglong(0); | 5195 | auto result = qulonglong(0); | ||
4788 | 5196 | | |||
4789 | if (name.isEmpty()) { | 5197 | if (name.isEmpty()) { | ||
4790 | return result; | 5198 | return result; | ||
4791 | } | 5199 | } | ||
4792 | 5200 | | |||
4793 | d->mSelectArtistByNameQuery.bindValue(QStringLiteral(":name"), name); | 5201 | d->mSelectArtistByNameQuery.bindValue(QStringLiteral(":name"), name); | ||
4794 | 5202 | | |||
4795 | auto queryResult = d->mSelectArtistByNameQuery.exec(); | 5203 | auto queryResult = execQuery(d->mSelectArtistByNameQuery); | ||
4796 | 5204 | | |||
4797 | if (!queryResult || !d->mSelectArtistByNameQuery.isSelect() || !d->mSelectArtistByNameQuery.isActive()) { | 5205 | if (!queryResult || !d->mSelectArtistByNameQuery.isSelect() || !d->mSelectArtistByNameQuery.isActive()) { | ||
4798 | Q_EMIT databaseError(); | 5206 | Q_EMIT databaseError(); | ||
4799 | 5207 | | |||
4800 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastQuery(); | 5208 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastQuery(); | ||
4801 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.boundValues(); | 5209 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.boundValues(); | ||
4802 | qDebug() << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastError(); | 5210 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertArtist" << d->mSelectArtistByNameQuery.lastError(); | ||
4803 | 5211 | | |||
4804 | d->mSelectArtistByNameQuery.finish(); | 5212 | d->mSelectArtistByNameQuery.finish(); | ||
4805 | 5213 | | |||
4806 | return result; | 5214 | return result; | ||
4807 | } | 5215 | } | ||
4808 | 5216 | | |||
4809 | if (!d->mSelectArtistByNameQuery.next()) { | 5217 | if (!d->mSelectArtistByNameQuery.next()) { | ||
4810 | d->mSelectArtistByNameQuery.finish(); | 5218 | d->mSelectArtistByNameQuery.finish(); | ||
4811 | 5219 | | |||
4812 | return result; | 5220 | return result; | ||
4813 | } | 5221 | } | ||
4814 | 5222 | | |||
4815 | result = d->mSelectArtistByNameQuery.record().value(0).toULongLong(); | 5223 | result = d->mSelectArtistByNameQuery.record().value(0).toULongLong(); | ||
4816 | 5224 | | |||
4817 | d->mSelectArtistByNameQuery.finish(); | 5225 | d->mSelectArtistByNameQuery.finish(); | ||
4818 | 5226 | | |||
4819 | return result; | 5227 | return result; | ||
4820 | } | 5228 | } | ||
4821 | 5229 | | |||
4822 | void DatabaseInterface::removeTrackInDatabase(qulonglong trackId) | 5230 | void DatabaseInterface::removeTrackInDatabase(qulonglong trackId) | ||
4823 | { | 5231 | { | ||
4824 | d->mRemoveTrackQuery.bindValue(QStringLiteral(":trackId"), trackId); | 5232 | d->mRemoveTrackQuery.bindValue(QStringLiteral(":trackId"), trackId); | ||
4825 | 5233 | | |||
4826 | auto result = d->mRemoveTrackQuery.exec(); | 5234 | auto result = execQuery(d->mRemoveTrackQuery); | ||
4827 | 5235 | | |||
4828 | if (!result || !d->mRemoveTrackQuery.isActive()) { | 5236 | if (!result || !d->mRemoveTrackQuery.isActive()) { | ||
4829 | Q_EMIT databaseError(); | 5237 | Q_EMIT databaseError(); | ||
4830 | 5238 | | |||
4831 | qDebug() << "DatabaseInterface::removeTrackInDatabase" << d->mRemoveTrackQuery.lastQuery(); | 5239 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeTrackInDatabase" << d->mRemoveTrackQuery.lastQuery(); | ||
4832 | qDebug() << "DatabaseInterface::removeTrackInDatabase" << d->mRemoveTrackQuery.boundValues(); | 5240 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeTrackInDatabase" << d->mRemoveTrackQuery.boundValues(); | ||
4833 | qDebug() << "DatabaseInterface::removeTrackInDatabase" << d->mRemoveTrackQuery.lastError(); | 5241 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeTrackInDatabase" << d->mRemoveTrackQuery.lastError(); | ||
4834 | } | 5242 | } | ||
4835 | 5243 | | |||
4836 | d->mRemoveTrackQuery.finish(); | 5244 | d->mRemoveTrackQuery.finish(); | ||
4837 | } | 5245 | } | ||
4838 | 5246 | | |||
4839 | void DatabaseInterface::updateTrackInDatabase(const MusicAudioTrack &oneTrack, const QString &albumPath) | 5247 | void DatabaseInterface::updateTrackInDatabase(const MusicAudioTrack &oneTrack, const QString &albumPath) | ||
4840 | { | 5248 | { | ||
4841 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":fileName"), oneTrack.resourceURI()); | 5249 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":fileName"), oneTrack.resourceURI()); | ||
4842 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackId"), oneTrack.databaseId()); | 5250 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackId"), oneTrack.databaseId()); | ||
4843 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":title"), oneTrack.title()); | 5251 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":title"), oneTrack.title()); | ||
4844 | insertArtist(oneTrack.artist()); | 5252 | insertArtist(oneTrack.artist()); | ||
4845 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":artistName"), oneTrack.artist()); | 5253 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":artistName"), oneTrack.artist()); | ||
4846 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumTitle"), oneTrack.albumName()); | 5254 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumTitle"), oneTrack.albumName()); | ||
4847 | if (oneTrack.isValidAlbumArtist()) { | 5255 | if (oneTrack.isValidAlbumArtist()) { | ||
4848 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumArtistName"), oneTrack.albumArtist()); | 5256 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumArtistName"), oneTrack.albumArtist()); | ||
4849 | } else { | 5257 | } else { | ||
4850 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumArtistName"), {}); | 5258 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumArtistName"), {}); | ||
4851 | } | 5259 | } | ||
4852 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumPath"), albumPath); | 5260 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":albumPath"), albumPath); | ||
5261 | if (oneTrack.trackNumberIsValid()) { | ||||
4853 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackNumber"), oneTrack.trackNumber()); | 5262 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackNumber"), oneTrack.trackNumber()); | ||
5263 | } else { | ||||
5264 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackNumber"), {}); | ||||
5265 | } | ||||
5266 | if (oneTrack.discNumberIsValid()) { | ||||
4854 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":discNumber"), oneTrack.discNumber()); | 5267 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":discNumber"), oneTrack.discNumber()); | ||
5268 | } else { | ||||
5269 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":discNumber"), {}); | ||||
5270 | } | ||||
4855 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackDuration"), QVariant::fromValue<qlonglong>(oneTrack.duration().msecsSinceStartOfDay())); | 5271 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackDuration"), QVariant::fromValue<qlonglong>(oneTrack.duration().msecsSinceStartOfDay())); | ||
4856 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackRating"), oneTrack.rating()); | 5272 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":trackRating"), oneTrack.rating()); | ||
4857 | if (insertGenre(oneTrack.genre()) != 0) { | 5273 | if (insertGenre(oneTrack.genre()) != 0) { | ||
4858 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":genre"), oneTrack.genre()); | 5274 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":genre"), oneTrack.genre()); | ||
4859 | } else { | 5275 | } else { | ||
4860 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":genre"), {}); | 5276 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":genre"), {}); | ||
4861 | } | 5277 | } | ||
4862 | if (insertComposer(oneTrack.composer()) != 0) { | 5278 | if (insertComposer(oneTrack.composer()) != 0) { | ||
4863 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":composer"), oneTrack.composer()); | 5279 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":composer"), oneTrack.composer()); | ||
4864 | } else { | 5280 | } else { | ||
4865 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":composer"), {}); | 5281 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":composer"), {}); | ||
4866 | } | 5282 | } | ||
4867 | if (insertLyricist(oneTrack.lyricist()) != 0) { | 5283 | if (insertLyricist(oneTrack.lyricist()) != 0) { | ||
4868 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":lyricist"), oneTrack.lyricist()); | 5284 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":lyricist"), oneTrack.lyricist()); | ||
4869 | } else { | 5285 | } else { | ||
4870 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":lyricist"), {}); | 5286 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":lyricist"), {}); | ||
4871 | } | 5287 | } | ||
4872 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":comment"), oneTrack.comment()); | 5288 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":comment"), oneTrack.comment()); | ||
4873 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":year"), oneTrack.year()); | 5289 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":year"), oneTrack.year()); | ||
5290 | if (oneTrack.channelsIsValid()) { | ||||
4874 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":channels"), oneTrack.channels()); | 5291 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":channels"), oneTrack.channels()); | ||
5292 | } else { | ||||
5293 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":channels"), {}); | ||||
5294 | } | ||||
5295 | if (oneTrack.bitRateIsValid()) { | ||||
4875 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":bitRate"), oneTrack.bitRate()); | 5296 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":bitRate"), oneTrack.bitRate()); | ||
5297 | } else { | ||||
5298 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":bitRate"), {}); | ||||
5299 | } | ||||
5300 | if (oneTrack.sampleRateIsValid()) { | ||||
4876 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":sampleRate"), oneTrack.sampleRate()); | 5301 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":sampleRate"), oneTrack.sampleRate()); | ||
5302 | } else { | ||||
5303 | d->mUpdateTrackQuery.bindValue(QStringLiteral(":sampleRate"), {}); | ||||
5304 | } | ||||
4877 | 5305 | | |||
4878 | auto result = d->mUpdateTrackQuery.exec(); | 5306 | auto result = execQuery(d->mUpdateTrackQuery); | ||
4879 | 5307 | | |||
4880 | if (!result || !d->mUpdateTrackQuery.isActive()) { | 5308 | if (!result || !d->mUpdateTrackQuery.isActive()) { | ||
4881 | Q_EMIT databaseError(); | 5309 | Q_EMIT databaseError(); | ||
4882 | 5310 | | |||
4883 | qDebug() << "DatabaseInterface::updateTrackInDatabase" << d->mUpdateTrackQuery.lastQuery(); | 5311 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << d->mUpdateTrackQuery.lastQuery(); | ||
4884 | qDebug() << "DatabaseInterface::updateTrackInDatabase" << d->mUpdateTrackQuery.boundValues(); | 5312 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << d->mUpdateTrackQuery.boundValues(); | ||
4885 | qDebug() << "DatabaseInterface::updateTrackInDatabase" << d->mUpdateTrackQuery.lastError(); | 5313 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackInDatabase" << d->mUpdateTrackQuery.lastError(); | ||
4886 | } | 5314 | } | ||
4887 | 5315 | | |||
4888 | d->mUpdateTrackQuery.finish(); | 5316 | d->mUpdateTrackQuery.finish(); | ||
4889 | } | 5317 | } | ||
4890 | 5318 | | |||
4891 | void DatabaseInterface::removeAlbumInDatabase(qulonglong albumId) | 5319 | void DatabaseInterface::removeAlbumInDatabase(qulonglong albumId) | ||
4892 | { | 5320 | { | ||
4893 | d->mRemoveAlbumQuery.bindValue(QStringLiteral(":albumId"), albumId); | 5321 | d->mRemoveAlbumQuery.bindValue(QStringLiteral(":albumId"), albumId); | ||
4894 | 5322 | | |||
4895 | auto result = d->mRemoveAlbumQuery.exec(); | 5323 | auto result = execQuery(d->mRemoveAlbumQuery); | ||
4896 | 5324 | | |||
4897 | if (!result || !d->mRemoveAlbumQuery.isActive()) { | 5325 | if (!result || !d->mRemoveAlbumQuery.isActive()) { | ||
4898 | Q_EMIT databaseError(); | 5326 | Q_EMIT databaseError(); | ||
4899 | 5327 | | |||
4900 | qDebug() << "DatabaseInterface::removeAlbumInDatabase" << d->mRemoveAlbumQuery.lastQuery(); | 5328 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeAlbumInDatabase" << d->mRemoveAlbumQuery.lastQuery(); | ||
4901 | qDebug() << "DatabaseInterface::removeAlbumInDatabase" << d->mRemoveAlbumQuery.boundValues(); | 5329 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeAlbumInDatabase" << d->mRemoveAlbumQuery.boundValues(); | ||
4902 | qDebug() << "DatabaseInterface::removeAlbumInDatabase" << d->mRemoveAlbumQuery.lastError(); | 5330 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeAlbumInDatabase" << d->mRemoveAlbumQuery.lastError(); | ||
4903 | } | 5331 | } | ||
4904 | 5332 | | |||
4905 | d->mRemoveAlbumQuery.finish(); | 5333 | d->mRemoveAlbumQuery.finish(); | ||
4906 | } | 5334 | } | ||
4907 | 5335 | | |||
4908 | void DatabaseInterface::removeArtistInDatabase(qulonglong artistId) | 5336 | void DatabaseInterface::removeArtistInDatabase(qulonglong artistId) | ||
4909 | { | 5337 | { | ||
4910 | d->mRemoveArtistQuery.bindValue(QStringLiteral(":artistId"), artistId); | 5338 | d->mRemoveArtistQuery.bindValue(QStringLiteral(":artistId"), artistId); | ||
4911 | 5339 | | |||
4912 | auto result = d->mRemoveArtistQuery.exec(); | 5340 | auto result = execQuery(d->mRemoveArtistQuery); | ||
4913 | 5341 | | |||
4914 | if (!result || !d->mRemoveArtistQuery.isActive()) { | 5342 | if (!result || !d->mRemoveArtistQuery.isActive()) { | ||
4915 | Q_EMIT databaseError(); | 5343 | Q_EMIT databaseError(); | ||
4916 | 5344 | | |||
4917 | qDebug() << "DatabaseInterface::removeArtistInDatabase" << d->mRemoveArtistQuery.lastQuery(); | 5345 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeArtistInDatabase" << d->mRemoveArtistQuery.lastQuery(); | ||
4918 | qDebug() << "DatabaseInterface::removeArtistInDatabase" << d->mRemoveArtistQuery.boundValues(); | 5346 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeArtistInDatabase" << d->mRemoveArtistQuery.boundValues(); | ||
4919 | qDebug() << "DatabaseInterface::removeArtistInDatabase" << d->mRemoveArtistQuery.lastError(); | 5347 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::removeArtistInDatabase" << d->mRemoveArtistQuery.lastError(); | ||
4920 | } | 5348 | } | ||
4921 | 5349 | | |||
4922 | d->mRemoveArtistQuery.finish(); | 5350 | d->mRemoveArtistQuery.finish(); | ||
4923 | } | 5351 | } | ||
4924 | 5352 | | |||
4925 | void DatabaseInterface::reloadExistingDatabase() | 5353 | void DatabaseInterface::reloadExistingDatabase() | ||
4926 | { | 5354 | { | ||
4927 | qDebug() << "DatabaseInterface::reloadExistingDatabase"; | 5355 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::reloadExistingDatabase"; | ||
4928 | 5356 | | |||
4929 | d->mArtistId = initialId(DataUtils::DataType::AllArtists); | 5357 | d->mArtistId = initialId(DataUtils::DataType::AllArtists); | ||
4930 | d->mComposerId = initialId(DataUtils::DataType::AllComposers); | 5358 | d->mComposerId = initialId(DataUtils::DataType::AllComposers); | ||
4931 | d->mLyricistId = initialId(DataUtils::DataType::AllLyricists); | 5359 | d->mLyricistId = initialId(DataUtils::DataType::AllLyricists); | ||
4932 | d->mAlbumId = initialId(DataUtils::DataType::AllAlbums); | 5360 | d->mAlbumId = initialId(DataUtils::DataType::AllAlbums); | ||
4933 | d->mTrackId = initialId(DataUtils::DataType::AllTracks); | 5361 | d->mTrackId = initialId(DataUtils::DataType::AllTracks); | ||
4934 | d->mGenreId = initialId(DataUtils::DataType::AllGenres);; | 5362 | d->mGenreId = initialId(DataUtils::DataType::AllGenres);; | ||
4935 | } | 5363 | } | ||
Show All 24 Lines | |||||
4960 | { | 5388 | { | ||
4961 | auto result = qulonglong(0); | 5389 | auto result = qulonglong(0); | ||
4962 | 5390 | | |||
4963 | auto transactionResult = startTransaction(); | 5391 | auto transactionResult = startTransaction(); | ||
4964 | if (!transactionResult) { | 5392 | if (!transactionResult) { | ||
4965 | return result; | 5393 | return result; | ||
4966 | } | 5394 | } | ||
4967 | 5395 | | |||
4968 | auto queryResult = request.exec(); | 5396 | auto queryResult = execQuery(request); | ||
4969 | 5397 | | |||
4970 | if (!queryResult || !request.isSelect() || !request.isActive()) { | 5398 | if (!queryResult || !request.isSelect() || !request.isActive()) { | ||
4971 | Q_EMIT databaseError(); | 5399 | Q_EMIT databaseError(); | ||
4972 | 5400 | | |||
4973 | qDebug() << "DatabaseInterface::insertMusicSource" << request.lastQuery(); | 5401 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertMusicSource" << request.lastQuery(); | ||
4974 | qDebug() << "DatabaseInterface::insertMusicSource" << request.boundValues(); | 5402 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertMusicSource" << request.boundValues(); | ||
4975 | qDebug() << "DatabaseInterface::insertMusicSource" << request.lastError(); | 5403 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::insertMusicSource" << request.lastError(); | ||
4976 | 5404 | | |||
4977 | request.finish(); | 5405 | request.finish(); | ||
4978 | 5406 | | |||
4979 | transactionResult = finishTransaction(); | 5407 | transactionResult = finishTransaction(); | ||
4980 | if (!transactionResult) { | 5408 | if (!transactionResult) { | ||
4981 | return result; | 5409 | return result; | ||
4982 | } | 5410 | } | ||
4983 | 5411 | | |||
Show All 9 Lines | |||||
4993 | transactionResult = finishTransaction(); | 5421 | transactionResult = finishTransaction(); | ||
4994 | if (!transactionResult) { | 5422 | if (!transactionResult) { | ||
4995 | return result; | 5423 | return result; | ||
4996 | } | 5424 | } | ||
4997 | 5425 | | |||
4998 | return result; | 5426 | return result; | ||
4999 | } | 5427 | } | ||
5000 | 5428 | | |||
5001 | qulonglong DatabaseInterface::insertMusicSource(const QString &name) | | |||
5002 | { | | |||
5003 | qulonglong result = 0; | | |||
5004 | | ||||
5005 | d->mSelectMusicSource.bindValue(QStringLiteral(":name"), name); | | |||
5006 | | ||||
5007 | auto queryResult = d->mSelectMusicSource.exec(); | | |||
5008 | | ||||
5009 | if (!queryResult || !d->mSelectMusicSource.isSelect() || !d->mSelectMusicSource.isActive()) { | | |||
5010 | Q_EMIT databaseError(); | | |||
5011 | | ||||
5012 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mSelectMusicSource.lastQuery(); | | |||
5013 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mSelectMusicSource.boundValues(); | | |||
5014 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mSelectMusicSource.lastError(); | | |||
5015 | | ||||
5016 | d->mSelectMusicSource.finish(); | | |||
5017 | | ||||
5018 | return result; | | |||
5019 | } | | |||
5020 | | ||||
5021 | if (d->mSelectMusicSource.next()) { | | |||
5022 | result = d->mSelectMusicSource.record().value(0).toULongLong(); | | |||
5023 | | ||||
5024 | d->mSelectMusicSource.finish(); | | |||
5025 | | ||||
5026 | return result; | | |||
5027 | } | | |||
5028 | | ||||
5029 | d->mSelectMusicSource.finish(); | | |||
5030 | | ||||
5031 | d->mInsertMusicSource.bindValue(QStringLiteral(":discoverId"), d->mDiscoverId); | | |||
5032 | d->mInsertMusicSource.bindValue(QStringLiteral(":name"), name); | | |||
5033 | | ||||
5034 | queryResult = d->mInsertMusicSource.exec(); | | |||
5035 | | ||||
5036 | if (!queryResult || !d->mInsertMusicSource.isActive()) { | | |||
5037 | Q_EMIT databaseError(); | | |||
5038 | | ||||
5039 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mInsertMusicSource.lastQuery(); | | |||
5040 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mInsertMusicSource.boundValues(); | | |||
5041 | qDebug() << "DatabaseInterface::insertMusicSource" << d->mInsertMusicSource.lastError(); | | |||
5042 | | ||||
5043 | d->mInsertMusicSource.finish(); | | |||
5044 | | ||||
5045 | return d->mDiscoverId; | | |||
5046 | } | | |||
5047 | | ||||
5048 | d->mInsertMusicSource.finish(); | | |||
5049 | | ||||
5050 | ++d->mDiscoverId; | | |||
5051 | | ||||
5052 | return d->mDiscoverId - 1; | | |||
5053 | } | | |||
5054 | | ||||
5055 | QList<qulonglong> DatabaseInterface::fetchTrackIds(qulonglong albumId) | 5429 | QList<qulonglong> DatabaseInterface::fetchTrackIds(qulonglong albumId) | ||
5056 | { | 5430 | { | ||
5057 | auto allTracks = QList<qulonglong>(); | 5431 | auto allTracks = QList<qulonglong>(); | ||
5058 | 5432 | | |||
5059 | d->mSelectTrackQuery.bindValue(QStringLiteral(":albumId"), albumId); | 5433 | d->mSelectTrackIdQuery.bindValue(QStringLiteral(":albumId"), albumId); | ||
5060 | 5434 | | |||
5061 | auto result = d->mSelectTrackQuery.exec(); | 5435 | auto result = execQuery(d->mSelectTrackIdQuery); | ||
5062 | 5436 | | |||
5063 | if (!result || !d->mSelectTrackQuery.isSelect() || !d->mSelectTrackQuery.isActive()) { | 5437 | if (!result || !d->mSelectTrackIdQuery.isSelect() || !d->mSelectTrackIdQuery.isActive()) { | ||
5064 | Q_EMIT databaseError(); | 5438 | Q_EMIT databaseError(); | ||
5065 | 5439 | | |||
5066 | qDebug() << "DatabaseInterface::fetchTrackIds" << d->mSelectTrackQuery.lastQuery(); | 5440 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::fetchTrackIds" << d->mSelectTrackIdQuery.lastQuery(); | ||
5067 | qDebug() << "DatabaseInterface::fetchTrackIds" << d->mSelectTrackQuery.boundValues(); | 5441 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::fetchTrackIds" << d->mSelectTrackIdQuery.boundValues(); | ||
5068 | qDebug() << "DatabaseInterface::fetchTrackIds" << d->mSelectTrackQuery.lastError(); | 5442 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::fetchTrackIds" << d->mSelectTrackIdQuery.lastError(); | ||
5069 | } | 5443 | } | ||
5070 | 5444 | | |||
5071 | while (d->mSelectTrackQuery.next()) { | 5445 | while (d->mSelectTrackIdQuery.next()) { | ||
5072 | const auto ¤tRecord = d->mSelectTrackQuery.record(); | 5446 | const auto ¤tRecord = d->mSelectTrackIdQuery.record(); | ||
5073 | 5447 | | |||
5074 | allTracks.push_back(currentRecord.value(0).toULongLong()); | 5448 | allTracks.push_back(currentRecord.value(0).toULongLong()); | ||
5075 | } | 5449 | } | ||
5076 | 5450 | | |||
5077 | d->mSelectTrackQuery.finish(); | 5451 | d->mSelectTrackIdQuery.finish(); | ||
5078 | 5452 | | |||
5079 | return allTracks; | 5453 | return allTracks; | ||
5080 | } | 5454 | } | ||
5081 | 5455 | | |||
5082 | qulonglong DatabaseInterface::internalAlbumIdFromTitleAndArtist(const QString &title, const QString &artist) | 5456 | qulonglong DatabaseInterface::internalAlbumIdFromTitleAndArtist(const QString &title, const QString &artist) | ||
5083 | { | 5457 | { | ||
5084 | auto result = qulonglong(0); | 5458 | auto result = qulonglong(0); | ||
5085 | 5459 | | |||
5086 | d->mSelectAlbumIdFromTitleQuery.bindValue(QStringLiteral(":title"), title); | 5460 | d->mSelectAlbumIdFromTitleQuery.bindValue(QStringLiteral(":title"), title); | ||
5087 | d->mSelectAlbumIdFromTitleQuery.bindValue(QStringLiteral(":artistName"), artist); | 5461 | d->mSelectAlbumIdFromTitleQuery.bindValue(QStringLiteral(":artistName"), artist); | ||
5088 | 5462 | | |||
5089 | auto queryResult = d->mSelectAlbumIdFromTitleQuery.exec(); | 5463 | auto queryResult = execQuery(d->mSelectAlbumIdFromTitleQuery); | ||
5090 | 5464 | | |||
5091 | if (!queryResult || !d->mSelectAlbumIdFromTitleQuery.isSelect() || !d->mSelectAlbumIdFromTitleQuery.isActive()) { | 5465 | if (!queryResult || !d->mSelectAlbumIdFromTitleQuery.isSelect() || !d->mSelectAlbumIdFromTitleQuery.isActive()) { | ||
5092 | Q_EMIT databaseError(); | 5466 | Q_EMIT databaseError(); | ||
5093 | 5467 | | |||
5094 | qDebug() << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleQuery.lastQuery(); | 5468 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleQuery.lastQuery(); | ||
5095 | qDebug() << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleQuery.boundValues(); | 5469 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleQuery.boundValues(); | ||
5096 | qDebug() << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleQuery.lastError(); | 5470 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleQuery.lastError(); | ||
5097 | 5471 | | |||
5098 | d->mSelectAlbumIdFromTitleQuery.finish(); | 5472 | d->mSelectAlbumIdFromTitleQuery.finish(); | ||
5099 | 5473 | | |||
5100 | return result; | 5474 | return result; | ||
5101 | } | 5475 | } | ||
5102 | 5476 | | |||
5103 | if (d->mSelectAlbumIdFromTitleQuery.next()) { | 5477 | if (d->mSelectAlbumIdFromTitleQuery.next()) { | ||
5104 | result = d->mSelectAlbumIdFromTitleQuery.record().value(0).toULongLong(); | 5478 | result = d->mSelectAlbumIdFromTitleQuery.record().value(0).toULongLong(); | ||
5105 | } | 5479 | } | ||
5106 | 5480 | | |||
5107 | d->mSelectAlbumIdFromTitleQuery.finish(); | 5481 | d->mSelectAlbumIdFromTitleQuery.finish(); | ||
5108 | 5482 | | |||
5109 | if (result == 0) { | 5483 | if (result == 0) { | ||
5110 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.bindValue(QStringLiteral(":title"), title); | 5484 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.bindValue(QStringLiteral(":title"), title); | ||
5111 | 5485 | | |||
5112 | auto queryResult = d->mSelectAlbumIdFromTitleWithoutArtistQuery.exec(); | 5486 | auto queryResult = execQuery(d->mSelectAlbumIdFromTitleWithoutArtistQuery); | ||
5113 | 5487 | | |||
5114 | if (!queryResult || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isSelect() || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isActive()) { | 5488 | if (!queryResult || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isSelect() || !d->mSelectAlbumIdFromTitleWithoutArtistQuery.isActive()) { | ||
5115 | Q_EMIT databaseError(); | 5489 | Q_EMIT databaseError(); | ||
5116 | 5490 | | |||
5117 | qDebug() << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastQuery(); | 5491 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastQuery(); | ||
5118 | qDebug() << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.boundValues(); | 5492 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.boundValues(); | ||
5119 | qDebug() << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastError(); | 5493 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalAlbumIdFromTitleAndArtist" << d->mSelectAlbumIdFromTitleWithoutArtistQuery.lastError(); | ||
5120 | 5494 | | |||
5121 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.finish(); | 5495 | d->mSelectAlbumIdFromTitleWithoutArtistQuery.finish(); | ||
5122 | 5496 | | |||
5123 | return result; | 5497 | return result; | ||
5124 | } | 5498 | } | ||
5125 | 5499 | | |||
5126 | if (d->mSelectAlbumIdFromTitleWithoutArtistQuery.next()) { | 5500 | if (d->mSelectAlbumIdFromTitleWithoutArtistQuery.next()) { | ||
5127 | result = d->mSelectAlbumIdFromTitleWithoutArtistQuery.record().value(0).toULongLong(); | 5501 | result = d->mSelectAlbumIdFromTitleWithoutArtistQuery.record().value(0).toULongLong(); | ||
Show All 14 Lines | 5511 | { | |||
5142 | } | 5516 | } | ||
5143 | 5517 | | |||
5144 | if (!d || !d->mTracksDatabase.isValid() || !d->mInitFinished) { | 5518 | if (!d || !d->mTracksDatabase.isValid() || !d->mInitFinished) { | ||
5145 | return result; | 5519 | return result; | ||
5146 | } | 5520 | } | ||
5147 | 5521 | | |||
5148 | d->mSelectTrackFromIdQuery.bindValue(QStringLiteral(":trackId"), id); | 5522 | d->mSelectTrackFromIdQuery.bindValue(QStringLiteral(":trackId"), id); | ||
5149 | 5523 | | |||
5150 | auto queryResult = d->mSelectTrackFromIdQuery.exec(); | 5524 | auto queryResult = execQuery(d->mSelectTrackFromIdQuery); | ||
5151 | 5525 | | |||
5152 | if (!queryResult || !d->mSelectTrackFromIdQuery.isSelect() || !d->mSelectTrackFromIdQuery.isActive()) { | 5526 | if (!queryResult || !d->mSelectTrackFromIdQuery.isSelect() || !d->mSelectTrackFromIdQuery.isActive()) { | ||
5153 | Q_EMIT databaseError(); | 5527 | Q_EMIT databaseError(); | ||
5154 | 5528 | | |||
5155 | qDebug() << "DatabaseInterface::internalTrackFromDatabaseId" << d->mSelectTrackFromIdQuery.lastQuery(); | 5529 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalTrackFromDatabaseId" << d->mSelectTrackFromIdQuery.lastQuery(); | ||
5156 | qDebug() << "DatabaseInterface::internalTrackFromDatabaseId" << d->mSelectTrackFromIdQuery.boundValues(); | 5530 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalTrackFromDatabaseId" << d->mSelectTrackFromIdQuery.boundValues(); | ||
5157 | qDebug() << "DatabaseInterface::internalTrackFromDatabaseId" << d->mSelectTrackFromIdQuery.lastError(); | 5531 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalTrackFromDatabaseId" << d->mSelectTrackFromIdQuery.lastError(); | ||
5158 | 5532 | | |||
5159 | d->mSelectTrackFromIdQuery.finish(); | 5533 | d->mSelectTrackFromIdQuery.finish(); | ||
5160 | 5534 | | |||
5161 | return result; | 5535 | return result; | ||
5162 | } | 5536 | } | ||
5163 | 5537 | | |||
5164 | if (!d->mSelectTrackFromIdQuery.next()) { | 5538 | if (!d->mSelectTrackFromIdQuery.next()) { | ||
5165 | d->mSelectTrackFromIdQuery.finish(); | 5539 | d->mSelectTrackFromIdQuery.finish(); | ||
Show All 20 Lines | 5555 | { | |||
5186 | } | 5560 | } | ||
5187 | 5561 | | |||
5188 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":title"), title); | 5562 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":title"), title); | ||
5189 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":artist"), artist); | 5563 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":artist"), artist); | ||
5190 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":album"), album); | 5564 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":album"), album); | ||
5191 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":trackNumber"), trackNumber); | 5565 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":trackNumber"), trackNumber); | ||
5192 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":discNumber"), discNumber); | 5566 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":discNumber"), discNumber); | ||
5193 | 5567 | | |||
5194 | auto queryResult = d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.exec(); | 5568 | auto queryResult = execQuery(d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery); | ||
5195 | 5569 | | |||
5196 | if (!queryResult || !d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.isSelect() || !d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.isActive()) { | 5570 | if (!queryResult || !d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.isSelect() || !d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.isActive()) { | ||
5197 | Q_EMIT databaseError(); | 5571 | Q_EMIT databaseError(); | ||
5198 | 5572 | | |||
5199 | qDebug() << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastQuery(); | 5573 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastQuery(); | ||
5200 | qDebug() << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.boundValues(); | 5574 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.boundValues(); | ||
5201 | qDebug() << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastError(); | 5575 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.lastError(); | ||
5202 | 5576 | | |||
5203 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.finish(); | 5577 | d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.finish(); | ||
5204 | 5578 | | |||
5205 | return result; | 5579 | return result; | ||
5206 | } | 5580 | } | ||
5207 | 5581 | | |||
5208 | if (d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.next()) { | 5582 | if (d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.next()) { | ||
5209 | result = d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.record().value(0).toULongLong(); | 5583 | result = d->mSelectTrackIdFromTitleArtistAlbumTrackDiscNumberQuery.record().value(0).toULongLong(); | ||
Show All 16 Lines | 5594 | { | |||
5226 | 5600 | | |||
5227 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":title"), title); | 5601 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":title"), title); | ||
5228 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":trackArtist"), trackArtist); | 5602 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":trackArtist"), trackArtist); | ||
5229 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":album"), album); | 5603 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":album"), album); | ||
5230 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | 5604 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":albumPath"), trackPath); | ||
5231 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":albumArtist"), albumArtist); | 5605 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":albumArtist"), albumArtist); | ||
5232 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":priority"), priority); | 5606 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.bindValue(QStringLiteral(":priority"), priority); | ||
5233 | 5607 | | |||
5234 | auto queryResult = d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.exec(); | 5608 | auto queryResult = execQuery(d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery); | ||
5235 | 5609 | | |||
5236 | if (!queryResult || !d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.isSelect() || !d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.isActive()) { | 5610 | if (!queryResult || !d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.isSelect() || !d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.isActive()) { | ||
5237 | Q_EMIT databaseError(); | 5611 | Q_EMIT databaseError(); | ||
5238 | 5612 | | |||
5239 | qDebug() << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastQuery(); | 5613 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastQuery(); | ||
5240 | qDebug() << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.boundValues(); | 5614 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.boundValues(); | ||
5241 | qDebug() << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastError(); | 5615 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::trackIdFromTitleAlbumArtist" << d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.lastError(); | ||
5242 | 5616 | | |||
5243 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.finish(); | 5617 | d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.finish(); | ||
5244 | 5618 | | |||
5245 | return result; | 5619 | return result; | ||
5246 | } | 5620 | } | ||
5247 | 5621 | | |||
5248 | if (d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.next()) { | 5622 | if (d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.next()) { | ||
5249 | result = d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.record().value(0).toULongLong(); | 5623 | result = d->mSelectTrackIdFromTitleAlbumTrackDiscNumberQuery.record().value(0).toULongLong(); | ||
Show All 9 Lines | 5632 | { | |||
5259 | auto result = qulonglong(0); | 5633 | auto result = qulonglong(0); | ||
5260 | 5634 | | |||
5261 | if (!d) { | 5635 | if (!d) { | ||
5262 | return result; | 5636 | return result; | ||
5263 | } | 5637 | } | ||
5264 | 5638 | | |||
5265 | d->mSelectTracksMapping.bindValue(QStringLiteral(":fileName"), fileName.toString()); | 5639 | d->mSelectTracksMapping.bindValue(QStringLiteral(":fileName"), fileName.toString()); | ||
5266 | 5640 | | |||
5267 | auto queryResult = d->mSelectTracksMapping.exec(); | 5641 | auto queryResult = execQuery(d->mSelectTracksMapping); | ||
5268 | 5642 | | |||
5269 | if (!queryResult || !d->mSelectTracksMapping.isSelect() || !d->mSelectTracksMapping.isActive()) { | 5643 | if (!queryResult || !d->mSelectTracksMapping.isSelect() || !d->mSelectTracksMapping.isActive()) { | ||
5270 | Q_EMIT databaseError(); | 5644 | Q_EMIT databaseError(); | ||
5271 | 5645 | | |||
5272 | qDebug() << "DatabaseInterface::internalTrackIdFromFileName" << d->mSelectTracksMapping.lastQuery(); | 5646 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalTrackIdFromFileName" << d->mSelectTracksMapping.lastQuery(); | ||
5273 | qDebug() << "DatabaseInterface::internalTrackIdFromFileName" << d->mSelectTracksMapping.boundValues(); | 5647 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalTrackIdFromFileName" << d->mSelectTracksMapping.boundValues(); | ||
5274 | qDebug() << "DatabaseInterface::internalTrackIdFromFileName" << d->mSelectTracksMapping.lastError(); | 5648 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalTrackIdFromFileName" << d->mSelectTracksMapping.lastError(); | ||
5275 | 5649 | | |||
5276 | d->mSelectTracksMapping.finish(); | 5650 | d->mSelectTracksMapping.finish(); | ||
5277 | 5651 | | |||
5278 | return result; | 5652 | return result; | ||
5279 | } | 5653 | } | ||
5280 | 5654 | | |||
5281 | if (d->mSelectTracksMapping.next()) { | 5655 | if (d->mSelectTracksMapping.next()) { | ||
5282 | const auto ¤tRecordValue = d->mSelectTracksMapping.record().value(0); | 5656 | const auto ¤tRecordValue = d->mSelectTracksMapping.record().value(0); | ||
5283 | if (currentRecordValue.isValid()) { | 5657 | if (currentRecordValue.isValid()) { | ||
5284 | result = currentRecordValue.toULongLong(); | 5658 | result = currentRecordValue.toULongLong(); | ||
5285 | } | 5659 | } | ||
5286 | } | 5660 | } | ||
5287 | 5661 | | |||
5288 | d->mSelectTracksMapping.finish(); | 5662 | d->mSelectTracksMapping.finish(); | ||
5289 | 5663 | | |||
5290 | return result; | 5664 | return result; | ||
5291 | } | 5665 | } | ||
5292 | 5666 | | |||
5293 | DatabaseInterface::ListTrackDataType DatabaseInterface::internalTracksFromAuthor(const QString &ArtistName) | 5667 | DatabaseInterface::ListTrackDataType DatabaseInterface::internalTracksFromAuthor(const QString &ArtistName) | ||
5294 | { | 5668 | { | ||
5295 | auto allTracks = ListTrackDataType{}; | 5669 | auto allTracks = ListTrackDataType{}; | ||
5296 | 5670 | | |||
5297 | d->mSelectTracksFromArtist.bindValue(QStringLiteral(":artistName"), ArtistName); | 5671 | d->mSelectTracksFromArtist.bindValue(QStringLiteral(":artistName"), ArtistName); | ||
5298 | 5672 | | |||
5299 | auto result = d->mSelectTracksFromArtist.exec(); | 5673 | auto result = execQuery(d->mSelectTracksFromArtist); | ||
5300 | 5674 | | |||
5301 | if (!result || !d->mSelectTracksFromArtist.isSelect() || !d->mSelectTracksFromArtist.isActive()) { | 5675 | if (!result || !d->mSelectTracksFromArtist.isSelect() || !d->mSelectTracksFromArtist.isActive()) { | ||
5302 | Q_EMIT databaseError(); | 5676 | Q_EMIT databaseError(); | ||
5303 | 5677 | | |||
5304 | qDebug() << "DatabaseInterface::tracksFromAuthor" << d->mSelectTracksFromArtist.lastQuery(); | 5678 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::tracksFromAuthor" << d->mSelectTracksFromArtist.lastQuery(); | ||
5305 | qDebug() << "DatabaseInterface::tracksFromAuthor" << d->mSelectTracksFromArtist.boundValues(); | 5679 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::tracksFromAuthor" << d->mSelectTracksFromArtist.boundValues(); | ||
5306 | qDebug() << "DatabaseInterface::tracksFromAuthor" << d->mSelectTracksFromArtist.lastError(); | 5680 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::tracksFromAuthor" << d->mSelectTracksFromArtist.lastError(); | ||
5307 | 5681 | | |||
5308 | return allTracks; | 5682 | return allTracks; | ||
5309 | } | 5683 | } | ||
5310 | 5684 | | |||
5311 | while (d->mSelectTracksFromArtist.next()) { | 5685 | while (d->mSelectTracksFromArtist.next()) { | ||
5312 | const auto ¤tRecord = d->mSelectTracksFromArtist.record(); | 5686 | const auto ¤tRecord = d->mSelectTracksFromArtist.record(); | ||
5313 | 5687 | | |||
5314 | allTracks.push_back(buildTrackDataFromDatabaseRecord(currentRecord)); | 5688 | allTracks.push_back(buildTrackDataFromDatabaseRecord(currentRecord)); | ||
5315 | } | 5689 | } | ||
5316 | 5690 | | |||
5317 | d->mSelectTracksFromArtist.finish(); | 5691 | d->mSelectTracksFromArtist.finish(); | ||
5318 | 5692 | | |||
5319 | return allTracks; | 5693 | return allTracks; | ||
5320 | } | 5694 | } | ||
5321 | 5695 | | |||
5322 | QList<qulonglong> DatabaseInterface::internalAlbumIdsFromAuthor(const QString &ArtistName) | 5696 | QList<qulonglong> DatabaseInterface::internalAlbumIdsFromAuthor(const QString &ArtistName) | ||
5323 | { | 5697 | { | ||
5324 | auto allAlbumIds = QList<qulonglong>(); | 5698 | auto allAlbumIds = QList<qulonglong>(); | ||
5325 | 5699 | | |||
5326 | d->mSelectAlbumIdsFromArtist.bindValue(QStringLiteral(":artistName"), ArtistName); | 5700 | d->mSelectAlbumIdsFromArtist.bindValue(QStringLiteral(":artistName"), ArtistName); | ||
5327 | 5701 | | |||
5328 | auto result = d->mSelectAlbumIdsFromArtist.exec(); | 5702 | auto result = execQuery(d->mSelectAlbumIdsFromArtist); | ||
5329 | 5703 | | |||
5330 | if (!result || !d->mSelectAlbumIdsFromArtist.isSelect() || !d->mSelectAlbumIdsFromArtist.isActive()) { | 5704 | if (!result || !d->mSelectAlbumIdsFromArtist.isSelect() || !d->mSelectAlbumIdsFromArtist.isActive()) { | ||
5331 | Q_EMIT databaseError(); | 5705 | Q_EMIT databaseError(); | ||
5332 | 5706 | | |||
5333 | qDebug() << "DatabaseInterface::tracksFromAuthor" << d->mSelectAlbumIdsFromArtist.lastQuery(); | 5707 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::tracksFromAuthor" << d->mSelectAlbumIdsFromArtist.lastQuery(); | ||
5334 | qDebug() << "DatabaseInterface::tracksFromAuthor" << d->mSelectAlbumIdsFromArtist.boundValues(); | 5708 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::tracksFromAuthor" << d->mSelectAlbumIdsFromArtist.boundValues(); | ||
5335 | qDebug() << "DatabaseInterface::tracksFromAuthor" << d->mSelectAlbumIdsFromArtist.lastError(); | 5709 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::tracksFromAuthor" << d->mSelectAlbumIdsFromArtist.lastError(); | ||
5336 | 5710 | | |||
5337 | return allAlbumIds; | 5711 | return allAlbumIds; | ||
5338 | } | 5712 | } | ||
5339 | 5713 | | |||
5340 | while (d->mSelectAlbumIdsFromArtist.next()) { | 5714 | while (d->mSelectAlbumIdsFromArtist.next()) { | ||
5341 | const auto ¤tRecord = d->mSelectAlbumIdsFromArtist.record(); | 5715 | const auto ¤tRecord = d->mSelectAlbumIdsFromArtist.record(); | ||
5342 | 5716 | | |||
5343 | allAlbumIds.push_back(currentRecord.value(0).toULongLong()); | 5717 | allAlbumIds.push_back(currentRecord.value(0).toULongLong()); | ||
▲ Show 20 Lines • Show All 256 Lines • ▼ Show 20 Line(s) | |||||
5600 | } | 5974 | } | ||
5601 | 5975 | | |||
5602 | bool DatabaseInterface::prepareQuery(QSqlQuery &query, const QString &queryText) const | 5976 | bool DatabaseInterface::prepareQuery(QSqlQuery &query, const QString &queryText) const | ||
5603 | { | 5977 | { | ||
5604 | query.setForwardOnly(true); | 5978 | query.setForwardOnly(true); | ||
5605 | return query.prepare(queryText); | 5979 | return query.prepare(queryText); | ||
5606 | } | 5980 | } | ||
5607 | 5981 | | |||
5982 | bool DatabaseInterface::execQuery(QSqlQuery &query) | ||||
5983 | { | ||||
5984 | #if !defined NDEBUG | ||||
5985 | auto timer = QElapsedTimer{}; | ||||
5986 | timer.start(); | ||||
5987 | #endif | ||||
5988 | | ||||
5989 | auto result = query.exec(); | ||||
5990 | | ||||
5991 | #if !defined NDEBUG | ||||
5992 | if (timer.nsecsElapsed() > 10000000) { | ||||
5993 | qCDebug(orgKdeElisaDatabase) << "[[" << timer.nsecsElapsed() << "]]" << query.lastQuery(); | ||||
5994 | } | ||||
5995 | #endif | ||||
5996 | | ||||
5997 | return result; | ||||
5998 | } | ||||
5999 | | ||||
5608 | void DatabaseInterface::updateAlbumArtist(qulonglong albumId, const QString &title, | 6000 | void DatabaseInterface::updateAlbumArtist(qulonglong albumId, const QString &title, | ||
5609 | const QString &albumPath, | 6001 | const QString &albumPath, | ||
5610 | const QString &artistName) | 6002 | const QString &artistName) | ||
5611 | { | 6003 | { | ||
5612 | d->mUpdateAlbumArtistQuery.bindValue(QStringLiteral(":albumId"), albumId); | 6004 | d->mUpdateAlbumArtistQuery.bindValue(QStringLiteral(":albumId"), albumId); | ||
5613 | insertArtist(artistName); | 6005 | insertArtist(artistName); | ||
5614 | d->mUpdateAlbumArtistQuery.bindValue(QStringLiteral(":artistName"), artistName); | 6006 | d->mUpdateAlbumArtistQuery.bindValue(QStringLiteral(":artistName"), artistName); | ||
5615 | 6007 | | |||
5616 | auto queryResult = d->mUpdateAlbumArtistQuery.exec(); | 6008 | auto queryResult = execQuery(d->mUpdateAlbumArtistQuery); | ||
5617 | 6009 | | |||
5618 | if (!queryResult || !d->mUpdateAlbumArtistQuery.isActive()) { | 6010 | if (!queryResult || !d->mUpdateAlbumArtistQuery.isActive()) { | ||
5619 | Q_EMIT databaseError(); | 6011 | Q_EMIT databaseError(); | ||
5620 | 6012 | | |||
5621 | qDebug() << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistQuery.lastQuery(); | 6013 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistQuery.lastQuery(); | ||
5622 | qDebug() << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistQuery.boundValues(); | 6014 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistQuery.boundValues(); | ||
5623 | qDebug() << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistQuery.lastError(); | 6015 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistQuery.lastError(); | ||
5624 | 6016 | | |||
5625 | d->mUpdateAlbumArtistQuery.finish(); | 6017 | d->mUpdateAlbumArtistQuery.finish(); | ||
5626 | 6018 | | |||
5627 | return; | 6019 | return; | ||
5628 | } | 6020 | } | ||
5629 | 6021 | | |||
5630 | d->mUpdateAlbumArtistQuery.finish(); | 6022 | d->mUpdateAlbumArtistQuery.finish(); | ||
5631 | 6023 | | |||
5632 | d->mUpdateAlbumArtistInTracksQuery.bindValue(QStringLiteral(":albumTitle"), title); | 6024 | d->mUpdateAlbumArtistInTracksQuery.bindValue(QStringLiteral(":albumTitle"), title); | ||
5633 | d->mUpdateAlbumArtistInTracksQuery.bindValue(QStringLiteral(":albumPath"), albumPath); | 6025 | d->mUpdateAlbumArtistInTracksQuery.bindValue(QStringLiteral(":albumPath"), albumPath); | ||
5634 | d->mUpdateAlbumArtistInTracksQuery.bindValue(QStringLiteral(":artistName"), artistName); | 6026 | d->mUpdateAlbumArtistInTracksQuery.bindValue(QStringLiteral(":artistName"), artistName); | ||
5635 | 6027 | | |||
5636 | queryResult = d->mUpdateAlbumArtistInTracksQuery.exec(); | 6028 | queryResult = execQuery(d->mUpdateAlbumArtistInTracksQuery); | ||
5637 | 6029 | | |||
5638 | if (!queryResult || !d->mUpdateAlbumArtistInTracksQuery.isActive()) { | 6030 | if (!queryResult || !d->mUpdateAlbumArtistInTracksQuery.isActive()) { | ||
5639 | Q_EMIT databaseError(); | 6031 | Q_EMIT databaseError(); | ||
5640 | 6032 | | |||
5641 | qDebug() << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistInTracksQuery.lastQuery(); | 6033 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistInTracksQuery.lastQuery(); | ||
5642 | qDebug() << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistInTracksQuery.boundValues(); | 6034 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistInTracksQuery.boundValues(); | ||
5643 | qDebug() << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistInTracksQuery.lastError(); | 6035 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateAlbumArtist" << d->mUpdateAlbumArtistInTracksQuery.lastError(); | ||
5644 | 6036 | | |||
5645 | d->mUpdateAlbumArtistInTracksQuery.finish(); | 6037 | d->mUpdateAlbumArtistInTracksQuery.finish(); | ||
5646 | 6038 | | |||
5647 | return; | 6039 | return; | ||
5648 | } | 6040 | } | ||
5649 | 6041 | | |||
5650 | d->mUpdateAlbumArtistInTracksQuery.finish(); | 6042 | d->mUpdateAlbumArtistInTracksQuery.finish(); | ||
5651 | } | 6043 | } | ||
5652 | 6044 | | |||
5653 | void DatabaseInterface::updateTrackStatistics(const QUrl &fileName, const QDateTime &time) | 6045 | void DatabaseInterface::updateTrackStatistics(const QUrl &fileName, const QDateTime &time) | ||
5654 | { | 6046 | { | ||
5655 | d->mUpdateTrackStatistics.bindValue(QStringLiteral(":fileName"), fileName); | 6047 | d->mUpdateTrackStatistics.bindValue(QStringLiteral(":fileName"), fileName); | ||
5656 | d->mUpdateTrackStatistics.bindValue(QStringLiteral(":playDate"), time.toMSecsSinceEpoch()); | 6048 | d->mUpdateTrackStatistics.bindValue(QStringLiteral(":playDate"), time.toMSecsSinceEpoch()); | ||
5657 | 6049 | | |||
5658 | auto queryResult = d->mUpdateTrackStatistics.exec(); | 6050 | auto queryResult = execQuery(d->mUpdateTrackStatistics); | ||
5659 | 6051 | | |||
5660 | if (!queryResult || !d->mUpdateTrackStatistics.isActive()) { | 6052 | if (!queryResult || !d->mUpdateTrackStatistics.isActive()) { | ||
5661 | Q_EMIT databaseError(); | 6053 | Q_EMIT databaseError(); | ||
5662 | 6054 | | |||
5663 | qDebug() << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackStatistics.lastQuery(); | 6055 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackStatistics.lastQuery(); | ||
5664 | qDebug() << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackStatistics.boundValues(); | 6056 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackStatistics.boundValues(); | ||
5665 | qDebug() << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackStatistics.lastError(); | 6057 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackStatistics.lastError(); | ||
5666 | 6058 | | |||
5667 | d->mUpdateTrackStatistics.finish(); | 6059 | d->mUpdateTrackStatistics.finish(); | ||
5668 | 6060 | | |||
5669 | return; | 6061 | return; | ||
5670 | } | 6062 | } | ||
5671 | 6063 | | |||
5672 | d->mUpdateTrackStatistics.finish(); | 6064 | d->mUpdateTrackStatistics.finish(); | ||
5673 | 6065 | | |||
5674 | d->mUpdateTrackFirstPlayStatistics.bindValue(QStringLiteral(":fileName"), fileName); | 6066 | d->mUpdateTrackFirstPlayStatistics.bindValue(QStringLiteral(":fileName"), fileName); | ||
5675 | d->mUpdateTrackFirstPlayStatistics.bindValue(QStringLiteral(":playDate"), time.toMSecsSinceEpoch()); | 6067 | d->mUpdateTrackFirstPlayStatistics.bindValue(QStringLiteral(":playDate"), time.toMSecsSinceEpoch()); | ||
5676 | 6068 | | |||
5677 | queryResult = d->mUpdateTrackFirstPlayStatistics.exec(); | 6069 | queryResult = execQuery(d->mUpdateTrackFirstPlayStatistics); | ||
5678 | 6070 | | |||
5679 | if (!queryResult || !d->mUpdateTrackFirstPlayStatistics.isActive()) { | 6071 | if (!queryResult || !d->mUpdateTrackFirstPlayStatistics.isActive()) { | ||
5680 | Q_EMIT databaseError(); | 6072 | Q_EMIT databaseError(); | ||
5681 | 6073 | | |||
5682 | qDebug() << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackFirstPlayStatistics.lastQuery(); | 6074 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackFirstPlayStatistics.lastQuery(); | ||
5683 | qDebug() << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackFirstPlayStatistics.boundValues(); | 6075 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackFirstPlayStatistics.boundValues(); | ||
5684 | qDebug() << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackFirstPlayStatistics.lastError(); | 6076 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::updateTrackStatistics" << d->mUpdateTrackFirstPlayStatistics.lastError(); | ||
5685 | 6077 | | |||
5686 | d->mUpdateTrackFirstPlayStatistics.finish(); | 6078 | d->mUpdateTrackFirstPlayStatistics.finish(); | ||
5687 | 6079 | | |||
5688 | return; | 6080 | return; | ||
5689 | } | 6081 | } | ||
5690 | 6082 | | |||
5691 | d->mUpdateTrackFirstPlayStatistics.finish(); | 6083 | d->mUpdateTrackFirstPlayStatistics.finish(); | ||
5692 | } | 6084 | } | ||
5693 | 6085 | | |||
5694 | 6086 | | |||
5695 | #include "moc_databaseinterface.cpp" | 6087 | #include "moc_databaseinterface.cpp" |