21#ifndef ABSTRACTLIBRARY_H
22#define ABSTRACTLIBRARY_H
24#include "Utils/Library/LibraryNamespaces.h"
25#include "Utils/Library/Filter.h"
26#include "Utils/Library/Sorting.h"
27#include "Utils/Pimpl.h"
46 void sigAllTracksLoaded();
47 void sigAllAlbumsLoaded();
48 void sigAllArtistsLoaded();
50 void sigReloadingLibrary(
const QString& message,
int progress);
51 void sigReloadingLibraryFinished();
53 void sigDeleteAnswer(QString);
55 void sigCurrentAlbumChanged(
int row);
56 void sigCurrentTrackChanged(
int row);
70 [[nodiscard]]
const AlbumList& albums()
const;
71 [[nodiscard]]
const ArtistList& artists()
const;
78 void changeCurrentDisc(Disc track);
80 [[nodiscard]]
bool isLoaded()
const;
85 [[nodiscard]]
virtual bool isReloading()
const;
86 [[nodiscard]]
virtual bool isEmpty()
const;
91 virtual void reloadLibrary(
bool clear_first, Library::ReloadQuality quality) = 0;
93 virtual void refetch();
95 virtual void refreshCurrentView();
97 virtual void findTrack(TrackID
id);
99 virtual void selectedArtistsChanged(
const IndexSet& indexes);
100 virtual void selectedAlbumsChanged(
const IndexSet& indexes,
bool ignore_artists =
false);
101 virtual void selectedTracksChanged(
const IndexSet& indexes);
104 virtual void fetchTracksByPath(
const QStringList& paths);
106 virtual void deleteTracks(
const MetaDataList& tracks, Library::TrackDeletionMode mode) = 0;
108 virtual void deleteFetchedTracks(Library::TrackDeletionMode mode);
109 virtual void deleteCurrentTracks(Library::TrackDeletionMode mode);
110 virtual void deleteAllTracks();
112 virtual void importFiles(
const QStringList& files);
114 virtual void changeTrackSortorder(Library::TrackSortorder sortOrder);
115 virtual void changeAlbumSortorder(Library::AlbumSortorder sortOrder);
116 virtual void changeArtistSortorder(Library::ArtistSortorder sortOrder);
118 virtual void refreshArtists() = 0;
119 virtual void refreshAlbums() = 0;
120 virtual void refreshTracks() = 0;
124 virtual void initLibraryImpl() = 0;
125 virtual void emitAll();
127 virtual void getAllArtists(
ArtistList& artists)
const = 0;
130 virtual void getAllAlbums(
AlbumList& albums)
const = 0;
135 [[nodiscard]]
virtual int getTrackCount()
const = 0;
136 virtual void getAllTracks(
MetaDataList& tracks)
const = 0;
137 virtual void getAllTracks(
const QStringList& paths,
MetaDataList& tracks)
const = 0;
143 virtual void getAllTracksByPath(
const QStringList& paths,
MetaDataList& tracks)
const = 0;
145 virtual void getTrackById(TrackID trackId,
MetaData& md)
const = 0;
146 virtual void getAlbumById(AlbumId albumId,
Album& album)
const = 0;
147 virtual void getArtistById(ArtistId artistId,
Artist& artist)
const = 0;
149 void replaceAlbum(
int index,
const Album& album);
150 void replaceTrack(
int index,
const MetaData& track);
152 void prepareTracks();
153 void prepareAlbums();
154 void prepareArtists();
157 void changeTrackSelection(
const IndexSet& indexes);
158 void changeArtistSelection(
const IndexSet& indexes);
159 void changeAlbumSelection(
const IndexSet& indexes,
bool ignore_artists =
false);
Definition: AbstractLibrary.h:41
Collection of extensions. Handles extensions currently active or inactive and the extension toolbar.
Definition: ExtensionSet.h:33
Definition: LibraryPlaylistInteractor.h:34
Definition: EngineUtils.h:33
A set structure. Inherited from std::set with some useful methods. For integer and String this set is...
Definition: Set.h:37