21#ifndef GROUPEDCONTAINER_H
22#define GROUPEDCONTAINER_H
25#include "playlistgroup.h"
26#include "playlistcontainer_p.h"
27#include "playlisttrack.h"
29class GroupedContainer :
public PlayListContainer
34 void addTrack(PlayListTrack *track)
override;
35 void addTracks(
const QList<PlayListTrack *> &tracks)
override;
36 int insertTrack(
int index, PlayListTrack *track)
override;
37 void replaceTracks(
const QList<PlayListTrack *> &tracks)
override;
38 QList<PlayListGroup *> groups()
const override;
39 QList<PlayListTrack *> tracks()
const override;
40 int groupCount()
const override;
41 int trackCount()
const override;
42 QList<PlayListTrack *> mid(
int pos,
int count)
const override;
43 bool isEmpty()
const override;
44 void clearSelection()
override;
45 int indexOf(PlayListItem *item)
const override;
46 PlayListTrack *track(
int index)
const override;
47 PlayListGroup *group(
int index)
const override;
48 bool contains(PlayListTrack *track)
const override;
49 void removeTrack(PlayListTrack *track)
override;
50 void removeTracks(QList<PlayListTrack *> tracks)
override;
51 bool move(
const QList<int> &indexes,
int from,
int to)
override;
52 QList<PlayListTrack *> takeAllTracks()
override;
53 void clear()
override;
54 void reverseList()
override;
55 void randomizeList()
override;
58 int lineCount()
const override;
59 PlayListItem *itemAtLine(
int lineIndex)
const override;
60 QList<PlayListItem *> itemsAtLines(
int pos,
int length = -1)
const override;
61 int subIndexOfLine(
int lineIndex)
const override;
62 int trackIndexAtLine(
int lineIndex)
const override;
63 bool alternateColor(
int lineIndex)
const override;
66 void updateCache()
const;
73 bool alternateColor =
false;
76 QList<PlayListTrack *> m_tracks;
77 QList<PlayListGroup *> m_groups;
78 mutable QList<PlayListLine> m_lines;
79 mutable bool m_update =
true;