Changeset View
Changeset View
Standalone View
Standalone View
src/models/trackmetadatamodel.cpp
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Line(s) | 159 | case DataTypes::PlayCounter: | |||
---|---|---|---|---|---|
160 | result = i18nc("Play counter label for track metadata view", "Play count"); | 160 | result = i18nc("Play counter label for track metadata view", "Play count"); | ||
161 | break; | 161 | break; | ||
162 | case DataTypes::LyricsRole: | 162 | case DataTypes::LyricsRole: | ||
163 | result = i18nc("Lyrics label for track metadata view", "Lyrics"); | 163 | result = i18nc("Lyrics label for track metadata view", "Lyrics"); | ||
164 | break; | 164 | break; | ||
165 | case DataTypes::ResourceRole: | 165 | case DataTypes::ResourceRole: | ||
166 | result = i18nc("Radio HTTP address for radio metadata view", "Stream Http Address"); | 166 | result = i18nc("Radio HTTP address for radio metadata view", "Stream Http Address"); | ||
167 | break; | 167 | break; | ||
168 | case DataTypes::SecondaryTextRole: | | |||
169 | case DataTypes::ImageUrlRole: | 168 | case DataTypes::ImageUrlRole: | ||
169 | result = i18nc("Image address for radio metadata view", "Image Address"); | ||||
170 | break; | ||||
171 | case DataTypes::SecondaryTextRole: | ||||
170 | case DataTypes::ShadowForImageRole: | 172 | case DataTypes::ShadowForImageRole: | ||
171 | case DataTypes::ChildModelRole: | 173 | case DataTypes::ChildModelRole: | ||
172 | case DataTypes::StringDurationRole: | 174 | case DataTypes::StringDurationRole: | ||
173 | case DataTypes::IsValidAlbumArtistRole: | 175 | case DataTypes::IsValidAlbumArtistRole: | ||
174 | case DataTypes::AllArtistsRole: | 176 | case DataTypes::AllArtistsRole: | ||
175 | case DataTypes::HighestTrackRating: | 177 | case DataTypes::HighestTrackRating: | ||
176 | case DataTypes::IdRole: | 178 | case DataTypes::IdRole: | ||
177 | case DataTypes::ParentIdRole: | | |||
178 | case DataTypes::DatabaseIdRole: | 179 | case DataTypes::DatabaseIdRole: | ||
179 | case DataTypes::IsSingleDiscAlbumRole: | 180 | case DataTypes::IsSingleDiscAlbumRole: | ||
180 | case DataTypes::ContainerDataRole: | 181 | case DataTypes::ContainerDataRole: | ||
181 | case DataTypes::IsPartialDataRole: | 182 | case DataTypes::IsPartialDataRole: | ||
182 | case DataTypes::AlbumIdRole: | 183 | case DataTypes::AlbumIdRole: | ||
183 | case DataTypes::HasEmbeddedCover: | 184 | case DataTypes::HasEmbeddedCover: | ||
184 | case DataTypes::FileModificationTime: | 185 | case DataTypes::FileModificationTime: | ||
185 | case DataTypes::FirstPlayDate: | 186 | case DataTypes::FirstPlayDate: | ||
186 | case DataTypes::PlayFrequency: | 187 | case DataTypes::PlayFrequency: | ||
187 | case DataTypes::ElementTypeRole: | 188 | case DataTypes::ElementTypeRole: | ||
188 | break; | 189 | break; | ||
189 | } | 190 | } | ||
190 | break; | 191 | break; | ||
191 | case ItemTypeRole: | 192 | case ItemTypeRole: | ||
192 | switch (currentKey) | 193 | switch (currentKey) | ||
193 | { | 194 | { | ||
194 | case DataTypes::TitleRole: | 195 | case DataTypes::TitleRole: | ||
195 | result = TextEntry; | 196 | result = TextEntry; | ||
196 | break; | 197 | break; | ||
197 | case DataTypes::ResourceRole: | 198 | case DataTypes::ResourceRole: | ||
199 | case DataTypes::ImageUrlRole: | ||||
198 | result = TextEntry; | 200 | result = TextEntry; | ||
199 | break; | 201 | break; | ||
200 | case DataTypes::ArtistRole: | 202 | case DataTypes::ArtistRole: | ||
201 | result = TextEntry; | 203 | result = TextEntry; | ||
202 | break; | 204 | break; | ||
203 | case DataTypes::AlbumRole: | 205 | case DataTypes::AlbumRole: | ||
204 | result = TextEntry; | 206 | result = TextEntry; | ||
205 | break; | 207 | break; | ||
Show All 33 Lines | |||||
239 | case DataTypes::LyricsRole: | 241 | case DataTypes::LyricsRole: | ||
240 | result = LongTextEntry; | 242 | result = LongTextEntry; | ||
241 | break; | 243 | break; | ||
242 | case DataTypes::DurationRole: | 244 | case DataTypes::DurationRole: | ||
243 | case DataTypes::SampleRateRole: | 245 | case DataTypes::SampleRateRole: | ||
244 | case DataTypes::BitRateRole: | 246 | case DataTypes::BitRateRole: | ||
245 | case DataTypes::ChannelsRole: | 247 | case DataTypes::ChannelsRole: | ||
246 | case DataTypes::SecondaryTextRole: | 248 | case DataTypes::SecondaryTextRole: | ||
247 | case DataTypes::ImageUrlRole: | | |||
248 | case DataTypes::ShadowForImageRole: | 249 | case DataTypes::ShadowForImageRole: | ||
249 | case DataTypes::ChildModelRole: | 250 | case DataTypes::ChildModelRole: | ||
250 | case DataTypes::StringDurationRole: | 251 | case DataTypes::StringDurationRole: | ||
251 | case DataTypes::IsValidAlbumArtistRole: | 252 | case DataTypes::IsValidAlbumArtistRole: | ||
252 | case DataTypes::AllArtistsRole: | 253 | case DataTypes::AllArtistsRole: | ||
253 | case DataTypes::HighestTrackRating: | 254 | case DataTypes::HighestTrackRating: | ||
254 | case DataTypes::IdRole: | 255 | case DataTypes::IdRole: | ||
255 | case DataTypes::ParentIdRole: | 256 | case DataTypes::ParentIdRole: | ||
▲ Show 20 Lines • Show All 239 Lines • ▼ Show 20 Line(s) | 495 | { | |||
495 | beginResetModel(); | 496 | beginResetModel(); | ||
496 | mTrackData.clear(); | 497 | mTrackData.clear(); | ||
497 | mTrackKeys.clear(); | 498 | mTrackKeys.clear(); | ||
498 | 499 | | |||
499 | for (auto role : { | 500 | for (auto role : { | ||
500 | DataTypes::TitleRole, | 501 | DataTypes::TitleRole, | ||
501 | DataTypes::ResourceRole, | 502 | DataTypes::ResourceRole, | ||
502 | DataTypes::CommentRole, | 503 | DataTypes::CommentRole, | ||
504 | DataTypes::ImageUrlRole, | ||||
503 | DataTypes::DatabaseIdRole | 505 | DataTypes::DatabaseIdRole | ||
504 | 506 | | |||
505 | }) { | 507 | }) { | ||
506 | mTrackKeys.push_back(role); | 508 | mTrackKeys.push_back(role); | ||
507 | if (role == DataTypes::DatabaseIdRole) { | 509 | if (role == DataTypes::DatabaseIdRole) { | ||
508 | mTrackData[role] = -1; | 510 | mTrackData[role] = -1; | ||
509 | } else { | 511 | } else { | ||
510 | mTrackData[role] = QString(); | 512 | mTrackData[role] = QString(); | ||
Show All 23 Lines | |||||
534 | 536 | | |||
535 | void TrackMetadataModel::setDatabase(DatabaseInterface *trackDatabase) | 537 | void TrackMetadataModel::setDatabase(DatabaseInterface *trackDatabase) | ||
536 | { | 538 | { | ||
537 | initialize(nullptr, trackDatabase); | 539 | initialize(nullptr, trackDatabase); | ||
538 | } | 540 | } | ||
539 | 541 | | |||
540 | void TrackMetadataModel::saveData() | 542 | void TrackMetadataModel::saveData() | ||
541 | { | 543 | { | ||
544 | QString imageUrl = mTrackData[DataTypes::ImageUrlRole].toString(); | ||||
545 | if (!imageUrl.isEmpty() | ||||
546 | && !imageUrl.startsWith(QStringLiteral("http://")) | ||||
547 | && !imageUrl.startsWith(QStringLiteral("https://")) | ||||
548 | && !imageUrl.startsWith(QStringLiteral("file://"))) { | ||||
549 | mTrackData[DataTypes::ImageUrlRole] = QStringLiteral("file:/").append(imageUrl); | ||||
550 | } | ||||
551 | | ||||
542 | Q_EMIT saveRadioData(mTrackData); | 552 | Q_EMIT saveRadioData(mTrackData); | ||
543 | } | 553 | } | ||
544 | 554 | | |||
545 | void TrackMetadataModel::deleteRadio() | 555 | void TrackMetadataModel::deleteRadio() | ||
546 | { | 556 | { | ||
547 | if (mTrackData[DataTypes::DatabaseIdRole]>=0) { | 557 | if (mTrackData[DataTypes::DatabaseIdRole]>=0) { | ||
548 | Q_EMIT deleteRadioData(mTrackData[DataTypes::DatabaseIdRole].toULongLong()); | 558 | Q_EMIT deleteRadioData(mTrackData[DataTypes::DatabaseIdRole].toULongLong()); | ||
549 | } | 559 | } | ||
550 | } | 560 | } | ||
551 | 561 | | |||
552 | void TrackMetadataModel::radioData(const TrackDataType &radiosData) | 562 | void TrackMetadataModel::radioData(const TrackDataType &radiosData) | ||
553 | { | 563 | { | ||
554 | if (!mFullData.isEmpty() && mFullData[DataTypes::DatabaseIdRole].toInt() != -1 && | 564 | if (!mFullData.isEmpty() && mFullData[DataTypes::DatabaseIdRole].toInt() != -1 && | ||
555 | mFullData.databaseId() != radiosData.databaseId()) { | 565 | mFullData.databaseId() != radiosData.databaseId()) { | ||
556 | return; | 566 | return; | ||
557 | } | 567 | } | ||
558 | 568 | | |||
559 | const QList<DataTypes::ColumnsRoles> fieldsForTrack({DataTypes::TitleRole, DataTypes::ResourceRole, | 569 | const QList<DataTypes::ColumnsRoles> fieldsForTrack({DataTypes::TitleRole, DataTypes::ResourceRole, | ||
560 | DataTypes::CommentRole, DataTypes::DatabaseIdRole}); | 570 | DataTypes::CommentRole, DataTypes::ImageUrlRole, | ||
571 | DataTypes::DatabaseIdRole}); | ||||
561 | 572 | | |||
562 | fillDataFromTrackData(radiosData, fieldsForTrack); | 573 | fillDataFromTrackData(radiosData, fieldsForTrack); | ||
563 | } | 574 | } | ||
564 | 575 | | |||
565 | #include "moc_trackmetadatamodel.cpp" | 576 | #include "moc_trackmetadatamodel.cpp" |