20#ifndef PLAYLISTMODEL_H
21#define PLAYLISTMODEL_H
32#include "playlistitem.h"
33#include "playlisttrack.h"
34#include "playlistgroup.h"
35#include "coverloader_p.h"
36#include "qmmpui_export.h"
42class PlayListContainer;
178 void setSelected(
const QList<PlayListItem *> &items,
bool selected =
true);
565 int topmostInSelection(
int);
569 int bottommostInSelection(
int);
574 void removeSelection(
bool inverted =
false);
576 int removeTrackInternal(
int i);
582 void preparePlayState();
586 void prepareForShufflePlaying(
bool yes);
591 void prepareGroups(
bool enabled);
593 void onTaskFinished();
597 void startCoverLoader();
598 void setCover(
const QString &path,
const QImage &img);
605 PlayState* m_play_state;
606 qint64 m_total_duration = 0;
607 FileLoader *m_loader;
608 CoverLoader *m_coverLoder;
610 PlayListContainer *m_container;
612 PlayListTask *m_task;
613 QSet<QString> m_uniquePaths;
The PlayListTrack class provides a group for use with the PlayListModel class.
Definition playlistgroup.h:37
The PlayListItem class provides an item for use with the PlayListModel class.
Definition playlistitem.h:33
The PlayListModel class provides a data model for the playlist.
Definition playlistmodel.h:88
SortMode
Definition playlistmodel.h:323
@ ALBUMARTIST
Definition playlistmodel.h:328
@ TITLE
Definition playlistmodel.h:324
@ DATE
Definition playlistmodel.h:331
@ TRACK
Definition playlistmodel.h:332
@ DISCNUMBER
Definition playlistmodel.h:326
@ FILE_CREATION_DATE
Definition playlistmodel.h:333
@ GROUP
Definition playlistmodel.h:335
@ ARTIST
Definition playlistmodel.h:327
@ PATH_AND_FILENAME
Definition playlistmodel.h:330
@ ALBUM
Definition playlistmodel.h:325
@ FILENAME
Definition playlistmodel.h:329
@ FILE_MODIFICATION_DATE
Definition playlistmodel.h:334
int indexOf(PlayListItem *item) const
void sortByColumn(int column)
PlayListTrack * trackAtLine(int lineIndex) const
void scrollToRequest(int trackIndex)
void addTracks(const QList< PlayListTrack * > &tracks)
void sortSelection(PlayListModel::SortMode mode)
void insertPaths(int index, const QStringList &paths)
void scrollTo(int trackIndex)
void sort(PlayListModel::SortMode mode)
void nameChanged(const QString &name)
void showDetailsForCurrent(QWidget *parent=nullptr)
void setSelected(const QList< PlayListTrack * > &tracks, bool selected=true)
qint64 totalDuration() const
void insertPath(int index, const QString &path)
SimpleSelection getSelection(int trackIndex)
void savePlaylist(const QString &f_name)
int findLine(PlayListItem *item) const
void showDetails(QWidget *parent=nullptr)
QList< PlayListItem * > findTracks(const QString &str) const
PlayListModel(const QString &name, QObject *parent=nullptr)
void loadPlaylist(const QString &fmt, const QByteArray &data)
QList< int > selectedTrackIndexes() const
const QList< PlayListTrack * > & queuedTracks() const
PlayListTrack * track(int index) const
void insertTracks(int index, const QList< PlayListTrack * > &tracks)
void removeInvalidTracks()
void removeTrack(PlayListTrack *track)
void insertJson(int index, const QByteArray &json)
PlayListGroup * group(int index) const
void currentTrackRemoved()
PlayListTrack * findTrack(int trackIndex) const
void moveTracks(int from, int to)
bool alternateColor(int lineIndex) const
void setQueued(PlayListTrack *t)
void tracksAdded(const QList< PlayListTrack * > &tracks)
void removeTracks(const QList< PlayListItem * > &items)
void removeTracks(const QList< PlayListTrack * > &tracks)
int firstSelectedLower(int trackIndex)
QList< int > selectedLines() const
PlayListTrack * currentTrack() const
QList< PlayListItem * > itemsAtLines(int pos, int count=-1) const
void setSelected(PlayListItem *item, bool selected=true)
void addTrack(PlayListTrack *track)
UpdateFlags
Definition playlistmodel.h:351
@ METADATA
Definition playlistmodel.h:357
@ QUEUE
Definition playlistmodel.h:354
@ SELECTION
Definition playlistmodel.h:353
@ CURRENT
Definition playlistmodel.h:355
@ STRUCTURE
Definition playlistmodel.h:352
@ STOP_AFTER
Definition playlistmodel.h:356
bool setCurrent(int index)
void setName(const QString &name)
void addPath(const QString &path)
void listChanged(int flags)
void sortingByColumnFinished(int column, bool reverted)
bool isLoaderRunning() const
int trackIndexAtLine(int lineIndex) const
void insertTrack(int index, PlayListTrack *track)
void loadPlaylist(const QString &f_name)
int linesPerGroup() const
QList< PlayListTrack * > tracks() const
void insertUrls(int index, const QList< QUrl > &urls)
int subIndexOfLine(int lineIndex) const
PlayListItem * itemAtLine(int lineIndex) const
bool isStopAfter(const PlayListItem *track) const
void addPaths(const QStringList &paths)
bool isEmptyQueue() const
bool setCurrent(PlayListTrack *track)
bool contains(const QString &url)
int findLine(int trackIndex) const
QList< PlayListTrack * > selectedTracks() const
void doCurrentVisibleRequest()
PlayListTrack * nextTrack() const
void setSelectedLines(int firstLine, int lastLine, bool selected=true)
int firstSelectedUpper(int trackIndex)
void setSelected(const QList< PlayListItem * > &items, bool selected=true)
void setSelectedLine(int line, bool selected=true)
The PlayListTrack class provides a track for use with the PlayListModel class.
Definition playlisttrack.h:37
The QmmpUiSettings class provides access to global libqmmpui library settings.
Definition qmmpuisettings.h:36
Helper class that keeps track of a view's selected items.
Definition playlistmodel.h:51
int count() const
Definition playlistmodel.h:55
int bottom
Definition playlistmodel.h:60
int top
Definition playlistmodel.h:59