Refactoring

This commit is contained in:
Jonas Kvinge
2024-10-22 18:12:33 +02:00
parent dfcf715291
commit 8da2b9cd94
623 changed files with 9071 additions and 5126 deletions

View File

@@ -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();
}

View File

@@ -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_;

View File

@@ -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;
}

View File

@@ -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_;

View File

@@ -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"