summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/source/deployment/manager/dp_manager.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/desktop/source/deployment/manager/dp_manager.cxx b/desktop/source/deployment/manager/dp_manager.cxx
index 44bc4d469f2f..f42940d5c21b 100644
--- a/desktop/source/deployment/manager/dp_manager.cxx
+++ b/desktop/source/deployment/manager/dp_manager.cxx
@@ -949,6 +949,15 @@ void PackageManagerImpl::removePackage(
contentRemoved.writeStream( xData, true /* replace existing */ );
}
m_activePackagesDB->erase( id, fileName ); // to be removed upon next start
+ //Remove the database folder (user installation) completely if this was
+ //the last extension. Do not do this for tmp because it is used often
+ ActivePackages::Entries id2temp( m_activePackagesDB->getEntries() );
+ if (id2temp.size() && !m_context.equals(OUSTR("tmp")))
+ {
+ erase_path( m_registrationData,
+ Reference<XCommandEnvironment>(),
+ false /* no throw: ignore errors */ );
+ }
}
try_dispose( xPackage );