Changeset View
Changeset View
Standalone View
Standalone View
src/databaseinterface.cpp
Show All 15 Lines | |||||
16 | */ | 16 | */ | ||
17 | 17 | | |||
18 | #include "databaseinterface.h" | 18 | #include "databaseinterface.h" | ||
19 | 19 | | |||
20 | #include "musicaudiotrack.h" | 20 | #include "musicaudiotrack.h" | ||
21 | 21 | | |||
22 | #include <KI18n/KLocalizedString> | 22 | #include <KI18n/KLocalizedString> | ||
23 | 23 | | |||
24 | #include <QCoreApplication> | ||||
25 | | ||||
24 | #include <QSqlDatabase> | 26 | #include <QSqlDatabase> | ||
25 | #include <QSqlDriver> | 27 | #include <QSqlDriver> | ||
26 | #include <QSqlQuery> | 28 | #include <QSqlQuery> | ||
27 | #include <QSqlRecord> | 29 | #include <QSqlRecord> | ||
28 | #include <QSqlError> | 30 | #include <QSqlError> | ||
29 | 31 | | |||
30 | #include <QMutex> | 32 | #include <QMutex> | ||
31 | #include <QVariant> | 33 | #include <QVariant> | ||
▲ Show 20 Lines • Show All 226 Lines • ▼ Show 20 Line(s) | |||||
258 | { | 260 | { | ||
259 | if (d) { | 261 | if (d) { | ||
260 | d->mTracksDatabase.close(); | 262 | d->mTracksDatabase.close(); | ||
261 | } | 263 | } | ||
262 | } | 264 | } | ||
263 | 265 | | |||
264 | void DatabaseInterface::init(const QString &dbName, const QString &databaseFileName) | 266 | void DatabaseInterface::init(const QString &dbName, const QString &databaseFileName) | ||
265 | { | 267 | { | ||
268 | qInfo() << QCoreApplication::libraryPaths(); | ||||
266 | QSqlDatabase tracksDatabase = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), dbName); | 269 | QSqlDatabase tracksDatabase = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), dbName); | ||
267 | 270 | | |||
268 | if (!databaseFileName.isEmpty()) { | 271 | if (!databaseFileName.isEmpty()) { | ||
269 | tracksDatabase.setDatabaseName(QStringLiteral("file:") + databaseFileName); | 272 | tracksDatabase.setDatabaseName(QStringLiteral("file:") + databaseFileName); | ||
270 | } else { | 273 | } else { | ||
271 | tracksDatabase.setDatabaseName(QStringLiteral("file:memdb1?mode=memory")); | 274 | tracksDatabase.setDatabaseName(QStringLiteral("file:memdb1?mode=memory")); | ||
272 | } | 275 | } | ||
273 | tracksDatabase.setConnectOptions(QStringLiteral("foreign_keys = ON;locking_mode = EXCLUSIVE;QSQLITE_OPEN_URI;QSQLITE_BUSY_TIMEOUT=500000")); | 276 | tracksDatabase.setConnectOptions(QStringLiteral("foreign_keys = ON;locking_mode = EXCLUSIVE;QSQLITE_OPEN_URI;QSQLITE_BUSY_TIMEOUT=500000")); | ||
▲ Show 20 Lines • Show All 539 Lines • ▼ Show 20 Line(s) | 760 | { | |||
813 | } | 816 | } | ||
814 | 817 | | |||
815 | if (!d->mInsertedArtists.isEmpty()) { | 818 | if (!d->mInsertedArtists.isEmpty()) { | ||
816 | ListArtistDataType newArtists; | 819 | ListArtistDataType newArtists; | ||
817 | 820 | | |||
818 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | 821 | for (auto artistId : qAsConst(d->mInsertedArtists)) { | ||
819 | newArtists.push_back({{DatabaseIdRole, artistId}}); | 822 | newArtists.push_back({{DatabaseIdRole, artistId}}); | ||
820 | } | 823 | } | ||
821 | 824 | qInfo() << "artistsAdded" << newArtists.size(); | |||
822 | Q_EMIT artistsAdded(newArtists); | 825 | Q_EMIT artistsAdded(newArtists); | ||
823 | } | 826 | } | ||
824 | 827 | | |||
825 | if (!d->mInsertedAlbums.isEmpty()) { | 828 | if (!d->mInsertedAlbums.isEmpty()) { | ||
826 | ListAlbumDataType newAlbums; | 829 | ListAlbumDataType newAlbums; | ||
827 | 830 | | |||
828 | for (auto albumId : qAsConst(d->mInsertedAlbums)) { | 831 | for (auto albumId : qAsConst(d->mInsertedAlbums)) { | ||
829 | d->mModifiedAlbumIds.remove(albumId); | 832 | d->mModifiedAlbumIds.remove(albumId); | ||
830 | newAlbums.push_back(internalOneAlbumPartialData(albumId)); | 833 | newAlbums.push_back(internalOneAlbumPartialData(albumId)); | ||
831 | } | 834 | } | ||
832 | 835 | | |||
836 | qInfo() << "albumsAdded" << newAlbums.size(); | ||||
833 | Q_EMIT albumsAdded(newAlbums); | 837 | Q_EMIT albumsAdded(newAlbums); | ||
834 | } | 838 | } | ||
835 | 839 | | |||
836 | for (auto albumId : qAsConst(d->mModifiedAlbumIds)) { | 840 | for (auto albumId : qAsConst(d->mModifiedAlbumIds)) { | ||
837 | Q_EMIT albumModified({{DatabaseIdRole, albumId}}, albumId); | 841 | Q_EMIT albumModified({{DatabaseIdRole, albumId}}, albumId); | ||
838 | } | 842 | } | ||
839 | 843 | | |||
840 | if (!d->mInsertedTracks.isEmpty()) { | 844 | if (!d->mInsertedTracks.isEmpty()) { | ||
841 | ListTrackDataType newTracks; | 845 | ListTrackDataType newTracks; | ||
842 | 846 | | |||
843 | for (auto trackId : qAsConst(d->mInsertedTracks)) { | 847 | for (auto trackId : qAsConst(d->mInsertedTracks)) { | ||
844 | newTracks.push_back(internalOneTrackPartialData(trackId)); | 848 | newTracks.push_back(internalOneTrackPartialData(trackId)); | ||
845 | d->mModifiedTrackIds.remove(trackId); | 849 | d->mModifiedTrackIds.remove(trackId); | ||
846 | } | 850 | } | ||
847 | 851 | | |||
852 | qInfo() << "tracksAdded" << newTracks.size(); | ||||
848 | Q_EMIT tracksAdded(newTracks); | 853 | Q_EMIT tracksAdded(newTracks); | ||
849 | } | 854 | } | ||
850 | 855 | | |||
851 | for (auto trackId : qAsConst(d->mModifiedTrackIds)) { | 856 | for (auto trackId : qAsConst(d->mModifiedTrackIds)) { | ||
852 | Q_EMIT trackModified(internalOneTrackPartialData(trackId)); | 857 | Q_EMIT trackModified(internalOneTrackPartialData(trackId)); | ||
853 | } | 858 | } | ||
854 | 859 | | |||
855 | transactionResult = finishTransaction(); | 860 | transactionResult = finishTransaction(); | ||
▲ Show 20 Lines • Show All 4218 Lines • Show Last 20 Lines |