From d529f4cb983b6935aac67c0d11aa328eaf9d30d0 Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 8 Aug 2025 19:23:02 +0200 Subject: [PATCH] Removed some global using namespace (not that useful + problems with blobs) --- src/lms/ui/SettingsView.cpp | 54 +++++++++---------- src/lms/ui/admin/MediaLibrariesView.cpp | 4 +- src/lms/ui/admin/MediaLibraryModal.cpp | 26 +++++---- src/lms/ui/admin/MediaLibraryModal.hpp | 2 +- src/lms/ui/admin/ScanSettingsView.cpp | 36 ++++++------- src/lms/ui/admin/UserView.cpp | 32 ++++++----- src/lms/ui/admin/UsersView.cpp | 13 ++--- src/lms/ui/explore/ArtistCollector.cpp | 36 ++++++------- src/lms/ui/explore/ArtistView.cpp | 62 +++++++++++----------- src/lms/ui/explore/PlayQueueController.cpp | 3 +- src/lms/ui/explore/ReleaseHelpers.cpp | 12 ++--- src/lms/ui/explore/ReleaseView.cpp | 54 +++++++++---------- src/lms/ui/explore/ReleasesView.cpp | 12 ++--- src/lms/ui/explore/TrackCollector.cpp | 34 ++++++------ src/lms/ui/explore/TrackListView.cpp | 14 +++-- src/lms/ui/explore/TracksView.cpp | 10 ++-- src/lms/ui/resource/DownloadResource.cpp | 9 ++-- 17 files changed, 189 insertions(+), 224 deletions(-) diff --git a/src/lms/ui/SettingsView.cpp b/src/lms/ui/SettingsView.cpp index 6849717b..70d891b0 100644 --- a/src/lms/ui/SettingsView.cpp +++ b/src/lms/ui/SettingsView.cpp @@ -87,8 +87,6 @@ namespace lms::ui }; } // namespace - using namespace db; - class SettingsModel : public Wt::WFormModel { public: @@ -192,7 +190,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createWriteTransaction() }; - User::pointer user{ LmsApp->getUser() }; + db::User::pointer user{ LmsApp->getUser() }; { const auto artistReleaseSortMethodRow{ _artistReleaseSortMethodModel->getRowFromString(valueText(ArtistReleaseSortMethodField)) }; @@ -307,7 +305,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const User::pointer user{ LmsApp->getUser() }; + const db::User::pointer user{ LmsApp->getUser() }; // UI { @@ -396,7 +394,7 @@ namespace lms::ui setValue(ListenBrainzTokenField, Wt::WString::fromUTF8(std::string{ listenBrainzToken->getAsString() })); { - const bool usesListenBrainz{ user->getScrobblingBackend() == ScrobblingBackend::ListenBrainz || user->getFeedbackBackend() == FeedbackBackend::ListenBrainz }; + const bool usesListenBrainz{ user->getScrobblingBackend() == db::ScrobblingBackend::ListenBrainz || user->getFeedbackBackend() == db::FeedbackBackend::ListenBrainz }; setReadOnly(SettingsModel::ListenBrainzTokenField, !usesListenBrainz); validator(SettingsModel::ListenBrainzTokenField)->setMandatory(usesListenBrainz); } @@ -472,17 +470,17 @@ namespace lms::ui _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcoding-mode.never"), MediaPlayer::Settings::Transcoding::Mode::Never); _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcoding-mode.if-format-not-supported"), MediaPlayer::Settings::Transcoding::Mode::IfFormatNotSupported); - _transcodingOutputBitrateModel = std::make_shared>(); - visitAllowedAudioBitrates([&](const Bitrate bitrate) { + _transcodingOutputBitrateModel = std::make_shared>(); + db::visitAllowedAudioBitrates([&](const db::Bitrate bitrate) { _transcodingOutputBitrateModel->add(Wt::WString::fromUTF8(std::to_string(bitrate / 1000)), bitrate); }); - _transcodingOutputFormatModel = std::make_shared>(); - _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.mp3"), TranscodingOutputFormat::MP3); - _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.ogg_opus"), TranscodingOutputFormat::OGG_OPUS); - _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.matroska_opus"), TranscodingOutputFormat::MATROSKA_OPUS); - _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.ogg_vorbis"), TranscodingOutputFormat::OGG_VORBIS); - _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.webm_vorbis"), TranscodingOutputFormat::WEBM_VORBIS); + _transcodingOutputFormatModel = std::make_shared>(); + _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.mp3"), db::TranscodingOutputFormat::MP3); + _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.ogg_opus"), db::TranscodingOutputFormat::OGG_OPUS); + _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.matroska_opus"), db::TranscodingOutputFormat::MATROSKA_OPUS); + _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.ogg_vorbis"), db::TranscodingOutputFormat::OGG_VORBIS); + _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.webm_vorbis"), db::TranscodingOutputFormat::WEBM_VORBIS); _replayGainModeModel = std::make_shared(); _replayGainModeModel->add(Wt::WString::tr("Lms.Settings.replaygain-mode.none"), MediaPlayer::Settings::ReplayGain::Mode::None); @@ -490,18 +488,18 @@ namespace lms::ui _replayGainModeModel->add(Wt::WString::tr("Lms.Settings.replaygain-mode.track"), MediaPlayer::Settings::ReplayGain::Mode::Track); _replayGainModeModel->add(Wt::WString::tr("Lms.Settings.replaygain-mode.release"), MediaPlayer::Settings::ReplayGain::Mode::Release); - _subsonicArtistListModeModel = std::make_shared>(); - _subsonicArtistListModeModel->add(Wt::WString::tr("Lms.Settings.subsonic-artist-list-mode.all-artists"), SubsonicArtistListMode::AllArtists); - _subsonicArtistListModeModel->add(Wt::WString::tr("Lms.Settings.subsonic-artist-list-mode.release-artists"), SubsonicArtistListMode::ReleaseArtists); - _subsonicArtistListModeModel->add(Wt::WString::tr("Lms.Settings.subsonic-artist-list-mode.track-artists"), SubsonicArtistListMode::TrackArtists); + _subsonicArtistListModeModel = std::make_shared>(); + _subsonicArtistListModeModel->add(Wt::WString::tr("Lms.Settings.subsonic-artist-list-mode.all-artists"), db::SubsonicArtistListMode::AllArtists); + _subsonicArtistListModeModel->add(Wt::WString::tr("Lms.Settings.subsonic-artist-list-mode.release-artists"), db::SubsonicArtistListMode::ReleaseArtists); + _subsonicArtistListModeModel->add(Wt::WString::tr("Lms.Settings.subsonic-artist-list-mode.track-artists"), db::SubsonicArtistListMode::TrackArtists); - _feedbackBackendModel = std::make_shared>(); - _feedbackBackendModel->add(Wt::WString::tr("Lms.Settings.backend.internal"), FeedbackBackend::Internal); - _feedbackBackendModel->add(Wt::WString::tr("Lms.Settings.backend.listenbrainz"), FeedbackBackend::ListenBrainz); + _feedbackBackendModel = std::make_shared>(); + _feedbackBackendModel->add(Wt::WString::tr("Lms.Settings.backend.internal"), db::FeedbackBackend::Internal); + _feedbackBackendModel->add(Wt::WString::tr("Lms.Settings.backend.listenbrainz"), db::FeedbackBackend::ListenBrainz); - _scrobblingBackendModel = std::make_shared>(); - _scrobblingBackendModel->add(Wt::WString::tr("Lms.Settings.backend.internal"), ScrobblingBackend::Internal); - _scrobblingBackendModel->add(Wt::WString::tr("Lms.Settings.backend.listenbrainz"), ScrobblingBackend::ListenBrainz); + _scrobblingBackendModel = std::make_shared>(); + _scrobblingBackendModel->add(Wt::WString::tr("Lms.Settings.backend.internal"), db::ScrobblingBackend::Internal); + _scrobblingBackendModel->add(Wt::WString::tr("Lms.Settings.backend.listenbrainz"), db::ScrobblingBackend::ListenBrainz); } auth::IPasswordService* _authPasswordService{}; @@ -512,10 +510,10 @@ namespace lms::ui std::shared_ptr _artistReleaseSortMethodModel; std::shared_ptr _artistRelationshipsModel; std::shared_ptr _transcodingModeModeModel; - std::shared_ptr> _transcodingOutputBitrateModel; - std::shared_ptr> _transcodingOutputFormatModel; + std::shared_ptr> _transcodingOutputBitrateModel; + std::shared_ptr> _transcodingOutputFormatModel; std::shared_ptr _replayGainModeModel; - std::shared_ptr> _subsonicArtistListModeModel; + std::shared_ptr> _subsonicArtistListModeModel; std::shared_ptr _feedbackBackendModel; std::shared_ptr _scrobblingBackendModel; }; @@ -740,8 +738,8 @@ namespace lms::ui } auto updateListenBrainzTokenField{ [=] { - const bool enable{ model->getFeedbackBackendModel()->getValue(feedbackBackendRaw->currentIndex()) == FeedbackBackend::ListenBrainz - || model->getScrobblingBackendModel()->getValue(scrobblingBackendRaw->currentIndex()) == ScrobblingBackend::ListenBrainz }; + const bool enable{ model->getFeedbackBackendModel()->getValue(feedbackBackendRaw->currentIndex()) == db::FeedbackBackend::ListenBrainz + || model->getScrobblingBackendModel()->getValue(scrobblingBackendRaw->currentIndex()) == db::ScrobblingBackend::ListenBrainz }; model->setReadOnly(SettingsModel::ListenBrainzTokenField, !enable); model->validator(SettingsModel::ListenBrainzTokenField)->setMandatory(enable); diff --git a/src/lms/ui/admin/MediaLibrariesView.cpp b/src/lms/ui/admin/MediaLibrariesView.cpp index 344d0aa1..315ec5e6 100644 --- a/src/lms/ui/admin/MediaLibrariesView.cpp +++ b/src/lms/ui/admin/MediaLibrariesView.cpp @@ -83,8 +83,6 @@ namespace lms::ui void MediaLibrariesView::showDeleteLibraryModal(db::MediaLibraryId mediaLibraryId, Wt::WTemplate* libraryEntry) { - using namespace db; - auto modal{ std::make_unique(Wt::WString::tr("Lms.Admin.MediaLibraries.template.delete-library")) }; modal->addFunction("tr", &Wt::WTemplate::Functions::tr); Wt::WWidget* modalPtr{ modal.get() }; @@ -94,7 +92,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createWriteTransaction() }; - db::MediaLibrary::pointer mediaLibrary{ MediaLibrary::find(LmsApp->getDbSession(), mediaLibraryId) }; + db::MediaLibrary::pointer mediaLibrary{ db::MediaLibrary::find(LmsApp->getDbSession(), mediaLibraryId) }; if (mediaLibrary) mediaLibrary.remove(); } diff --git a/src/lms/ui/admin/MediaLibraryModal.cpp b/src/lms/ui/admin/MediaLibraryModal.cpp index b5b3ef3b..225dbd49 100644 --- a/src/lms/ui/admin/MediaLibraryModal.cpp +++ b/src/lms/ui/admin/MediaLibraryModal.cpp @@ -33,14 +33,12 @@ namespace lms::ui { - using namespace db; - namespace { class LibraryNameValidator : public Wt::WValidator { public: - LibraryNameValidator(MediaLibraryId libraryId) + LibraryNameValidator(db::MediaLibraryId libraryId) : _libraryId{ libraryId } {} private: @@ -66,13 +64,13 @@ namespace lms::ui return result; } - const MediaLibraryId _libraryId; + const db::MediaLibraryId _libraryId; }; class LibraryRootPathValidator : public Wt::WValidator { public: - LibraryRootPathValidator(MediaLibraryId libraryId) + LibraryRootPathValidator(db::MediaLibraryId libraryId) : _libraryId{ libraryId } {} private: @@ -115,7 +113,7 @@ namespace lms::ui return result; } - const MediaLibraryId _libraryId; + const db::MediaLibraryId _libraryId; }; class MediaLibraryModel : public Wt::WFormModel @@ -124,7 +122,7 @@ namespace lms::ui static inline constexpr Field NameField{ "name" }; static inline constexpr Field DirectoryField{ "directory" }; - MediaLibraryModel(MediaLibraryId libraryId) + MediaLibraryModel(db::MediaLibraryId libraryId) : _libraryId{ libraryId } { addField(NameField); @@ -146,7 +144,7 @@ namespace lms::ui loadData(); } - MediaLibraryId saveData() + db::MediaLibraryId saveData() { auto& session{ LmsApp->getDbSession() }; auto transaction{ LmsApp->getDbSession().createWriteTransaction() }; @@ -154,10 +152,10 @@ namespace lms::ui std::string name{ valueText(NameField).toUTF8() }; std::string path{ valueText(DirectoryField).toUTF8() }; - MediaLibrary::pointer library; + db::MediaLibrary::pointer library; if (_libraryId.isValid()) { - library = MediaLibrary::find(session, _libraryId); + library = db::MediaLibrary::find(session, _libraryId); if (library) { library.modify()->setName(name); @@ -166,7 +164,7 @@ namespace lms::ui } else { - library = session.create(name, path); + library = session.create(name, path); } return library->getId(); @@ -178,17 +176,17 @@ namespace lms::ui auto& session{ LmsApp->getDbSession() }; auto transaction{ session.createReadTransaction() }; - const MediaLibrary::pointer library{ MediaLibrary::find(session, _libraryId) }; + const db::MediaLibrary::pointer library{ db::MediaLibrary::find(session, _libraryId) }; setValue(NameField, std::string{ library->getName() }); setValue(DirectoryField, library->getPath().string()); } - const MediaLibraryId _libraryId; + const db::MediaLibraryId _libraryId; }; } // namespace - MediaLibraryModal::MediaLibraryModal(MediaLibraryId mediaLibraryId) + MediaLibraryModal::MediaLibraryModal(db::MediaLibraryId mediaLibraryId) : Wt::WTemplateFormView{ Wt::WString::tr("Lms.Admin.MediaLibrary.template") } { auto model{ std::make_shared(mediaLibraryId) }; diff --git a/src/lms/ui/admin/MediaLibraryModal.hpp b/src/lms/ui/admin/MediaLibraryModal.hpp index 137b5a5c..f7980223 100644 --- a/src/lms/ui/admin/MediaLibraryModal.hpp +++ b/src/lms/ui/admin/MediaLibraryModal.hpp @@ -29,7 +29,7 @@ namespace lms::ui class MediaLibraryModal : public Wt::WTemplateFormView { public: - MediaLibraryModal(db::MediaLibraryId mediaLibaryId); + MediaLibraryModal(db::MediaLibraryId mediaLibraryId); Wt::Signal& saved() { return _saved; }; Wt::Signal<>& cancelled() { return _cancelled; } diff --git a/src/lms/ui/admin/ScanSettingsView.cpp b/src/lms/ui/admin/ScanSettingsView.cpp index 0ec0cacd..2d2ec69e 100644 --- a/src/lms/ui/admin/ScanSettingsView.cpp +++ b/src/lms/ui/admin/ScanSettingsView.cpp @@ -42,8 +42,6 @@ namespace lms::ui { - using namespace db; - namespace { class TagDelimitersValidator : public Wt::WValidator @@ -75,7 +73,7 @@ namespace lms::ui static inline constexpr Field ArtistImageFallbackToReleaseField{ "artist-image-fallback-to-release" }; static inline constexpr Field ArtistsToNotSplitField{ "artists-to-not-split" }; - using UpdatePeriodModel = ValueStringModel; + using UpdatePeriodModel = ValueStringModel; DatabaseSettingsModel() { @@ -105,7 +103,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const ScanSettings::pointer scanSettings{ ScanSettings::find(LmsApp->getDbSession()) }; + const db::ScanSettings::pointer scanSettings{ db::ScanSettings::find(LmsApp->getDbSession()) }; auto periodRow{ _updatePeriodModel->getRowFromValue(scanSettings->getUpdatePeriod()) }; if (periodRow) @@ -115,8 +113,8 @@ namespace lms::ui if (startTimeRow) setValue(UpdateStartTimeField, _updateStartTimeModel->getString(*startTimeRow)); - if (scanSettings->getUpdatePeriod() == ScanSettings::UpdatePeriod::Hourly - || scanSettings->getUpdatePeriod() == ScanSettings::UpdatePeriod::Never) + if (scanSettings->getUpdatePeriod() == db::ScanSettings::UpdatePeriod::Hourly + || scanSettings->getUpdatePeriod() == db::ScanSettings::UpdatePeriod::Never) { setReadOnly(UpdateStartTimeField, true); } @@ -147,7 +145,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createWriteTransaction() }; - ScanSettings::pointer scanSettings{ ScanSettings::find(LmsApp->getDbSession()) }; + db::ScanSettings::pointer scanSettings{ db::ScanSettings::find(LmsApp->getDbSession()) }; { const auto updatePeriodRow{ _updatePeriodModel->getRowFromString(valueText(UpdatePeriodField)) }; @@ -197,12 +195,12 @@ namespace lms::ui void initializeModels() { - _updatePeriodModel = std::make_shared>(); - _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.never"), ScanSettings::UpdatePeriod::Never); - _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.hourly"), ScanSettings::UpdatePeriod::Hourly); - _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.daily"), ScanSettings::UpdatePeriod::Daily); - _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.weekly"), ScanSettings::UpdatePeriod::Weekly); - _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.monthly"), ScanSettings::UpdatePeriod::Monthly); + _updatePeriodModel = std::make_shared>(); + _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.never"), db::ScanSettings::UpdatePeriod::Never); + _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.hourly"), db::ScanSettings::UpdatePeriod::Hourly); + _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.daily"), db::ScanSettings::UpdatePeriod::Daily); + _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.weekly"), db::ScanSettings::UpdatePeriod::Weekly); + _updatePeriodModel->add(Wt::WString::tr("Lms.Admin.Database.monthly"), db::ScanSettings::UpdatePeriod::Monthly); _updateStartTimeModel = std::make_shared>(); for (std::size_t i = 0; i < 24; ++i) @@ -211,14 +209,14 @@ namespace lms::ui _updateStartTimeModel->add(time.toString(), time); } - _similarityEngineTypeModel = std::make_shared>(); - _similarityEngineTypeModel->add(Wt::WString::tr("Lms.Admin.Database.similarity-engine-type.clusters"), ScanSettings::SimilarityEngineType::Clusters); - _similarityEngineTypeModel->add(Wt::WString::tr("Lms.Admin.Database.similarity-engine-type.none"), ScanSettings::SimilarityEngineType::None); + _similarityEngineTypeModel = std::make_shared>(); + _similarityEngineTypeModel->add(Wt::WString::tr("Lms.Admin.Database.similarity-engine-type.clusters"), db::ScanSettings::SimilarityEngineType::Clusters); + _similarityEngineTypeModel->add(Wt::WString::tr("Lms.Admin.Database.similarity-engine-type.none"), db::ScanSettings::SimilarityEngineType::None); } std::shared_ptr _updatePeriodModel; std::shared_ptr> _updateStartTimeModel; - std::shared_ptr> _similarityEngineTypeModel; + std::shared_ptr> _similarityEngineTypeModel; }; class LineEditEntryModel : public Wt::WFormModel @@ -362,8 +360,8 @@ namespace lms::ui auto updatePeriod{ std::make_unique() }; updatePeriod->setModel(model->updatePeriodModel()); updatePeriod->activated().connect([=](int row) { - const ScanSettings::UpdatePeriod period{ model->updatePeriodModel()->getValue(row) }; - model->setReadOnly(DatabaseSettingsModel::UpdateStartTimeField, period == ScanSettings::UpdatePeriod::Hourly || period == ScanSettings::UpdatePeriod::Never); + const db::ScanSettings::UpdatePeriod period{ model->updatePeriodModel()->getValue(row) }; + model->setReadOnly(DatabaseSettingsModel::UpdateStartTimeField, period == db::ScanSettings::UpdatePeriod::Hourly || period == db::ScanSettings::UpdatePeriod::Never); t->updateModel(model.get()); t->updateView(model.get()); }); diff --git a/src/lms/ui/admin/UserView.cpp b/src/lms/ui/admin/UserView.cpp index 206c30ae..631a9482 100644 --- a/src/lms/ui/admin/UserView.cpp +++ b/src/lms/ui/admin/UserView.cpp @@ -42,8 +42,6 @@ namespace lms::ui { - using namespace db; - class UserModel : public Wt::WFormModel { public: @@ -51,7 +49,7 @@ namespace lms::ui static inline const Field PasswordField{ "password" }; static inline const Field DemoField{ "demo" }; - UserModel(std::optional userId, auth::IPasswordService* authPasswordService, auth::IAuthTokenService& authTokenService) + UserModel(std::optional userId, auth::IPasswordService* authPasswordService, auth::IAuthTokenService& authTokenService) : _userId{ userId } , _authPasswordService{ authPasswordService } , _authTokenService{ authTokenService } @@ -81,7 +79,7 @@ namespace lms::ui if (_userId) { // Update user - User::pointer user{ User::find(LmsApp->getDbSession(), *_userId) }; + db::User::pointer user{ db::User::find(LmsApp->getDbSession(), *_userId) }; if (!user) throw UserNotFoundException{}; @@ -94,16 +92,16 @@ namespace lms::ui else { // Check races with other endpoints (subsonic API...) - User::pointer user{ User::find(LmsApp->getDbSession(), valueText(LoginField).toUTF8()) }; + db::User::pointer user{ db::User::find(LmsApp->getDbSession(), valueText(LoginField).toUTF8()) }; if (user) throw UserNotAllowedException{}; // Create user - user = LmsApp->getDbSession().create(valueText(LoginField).toUTF8()); + user = LmsApp->getDbSession().create(valueText(LoginField).toUTF8()); if (Wt::asNumber(value(DemoField))) { - user.modify()->setType(UserType::DEMO); + user.modify()->setType(db::UserType::DEMO); // For demo user, we create the subsonic API auth token now as we have no other mean to create it later core::Service::get()->createAuthToken("subsonic", user->getId(), core::UUID::generate().getAsString()); @@ -122,24 +120,24 @@ namespace lms::ui auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const User::pointer user{ User::find(LmsApp->getDbSession(), *_userId) }; + const db::User::pointer user{ db::User::find(LmsApp->getDbSession(), *_userId) }; if (!user) throw UserNotFoundException{}; if (user == LmsApp->getUser()) throw UserNotAllowedException{}; } - UserType getUserType() const + db::UserType getUserType() const { if (_userId) { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const User::pointer user{ User::find(LmsApp->getDbSession(), *_userId) }; + const db::User::pointer user{ db::User::find(LmsApp->getDbSession(), *_userId) }; return user->getType(); } - return Wt::asNumber(value(DemoField)) ? UserType::DEMO : UserType::REGULAR; + return Wt::asNumber(value(DemoField)) ? db::UserType::DEMO : db::UserType::REGULAR; } std::string getLoginName() const @@ -148,7 +146,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const User::pointer user{ User::find(LmsApp->getDbSession(), *_userId) }; + const db::User::pointer user{ db::User::find(LmsApp->getDbSession(), *_userId) }; return user->getLoginName(); } @@ -163,7 +161,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const User::pointer user{ User::find(LmsApp->getDbSession(), valueText(LoginField).toUTF8()) }; + const db::User::pointer user{ db::User::find(LmsApp->getDbSession(), valueText(LoginField).toUTF8()) }; if (user) error = Wt::WString::tr("Lms.Admin.User.user-already-exists"); } @@ -171,7 +169,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - if (Wt::asNumber(value(DemoField)) && User::findDemoUser(LmsApp->getDbSession())) + if (Wt::asNumber(value(DemoField)) && db::User::findDemoUser(LmsApp->getDbSession())) error = Wt::WString::tr("Lms.Admin.User.demo-account-already-exists"); } @@ -183,7 +181,7 @@ namespace lms::ui return false; } - std::optional _userId; + std::optional _userId; auth::IPasswordService* _authPasswordService{}; auth::IAuthTokenService& _authTokenService; }; @@ -202,7 +200,7 @@ namespace lms::ui if (!wApp->internalPathMatches("/admin/user")) return; - const std::optional userId{ core::stringUtils::readAs(wApp->internalPathNextPart("/admin/user/")) }; + const std::optional userId{ core::stringUtils::readAs(wApp->internalPathNextPart("/admin/user/")) }; clear(); @@ -220,7 +218,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const User::pointer user{ User::find(LmsApp->getDbSession(), *userId) }; + const db::User::pointer user{ db::User::find(LmsApp->getDbSession(), *userId) }; if (!user) throw UserNotFoundException{}; diff --git a/src/lms/ui/admin/UsersView.cpp b/src/lms/ui/admin/UsersView.cpp index 39239e59..5bd79302 100644 --- a/src/lms/ui/admin/UsersView.cpp +++ b/src/lms/ui/admin/UsersView.cpp @@ -23,19 +23,14 @@ #include #include -#include "core/ILogger.hpp" -#include "core/Service.hpp" #include "database/Session.hpp" #include "database/objects/User.hpp" -#include "services/auth/IPasswordService.hpp" #include "LmsApplication.hpp" #include "ModalManager.hpp" namespace lms::ui { - using namespace db; - UsersView::UsersView() : Wt::WTemplate{ Wt::WString::tr("Lms.Admin.Users.template") } { @@ -69,9 +64,9 @@ namespace lms::ui auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const UserId currentUserId{ LmsApp->getUserId() }; - User::find(LmsApp->getDbSession(), User::FindParameters{}, [&](const User::pointer& user) { - const UserId userId{ user->getId() }; + const db::UserId currentUserId{ LmsApp->getUserId() }; + db::User::find(LmsApp->getDbSession(), db::User::FindParameters{}, [&](const db::User::pointer& user) { + const db::UserId userId{ user->getId() }; Wt::WTemplate* entry{ _container->addNew(Wt::WString::tr("Lms.Admin.Users.template.entry")) }; @@ -107,7 +102,7 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createWriteTransaction() }; - User::pointer user{ User::find(LmsApp->getDbSession(), userId) }; + db::User::pointer user{ db::User::find(LmsApp->getDbSession(), userId) }; if (user) user.remove(); } diff --git a/src/lms/ui/explore/ArtistCollector.cpp b/src/lms/ui/explore/ArtistCollector.cpp index 058dfe59..3d4f850d 100644 --- a/src/lms/ui/explore/ArtistCollector.cpp +++ b/src/lms/ui/explore/ArtistCollector.cpp @@ -32,16 +32,14 @@ namespace lms::ui { - using namespace db; - - RangeResults ArtistCollector::get(std::optional requestedRange) + db::RangeResults ArtistCollector::get(std::optional requestedRange) { feedback::IFeedbackService& feedbackService{ *core::Service::get() }; scrobbling::IScrobblingService& scrobblingService{ *core::Service::get() }; const Range range{ getActualRange(requestedRange) }; - RangeResults artists; + db::RangeResults artists; switch (getMode()) { @@ -56,7 +54,7 @@ namespace lms::ui params.setUser(LmsApp->getUserId()); params.setKeywords(getSearchKeywords()); params.setLinkType(_linkType); - params.setSortMethod(ArtistSortMethod::StarredDateDesc); + params.setSortMethod(db::ArtistSortMethod::StarredDateDesc); params.setRange(range); artists = feedbackService.findStarredArtists(params); break; @@ -90,48 +88,48 @@ namespace lms::ui case Mode::RecentlyAdded: { - Artist::FindParameters params; + db::Artist::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); params.setLinkType(_linkType); - params.setSortMethod(ArtistSortMethod::AddedDesc); + params.setSortMethod(db::ArtistSortMethod::AddedDesc); params.setRange(range); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - artists = Artist::findIds(LmsApp->getDbSession(), params); + artists = db::Artist::findIds(LmsApp->getDbSession(), params); } break; } case Mode::RecentlyModified: { - Artist::FindParameters params; + db::Artist::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); params.setLinkType(_linkType); - params.setSortMethod(ArtistSortMethod::LastWrittenDesc); + params.setSortMethod(db::ArtistSortMethod::LastWrittenDesc); params.setRange(range); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - artists = Artist::findIds(LmsApp->getDbSession(), params); + artists = db::Artist::findIds(LmsApp->getDbSession(), params); } break; } case Mode::All: { - Artist::FindParameters params; + db::Artist::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); params.setLinkType(_linkType); - params.setSortMethod(ArtistSortMethod::SortName); + params.setSortMethod(db::ArtistSortMethod::SortName); params.setRange(range); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - artists = Artist::findIds(LmsApp->getDbSession(), params); + artists = db::Artist::findIds(LmsApp->getDbSession(), params); } break; } @@ -143,22 +141,22 @@ namespace lms::ui return artists; } - RangeResults ArtistCollector::getRandomArtists(Range range) + db::RangeResults ArtistCollector::getRandomArtists(Range range) { assert(getMode() == Mode::Random); if (!_randomArtists) { - Artist::FindParameters params; + db::Artist::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); params.setLinkType(_linkType); - params.setSortMethod(ArtistSortMethod::Random); - params.setRange(Range{ 0, getMaxCount() }); + params.setSortMethod(db::ArtistSortMethod::Random); + params.setRange(db::Range{ 0, getMaxCount() }); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - _randomArtists = Artist::findIds(LmsApp->getDbSession(), params); + _randomArtists = db::Artist::findIds(LmsApp->getDbSession(), params); } } diff --git a/src/lms/ui/explore/ArtistView.cpp b/src/lms/ui/explore/ArtistView.cpp index 38a8c8bc..61ef74b6 100644 --- a/src/lms/ui/explore/ArtistView.cpp +++ b/src/lms/ui/explore/ArtistView.cpp @@ -47,11 +47,9 @@ namespace lms::ui { - using namespace db; - namespace { - std::optional extractArtistIdFromInternalPath() + std::optional extractArtistIdFromInternalPath() { if (wApp->internalPathMatches("/artist/mbid/")) { @@ -66,7 +64,7 @@ namespace lms::ui return std::nullopt; } - return core::stringUtils::readAs(wApp->internalPathNextPart("/artist/")); + return core::stringUtils::readAs(wApp->internalPathNextPart("/artist/")); } } // namespace @@ -109,7 +107,7 @@ namespace lms::ui if (!artistId) throw ArtistNotFoundException{}; - const auto similarArtistIds{ core::Service::get()->getSimilarArtists(*artistId, { TrackArtistLinkType::Artist, TrackArtistLinkType::ReleaseArtist }, 6) }; + const auto similarArtistIds{ core::Service::get()->getSimilarArtists(*artistId, { db::TrackArtistLinkType::Artist, db::TrackArtistLinkType::ReleaseArtist }, 6) }; auto transaction{ LmsApp->getDbSession().createReadTransaction() }; @@ -131,7 +129,7 @@ namespace lms::ui Wt::WContainerWidget* clusterContainers{ bindNew("clusters") }; { - auto clusterTypes{ ClusterType::findIds(LmsApp->getDbSession()).results }; + auto clusterTypes{ db::ClusterType::findIds(LmsApp->getDbSession()).results }; auto clusterGroups{ artist->getClusterGroups(clusterTypes, 3) }; for (const auto& clusters : clusterGroups) @@ -232,16 +230,16 @@ namespace lms::ui { _releaseContainers.clear(); - Release::FindParameters params; + db::Release::FindParameters params; params.setFilters(_filters.getDbFilters()); - params.setArtist(_artistId, { TrackArtistLinkType::ReleaseArtist }, {}); + params.setArtist(_artistId, { db::TrackArtistLinkType::ReleaseArtist }, {}); params.setSortMethod(LmsApp->getUser()->getUIArtistReleaseSortMethod()); - const auto releases{ Release::findIds(LmsApp->getDbSession(), params) }; + const auto releases{ db::Release::findIds(LmsApp->getDbSession(), params) }; if (!releases.results.empty()) { // first pass: gather all ids and sort by release type - for (const ReleaseId releaseId : releases.results) + for (const db::ReleaseId releaseId : releases.results) { const db::Release::pointer release{ db::Release::find(LmsApp->getDbSession(), releaseId) }; @@ -274,27 +272,27 @@ namespace lms::ui void Artist::refreshAppearsOnReleases() { - constexpr core::EnumSet types{ - TrackArtistLinkType::Artist, - TrackArtistLinkType::Arranger, - TrackArtistLinkType::Composer, - TrackArtistLinkType::Conductor, - TrackArtistLinkType::Lyricist, - TrackArtistLinkType::Mixer, - TrackArtistLinkType::Performer, - TrackArtistLinkType::Producer, - TrackArtistLinkType::Remixer, - TrackArtistLinkType::Writer, + constexpr core::EnumSet types{ + db::TrackArtistLinkType::Artist, + db::TrackArtistLinkType::Arranger, + db::TrackArtistLinkType::Composer, + db::TrackArtistLinkType::Conductor, + db::TrackArtistLinkType::Lyricist, + db::TrackArtistLinkType::Mixer, + db::TrackArtistLinkType::Performer, + db::TrackArtistLinkType::Producer, + db::TrackArtistLinkType::Remixer, + db::TrackArtistLinkType::Writer, }; _appearsOnReleaseContainer = {}; - Release::FindParameters params; + db::Release::FindParameters params; params.setFilters(_filters.getDbFilters()); - params.setArtist(_artistId, types, { TrackArtistLinkType::ReleaseArtist }); - params.setSortMethod(ReleaseSortMethod::OriginalDateDesc); + params.setArtist(_artistId, types, { db::TrackArtistLinkType::ReleaseArtist }); + params.setSortMethod(db::ReleaseSortMethod::OriginalDateDesc); - const auto releases{ Release::findIds(LmsApp->getDbSession(), params) }; + const auto releases{ db::Release::findIds(LmsApp->getDbSession(), params) }; if (!releases.results.empty()) { Wt::WTemplate* releaseContainer{ bindNew("appears-on-releases", Wt::WString::tr("Lms.Explore.Artist.template.release-container")) }; @@ -323,7 +321,7 @@ namespace lms::ui setCondition("if-has-non-release-tracks", added); } - void Artist::refreshSimilarArtists(const std::vector& similarArtistsId) + void Artist::refreshSimilarArtists(const std::vector& similarArtistsId) { if (similarArtistsId.empty()) return; @@ -331,7 +329,7 @@ namespace lms::ui setCondition("if-has-similar-artists", true); Wt::WContainerWidget* similarArtistsContainer{ bindNew("similar-artists") }; - for (const ArtistId artistId : similarArtistsId) + for (const db::ArtistId artistId : similarArtistsId) { const db::Artist::pointer similarArtist{ db::Artist::find(LmsApp->getDbSession(), artistId) }; if (!similarArtist) @@ -371,19 +369,19 @@ namespace lms::ui { bool areTracksAdded{}; - const Range range{ static_cast(_trackContainer->getCount()), _tracksBatchSize }; + const db::Range range{ static_cast(_trackContainer->getCount()), _tracksBatchSize }; - Track::FindParameters params; + db::Track::FindParameters params; params.setFilters(_filters.getDbFilters()); params.setArtist(_artistId); params.setRange(range); - params.setSortMethod(TrackSortMethod::Name); + params.setSortMethod(db::TrackSortMethod::Name); params.setNonRelease(true); auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const auto tracks{ Track::find(LmsApp->getDbSession(), params) }; - for (const Track::pointer& track : tracks.results) + const auto tracks{ db::Track::find(LmsApp->getDbSession(), params) }; + for (const db::Track::pointer& track : tracks.results) { // TODO handle this with range if (_trackContainer->getCount() == _tracksMaxCount) diff --git a/src/lms/ui/explore/PlayQueueController.cpp b/src/lms/ui/explore/PlayQueueController.cpp index 89b2b55d..3a069b2f 100644 --- a/src/lms/ui/explore/PlayQueueController.cpp +++ b/src/lms/ui/explore/PlayQueueController.cpp @@ -108,7 +108,6 @@ namespace lms::ui std::vector getTrackListTracks(db::Session& session, db::TrackListId trackListId, const Filters& filters, std::size_t maxTrackCount) { - using namespace db; assert(maxTrackCount); auto transaction{ session.createReadTransaction() }; @@ -117,7 +116,7 @@ namespace lms::ui params.setTrackList(trackListId); params.setFilters(filters.getDbFilters()); params.setRange(db::Range{ 0, maxTrackCount }); - params.setSortMethod(TrackSortMethod::TrackList); + params.setSortMethod(db::TrackSortMethod::TrackList); return db::Track::findIds(session, params).results; } diff --git a/src/lms/ui/explore/ReleaseHelpers.cpp b/src/lms/ui/explore/ReleaseHelpers.cpp index f01ec00f..042cedd2 100644 --- a/src/lms/ui/explore/ReleaseHelpers.cpp +++ b/src/lms/ui/explore/ReleaseHelpers.cpp @@ -31,8 +31,6 @@ namespace lms::ui::releaseListHelpers { - using namespace db; - namespace { enum class ReleaseOptions @@ -42,7 +40,7 @@ namespace lms::ui::releaseListHelpers ShowYear, }; - std::unique_ptr createEntryInternal(const Release::pointer& release, const Artist::pointer& artist, core::EnumSet options) + std::unique_ptr createEntryInternal(const db::Release::pointer& release, const db::Artist::pointer& artist, core::EnumSet options) { auto entry{ std::make_unique(Wt::WString::tr("Lms.Explore.Releases.template.entry-grid")) }; @@ -64,7 +62,7 @@ namespace lms::ui::releaseListHelpers if (options.contains(ReleaseOptions::ShowArtist)) { - auto artistAnchors{ utils::createArtistsAnchorsForRelease(release, artist ? artist->getId() : ArtistId{}, "link-secondary") }; + auto artistAnchors{ utils::createArtistsAnchorsForRelease(release, artist ? artist->getId() : db::ArtistId{}, "link-secondary") }; if (artistAnchors) { entry->setCondition("if-has-artist", true); @@ -94,9 +92,9 @@ namespace lms::ui::releaseListHelpers } } // namespace - std::unique_ptr createEntry(const Release::pointer& release) + std::unique_ptr createEntry(const db::Release::pointer& release) { - return createEntryInternal(release, Artist::pointer{}, core::EnumSet{ ReleaseOptions::ShowArtist }); + return createEntryInternal(release, db::Artist::pointer{}, core::EnumSet{ ReleaseOptions::ShowArtist }); } std::unique_ptr createEntryForArtist(const db::Release::pointer& release, const db::Artist::pointer& artist) @@ -106,7 +104,7 @@ namespace lms::ui::releaseListHelpers std::unique_ptr createEntryForOtherVersions(const db::ObjectPtr& release) { - return createEntryInternal(release, Artist::pointer{}, core::EnumSet{ ReleaseOptions::ShowYear }); + return createEntryInternal(release, db::Artist::pointer{}, core::EnumSet{ ReleaseOptions::ShowYear }); } } // namespace lms::ui::releaseListHelpers diff --git a/src/lms/ui/explore/ReleaseView.cpp b/src/lms/ui/explore/ReleaseView.cpp index 238284bd..54c7026f 100644 --- a/src/lms/ui/explore/ReleaseView.cpp +++ b/src/lms/ui/explore/ReleaseView.cpp @@ -57,8 +57,6 @@ namespace lms::ui { - using namespace db; - namespace { void showReleaseInfoModal(db::ReleaseId releaseId) @@ -79,36 +77,36 @@ namespace lms::ui releaseInfo->bindString("release-type", releaseHelpers::buildReleaseTypeString(parseReleaseType(releaseTypeNames))); } - std::map> artistMap; + std::map> artistMap; - auto addArtists = [&](TrackArtistLinkType linkType, const char* type) { - Artist::FindParameters params; + auto addArtists = [&](db::TrackArtistLinkType linkType, const char* type) { + db::Artist::FindParameters params; params.setRelease(releaseId); params.setLinkType(linkType); - const auto artistIds{ Artist::findIds(LmsApp->getDbSession(), params) }; + const auto artistIds{ db::Artist::findIds(LmsApp->getDbSession(), params) }; if (artistIds.results.empty()) return; Wt::WString typeStr{ Wt::WString::trn(type, artistIds.results.size()) }; - for (ArtistId artistId : artistIds.results) + for (db::ArtistId artistId : artistIds.results) artistMap[typeStr].insert(artistId); }; auto addPerformerArtists = [&] { - TrackArtistLink::FindParameters params; + db::TrackArtistLink::FindParameters params; params.setRelease(releaseId); - params.setLinkType(TrackArtistLinkType::Performer); - TrackArtistLink::find(LmsApp->getDbSession(), params, [&](const TrackArtistLink::pointer& link) { + params.setLinkType(db::TrackArtistLinkType::Performer); + db::TrackArtistLink::find(LmsApp->getDbSession(), params, [&](const db::TrackArtistLink::pointer& link) { artistMap[std::string{ link->getSubType() }].insert(link->getArtist()->getId()); }); }; - addArtists(TrackArtistLinkType::Composer, "Lms.Explore.Artists.linktype-composer"); - addArtists(TrackArtistLinkType::Conductor, "Lms.Explore.Artists.linktype-conductor"); - addArtists(TrackArtistLinkType::Lyricist, "Lms.Explore.Artists.linktype-lyricist"); - addArtists(TrackArtistLinkType::Mixer, "Lms.Explore.Artists.linktype-mixer"); - addArtists(TrackArtistLinkType::Remixer, "Lms.Explore.Artists.linktype-remixer"); - addArtists(TrackArtistLinkType::Producer, "Lms.Explore.Artists.linktype-producer"); + addArtists(db::TrackArtistLinkType::Composer, "Lms.Explore.Artists.linktype-composer"); + addArtists(db::TrackArtistLinkType::Conductor, "Lms.Explore.Artists.linktype-conductor"); + addArtists(db::TrackArtistLinkType::Lyricist, "Lms.Explore.Artists.linktype-lyricist"); + addArtists(db::TrackArtistLinkType::Mixer, "Lms.Explore.Artists.linktype-mixer"); + addArtists(db::TrackArtistLinkType::Remixer, "Lms.Explore.Artists.linktype-remixer"); + addArtists(db::TrackArtistLinkType::Producer, "Lms.Explore.Artists.linktype-producer"); addPerformerArtists(); if (auto itRolelessPerformers{ artistMap.find("") }; itRolelessPerformers != std::cend(artistMap)) @@ -141,7 +139,7 @@ namespace lms::ui } // TODO: save in DB and aggregate all this - for (const Track::pointer& track : Track::find(LmsApp->getDbSession(), Track::FindParameters{}.setRelease(releaseId).setRange(Range{ 0, 1 })).results) + for (const db::Track::pointer& track : db::Track::find(LmsApp->getDbSession(), db::Track::FindParameters{}.setRelease(releaseId).setRange(db::Range{ 0, 1 })).results) { if (const auto audioFile{ av::parseAudioFile(track->getAbsoluteFilePath()) }) { @@ -171,7 +169,7 @@ namespace lms::ui LmsApp->getModalManager().show(std::move(releaseInfo)); } - std::optional extractReleaseIdFromInternalPath() + std::optional extractReleaseIdFromInternalPath() { if (wApp->internalPathMatches("/release/mbid/")) { @@ -186,12 +184,12 @@ namespace lms::ui return std::nullopt; } - return core::stringUtils::readAs(wApp->internalPathNextPart("/release/")); + return core::stringUtils::readAs(wApp->internalPathNextPart("/release/")); } void fillTrackArtistLinks(Wt::WTemplate* trackEntry, db::TrackId trackId) { - const User::pointer user{ LmsApp->getUser() }; + const db::User::pointer user{ LmsApp->getUser() }; if (!user->getUIEnableInlineArtistRelationships()) return; @@ -199,7 +197,7 @@ namespace lms::ui if (inlineArtistRelationships.empty()) return; - const std::map> artistsByRole{ TrackListHelpers::getArtistsByRole(trackId, inlineArtistRelationships) }; + const std::map> artistsByRole{ TrackListHelpers::getArtistsByRole(trackId, inlineArtistRelationships) }; if (artistsByRole.empty()) return; @@ -318,14 +316,14 @@ namespace lms::ui Wt::WContainerWidget* clusterContainers{ bindNew("clusters") }; { - const auto clusterTypeIds{ ClusterType::findIds(session).results }; + const auto clusterTypeIds{ db::ClusterType::findIds(session).results }; const auto clusterGroups{ release->getClusterGroups(clusterTypeIds, 3) }; for (const auto& clusters : clusterGroups) { for (const db::Cluster::pointer& cluster : clusters) { - const ClusterId clusterId{ cluster->getId() }; + const db::ClusterId clusterId{ cluster->getId() }; Wt::WInteractWidget* entry{ clusterContainers->addWidget(utils::createFilterCluster(clusterId)) }; entry->clicked().connect([this, clusterId] { _filters.add(clusterId); @@ -458,7 +456,7 @@ namespace lms::ui if (displayTrackArtists) { - const auto artists{ track->getArtistIds({ TrackArtistLinkType::Artist }) }; + const auto artists{ track->getArtistIds({ db::TrackArtistLinkType::Artist }) }; if (!artists.empty()) { entry->setCondition("if-has-artists", true); @@ -533,7 +531,7 @@ namespace lms::ui entry->bindString("duration", utils::durationToString(track->getDuration()), Wt::TextFormat::Plain); - LmsApp->getMediaPlayer().trackLoaded.connect(entry, [=](TrackId loadedTrackId) { + LmsApp->getMediaPlayer().trackLoaded.connect(entry, [=](db::TrackId loadedTrackId) { entry->toggleStyleClass("Lms-entry-playing", loadedTrackId == trackId); }); @@ -600,7 +598,7 @@ namespace lms::ui setCondition("if-has-other-versions", true); auto* container{ bindNew("other-versions") }; - for (const ReleaseId id : releaseIds.results) + for (const db::ReleaseId id : releaseIds.results) { if (id == _releaseId) continue; @@ -613,7 +611,7 @@ namespace lms::ui } } - void Release::refreshSimilarReleases(const std::vector& similarReleaseIds) + void Release::refreshSimilarReleases(const std::vector& similarReleaseIds) { if (similarReleaseIds.empty()) return; @@ -621,7 +619,7 @@ namespace lms::ui setCondition("if-has-similar-releases", true); auto* similarReleasesContainer{ bindNew("similar-releases") }; - for (const ReleaseId id : similarReleaseIds) + for (const db::ReleaseId id : similarReleaseIds) { const db::Release::pointer similarRelease{ db::Release::find(LmsApp->getDbSession(), id) }; if (!similarRelease) diff --git a/src/lms/ui/explore/ReleasesView.cpp b/src/lms/ui/explore/ReleasesView.cpp index 769baafb..8a8907b9 100644 --- a/src/lms/ui/explore/ReleasesView.cpp +++ b/src/lms/ui/explore/ReleasesView.cpp @@ -36,8 +36,6 @@ namespace lms::ui { - using namespace db; - Releases::Releases(Filters& filters, PlayQueueController& playQueueController) : Template{ Wt::WString::tr("Lms.Explore.Releases.template") } , _playQueueController{ playQueueController } @@ -116,14 +114,14 @@ namespace lms::ui void Releases::addSome() { - const auto releaseIds{ _releaseCollector.get(Range{ static_cast(_container->getCount()), _batchSize }) }; + const auto releaseIds{ _releaseCollector.get(db::Range{ static_cast(_container->getCount()), _batchSize }) }; { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - for (const ReleaseId releaseId : releaseIds.results) + for (const db::ReleaseId releaseId : releaseIds.results) { - if (const Release::pointer release{ Release::find(LmsApp->getDbSession(), releaseId) }) + if (const db::Release::pointer release{ db::Release::find(LmsApp->getDbSession(), releaseId) }) _container->add(releaseListHelpers::createEntry(release)); } } @@ -131,9 +129,9 @@ namespace lms::ui _container->setHasMore(releaseIds.moreResults); } - std::vector Releases::getAllReleases() + std::vector Releases::getAllReleases() { - RangeResults releaseIds{ _releaseCollector.get() }; + db::RangeResults releaseIds{ _releaseCollector.get() }; return std::move(releaseIds.results); } diff --git a/src/lms/ui/explore/TrackCollector.cpp b/src/lms/ui/explore/TrackCollector.cpp index 5c7fac86..83f3978d 100644 --- a/src/lms/ui/explore/TrackCollector.cpp +++ b/src/lms/ui/explore/TrackCollector.cpp @@ -32,16 +32,14 @@ namespace lms::ui { - using namespace db; - - RangeResults TrackCollector::get(std::optional requestedRange) + db::RangeResults TrackCollector::get(std::optional requestedRange) { feedback::IFeedbackService& feedbackService{ *core::Service::get() }; scrobbling::IScrobblingService& scrobblingService{ *core::Service::get() }; - const Range range{ getActualRange(requestedRange) }; + const db::Range range{ getActualRange(requestedRange) }; - RangeResults tracks; + db::RangeResults tracks; switch (getMode()) { @@ -86,44 +84,44 @@ namespace lms::ui case Mode::RecentlyAdded: { - Track::FindParameters params; + db::Track::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); - params.setSortMethod(TrackSortMethod::AddedDesc); + params.setSortMethod(db::TrackSortMethod::AddedDesc); params.setRange(range); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - tracks = Track::findIds(LmsApp->getDbSession(), params); + tracks = db::Track::findIds(LmsApp->getDbSession(), params); } break; } case Mode::RecentlyModified: { - Track::FindParameters params; + db::Track::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); - params.setSortMethod(TrackSortMethod::LastWrittenDesc); + params.setSortMethod(db::TrackSortMethod::LastWrittenDesc); params.setRange(range); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - tracks = Track::findIds(LmsApp->getDbSession(), params); + tracks = db::Track::findIds(LmsApp->getDbSession(), params); } break; } case Mode::All: { - Track::FindParameters params; + db::Track::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); params.setRange(range); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - tracks = Track::findIds(LmsApp->getDbSession(), params); + tracks = db::Track::findIds(LmsApp->getDbSession(), params); } break; } @@ -135,21 +133,21 @@ namespace lms::ui return tracks; } - RangeResults TrackCollector::getRandomTracks(Range range) + db::RangeResults TrackCollector::getRandomTracks(Range range) { assert(getMode() == Mode::Random); if (!_randomTracks) { - Track::FindParameters params; + db::Track::FindParameters params; params.setFilters(getDbFilters()); params.setKeywords(getSearchKeywords()); - params.setSortMethod(TrackSortMethod::Random); - params.setRange(Range{ 0, getMaxCount() }); + params.setSortMethod(db::TrackSortMethod::Random); + params.setRange(db::Range{ 0, getMaxCount() }); { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - _randomTracks = Track::findIds(LmsApp->getDbSession(), params); + _randomTracks = db::Track::findIds(LmsApp->getDbSession(), params); } } diff --git a/src/lms/ui/explore/TrackListView.cpp b/src/lms/ui/explore/TrackListView.cpp index 61e9a62d..2bd658d2 100644 --- a/src/lms/ui/explore/TrackListView.cpp +++ b/src/lms/ui/explore/TrackListView.cpp @@ -40,13 +40,11 @@ namespace lms::ui { - using namespace db; - namespace { - std::optional extractTrackListIdFromInternalPath() + std::optional extractTrackListIdFromInternalPath() { - return core::stringUtils::readAs(wApp->internalPathNextPart("/tracklist/")); + return core::stringUtils::readAs(wApp->internalPathNextPart("/tracklist/")); } } // namespace @@ -74,7 +72,7 @@ namespace lms::ui if (!wApp->internalPathMatches("/tracklist/")) return; - const std::optional trackListId{ extractTrackListIdFromInternalPath() }; + const std::optional trackListId{ extractTrackListIdFromInternalPath() }; if (!trackListId) throw TrackListNotFoundException{}; @@ -103,14 +101,14 @@ namespace lms::ui Wt::WContainerWidget* clusterContainers{ bindNew("clusters") }; { - const auto clusterTypeIds{ ClusterType::findIds(LmsApp->getDbSession()).results }; + const auto clusterTypeIds{ db::ClusterType::findIds(LmsApp->getDbSession()).results }; const auto clusterGroups{ trackList->getClusterGroups(clusterTypeIds, 3) }; for (const auto& clusters : clusterGroups) { for (const db::Cluster::pointer& cluster : clusters) { - const ClusterId clusterId{ cluster->getId() }; + const db::ClusterId clusterId{ cluster->getId() }; Wt::WInteractWidget* entry{ clusterContainers->addWidget(utils::createFilterCluster(clusterId)) }; entry->clicked().connect([this, clusterId] { _filters.add(clusterId); @@ -193,7 +191,7 @@ namespace lms::ui params.setRange(db::Range{ static_cast(_container->getCount()), _batchSize }); bool moreResults{}; - db::Track::find(LmsApp->getDbSession(), params, moreResults, [this](const Track::pointer& track) { + db::Track::find(LmsApp->getDbSession(), params, moreResults, [this](const db::Track::pointer& track) { _container->add(TrackListHelpers::createEntry(track, _playQueueController, _filters)); }); diff --git a/src/lms/ui/explore/TracksView.cpp b/src/lms/ui/explore/TracksView.cpp index 218ecb60..9a59f84b 100644 --- a/src/lms/ui/explore/TracksView.cpp +++ b/src/lms/ui/explore/TracksView.cpp @@ -35,8 +35,6 @@ namespace lms::ui { - using namespace db; - Tracks::Tracks(Filters& filters, PlayQueueController& playQueueController) : Template{ Wt::WString::tr("Lms.Explore.Tracks.template") } , _filters{ filters } @@ -119,11 +117,11 @@ namespace lms::ui { auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - const auto trackIds{ _trackCollector.get(Range{ static_cast(_container->getCount()), _batchSize }) }; + const auto trackIds{ _trackCollector.get(db::Range{ static_cast(_container->getCount()), _batchSize }) }; - for (const TrackId trackId : trackIds.results) + for (const db::TrackId trackId : trackIds.results) { - if (const Track::pointer track{ Track::find(LmsApp->getDbSession(), trackId) }) + if (const db::Track::pointer track{ db::Track::find(LmsApp->getDbSession(), trackId) }) _container->add(TrackListHelpers::createEntry(track, _playQueueController, _filters)); } @@ -132,7 +130,7 @@ namespace lms::ui std::vector Tracks::getAllTracks() { - RangeResults trackIds{ _trackCollector.get() }; + db::RangeResults trackIds{ _trackCollector.get() }; return std::move(trackIds.results); } } // namespace lms::ui diff --git a/src/lms/ui/resource/DownloadResource.cpp b/src/lms/ui/resource/DownloadResource.cpp index 01858d95..9997d9e4 100644 --- a/src/lms/ui/resource/DownloadResource.cpp +++ b/src/lms/ui/resource/DownloadResource.cpp @@ -197,11 +197,9 @@ namespace lms::ui std::unique_ptr DownloadReleaseResource::createZipper() { - using namespace db; - auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - auto tracks{ Track::find(LmsApp->getDbSession(), Track::FindParameters{}.setRelease(_releaseId).setSortMethod(TrackSortMethod::Release)) }; + auto tracks{ db::Track::find(LmsApp->getDbSession(), db::Track::FindParameters{}.setRelease(_releaseId).setSortMethod(db::TrackSortMethod::Release)) }; return details::createZipper(tracks.results); } @@ -241,12 +239,11 @@ namespace lms::ui std::unique_ptr DownloadTrackListResource::createZipper() { - using namespace db; auto transaction{ LmsApp->getDbSession().createReadTransaction() }; - Track::FindParameters params; + db::Track::FindParameters params; params.setTrackList(_trackListId); - const auto tracks{ Track::find(LmsApp->getDbSession(), params) }; + const auto tracks{ db::Track::find(LmsApp->getDbSession(), params) }; return details::createZipper(tracks.results); } } // namespace lms::ui