MusicStorage: Add source

This commit is contained in:
Jonas Kvinge
2022-10-19 18:36:33 +02:00
parent 5d35c22238
commit 99d963b99c
10 changed files with 15 additions and 7 deletions

View File

@@ -34,7 +34,7 @@
#include "filesystemmusicstorage.h"
FilesystemMusicStorage::FilesystemMusicStorage(const QString &root, const std::optional<int> collection_directory_id) : root_(root), collection_directory_id_(collection_directory_id) {}
FilesystemMusicStorage::FilesystemMusicStorage(const Song::Source source, const QString &root, const std::optional<int> collection_directory_id) : source_(source), root_(root), collection_directory_id_(collection_directory_id) {}
bool FilesystemMusicStorage::CopyToStorage(const CopyJob &job) {

View File

@@ -28,12 +28,14 @@
#include <QString>
#include "song.h"
#include "musicstorage.h"
class FilesystemMusicStorage : public virtual MusicStorage {
public:
explicit FilesystemMusicStorage(const QString &root, const std::optional<int> collection_directory_id = std::optional<int>());
explicit FilesystemMusicStorage(const Song::Source source, const QString &root, const std::optional<int> collection_directory_id = std::optional<int>());
Song::Source source() const override { return source_; }
QString LocalPath() const override { return root_; }
std::optional<int> collection_directory_id() const override { return collection_directory_id_; }
@@ -41,6 +43,7 @@ class FilesystemMusicStorage : public virtual MusicStorage {
bool DeleteFromStorage(const DeleteJob &job) override;
private:
Song::Source source_;
QString root_;
std::optional<int> collection_directory_id_;

View File

@@ -3172,7 +3172,7 @@ void MainWindow::PlaylistDelete() {
app_->player()->Next();
}
std::shared_ptr<MusicStorage> storage = std::make_shared<FilesystemMusicStorage>("/");
std::shared_ptr<MusicStorage> storage = std::make_shared<FilesystemMusicStorage>(Song::Source_LocalFile, "/");
DeleteFiles *delete_files = new DeleteFiles(app_->task_manager(), storage, true);
//QObject::connect(delete_files, &DeleteFiles::Finished, this, &MainWindow::DeleteFinished);
delete_files->Start(selected_songs);

View File

@@ -77,6 +77,7 @@ class MusicStorage {
bool use_trash_;
};
virtual Song::Source source() const = 0;
virtual QString LocalPath() const { return QString(); }
virtual std::optional<int> collection_directory_id() const { return std::optional<int>(); }