Refactoring
This commit is contained in:
@@ -35,8 +35,8 @@
|
||||
#include <QUrl>
|
||||
#include <QImage>
|
||||
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/logging.h"
|
||||
#include "core/shared_ptr.h"
|
||||
#include "core/taskmanager.h"
|
||||
#include "core/musicstorage.h"
|
||||
#include "core/song.h"
|
||||
@@ -54,10 +54,22 @@ constexpr int kBatchSize = 10;
|
||||
constexpr int kTranscodeProgressInterval = 500;
|
||||
} // namespace
|
||||
|
||||
Organize::Organize(SharedPtr<TaskManager> task_manager, SharedPtr<MusicStorage> destination, const OrganizeFormat &format, const bool copy, const bool overwrite, const bool albumcover, const NewSongInfoList &songs_info, const bool eject_after, const QString &playlist, QObject *parent)
|
||||
Organize::Organize(const SharedPtr<TaskManager> task_manager,
|
||||
const SharedPtr<TagReaderClient> tagreader_client,
|
||||
const SharedPtr<MusicStorage> destination,
|
||||
const OrganizeFormat &format,
|
||||
const bool copy,
|
||||
const bool overwrite,
|
||||
const bool albumcover,
|
||||
const NewSongInfoList &songs_info,
|
||||
const bool eject_after,
|
||||
const QString &playlist,
|
||||
QObject *parent)
|
||||
|
||||
: QObject(parent),
|
||||
thread_(nullptr),
|
||||
task_manager_(task_manager),
|
||||
tagreader_client_(tagreader_client),
|
||||
transcoder_(new Transcoder(this)),
|
||||
process_files_timer_(new QTimer(this)),
|
||||
destination_(destination),
|
||||
@@ -236,7 +248,7 @@ void Organize::ProcessSomeFiles() {
|
||||
}
|
||||
}
|
||||
else if (destination_->source() == Song::Source::Device) {
|
||||
const TagReaderResult result = TagReaderClient::Instance()->LoadCoverImageBlocking(task.song_info_.song_.url().toLocalFile(), job.cover_image_);
|
||||
const TagReaderResult result = tagreader_client_->LoadCoverImageBlocking(task.song_info_.song_.url().toLocalFile(), job.cover_image_);
|
||||
if (!result.success()) {
|
||||
qLog(Error) << "Could not load embedded art from" << task.song_info_.song_.url() << result.error_string();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "organizeformat.h"
|
||||
|
||||
@@ -43,8 +43,9 @@ class QThread;
|
||||
class QTimer;
|
||||
class QTimerEvent;
|
||||
|
||||
class MusicStorage;
|
||||
class TaskManager;
|
||||
class TagReaderClient;
|
||||
class MusicStorage;
|
||||
class Transcoder;
|
||||
|
||||
class Organize : public QObject {
|
||||
@@ -60,7 +61,18 @@ class Organize : public QObject {
|
||||
};
|
||||
using NewSongInfoList = QList<NewSongInfo>;
|
||||
|
||||
explicit Organize(SharedPtr<TaskManager> task_manager, SharedPtr<MusicStorage> destination, const OrganizeFormat &format, const bool copy, const bool overwrite, const bool albumcover, const NewSongInfoList &songs, const bool eject_after, const QString &playlist = QString(), QObject *parent = nullptr);
|
||||
explicit Organize(const SharedPtr<TaskManager> task_manager,
|
||||
const SharedPtr<TagReaderClient> tagreader_client,
|
||||
const SharedPtr<MusicStorage> destination,
|
||||
const OrganizeFormat &format,
|
||||
const bool copy,
|
||||
const bool overwrite,
|
||||
const bool albumcover,
|
||||
const NewSongInfoList &songs,
|
||||
const bool eject_after,
|
||||
const QString &playlist = QString(),
|
||||
QObject *parent = nullptr);
|
||||
|
||||
~Organize() override;
|
||||
|
||||
void Start();
|
||||
@@ -98,10 +110,11 @@ class Organize : public QObject {
|
||||
|
||||
QThread *thread_;
|
||||
QThread *original_thread_;
|
||||
SharedPtr<TaskManager> task_manager_;
|
||||
const SharedPtr<TaskManager> task_manager_;
|
||||
const SharedPtr<TagReaderClient> tagreader_client_;
|
||||
Transcoder *transcoder_;
|
||||
QTimer *process_files_timer_;
|
||||
SharedPtr<MusicStorage> destination_;
|
||||
const SharedPtr<MusicStorage> destination_;
|
||||
QList<Song::FileType> supported_filetypes_;
|
||||
|
||||
const OrganizeFormat format_;
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
#include <QCloseEvent>
|
||||
#include <QSettings>
|
||||
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/logging.h"
|
||||
#include "core/shared_ptr.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "core/musicstorage.h"
|
||||
#include "core/settings.h"
|
||||
@@ -82,11 +82,16 @@ constexpr char kSettingsGroup[] = "OrganizeDialog";
|
||||
constexpr char kDefaultFormat[] = "%albumartist/%album{ (Disc %disc)}/{%track - }{%albumartist - }%album{ (Disc %disc)} - %title.%extension";
|
||||
}
|
||||
|
||||
OrganizeDialog::OrganizeDialog(SharedPtr<TaskManager> task_manager, SharedPtr<CollectionBackend> collection_backend, QWidget *parentwindow, QWidget *parent)
|
||||
OrganizeDialog::OrganizeDialog(const SharedPtr<TaskManager> task_manager,
|
||||
const SharedPtr<TagReaderClient> tagreader_client,
|
||||
const SharedPtr<CollectionBackend> collection_backend,
|
||||
QWidget *parentwindow,
|
||||
QWidget *parent)
|
||||
: QDialog(parent),
|
||||
parentwindow_(parentwindow),
|
||||
ui_(new Ui_OrganizeDialog),
|
||||
task_manager_(task_manager),
|
||||
tagreader_client_(tagreader_client),
|
||||
collection_backend_(collection_backend),
|
||||
total_size_(0),
|
||||
devices_(false) {
|
||||
@@ -195,7 +200,7 @@ void OrganizeDialog::accept() {
|
||||
|
||||
// It deletes itself when it's finished.
|
||||
const bool copy = ui_->aftercopying->currentIndex() == 0;
|
||||
Organize *organize = new Organize(task_manager_, storage, format_, copy, ui_->overwrite->isChecked(), ui_->albumcover->isChecked(), new_songs_info_, ui_->eject_after->isChecked(), playlist_);
|
||||
Organize *organize = new Organize(task_manager_, tagreader_client_, storage, format_, copy, ui_->overwrite->isChecked(), ui_->albumcover->isChecked(), new_songs_info_, ui_->eject_after->isChecked(), playlist_);
|
||||
QObject::connect(organize, &Organize::Finished, this, &OrganizeDialog::OrganizeFinished);
|
||||
QObject::connect(organize, &Organize::FileCopied, this, &OrganizeDialog::FileCopied);
|
||||
if (collection_backend_) {
|
||||
@@ -377,7 +382,7 @@ bool OrganizeDialog::SetUrls(const QList<QUrl> &urls) {
|
||||
|
||||
bool OrganizeDialog::SetFilenames(const QStringList &filenames) {
|
||||
|
||||
songs_future_ = QtConcurrent::run(&OrganizeDialog::LoadSongsBlocking, filenames);
|
||||
songs_future_ = QtConcurrent::run(&OrganizeDialog::LoadSongsBlocking, this, filenames);
|
||||
QFutureWatcher<SongList> *watcher = new QFutureWatcher<SongList>();
|
||||
QObject::connect(watcher, &QFutureWatcher<SongList>::finished, this, [this, watcher]() {
|
||||
SetSongs(watcher->result());
|
||||
@@ -403,7 +408,7 @@ void OrganizeDialog::SetLoadingSongs(const bool loading) {
|
||||
|
||||
}
|
||||
|
||||
SongList OrganizeDialog::LoadSongsBlocking(const QStringList &filenames) {
|
||||
SongList OrganizeDialog::LoadSongsBlocking(const QStringList &filenames) const {
|
||||
|
||||
SongList songs;
|
||||
Song song;
|
||||
@@ -422,7 +427,7 @@ SongList OrganizeDialog::LoadSongsBlocking(const QStringList &filenames) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const TagReaderResult result = TagReaderClient::Instance()->ReadFileBlocking(filename, &song);
|
||||
const TagReaderResult result = tagreader_client_->ReadFileBlocking(filename, &song);
|
||||
if (result.success() && song.is_valid()) {
|
||||
songs << song;
|
||||
}
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
#include <QUrl>
|
||||
#include <QtEvents>
|
||||
|
||||
#include "core/scoped_ptr.h"
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/scoped_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "organize.h"
|
||||
#include "organizeformat.h"
|
||||
@@ -56,7 +56,12 @@ class OrganizeDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit OrganizeDialog(SharedPtr<TaskManager> task_manager, SharedPtr<CollectionBackend> collection_backend = nullptr, QWidget *parentwindow = nullptr, QWidget *parent = nullptr);
|
||||
explicit OrganizeDialog(const SharedPtr<TaskManager> task_manager,
|
||||
const SharedPtr<TagReaderClient> tagreader_client,
|
||||
const SharedPtr<CollectionBackend> collection_backend = nullptr,
|
||||
QWidget *parentwindow = nullptr,
|
||||
QWidget *parent = nullptr);
|
||||
|
||||
~OrganizeDialog() override;
|
||||
|
||||
void SetDestinationModel(QAbstractItemModel *model, const bool devices = false);
|
||||
@@ -83,7 +88,7 @@ class OrganizeDialog : public QDialog {
|
||||
void LoadSettings();
|
||||
void AdjustSize();
|
||||
|
||||
static SongList LoadSongsBlocking(const QStringList &filenames);
|
||||
SongList LoadSongsBlocking(const QStringList &filenames) const;
|
||||
void SetLoadingSongs(const bool loading);
|
||||
|
||||
Q_SIGNALS:
|
||||
@@ -107,8 +112,10 @@ class OrganizeDialog : public QDialog {
|
||||
private:
|
||||
QWidget *parentwindow_;
|
||||
Ui_OrganizeDialog *ui_;
|
||||
SharedPtr<TaskManager> task_manager_;
|
||||
SharedPtr<CollectionBackend> collection_backend_;
|
||||
|
||||
const SharedPtr<TaskManager> task_manager_;
|
||||
const SharedPtr<TagReaderClient> tagreader_client_;
|
||||
const SharedPtr<CollectionBackend> collection_backend_;
|
||||
|
||||
OrganizeFormat format_;
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
#include <QFileInfo>
|
||||
#include <QValidator>
|
||||
|
||||
#include "utilities/filenameconstants.h"
|
||||
#include "utilities/timeconstants.h"
|
||||
#include "constants/filenameconstants.h"
|
||||
#include "constants/timeconstants.h"
|
||||
#include "utilities/transliterate.h"
|
||||
#include "core/song.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user