aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistmodel.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-11-25 06:55:03 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-11-25 06:55:03 +0000
commit3be88d8c0b32bfb77d3d5acc787dd100087453d5 (patch)
tree1dea275f31551af8bb89e73d9c730fdebfec5950 /src/qmmpui/playlistmodel.cpp
parentcfbd11f1157362af276eb9f80ee40c0d0b5da47a (diff)
downloadqmmp-3be88d8c0b32bfb77d3d5acc787dd100087453d5.tar.gz
qmmp-3be88d8c0b32bfb77d3d5acc787dd100087453d5.tar.bz2
qmmp-3be88d8c0b32bfb77d3d5acc787dd100087453d5.zip
implemented drag&drop to a specific place
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3924 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistmodel.cpp')
-rw-r--r--src/qmmpui/playlistmodel.cpp46
1 files changed, 33 insertions, 13 deletions
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index b82faf27b..cd45d8cb2 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -51,8 +51,8 @@ PlayListModel::PlayListModel(const QString &name, QObject *parent)
m_container = new NormalContainer;
connect(m_loader, SIGNAL(newTrackToAdd(PlayListTrack*)),
SLOT(add(PlayListTrack*)), Qt::QueuedConnection);
- connect(m_loader, SIGNAL(newTrackToInsert(int, PlayListTrack*)),
- SLOT(insert(int, PlayListTrack*)), Qt::QueuedConnection);
+ connect(m_loader, SIGNAL(newTrackToInsert(PlayListItem*, PlayListTrack*)),
+ SLOT(insert(PlayListItem*, PlayListTrack*)), Qt::QueuedConnection);
connect(m_loader, SIGNAL(finished()), SLOT(preparePlayState()));
connect(m_loader, SIGNAL(finished()), SIGNAL(loaderFinished()));
}
@@ -164,6 +164,11 @@ void PlayListModel::insert(int index, PlayListTrack *track)
emit countChanged();
}
+void PlayListModel::insert(PlayListItem *before, PlayListTrack *track)
+{
+ insert(m_container->indexOf(before), track);
+}
+
void PlayListModel::insert(int index, QList<PlayListTrack *> tracks)
{
if(tracks.isEmpty())
@@ -193,24 +198,39 @@ void PlayListModel::insert(int index, QList<PlayListTrack *> tracks)
void PlayListModel::insert(int index, const QString &path)
{
- m_loader->insert(index, path);
- /*QFileInfo f_info(path);
- if (f_info.isDir())
- m_loader->loadDirectory(path);
+ if(index < 0 || index >= m_container->count())
+ add(path);
else
{
- m_loader->loadFile(path);
- loadPlaylist(path);
- }*/
+ PlayListItem *before = m_container->item(index);
+ m_loader->insert(before, path);
+ }
+ //TODO insert playlist
}
void PlayListModel::insert(int index, const QStringList &paths)
{
- m_loader->insert(index, paths);
- /*foreach(QString str, paths)
+ if(index < 0 || index >= m_container->count())
+ add(paths);
+ else
+ {
+ PlayListItem *before = m_container->item(index);
+ m_loader->insert(before, paths);
+ }
+ //TODO insert playlist
+}
+
+void PlayListModel::insert(int index, const QList<QUrl> &urls)
+{
+ QStringList paths;
+ foreach (QUrl url, urls)
{
- add(str);
- }*/
+ if(url.scheme() == "file")
+ paths.append(QFileInfo(url.toLocalFile()).absoluteFilePath());
+ else
+ paths.append(url.toString());
+ }
+ insert(index, paths);
}
int PlayListModel::count() const