Changeset View
Changeset View
Standalone View
Standalone View
src/models/trackmetadatamodel.h
Show All 38 Lines | 36 | { | |||
---|---|---|---|---|---|
39 | Q_PROPERTY(QUrl coverUrl | 39 | Q_PROPERTY(QUrl coverUrl | ||
40 | READ coverUrl | 40 | READ coverUrl | ||
41 | NOTIFY coverUrlChanged) | 41 | NOTIFY coverUrlChanged) | ||
42 | 42 | | |||
43 | Q_PROPERTY(QString fileUrl | 43 | Q_PROPERTY(QString fileUrl | ||
44 | READ fileUrl | 44 | READ fileUrl | ||
45 | NOTIFY fileUrlChanged) | 45 | NOTIFY fileUrlChanged) | ||
46 | 46 | | |||
47 | Q_PROPERTY(qulonglong databaseId | ||||
48 | READ databaseId | ||||
49 | NOTIFY databaseIdChanged) | ||||
50 | | ||||
47 | Q_PROPERTY(MusicListenersManager* manager | 51 | Q_PROPERTY(MusicListenersManager* manager | ||
48 | READ manager | 52 | READ manager | ||
49 | WRITE setManager | 53 | WRITE setManager | ||
50 | NOTIFY managerChanged) | 54 | NOTIFY managerChanged) | ||
51 | 55 | | |||
52 | Q_PROPERTY(QString lyrics | 56 | Q_PROPERTY(QString lyrics | ||
53 | READ lyrics | 57 | READ lyrics | ||
54 | NOTIFY lyricsChanged) | 58 | NOTIFY lyricsChanged) | ||
55 | 59 | | |||
56 | Q_PROPERTY(bool isRadio | | |||
57 | READ isRadio | | |||
58 | WRITE setIsRadio | | |||
59 | NOTIFY isRadioChanged) | | |||
60 | | ||||
61 | public: | 60 | public: | ||
62 | 61 | | |||
63 | enum ColumnRoles | 62 | enum ColumnRoles | ||
64 | { | 63 | { | ||
65 | ItemNameRole = Qt::UserRole + 1, | 64 | ItemNameRole = Qt::UserRole + 1, | ||
66 | ItemTypeRole, | 65 | ItemTypeRole, | ||
67 | }; | 66 | }; | ||
68 | 67 | | |||
Show All 26 Lines | |||||
95 | QUrl coverUrl() const; | 94 | QUrl coverUrl() const; | ||
96 | 95 | | |||
97 | QString fileUrl() const; | 96 | QString fileUrl() const; | ||
98 | 97 | | |||
99 | MusicListenersManager* manager() const; | 98 | MusicListenersManager* manager() const; | ||
100 | 99 | | |||
101 | QString lyrics() const; | 100 | QString lyrics() const; | ||
102 | 101 | | |||
103 | bool isRadio(); | 102 | qulonglong databaseId() const; | ||
104 | 103 | | |||
105 | Q_SIGNALS: | 104 | Q_SIGNALS: | ||
106 | 105 | | |||
107 | void needDataByDatabaseId(ElisaUtils::PlayListEntryType dataType, qulonglong databaseId); | 106 | void needDataByDatabaseId(ElisaUtils::PlayListEntryType dataType, qulonglong databaseId); | ||
108 | 107 | | |||
109 | void needDataByFileName(ElisaUtils::PlayListEntryType dataType, const QUrl &fileName); | 108 | void needDataByFileName(ElisaUtils::PlayListEntryType dataType, const QUrl &fileName); | ||
110 | 109 | | |||
111 | void coverUrlChanged(); | 110 | void coverUrlChanged(); | ||
112 | 111 | | |||
113 | void fileUrlChanged(); | 112 | void fileUrlChanged(); | ||
114 | 113 | | |||
115 | void managerChanged(); | 114 | void managerChanged(); | ||
116 | 115 | | |||
117 | void lyricsChanged(); | 116 | void lyricsChanged(); | ||
118 | 117 | | |||
119 | void saveRadioData(const DatabaseInterface::TrackDataType &trackDataType); | 118 | void saveRadioData(const DatabaseInterface::TrackDataType &trackDataType); | ||
120 | 119 | | |||
121 | void deleteRadioData(qulonglong radioId); | 120 | void deleteRadioData(qulonglong radioId); | ||
122 | 121 | | |||
123 | void disableApplyButton(); | 122 | void databaseIdChanged(); | ||
124 | | ||||
125 | void hideDeleteButton(); | | |||
126 | | ||||
127 | void showDeleteButton(); | | |||
128 | | ||||
129 | void closeWindow(); | | |||
130 | | ||||
131 | void isRadioChanged(); | | |||
132 | 123 | | |||
133 | public Q_SLOTS: | 124 | public Q_SLOTS: | ||
134 | 125 | | |||
135 | void trackData(const TrackMetadataModel::TrackDataType &trackData); | 126 | void trackData(const TrackMetadataModel::TrackDataType &trackData); | ||
136 | 127 | | |||
137 | void initializeByTrackId(qulonglong databaseId); | 128 | void initializeById(ElisaUtils::PlayListEntryType type, qulonglong databaseId); | ||
138 | 129 | | |||
139 | void initializeByTrackFileName(const QString &fileName); | 130 | void initializeByTrackFileName(const QString &fileName); | ||
140 | 131 | | |||
141 | void initializeForNewRadio(); | 132 | void initializeForNewRadio(); | ||
142 | 133 | | |||
143 | void setManager(MusicListenersManager *newManager); | 134 | void setManager(MusicListenersManager *newManager); | ||
144 | 135 | | |||
145 | void setIsRadio(bool isRadio); | | |||
146 | | ||||
147 | void setDatabase(DatabaseInterface *trackDatabase); | 136 | void setDatabase(DatabaseInterface *trackDatabase); | ||
148 | 137 | | |||
149 | void saveData(); | 138 | void saveData(); | ||
150 | 139 | | |||
151 | void deleteRadio(); | 140 | void deleteRadio(); | ||
152 | 141 | | |||
153 | void radioAdded(const TrackMetadataModel::TrackDataType &radiosData); | 142 | void radioData(const TrackMetadataModel::TrackDataType &radiosData); | ||
154 | | ||||
155 | void radioModified(); | | |||
156 | | ||||
157 | void radioRemoved(); | | |||
158 | 143 | | |||
159 | protected: | 144 | protected: | ||
160 | 145 | | |||
161 | void fillDataFromTrackData(const TrackMetadataModel::TrackDataType &trackData); | 146 | void fillDataFromTrackData(const TrackMetadataModel::TrackDataType &trackData, | ||
147 | const QList<DatabaseInterface::ColumnsRoles> &fieldsForTrack); | ||||
162 | 148 | | |||
163 | void fillDataForNewRadio(); | 149 | void fillDataForNewRadio(); | ||
164 | 150 | | |||
165 | virtual void filterDataFromTrackData(); | 151 | virtual void filterDataFromTrackData(); | ||
166 | 152 | | |||
167 | void removeMetaData(DatabaseInterface::ColumnsRoles metaData); | 153 | void removeMetaData(DatabaseInterface::ColumnsRoles metaData); | ||
168 | 154 | | |||
169 | TrackDataType::mapped_type dataFromType(TrackDataType::key_type metaData) const; | 155 | TrackDataType::mapped_type dataFromType(TrackDataType::key_type metaData) const; | ||
170 | 156 | | |||
171 | virtual void fillLyricsDataFromTrack(); | 157 | virtual void fillLyricsDataFromTrack(); | ||
172 | 158 | | |||
173 | private Q_SLOTS: | 159 | private Q_SLOTS: | ||
174 | 160 | | |||
175 | void lyricsValueIsReady(); | 161 | void lyricsValueIsReady(); | ||
176 | 162 | | |||
177 | private: | 163 | private: | ||
178 | 164 | | |||
179 | void initialize(MusicListenersManager *newManager, | 165 | void initialize(MusicListenersManager *newManager, | ||
180 | DatabaseInterface *trackDatabase); | 166 | DatabaseInterface *trackDatabase); | ||
181 | 167 | | |||
182 | void fetchLyrics(); | 168 | void fetchLyrics(); | ||
183 | 169 | | |||
184 | QVariant dataGeneral(const QModelIndex &index, int role) const; | | |||
185 | | ||||
186 | QVariant dataRadio(const QModelIndex &index, int role) const; | | |||
187 | | ||||
188 | TrackDataType mFullData; | 170 | TrackDataType mFullData; | ||
189 | 171 | | |||
190 | TrackDataType mTrackData; | 172 | TrackDataType mTrackData; | ||
191 | 173 | | |||
192 | QUrl mCoverImage; | 174 | QUrl mCoverImage; | ||
193 | 175 | | |||
194 | QString mFileUrl; | 176 | QString mFileUrl; | ||
195 | 177 | | |||
178 | qulonglong mDatabaseId = 0; | ||||
179 | | ||||
196 | QList<TrackDataType::key_type> mTrackKeys; | 180 | QList<TrackDataType::key_type> mTrackKeys; | ||
197 | 181 | | |||
198 | ModelDataLoader mDataLoader; | 182 | ModelDataLoader mDataLoader; | ||
199 | 183 | | |||
200 | MusicListenersManager *mManager = nullptr; | 184 | MusicListenersManager *mManager = nullptr; | ||
201 | 185 | | |||
202 | bool mIsRadio = false; | | |||
203 | | ||||
204 | FileScanner mFileScanner; | 186 | FileScanner mFileScanner; | ||
205 | 187 | | |||
206 | QMimeDatabase mMimeDatabase; | 188 | QMimeDatabase mMimeDatabase; | ||
207 | 189 | | |||
208 | QFutureWatcher<QString> mLyricsValueWatcher; | 190 | QFutureWatcher<QString> mLyricsValueWatcher; | ||
209 | }; | 191 | }; | ||
210 | 192 | | |||
211 | #endif // TRACKMETADATAMODEL_H | 193 | #endif // TRACKMETADATAMODEL_H |