From 11f129769091a9caae0531fe57ac89316eff2ff4 Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 13:51:33 +0100 Subject: [PATCH 1/9] [video] Video version dialog: Cleanup: Rename CGUIDialogVideoVersion::RefreshVideoVersionList to CGUIDialogVideoVersion::Refresh, as it is not only refreshing the video version list. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 10 +++++----- xbmc/video/dialogs/GUIDialogVideoVersion.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index 45b2d61f10fc9..c77c0c0a5338c 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -218,7 +218,7 @@ void CGUIDialogVideoVersion::ClearVideoVersionList() m_extrasVideoVersionList->Clear(); } -void CGUIDialogVideoVersion::RefreshVideoVersionList() +void CGUIDialogVideoVersion::Refresh() { // clear current version list ClearVideoVersionList(); @@ -383,7 +383,7 @@ void CGUIDialogVideoVersion::Remove() m_database.RemoveVideoVersion(m_selectedVideoVersion->GetVideoInfoTag()->m_iDbId); // refresh the video version list - RefreshVideoVersionList(); + Refresh(); // select the default video version const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; @@ -404,7 +404,7 @@ void CGUIDialogVideoVersion::Rename() } // refresh the video version list - RefreshVideoVersionList(); + Refresh(); } void CGUIDialogVideoVersion::SetDefault() @@ -448,7 +448,7 @@ void CGUIDialogVideoVersion::ChooseArt() std::make_shared(*m_selectedVideoVersion))) return; - RefreshVideoVersionList(); + Refresh(); } void CGUIDialogVideoVersion::AddVersion() @@ -577,7 +577,7 @@ void CGUIDialogVideoVersion::AddVideoVersion(bool primary) } // refresh the video version list - RefreshVideoVersionList(); + Refresh(); } } diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.h b/xbmc/video/dialogs/GUIDialogVideoVersion.h index 27e38aae795b5..55de856840fb0 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.h +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.h @@ -46,7 +46,7 @@ class CGUIDialogVideoVersion : public CGUIDialog void SetDefaultVideoVersion(CFileItem& version); void SetSelectedVideoVersion(const std::shared_ptr& version); void ClearVideoVersionList(); - void RefreshVideoVersionList(); + void Refresh(); void AddVideoVersion(bool primary); void Play(); void AddVersion(); From ef7edbc1039dfb92964a1d6032d175e769d5e567 Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 13:54:01 +0100 Subject: [PATCH 2/9] [video] Video version dialog: Cleanup: Rename CGUIDialogVideoVersion::ClearVideoVersionList to CGUIDialogVideoVersion::Clear, as it is not only clearing the video version list. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 8 ++++---- xbmc/video/dialogs/GUIDialogVideoVersion.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index c77c0c0a5338c..8a0880ea73bcb 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -79,7 +79,7 @@ bool CGUIDialogVideoVersion::OnMessage(CGUIMessage& message) { case GUI_MSG_WINDOW_DEINIT: { - ClearVideoVersionList(); + Clear(); break; } @@ -207,7 +207,7 @@ void CGUIDialogVideoVersion::OnInitWindow() CGUIDialog::OnInitWindow(); } -void CGUIDialogVideoVersion::ClearVideoVersionList() +void CGUIDialogVideoVersion::Clear() { CGUIMessage msg1(GUI_MSG_LABEL_RESET, GetID(), CONTROL_LIST_PRIMARY_VERSION); OnMessage(msg1); @@ -221,7 +221,7 @@ void CGUIDialogVideoVersion::ClearVideoVersionList() void CGUIDialogVideoVersion::Refresh() { // clear current version list - ClearVideoVersionList(); + Clear(); const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; MediaType mediaType = m_videoItem->GetVideoInfoTag()->m_type; @@ -270,7 +270,7 @@ void CGUIDialogVideoVersion::SetVideoItem(const std::shared_ptr& item m_videoItem = item; - ClearVideoVersionList(); + Clear(); const int dbId = item->GetVideoInfoTag()->m_iDbId; MediaType mediaType = item->GetVideoInfoTag()->m_type; diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.h b/xbmc/video/dialogs/GUIDialogVideoVersion.h index 55de856840fb0..56de6f42351df 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.h +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.h @@ -45,7 +45,7 @@ class CGUIDialogVideoVersion : public CGUIDialog private: void SetDefaultVideoVersion(CFileItem& version); void SetSelectedVideoVersion(const std::shared_ptr& version); - void ClearVideoVersionList(); + void Clear(); void Refresh(); void AddVideoVersion(bool primary); void Play(); From 25a501f608191dba6e2f90cc855f46faa0ce9bec Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 14:03:16 +0100 Subject: [PATCH 3/9] [video] Video version dialog: Cleanup: Smart pointer usage. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index 8a0880ea73bcb..23c61a22a442a 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -98,7 +98,7 @@ bool CGUIDialogVideoVersion::OnMessage(CGUIMessage& message) if (item < 0 || item >= m_primaryVideoVersionList->Size()) break; - *m_selectedVideoVersion = *m_primaryVideoVersionList->Get(item); + m_selectedVideoVersion = m_primaryVideoVersionList->Get(item); if (m_selectedVideoVersion->GetVideoInfoTag()->m_iDbId == m_defaultVideoVersion->GetVideoInfoTag()->m_iDbId) @@ -128,7 +128,7 @@ bool CGUIDialogVideoVersion::OnMessage(CGUIMessage& message) if (item < 0 || item >= m_extrasVideoVersionList->Size()) break; - *m_selectedVideoVersion = *m_extrasVideoVersionList->Get(item).get(); + m_selectedVideoVersion = m_extrasVideoVersionList->Get(item); CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); @@ -256,7 +256,7 @@ void CGUIDialogVideoVersion::Refresh() OnMessage(msg2); // update default video version - m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion.get()); + m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion); } void CGUIDialogVideoVersion::SetVideoItem(const std::shared_ptr& item) @@ -389,7 +389,7 @@ void CGUIDialogVideoVersion::Remove() const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; VideoDbContentType itemType = m_videoItem->GetVideoContentType(); - m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion.get()); + m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion); CONTROL_DISABLE(CONTROL_BUTTON_REMOVE); CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); @@ -410,13 +410,13 @@ void CGUIDialogVideoVersion::Rename() void CGUIDialogVideoVersion::SetDefault() { // set the selected video version as default - SetDefaultVideoVersion(*m_selectedVideoVersion.get()); + SetDefaultVideoVersion(*m_selectedVideoVersion); const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; VideoDbContentType itemType = m_videoItem->GetVideoContentType(); // update our default video version - m_database.GetDefaultVideoVersion(itemType, dbId, *m_defaultVideoVersion.get()); + m_database.GetDefaultVideoVersion(itemType, dbId, *m_defaultVideoVersion); CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); } From 4929ad77acd904bbf12c9b907c6753fd5fbfd749 Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 15:03:54 +0100 Subject: [PATCH 4/9] [video] Video version dialog: Cleanup: Call Refresh() from SetVideoItem() to eliminate duplicate code. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 50 +++++--------------- xbmc/video/dialogs/GUIDialogVideoVersion.h | 2 +- 2 files changed, 12 insertions(+), 40 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index 23c61a22a442a..60c068bb20873 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -64,8 +64,8 @@ CGUIDialogVideoVersion::CGUIDialogVideoVersion() m_videoItem(std::make_shared()), m_primaryVideoVersionList(std::make_unique()), m_extrasVideoVersionList(std::make_unique()), - m_defaultVideoVersion(std::make_unique()), - m_selectedVideoVersion(std::make_unique()) + m_defaultVideoVersion(std::make_shared()), + m_selectedVideoVersion(std::make_shared()) { m_loadType = KEEP_IN_MEMORY; @@ -220,7 +220,7 @@ void CGUIDialogVideoVersion::Clear() void CGUIDialogVideoVersion::Refresh() { - // clear current version list + // clear current version lists Clear(); const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; @@ -256,7 +256,7 @@ void CGUIDialogVideoVersion::Refresh() OnMessage(msg2); // update default video version - m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion); + m_database.GetDefaultVideoVersion(itemType, dbId, *m_defaultVideoVersion); } void CGUIDialogVideoVersion::SetVideoItem(const std::shared_ptr& item) @@ -269,31 +269,8 @@ void CGUIDialogVideoVersion::SetVideoItem(const std::shared_ptr& item } m_videoItem = item; - - Clear(); - - const int dbId = item->GetVideoInfoTag()->m_iDbId; - MediaType mediaType = item->GetVideoInfoTag()->m_type; - VideoDbContentType itemType = item->GetVideoContentType(); - - m_database.GetVideoVersions(itemType, dbId, *m_primaryVideoVersionList, - VideoVersionItemType::PRIMARY); - m_primaryVideoVersionList->SetContent(CMediaTypes::ToPlural(mediaType)); - - m_database.GetVideoVersions(itemType, dbId, *m_extrasVideoVersionList, - VideoVersionItemType::EXTRAS); - m_extrasVideoVersionList->SetContent(CMediaTypes::ToPlural(mediaType)); - - m_database.GetDefaultVideoVersion(itemType, dbId, *m_defaultVideoVersion); - m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion); - - CVideoThumbLoader loader; - - for (auto& item : *m_primaryVideoVersionList) - loader.LoadItem(item.get()); - - for (auto& item : *m_extrasVideoVersionList) - loader.LoadItem(item.get()); + Refresh(); + m_selectedVideoVersion = m_defaultVideoVersion; } void CGUIDialogVideoVersion::CloseAll() @@ -382,15 +359,9 @@ void CGUIDialogVideoVersion::Remove() // remove video version m_database.RemoveVideoVersion(m_selectedVideoVersion->GetVideoInfoTag()->m_iDbId); - // refresh the video version list + // refresh data and controls Refresh(); - // select the default video version - const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; - VideoDbContentType itemType = m_videoItem->GetVideoContentType(); - - m_database.GetDefaultVideoVersion(itemType, dbId, *m_selectedVideoVersion); - CONTROL_DISABLE(CONTROL_BUTTON_REMOVE); CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); } @@ -403,7 +374,7 @@ void CGUIDialogVideoVersion::Rename() m_database.SetVideoVersion(m_selectedVideoVersion->GetVideoInfoTag()->m_iDbId, idVideoVersion); } - // refresh the video version list + // refresh data and controls Refresh(); } @@ -448,6 +419,7 @@ void CGUIDialogVideoVersion::ChooseArt() std::make_shared(*m_selectedVideoVersion))) return; + // refresh data and controls Refresh(); } @@ -576,7 +548,7 @@ void CGUIDialogVideoVersion::AddVideoVersion(bool primary) m_database.AddExtrasVideoVersion(itemType, dbId, idVideoVersion, item); } - // refresh the video version list + // refresh data and controls Refresh(); } } @@ -606,7 +578,7 @@ std::tuple CGUIDialogVideoVersion::NewVideoVersion() void CGUIDialogVideoVersion::SetSelectedVideoVersion(const std::shared_ptr& version) { - m_selectedVideoVersion = std::make_unique(*version); + m_selectedVideoVersion = version; } void CGUIDialogVideoVersion::ManageVideoVersion(const std::shared_ptr& item) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.h b/xbmc/video/dialogs/GUIDialogVideoVersion.h index 56de6f42351df..e30d7e93824b1 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.h +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.h @@ -61,6 +61,6 @@ class CGUIDialogVideoVersion : public CGUIDialog CVideoDatabase m_database; std::unique_ptr m_primaryVideoVersionList; std::unique_ptr m_extrasVideoVersionList; - std::unique_ptr m_defaultVideoVersion; + std::shared_ptr m_defaultVideoVersion; std::shared_ptr m_selectedVideoVersion; }; From 0e68b0721926fcb75449e3fac68613287b6e7d37 Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 15:50:25 +0100 Subject: [PATCH 5/9] [video] Video version dialog: Cleanup: Remove unneeded message sending from Refresh(). --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index 60c068bb20873..d20f820f33a57 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -209,12 +209,7 @@ void CGUIDialogVideoVersion::OnInitWindow() void CGUIDialogVideoVersion::Clear() { - CGUIMessage msg1(GUI_MSG_LABEL_RESET, GetID(), CONTROL_LIST_PRIMARY_VERSION); - OnMessage(msg1); m_primaryVideoVersionList->Clear(); - - CGUIMessage msg2(GUI_MSG_LABEL_RESET, GetID(), CONTROL_LIST_EXTRAS_VERSION); - OnMessage(msg2); m_extrasVideoVersionList->Clear(); } From 79672dfb1d8513e71343b1b0dac41b2946a9f12b Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 16:11:44 +0100 Subject: [PATCH 6/9] [video] Video version dialog: Cleanup: Make item parameter for SetDefaultVideoVersion a const reference. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 2 +- xbmc/video/dialogs/GUIDialogVideoVersion.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index d20f820f33a57..668122fc21ccc 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -387,7 +387,7 @@ void CGUIDialogVideoVersion::SetDefault() CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); } -void CGUIDialogVideoVersion::SetDefaultVideoVersion(CFileItem& version) +void CGUIDialogVideoVersion::SetDefaultVideoVersion(const CFileItem& version) { const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; VideoDbContentType itemType = m_videoItem->GetVideoContentType(); diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.h b/xbmc/video/dialogs/GUIDialogVideoVersion.h index e30d7e93824b1..200a680fe906f 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.h +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.h @@ -43,7 +43,7 @@ class CGUIDialogVideoVersion : public CGUIDialog void OnInitWindow() override; private: - void SetDefaultVideoVersion(CFileItem& version); + void SetDefaultVideoVersion(const CFileItem& version); void SetSelectedVideoVersion(const std::shared_ptr& version); void Clear(); void Refresh(); From 0e7376a4df896ead1e2336dd6623d9894a9d44b4 Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 16:23:11 +0100 Subject: [PATCH 7/9] [video] Video version dialog: Cleanup: Remove bool paramter from AddVideoVersion interface. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 25 ++++++-------------- xbmc/video/dialogs/GUIDialogVideoVersion.h | 4 +--- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index 668122fc21ccc..c50a3217eb15c 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -144,11 +144,11 @@ bool CGUIDialogVideoVersion::OnMessage(CGUIMessage& message) } else if (control == CONTROL_BUTTON_ADD_VERSION) { - AddVersion(); + AddVideoVersion(VideoVersionItemType::PRIMARY); } else if (control == CONTROL_BUTTON_ADD_EXTRAS) { - AddExtras(); + AddVideoVersion(VideoVersionItemType::EXTRAS); } else if (control == CONTROL_BUTTON_RENAME) { @@ -418,26 +418,15 @@ void CGUIDialogVideoVersion::ChooseArt() Refresh(); } -void CGUIDialogVideoVersion::AddVersion() -{ - AddVideoVersion(true); -} - -void CGUIDialogVideoVersion::AddExtras() -{ - AddVideoVersion(false); -} - -void CGUIDialogVideoVersion::AddVideoVersion(bool primary) +void CGUIDialogVideoVersion::AddVideoVersion(VideoVersionItemType versionType) { const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; MediaType mediaType = m_videoItem->GetVideoInfoTag()->m_type; VideoDbContentType itemType = m_videoItem->GetVideoContentType(); - std::string title = primary ? StringUtils::Format(g_localizeStrings.Get(40014), - CMediaTypes::GetLocalization(mediaType)) - : StringUtils::Format(g_localizeStrings.Get(40015), - CMediaTypes::GetLocalization(mediaType)); + const std::string title = StringUtils::Format( + g_localizeStrings.Get(versionType == VideoVersionItemType::PRIMARY ? 40014 : 40015), + CMediaTypes::GetLocalization(mediaType)); // prompt to choose a video file VECSOURCES sources = *CMediaSourceSettings::GetInstance().GetSources("files"); @@ -524,7 +513,7 @@ void CGUIDialogVideoVersion::AddVideoVersion(bool primary) CURL::GetRedacted(item.GetPath())); } - if (primary) + if (versionType == VideoVersionItemType::PRIMARY) { const int idVideoVersion = SelectVideoVersion(m_videoItem); if (idVideoVersion != -1) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.h b/xbmc/video/dialogs/GUIDialogVideoVersion.h index 200a680fe906f..c2b565022be76 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.h +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.h @@ -47,10 +47,8 @@ class CGUIDialogVideoVersion : public CGUIDialog void SetSelectedVideoVersion(const std::shared_ptr& version); void Clear(); void Refresh(); - void AddVideoVersion(bool primary); + void AddVideoVersion(VideoVersionItemType versionType); void Play(); - void AddVersion(); - void AddExtras(); void Rename(); void SetDefault(); void Remove(); From 91b53f38a6a3cf1c02a2ce0e5315d4dba49174ec Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 17:53:11 +0100 Subject: [PATCH 8/9] [video] Video version dialog: Cleanup: Make vars const whenever possible. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 28 ++++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index c50a3217eb15c..a86e3731973e7 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -219,8 +219,8 @@ void CGUIDialogVideoVersion::Refresh() Clear(); const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; - MediaType mediaType = m_videoItem->GetVideoInfoTag()->m_type; - VideoDbContentType itemType = m_videoItem->GetVideoContentType(); + const MediaType mediaType = m_videoItem->GetVideoInfoTag()->m_type; + const VideoDbContentType itemType = m_videoItem->GetVideoContentType(); // get primary version list m_database.GetVideoVersions(itemType, dbId, *m_primaryVideoVersionList, @@ -379,7 +379,7 @@ void CGUIDialogVideoVersion::SetDefault() SetDefaultVideoVersion(*m_selectedVideoVersion); const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; - VideoDbContentType itemType = m_videoItem->GetVideoContentType(); + const VideoDbContentType itemType = m_videoItem->GetVideoContentType(); // update our default video version m_database.GetDefaultVideoVersion(itemType, dbId, *m_defaultVideoVersion); @@ -390,7 +390,7 @@ void CGUIDialogVideoVersion::SetDefault() void CGUIDialogVideoVersion::SetDefaultVideoVersion(const CFileItem& version) { const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; - VideoDbContentType itemType = m_videoItem->GetVideoContentType(); + const VideoDbContentType itemType = m_videoItem->GetVideoContentType(); // set the specified video version as default m_database.SetDefaultVideoVersion(itemType, dbId, version.GetVideoInfoTag()->m_iDbId); @@ -421,8 +421,8 @@ void CGUIDialogVideoVersion::ChooseArt() void CGUIDialogVideoVersion::AddVideoVersion(VideoVersionItemType versionType) { const int dbId = m_videoItem->GetVideoInfoTag()->m_iDbId; - MediaType mediaType = m_videoItem->GetVideoInfoTag()->m_type; - VideoDbContentType itemType = m_videoItem->GetVideoContentType(); + const MediaType mediaType = m_videoItem->GetVideoInfoTag()->m_type; + const VideoDbContentType itemType = m_videoItem->GetVideoContentType(); const std::string title = StringUtils::Format( g_localizeStrings.Get(versionType == VideoVersionItemType::PRIMARY ? 40014 : 40015), @@ -523,7 +523,7 @@ void CGUIDialogVideoVersion::AddVideoVersion(VideoVersionItemType versionType) } else { - std::string typeVideoVersion = + const std::string typeVideoVersion = CGUIDialogVideoVersion::GenerateExtrasVideoVersion(URIUtils::GetFileName(path)); const int idVideoVersion = @@ -641,7 +641,7 @@ int CGUIDialogVideoVersion::SelectVideoVersion(const std::shared_ptr& if (!item || !item->HasVideoInfoTag()) return -1; - VideoDbContentType itemType = item->GetVideoContentType(); + const VideoDbContentType itemType = item->GetVideoContentType(); if (itemType != VideoDbContentType::MOVIES) return -1; @@ -723,7 +723,7 @@ bool CGUIDialogVideoVersion::ConvertVideoVersion(const std::shared_ptrHasVideoInfoTag()) return false; - VideoDbContentType itemType = item->GetVideoContentType(); + const VideoDbContentType itemType = item->GetVideoContentType(); if (itemType != VideoDbContentType::MOVIES) return false; @@ -746,7 +746,7 @@ bool CGUIDialogVideoVersion::ConvertVideoVersion(const std::shared_ptrIsConfirmed()) return false; - std::shared_ptr selectedItem = dialog->GetSelectedFileItem(); + const std::shared_ptr selectedItem = dialog->GetSelectedFileItem(); // choose a video version const int idVideoVersion = SelectVideoVersion(selectedItem); @@ -834,7 +834,7 @@ bool CGUIDialogVideoVersion::ProcessVideoVersion(VideoDbContentType itemType, in if (list.Size() < 2) return false; - MediaType mediaType = item.GetVideoInfoTag()->m_type; + const MediaType mediaType = item.GetVideoInfoTag()->m_type; std::string path; videodb.GetFilePathById(dbId, path, itemType); @@ -881,7 +881,7 @@ bool CGUIDialogVideoVersion::ProcessVideoVersion(VideoDbContentType itemType, in if (!dialog->IsConfirmed()) return false; - std::shared_ptr selectedItem = dialog->GetSelectedFileItem(); + const std::shared_ptr selectedItem = dialog->GetSelectedFileItem(); // choose a video version const int idVideoVersion = SelectVideoVersion(selectedItem); @@ -899,7 +899,7 @@ std::string CGUIDialogVideoVersion::GenerateExtrasVideoVersion(const std::string // generate a video extra version string from its file path // remove the root path from its path - std::string extrasVersion = extrasPath.substr(extrasRoot.size()); + const std::string extrasVersion = extrasPath.substr(extrasRoot.size()); return GenerateExtrasVideoVersion(extrasVersion); } From 3f33e8ff3bc2aef472088d8dd883ad623d6c09c5 Mon Sep 17 00:00:00 2001 From: ksooo <3226626+ksooo@users.noreply.github.com> Date: Wed, 20 Dec 2023 19:16:08 +0100 Subject: [PATCH 9/9] [video] Video version dialog: Cleanup: Consolidate button update code. --- xbmc/video/dialogs/GUIDialogVideoVersion.cpp | 58 ++++++++++---------- xbmc/video/dialogs/GUIDialogVideoVersion.h | 1 + 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp index a86e3731973e7..57d59d6829bb1 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.cpp @@ -100,18 +100,7 @@ bool CGUIDialogVideoVersion::OnMessage(CGUIMessage& message) m_selectedVideoVersion = m_primaryVideoVersionList->Get(item); - if (m_selectedVideoVersion->GetVideoInfoTag()->m_iDbId == - m_defaultVideoVersion->GetVideoInfoTag()->m_iDbId) - { - CONTROL_DISABLE(CONTROL_BUTTON_REMOVE); - CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); - } - else - { - CONTROL_ENABLE(CONTROL_BUTTON_REMOVE); - CONTROL_ENABLE(CONTROL_BUTTON_RENAME); - CONTROL_ENABLE(CONTROL_BUTTON_SET_DEFAULT); - } + UpdateButtons(); SET_CONTROL_FOCUS(CONTROL_BUTTON_PLAY, 0); } @@ -130,10 +119,7 @@ bool CGUIDialogVideoVersion::OnMessage(CGUIMessage& message) m_selectedVideoVersion = m_extrasVideoVersionList->Get(item); - CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); - - CONTROL_ENABLE(CONTROL_BUTTON_REMOVE); - CONTROL_ENABLE(CONTROL_BUTTON_RENAME); + UpdateButtons(); SET_CONTROL_FOCUS(CONTROL_BUTTON_PLAY, 0); } @@ -194,15 +180,7 @@ void CGUIDialogVideoVersion::OnInitWindow() m_extrasVideoVersionList.get()); OnMessage(msg2); - // disable buttons that need a selected video version - CONTROL_DISABLE(CONTROL_BUTTON_REMOVE); - CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); - - CONTROL_ENABLE(CONTROL_BUTTON_ADD_VERSION); - CONTROL_ENABLE(CONTROL_BUTTON_ADD_EXTRAS); - CONTROL_ENABLE(CONTROL_BUTTON_CHOOSE_ART); - CONTROL_ENABLE(CONTROL_BUTTON_RENAME); - CONTROL_ENABLE(CONTROL_BUTTON_PLAY); + UpdateButtons(); CGUIDialog::OnInitWindow(); } @@ -213,6 +191,31 @@ void CGUIDialogVideoVersion::Clear() m_extrasVideoVersionList->Clear(); } +void CGUIDialogVideoVersion::UpdateButtons() +{ + // Always visible + CONTROL_ENABLE(CONTROL_BUTTON_ADD_VERSION); + CONTROL_ENABLE(CONTROL_BUTTON_ADD_EXTRAS); + + // visible for non-default version only + if (m_selectedVideoVersion->GetVideoInfoTag()->m_iDbId == + m_defaultVideoVersion->GetVideoInfoTag()->m_iDbId) + { + CONTROL_DISABLE(CONTROL_BUTTON_REMOVE); + CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); + } + else + { + CONTROL_ENABLE(CONTROL_BUTTON_REMOVE); + CONTROL_ENABLE(CONTROL_BUTTON_SET_DEFAULT); + } + + // visible if focused list not empty + CONTROL_ENABLE(CONTROL_BUTTON_CHOOSE_ART); + CONTROL_ENABLE(CONTROL_BUTTON_RENAME); + CONTROL_ENABLE(CONTROL_BUTTON_PLAY); +} + void CGUIDialogVideoVersion::Refresh() { // clear current version lists @@ -357,8 +360,7 @@ void CGUIDialogVideoVersion::Remove() // refresh data and controls Refresh(); - CONTROL_DISABLE(CONTROL_BUTTON_REMOVE); - CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); + UpdateButtons(); } void CGUIDialogVideoVersion::Rename() @@ -384,7 +386,7 @@ void CGUIDialogVideoVersion::SetDefault() // update our default video version m_database.GetDefaultVideoVersion(itemType, dbId, *m_defaultVideoVersion); - CONTROL_DISABLE(CONTROL_BUTTON_SET_DEFAULT); + UpdateButtons(); } void CGUIDialogVideoVersion::SetDefaultVideoVersion(const CFileItem& version) diff --git a/xbmc/video/dialogs/GUIDialogVideoVersion.h b/xbmc/video/dialogs/GUIDialogVideoVersion.h index c2b565022be76..e303773b60c16 100644 --- a/xbmc/video/dialogs/GUIDialogVideoVersion.h +++ b/xbmc/video/dialogs/GUIDialogVideoVersion.h @@ -54,6 +54,7 @@ class CGUIDialogVideoVersion : public CGUIDialog void Remove(); void ChooseArt(); void CloseAll(); + void UpdateButtons(); std::shared_ptr m_videoItem; CVideoDatabase m_database;