Changeset View
Changeset View
Standalone View
Standalone View
src/musicalbum.cpp
Show All 17 Lines | |||||
18 | #include "musicalbum.h" | 18 | #include "musicalbum.h" | ||
19 | 19 | | |||
20 | #include <algorithm> | 20 | #include <algorithm> | ||
21 | 21 | | |||
22 | #include <QList> | 22 | #include <QList> | ||
23 | #include <QString> | 23 | #include <QString> | ||
24 | #include <QUrl> | 24 | #include <QUrl> | ||
25 | #include <QMap> | 25 | #include <QMap> | ||
26 | #include <QSharedData> | ||||
26 | 27 | | |||
27 | #include <QDebug> | 28 | #include <QDebug> | ||
28 | 29 | | |||
29 | class MusicAlbumPrivate | 30 | class MusicAlbumPrivate : public QSharedData | ||
30 | { | 31 | { | ||
31 | public: | 32 | public: | ||
32 | 33 | | |||
33 | qulonglong mDatabaseId = 0; | 34 | qulonglong mDatabaseId = 0; | ||
34 | 35 | | |||
35 | QString mId; | 36 | QString mId; | ||
36 | 37 | | |||
37 | QString mParentId; | 38 | QString mParentId; | ||
38 | 39 | | |||
39 | QString mTitle; | 40 | QString mTitle; | ||
40 | 41 | | |||
41 | QString mArtist; | 42 | QString mArtist; | ||
42 | 43 | | |||
43 | QUrl mAlbumPath; | 44 | QUrl mAlbumPath; | ||
44 | 45 | | |||
45 | QUrl mAlbumArtURI; | 46 | QUrl mAlbumArtURI; | ||
46 | 47 | | |||
47 | QUrl mResourceURI; | 48 | QUrl mResourceURI; | ||
48 | 49 | | |||
49 | QList<MusicAudioTrack> mTracks; | 50 | QList<MusicAudioTrack> mTracks; | ||
50 | 51 | | |||
52 | QStringList mGenres; | ||||
53 | | ||||
51 | int mTracksCount = 0; | 54 | int mTracksCount = 0; | ||
52 | 55 | | |||
53 | bool mIsValid = false; | 56 | bool mIsValid = false; | ||
54 | 57 | | |||
55 | bool mIsSingleDiscAlbum = true; | 58 | bool mIsSingleDiscAlbum = true; | ||
56 | 59 | | |||
57 | QStringList mGenres; | | |||
58 | | ||||
59 | }; | 60 | }; | ||
60 | 61 | | |||
61 | MusicAlbum::MusicAlbum() : d(std::make_unique<MusicAlbumPrivate>()) | 62 | MusicAlbum::MusicAlbum() : d(new MusicAlbumPrivate()) | ||
62 | { | | |||
63 | } | | |||
64 | | ||||
65 | MusicAlbum::MusicAlbum(MusicAlbum &&other) | | |||
66 | { | | |||
67 | d.swap(other.d); | | |||
68 | } | | |||
69 | | ||||
70 | MusicAlbum::MusicAlbum(const MusicAlbum &other) : d(std::make_unique<MusicAlbumPrivate>(*other.d)) | | |||
71 | { | 63 | { | ||
72 | } | 64 | } | ||
73 | 65 | | |||
74 | MusicAlbum& MusicAlbum::operator=(MusicAlbum &&other) | 66 | MusicAlbum::MusicAlbum(MusicAlbum &&other) noexcept = default; | ||
75 | { | | |||
76 | if (&other != this) { | | |||
77 | d.reset(); | | |||
78 | d.swap(other.d); | | |||
79 | } | | |||
80 | 67 | | |||
81 | return *this; | 68 | MusicAlbum::MusicAlbum(const MusicAlbum &other) = default; | ||
82 | } | | |||
83 | 69 | | |||
84 | MusicAlbum& MusicAlbum::operator=(const MusicAlbum &other) | 70 | MusicAlbum& MusicAlbum::operator=(MusicAlbum &&other) noexcept = default; | ||
85 | { | | |||
86 | if (&other != this) { | | |||
87 | (*d) = (*other.d); | | |||
88 | } | | |||
89 | 71 | | |||
90 | return *this; | 72 | MusicAlbum& MusicAlbum::operator=(const MusicAlbum &other) = default; | ||
91 | } | | |||
92 | 73 | | |||
93 | MusicAlbum::~MusicAlbum() | 74 | MusicAlbum::~MusicAlbum() | ||
94 | = default; | 75 | = default; | ||
95 | 76 | | |||
96 | void MusicAlbum::setValid(bool value) | 77 | void MusicAlbum::setValid(bool value) | ||
97 | { | 78 | { | ||
98 | d->mIsValid = value; | 79 | d->mIsValid = value; | ||
99 | } | 80 | } | ||
▲ Show 20 Lines • Show All 290 Lines • Show Last 20 Lines |