diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-11-20 11:57:25 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-11-20 11:57:25 +0000 |
| commit | 7b5e9960a11f35b3792d3417557fef5abc1ca876 (patch) | |
| tree | 69ee9a72fabbcf169d1b4b2eb7f3051d6c0d3e81 /src/qmmpui/playlistmodel.cpp | |
| parent | 025f0783a5bdc1fffb6dbf6149ca0bb68f12f12f (diff) | |
| download | qmmp-7b5e9960a11f35b3792d3417557fef5abc1ca876.tar.gz qmmp-7b5e9960a11f35b3792d3417557fef5abc1ca876.tar.bz2 qmmp-7b5e9960a11f35b3792d3417557fef5abc1ca876.zip | |
prepare for insert functions impelementation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3918 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistmodel.cpp')
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index bcf7dc554..b923a9848 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -51,6 +51,8 @@ PlayListModel::PlayListModel(const QString &name, QObject *parent) m_container = new NormalContainer; connect(m_loader, SIGNAL(newPlayListTrack(PlayListTrack*)), SLOT(add(PlayListTrack*)), Qt::QueuedConnection); + connect(m_loader, SIGNAL(newPlayListTrack(int, PlayListTrack*)), + SLOT(insert(int, PlayListTrack*)), Qt::QueuedConnection); connect(m_loader, SIGNAL(finished()), SLOT(preparePlayState())); connect(m_loader, SIGNAL(finished()), SIGNAL(loaderFinished())); } @@ -114,6 +116,11 @@ void PlayListModel::add(QList<PlayListTrack *> tracks) m_current = m_container->indexOf(track); emit currentChanged(); } + else if(m_groups_enabled) + { + //update current index for grouped container only + m_current = m_container->indexOf(m_current_track); + } emit trackAdded(track); } preparePlayState(); @@ -141,6 +148,74 @@ void PlayListModel::add(const QStringList &paths) } } +void PlayListModel::insert(int index, PlayListTrack *track) +{ + m_container->insertTrack(index, track); + m_total_length += track->length(); + + if(m_container->trackCount() == 1) + { + m_current_track = track; + m_current = m_container->indexOf(track); + emit currentChanged(); + } + else + { + //update current index + m_current = m_container->indexOf(m_current_track); + } + emit trackAdded(track); + emit listChanged(); + emit countChanged(); +} + +void PlayListModel::insert(int index, QList<PlayListTrack *> tracks) +{ + if(tracks.isEmpty()) + return; + + PlayListItem *prevItem = m_container->item(index); + foreach(PlayListTrack *track, tracks) + { + m_container->insertTrack(index, track); + index = prevItem ? m_container->indexOf(prevItem) : m_container->count(); + + m_total_length += track->length(); + if(m_container->trackCount() == 1) + { + m_current_track = track; + m_current = m_container->indexOf(track); + emit currentChanged(); + } + emit trackAdded(track); + } + //update current index + m_current = m_container->indexOf(m_current_track); + preparePlayState(); + emit listChanged(); + emit countChanged(); +} + +void PlayListModel::insert(int index, const QString &path) +{ + /*QFileInfo f_info(path); + if (f_info.isDir()) + m_loader->loadDirectory(path); + else + { + m_loader->loadFile(path); + loadPlaylist(path); + }*/ +} + +void PlayListModel::insert(int index, const QStringList &paths) +{ + /*foreach(QString str, paths) + { + add(str); + }*/ +} + int PlayListModel::count() const { return m_container->count(); |
