21#ifndef PLAYLISTCONTAINER_P_H
22#define PLAYLISTCONTAINER_P_H
26#include "playlistitem.h"
27#include "playlisttrack.h"
28#include "playlistgroup.h"
36class PlayListContainer
40 virtual ~PlayListContainer(){}
42 virtual void addTrack(PlayListTrack *track) = 0;
43 virtual void addTracks(
const QList<PlayListTrack *> &tracks) = 0;
44 virtual int insertTrack(
int index, PlayListTrack *track) = 0;
45 virtual void replaceTracks(
const QList<PlayListTrack *> &tracks) = 0;
46 virtual QList<PlayListGroup *> groups()
const = 0;
47 virtual QList<PlayListTrack *> tracks()
const = 0;
49 virtual int groupCount()
const = 0;
50 virtual int trackCount()
const = 0;
51 virtual QList<PlayListTrack *> mid(
int pos,
int count)
const = 0;
52 virtual bool isEmpty()
const = 0;
53 virtual void clearSelection() = 0;
54 virtual int indexOf(PlayListItem *item)
const = 0;
55 virtual PlayListTrack *track(
int index)
const = 0;
56 virtual PlayListGroup *group(
int index)
const = 0;
57 virtual bool contains(PlayListTrack *track)
const = 0;
58 virtual void removeTrack(PlayListTrack *track) = 0;
59 virtual void removeTracks(QList<PlayListTrack *> tracks) = 0;
60 virtual bool move(
const QList<int> &indexes,
int from,
int to) = 0;
61 virtual QList<PlayListTrack *> takeAllTracks() = 0;
62 virtual void clear() = 0;
63 virtual void reverseList() = 0;
64 virtual void randomizeList() = 0;
66 PlayListTrack *dequeue();
67 void enqueue(PlayListTrack *track);
68 void removeFromQueue(PlayListTrack *track);
70 void restoreQueue(
const QList<PlayListTrack *> &tracks);
71 const QList<PlayListTrack *> &queuedTracks()
const;
72 int linesPerGroup()
const;
73 void setLinesPerGroup(
int lines);
75 virtual int lineCount()
const = 0;
76 virtual PlayListItem *itemAtLine(
int lineIndex)
const = 0;
77 virtual QList<PlayListItem *> itemsAtLines(
int pos,
int length = -1)
const = 0;
78 virtual int subIndexOfLine(
int lineIndex)
const = 0;
79 virtual int trackIndexAtLine(
int lineIndex)
const = 0;
80 virtual bool alternateColor(
int lineIndex)
const = 0;
83 void swapTrackNumbers(QList<PlayListTrack *> *container,
int index1,
int index2);
86 void updateQueueIndexes();
87 QQueue<PlayListTrack *> m_queue;
88 int m_linesPerGroup = 1;