From d9e1763484362a807e11e0e003491cdac3169798 Mon Sep 17 00:00:00 2001 From: qu1ck Date: Mon, 23 Jan 2023 09:28:49 -0800 Subject: [PATCH] PCM: keep pinned state on update --- kicad/pcm/pcm.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kicad/pcm/pcm.cpp b/kicad/pcm/pcm.cpp index ff3ea27fe8..97e6ba779a 100644 --- a/kicad/pcm/pcm.cpp +++ b/kicad/pcm/pcm.cpp @@ -778,8 +778,14 @@ void PLUGIN_CONTENT_MANAGER::DiscardRepositoryCache( const wxString& aRepository void PLUGIN_CONTENT_MANAGER::MarkInstalled( const PCM_PACKAGE& aPackage, const wxString& aVersion, const wxString& aRepositoryId ) { - // In case of package update remove old data - MarkUninstalled( aPackage ); + // In case of package update remove old data but keep pinned state + bool pinned = false; + + if( m_installed.count( aPackage.identifier ) ) + { + pinned = m_installed.at( aPackage.identifier ).pinned; + MarkUninstalled( aPackage ); + } PCM_INSTALLATION_ENTRY entry; entry.package = aPackage; @@ -799,6 +805,7 @@ void PLUGIN_CONTENT_MANAGER::MarkInstalled( const PCM_PACKAGE& aPackage, const w } entry.install_timestamp = getCurrentTimestamp(); + entry.pinned = pinned; m_installed.emplace( aPackage.identifier, entry ); }