Changeset View
Changeset View
Standalone View
Standalone View
src/mediaplaylist.cpp
Show First 20 Lines • Show All 214 Lines • ▼ Show 20 Line(s) | 212 | { | |||
---|---|---|---|---|---|
215 | if (!index.isValid()) { | 215 | if (!index.isValid()) { | ||
216 | return modelModified; | 216 | return modelModified; | ||
217 | } | 217 | } | ||
218 | 218 | | |||
219 | if (index.row() < 0 || index.row() >= d->mData.size()) { | 219 | if (index.row() < 0 || index.row() >= d->mData.size()) { | ||
220 | return modelModified; | 220 | return modelModified; | ||
221 | } | 221 | } | ||
222 | 222 | | |||
223 | if (role < ColumnsRoles::IsValidRole || role > ColumnsRoles::IsPlayingRole) { | 223 | if ((role != ColumnsRoles::TitleRole && role != ColumnsRoles::ArtistRole) && | ||
224 | (role < ColumnsRoles::IsValidRole || role > ColumnsRoles::IsPlayingRole)) { | ||||
224 | return modelModified; | 225 | return modelModified; | ||
225 | } | 226 | } | ||
226 | 227 | | |||
227 | auto convertedRole = static_cast<ColumnsRoles>(role); | 228 | auto convertedRole = static_cast<ColumnsRoles>(role); | ||
228 | 229 | | |||
229 | switch(convertedRole) | 230 | switch(convertedRole) | ||
230 | { | 231 | { | ||
231 | case ColumnsRoles::IsPlayingRole: | 232 | case ColumnsRoles::IsPlayingRole: | ||
232 | { | 233 | { | ||
233 | modelModified = true; | 234 | modelModified = true; | ||
234 | auto newState = static_cast<PlayState>(value.toInt()); | 235 | auto newState = static_cast<PlayState>(value.toInt()); | ||
235 | d->mData[index.row()].mIsPlaying = newState; | 236 | d->mData[index.row()].mIsPlaying = newState; | ||
236 | Q_EMIT dataChanged(index, index, {role}); | 237 | Q_EMIT dataChanged(index, index, {role}); | ||
237 | 238 | | |||
238 | if (!d->mCurrentTrack.isValid()) { | 239 | if (!d->mCurrentTrack.isValid()) { | ||
239 | resetCurrentTrack(); | 240 | resetCurrentTrack(); | ||
240 | } | 241 | } | ||
241 | 242 | | |||
242 | break; | 243 | break; | ||
243 | } | 244 | } | ||
245 | case ColumnsRoles::TitleRole: | ||||
246 | { | ||||
247 | modelModified = true; | ||||
248 | d->mData[index.row()].mTitle = value; | ||||
249 | d->mTrackData[index.row()][static_cast<TrackDataType::key_type>(role)] = value; | ||||
250 | Q_EMIT dataChanged(index, index, {role}); | ||||
251 | | ||||
252 | if (!d->mCurrentTrack.isValid()) { | ||||
253 | resetCurrentTrack(); | ||||
254 | } | ||||
255 | | ||||
256 | break; | ||||
257 | } | ||||
258 | case ColumnsRoles::ArtistRole: | ||||
259 | { | ||||
260 | modelModified = true; | ||||
261 | d->mData[index.row()].mArtist = value; | ||||
262 | d->mTrackData[index.row()][static_cast<TrackDataType::key_type>(role)] = value; | ||||
263 | Q_EMIT dataChanged(index, index, {role}); | ||||
264 | | ||||
265 | if (!d->mCurrentTrack.isValid()) { | ||||
266 | resetCurrentTrack(); | ||||
267 | } | ||||
268 | | ||||
269 | break; | ||||
270 | } | ||||
244 | default: | 271 | default: | ||
245 | modelModified = false; | 272 | modelModified = false; | ||
246 | } | 273 | } | ||
247 | 274 | | |||
248 | return modelModified; | 275 | return modelModified; | ||
249 | } | 276 | } | ||
250 | 277 | | |||
251 | bool MediaPlayList::removeRows(int row, int count, const QModelIndex &parent) | 278 | bool MediaPlayList::removeRows(int row, int count, const QModelIndex &parent) | ||
▲ Show 20 Lines • Show All 168 Lines • ▼ Show 20 Line(s) | 421 | { | |||
420 | } | 447 | } | ||
421 | 448 | | |||
422 | Q_EMIT tracksCountChanged(); | 449 | Q_EMIT tracksCountChanged(); | ||
423 | Q_EMIT persistentStateChanged(); | 450 | Q_EMIT persistentStateChanged(); | ||
424 | 451 | | |||
425 | Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); | 452 | Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); | ||
426 | } | 453 | } | ||
427 | 454 | | |||
428 | void MediaPlayList::enqueueTracksListById(const ElisaUtils::EntryDataList &newEntries) | 455 | void MediaPlayList::enqueueTracksListById(const ElisaUtils::EntryDataList &newEntries, ElisaUtils::PlayListEntryType type) | ||
429 | { | 456 | { | ||
430 | enqueueCommon(); | 457 | enqueueCommon(); | ||
431 | 458 | | |||
432 | beginInsertRows(QModelIndex(), d->mData.size(), d->mData.size() + newEntries.size() - 1); | 459 | beginInsertRows(QModelIndex(), d->mData.size(), d->mData.size() + newEntries.size() - 1); | ||
433 | for (const auto &newTrack : newEntries) { | 460 | for (const auto &newTrack : newEntries) { | ||
434 | auto newMediaPlayListEntry = MediaPlayListEntry{std::get<0>(newTrack), std::get<1>(newTrack), ElisaUtils::Track}; | 461 | auto newMediaPlayListEntry = MediaPlayListEntry{std::get<0>(newTrack), std::get<1>(newTrack), type}; | ||
435 | d->mData.push_back(newMediaPlayListEntry); | 462 | d->mData.push_back(newMediaPlayListEntry); | ||
436 | d->mTrackData.push_back({}); | 463 | d->mTrackData.push_back({}); | ||
437 | Q_EMIT newEntryInList(newMediaPlayListEntry.mId, newMediaPlayListEntry.mTitle.toString(), newMediaPlayListEntry.mEntryType); | 464 | Q_EMIT newEntryInList(newMediaPlayListEntry.mId, newMediaPlayListEntry.mTitle.toString(), newMediaPlayListEntry.mEntryType); | ||
438 | } | 465 | } | ||
439 | endInsertRows(); | 466 | endInsertRows(); | ||
440 | 467 | | |||
441 | restorePlayListPosition(); | 468 | restorePlayListPosition(); | ||
442 | if (!d->mCurrentTrack.isValid()) { | 469 | if (!d->mCurrentTrack.isValid()) { | ||
▲ Show 20 Lines • Show All 117 Lines • ▼ Show 20 Line(s) | 546 | { | |||
560 | Q_EMIT tracksCountChanged(); | 587 | Q_EMIT tracksCountChanged(); | ||
561 | Q_EMIT persistentStateChanged(); | 588 | Q_EMIT persistentStateChanged(); | ||
562 | 589 | | |||
563 | Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); | 590 | Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); | ||
564 | displayOrHideUndoInline(false); | 591 | displayOrHideUndoInline(false); | ||
565 | Q_EMIT undoClearPlayListPlayer(); | 592 | Q_EMIT undoClearPlayListPlayer(); | ||
566 | } | 593 | } | ||
567 | 594 | | |||
595 | void MediaPlayList::updateRadioData(const QVariant &value, int role) | ||||
596 | { | ||||
597 | auto convertedRole = static_cast<ColumnsRoles>(role); | ||||
598 | if(d->mCurrentTrack.data(convertedRole) != value){ | ||||
astippich: code style
if (...) { | |||||
599 | this->setData(d->mCurrentTrack, value, role); | ||||
600 | } | ||||
601 | } | ||||
602 | | ||||
568 | void MediaPlayList::enqueueCommon() | 603 | void MediaPlayList::enqueueCommon() | ||
569 | { | 604 | { | ||
570 | displayOrHideUndoInline(false); | 605 | displayOrHideUndoInline(false); | ||
571 | } | 606 | } | ||
572 | 607 | | |||
573 | void MediaPlayList::copyD() | 608 | void MediaPlayList::copyD() | ||
574 | { | 609 | { | ||
575 | dOld->mData = d->mData; | 610 | dOld->mData = d->mData; | ||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Line(s) | 655 | { | |||
628 | enqueueCommon(); | 663 | enqueueCommon(); | ||
629 | 664 | | |||
630 | switch (databaseIdType) | 665 | switch (databaseIdType) | ||
631 | { | 666 | { | ||
632 | case ElisaUtils::Album: | 667 | case ElisaUtils::Album: | ||
633 | case ElisaUtils::Artist: | 668 | case ElisaUtils::Artist: | ||
634 | case ElisaUtils::Genre: | 669 | case ElisaUtils::Genre: | ||
635 | case ElisaUtils::Track: | 670 | case ElisaUtils::Track: | ||
671 | case ElisaUtils::Radio: | ||||
636 | enqueueOneEntry(newEntry, databaseIdType); | 672 | enqueueOneEntry(newEntry, databaseIdType); | ||
637 | break; | 673 | break; | ||
638 | case ElisaUtils::FileName: | 674 | case ElisaUtils::FileName: | ||
639 | enqueueFilesList({newEntry}); | 675 | enqueueFilesList({newEntry}); | ||
640 | break; | 676 | break; | ||
641 | case ElisaUtils::Lyricist: | 677 | case ElisaUtils::Lyricist: | ||
642 | case ElisaUtils::Composer: | 678 | case ElisaUtils::Composer: | ||
643 | case ElisaUtils::Unknown: | 679 | case ElisaUtils::Unknown: | ||
Show All 25 Lines | 701 | if (enqueueMode == ElisaUtils::ReplacePlayList) { | |||
669 | clearPlayList(); | 705 | clearPlayList(); | ||
670 | } | 706 | } | ||
671 | 707 | | |||
672 | enqueueCommon(); | 708 | enqueueCommon(); | ||
673 | 709 | | |||
674 | switch (databaseIdType) | 710 | switch (databaseIdType) | ||
675 | { | 711 | { | ||
676 | case ElisaUtils::Track: | 712 | case ElisaUtils::Track: | ||
677 | enqueueTracksListById(newEntries); | 713 | case ElisaUtils::Radio: | ||
714 | enqueueTracksListById(newEntries, databaseIdType); | ||||
678 | break; | 715 | break; | ||
679 | case ElisaUtils::FileName: | 716 | case ElisaUtils::FileName: | ||
680 | enqueueFilesList(newEntries); | 717 | enqueueFilesList(newEntries); | ||
681 | break; | 718 | break; | ||
682 | case ElisaUtils::Album: | 719 | case ElisaUtils::Album: | ||
683 | case ElisaUtils::Artist: | 720 | case ElisaUtils::Artist: | ||
684 | case ElisaUtils::Genre: | 721 | case ElisaUtils::Genre: | ||
685 | enqueueMultipleEntries(newEntries, databaseIdType); | 722 | enqueueMultipleEntries(newEntries, databaseIdType); | ||
▲ Show 20 Lines • Show All 230 Lines • ▼ Show 20 Line(s) | 927 | if (oneEntry.mEntryType != ElisaUtils::Artist && oneEntry.mIsValid) { | |||
916 | Q_EMIT dataChanged(index(i, 0), index(i, 0), {}); | 953 | Q_EMIT dataChanged(index(i, 0), index(i, 0), {}); | ||
917 | 954 | | |||
918 | restorePlayListPosition(); | 955 | restorePlayListPosition(); | ||
919 | 956 | | |||
920 | if (!d->mCurrentTrack.isValid()) { | 957 | if (!d->mCurrentTrack.isValid()) { | ||
921 | resetCurrentTrack(); | 958 | resetCurrentTrack(); | ||
922 | } | 959 | } | ||
923 | continue; | 960 | continue; | ||
961 | } else if(oneEntry.mEntryType == ElisaUtils::Radio ){ | ||||
astippich: code style
} else if (.....) { | |||||
962 | if (track.databaseId() != oneEntry.mId) { | ||||
963 | continue; | ||||
964 | } | ||||
965 | | ||||
966 | d->mTrackData[i] = track; | ||||
967 | oneEntry.mId = track.databaseId(); | ||||
968 | oneEntry.mIsValid = true; | ||||
969 | | ||||
970 | Q_EMIT dataChanged(index(i, 0), index(i, 0), {}); | ||||
971 | | ||||
972 | restorePlayListPosition(); | ||||
973 | | ||||
974 | if (!d->mCurrentTrack.isValid()) { | ||||
975 | resetCurrentTrack(); | ||||
976 | } | ||||
977 | | ||||
978 | break; | ||||
924 | } else if (oneEntry.mEntryType != ElisaUtils::Artist && !oneEntry.mIsValid && !oneEntry.mTrackUrl.isValid()) { | 979 | } else if (oneEntry.mEntryType != ElisaUtils::Artist && !oneEntry.mIsValid && !oneEntry.mTrackUrl.isValid()) { | ||
925 | if (track.find(TrackDataType::key_type::TitleRole) != track.end() && | 980 | if (track.find(TrackDataType::key_type::TitleRole) != track.end() && | ||
926 | track.title() != oneEntry.mTitle) { | 981 | track.title() != oneEntry.mTitle) { | ||
927 | continue; | 982 | continue; | ||
928 | } | 983 | } | ||
929 | 984 | | |||
930 | if (track.find(TrackDataType::key_type::AlbumRole) != track.end() && | 985 | if (track.find(TrackDataType::key_type::AlbumRole) != track.end() && | ||
931 | track.album() != oneEntry.mAlbum) { | 986 | track.album() != oneEntry.mAlbum) { | ||
▲ Show 20 Lines • Show All 293 Lines • Show Last 20 Lines |
code style
if (...) {