summaryrefslogtreecommitdiff
path: root/desktop/source/migration/migration.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/source/migration/migration.cxx')
-rw-r--r--desktop/source/migration/migration.cxx239
1 files changed, 172 insertions, 67 deletions
diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index ef4b6688d4c2..d6b52c806367 100644
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
@@ -34,14 +34,16 @@
#include <unotools/bootstrap.hxx>
#include <rtl/uri.hxx>
#include <i18nlangtag/lang.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tools/urlobj.hxx>
+#include <officecfg/Office/UI.hxx>
#include <osl/file.hxx>
#include <osl/security.hxx>
#include <unotools/configmgr.hxx>
#include <com/sun/star/configuration/Update.hpp>
#include <com/sun/star/configuration/theDefaultProvider.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/task/XJob.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -56,7 +58,6 @@
#include <vcl/commandinfoprovider.hxx>
using namespace osl;
-using namespace std;
using namespace com::sun::star::task;
using namespace com::sun::star::lang;
using namespace com::sun::star::beans;
@@ -69,9 +70,9 @@ using namespace com::sun::star;
namespace desktop
{
-constexpr OUStringLiteral ITEM_DESCRIPTOR_COMMANDURL = u"CommandURL";
-constexpr OUStringLiteral ITEM_DESCRIPTOR_CONTAINER = u"ItemDescriptorContainer";
-constexpr OUStringLiteral ITEM_DESCRIPTOR_LABEL = u"Label";
+constexpr OUString ITEM_DESCRIPTOR_COMMANDURL = u"CommandURL"_ustr;
+constexpr OUString ITEM_DESCRIPTOR_CONTAINER = u"ItemDescriptorContainer"_ustr;
+constexpr OUString ITEM_DESCRIPTOR_LABEL = u"Label"_ustr;
static OUString mapModuleShortNameToIdentifier(std::u16string_view sShortName)
{
@@ -189,8 +190,8 @@ bool MigrationImpl::doMigration()
copyFiles();
- const OUString sMenubarResourceURL("private:resource/menubar/menubar");
- const OUString sToolbarResourcePre("private:resource/toolbar/");
+ static constexpr OUString sMenubarResourceURL(u"private:resource/menubar/menubar"_ustr);
+ static constexpr OUStringLiteral sToolbarResourcePre(u"private:resource/toolbar/");
for (MigrationModuleInfo & i : vModulesInfo) {
OUString sModuleIdentifier = mapModuleShortNameToIdentifier(i.sModuleShortName);
if (sModuleIdentifier.isEmpty())
@@ -198,7 +199,7 @@ bool MigrationImpl::doMigration()
OUString aOldCfgDataPath = m_aInfo.userdata + "/user/config/soffice.cfg/modules/" + i.sModuleShortName;
- uno::Sequence< uno::Any > lArgs {uno::makeAny(aOldCfgDataPath), uno::makeAny(embed::ElementModes::READ)};
+ uno::Sequence< uno::Any > lArgs {uno::Any(aOldCfgDataPath), uno::Any(embed::ElementModes::READ)};
uno::Reference< uno::XComponentContext > xContext(comphelper::getProcessComponentContext());
uno::Reference< lang::XSingleServiceFactory > xStorageFactory(embed::FileSystemStorageFactory::create(xContext));
@@ -262,7 +263,7 @@ void MigrationImpl::setMigrationCompleted()
{
try {
uno::Reference< XPropertySet > aPropertySet(getConfigAccess("org.openoffice.Setup/Office", true), uno::UNO_QUERY_THROW);
- aPropertySet->setPropertyValue("MigrationCompleted", uno::makeAny(true));
+ aPropertySet->setPropertyValue("MigrationCompleted", uno::Any(true));
uno::Reference< XChangesBatch >(aPropertySet, uno::UNO_QUERY_THROW)->commitChanges();
} catch (...) {
// fail silently
@@ -306,8 +307,8 @@ void MigrationImpl::readAvailableMigrations(migrations_available& rAvailableMigr
uno::Reference< XNameAccess > aMigrationAccess(getConfigAccess("org.openoffice.Setup/Migration/SupportedVersions"), uno::UNO_SET_THROW);
const uno::Sequence< OUString > seqSupportedVersions = aMigrationAccess->getElementNames();
- const OUString aVersionIdentifiers( "VersionIdentifiers" );
- const OUString aPriorityIdentifier( "Priority" );
+ static constexpr OUStringLiteral aVersionIdentifiers( u"VersionIdentifiers" );
+ static constexpr OUStringLiteral aPriorityIdentifier( u"Priority" );
for (OUString const & supportedVersion :seqSupportedVersions) {
sal_Int32 nPriority( 0 );
@@ -319,7 +320,7 @@ void MigrationImpl::readAvailableMigrations(migrations_available& rAvailableMigr
supported_migration aSupportedMigration;
aSupportedMigration.name = supportedVersion;
aSupportedMigration.nPriority = nPriority;
- for (OUString const & s : std::as_const(seqVersions))
+ for (OUString const& s : seqVersions)
aSupportedMigration.supported_versions.push_back(s.trim());
insertSorted( rAvailableMigrations, aSupportedMigration );
SAL_INFO( "desktop.migration", " available migration '" << aSupportedMigration.name << "'" );
@@ -346,31 +347,31 @@ migrations_vr MigrationImpl::readMigrationSteps(const OUString& rMigrationName)
// read included files from current step description
if (tmpAccess->getByName("IncludedFiles") >>= tmpSeq) {
- for (const OUString& rSeqEntry : std::as_const(tmpSeq))
+ for (const OUString& rSeqEntry : tmpSeq)
tmpStep.includeFiles.push_back(rSeqEntry);
}
// excluded files...
if (tmpAccess->getByName("ExcludedFiles") >>= tmpSeq) {
- for (const OUString& rSeqEntry : std::as_const(tmpSeq))
+ for (const OUString& rSeqEntry : tmpSeq)
tmpStep.excludeFiles.push_back(rSeqEntry);
}
// included nodes...
if (tmpAccess->getByName("IncludedNodes") >>= tmpSeq) {
- for (const OUString& rSeqEntry : std::as_const(tmpSeq))
+ for (const OUString& rSeqEntry : tmpSeq)
tmpStep.includeConfig.push_back(rSeqEntry);
}
// excluded nodes...
if (tmpAccess->getByName("ExcludedNodes") >>= tmpSeq) {
- for (const OUString& rSeqEntry : std::as_const(tmpSeq))
+ for (const OUString& rSeqEntry : tmpSeq)
tmpStep.excludeConfig.push_back(rSeqEntry);
}
// excluded extensions...
if (tmpAccess->getByName("ExcludedExtensions") >>= tmpSeq) {
- for (const OUString& rSeqEntry : std::as_const(tmpSeq))
+ for (const OUString& rSeqEntry : tmpSeq)
tmpStep.excludeExtensions.push_back(rSeqEntry);
}
@@ -430,7 +431,7 @@ OUString MigrationImpl::preXDGConfigDir(const OUString& rConfigDir)
void MigrationImpl::setInstallInfoIfExist(
install_info& aInfo,
- const OUString& rConfigDir,
+ std::u16string_view rConfigDir,
const OUString& rVersion)
{
OUString url(INetURLObject(rConfigDir).GetMainURL(INetURLObject::DecodeMechanism::NONE));
@@ -471,11 +472,11 @@ install_info MigrationImpl::findInstallation(const strings_v& rVersions)
( aInfo.userdata.isEmpty() ||
aProfileName.equalsIgnoreAsciiCase(
utl::ConfigManager::getProductName() ) ) ) {
- setInstallInfoIfExist(aInfo, aTopConfigDir + aProfileName, aVersion);
+ setInstallInfoIfExist(aInfo, Concat2View(aTopConfigDir + aProfileName), aVersion);
#if defined UNX && ! defined MACOSX
//try preXDG path if the new one does not exist
if ( aInfo.userdata.isEmpty())
- setInstallInfoIfExist(aInfo, aPreXDGTopConfigDir + aProfileName, aVersion);
+ setInstallInfoIfExist(aInfo, Concat2View(aPreXDGTopConfigDir + aProfileName), aVersion);
#endif
}
}
@@ -563,12 +564,10 @@ namespace
{
// removes elements of vector 2 in vector 1
-strings_v subtract(strings_v const & va, strings_v const & vb)
+strings_v subtract(strings_v && a, strings_v && b)
{
- strings_v a(va);
std::sort(a.begin(), a.end());
strings_v::iterator ae(std::unique(a.begin(), a.end()));
- strings_v b(vb);
std::sort(b.begin(), b.end());
strings_v::iterator be(std::unique(b.begin(), b.end()));
strings_v c;
@@ -582,8 +581,6 @@ strings_vr MigrationImpl::compileFileList()
{
strings_vr vrResult(new strings_v);
- strings_vr vrInclude;
- strings_vr vrExclude;
// get a list of all files:
strings_vr vrFiles = getAllFiles(m_aInfo.userdata);
@@ -591,9 +588,9 @@ strings_vr MigrationImpl::compileFileList()
// get a file list result for each migration step
for (auto const& rMigration : *m_vrMigrations)
{
- vrInclude = applyPatterns(*vrFiles, rMigration.includeFiles);
- vrExclude = applyPatterns(*vrFiles, rMigration.excludeFiles);
- strings_v sub(subtract(*vrInclude, *vrExclude));
+ strings_vr vrInclude = applyPatterns(*vrFiles, rMigration.includeFiles);
+ strings_vr vrExclude = applyPatterns(*vrFiles, rMigration.excludeFiles);
+ strings_v sub(subtract(std::move(*vrInclude), std::move(*vrExclude)));
vrResult->insert(vrResult->end(), sub.begin(), sub.end());
}
return vrResult;
@@ -621,6 +618,55 @@ bool getComponent(OUString const & path, OUString * component)
return true;
}
+void renameMigratedSetElementTo(
+ css::uno::Reference<css::container::XNameContainer> const & set, OUString const & currentName,
+ OUString const & migratedName)
+{
+ // To avoid unexpected data loss, the code is careful to only rename from currentName to
+ // migratedName in the expected case where the currentName element exists and the migratedName
+ // element doesn't exist:
+ bool const hasCurrent = set->hasByName(currentName);
+ bool const hasMigrated = set->hasByName(migratedName);
+ if (hasCurrent && !hasMigrated) {
+ auto const elem = set->getByName(currentName);
+ set->removeByName(currentName);
+ set->insertByName(migratedName, elem);
+ } else {
+ SAL_INFO_IF(!hasCurrent, "desktop.migration", "unexpectedly missing " << currentName);
+ SAL_INFO_IF(hasMigrated, "desktop.migration", "unexpectedly present " << migratedName);
+ }
+}
+
+void renameMigratedSetElementBack(
+ css::uno::Reference<css::container::XNameContainer> const & set, OUString const & currentName,
+ OUString const & migratedName)
+{
+ // To avoid unexpected data loss, the code is careful to ensure that in the end a currentName
+ // element exists, creating it from a template if the migratedName element had unexpectedly gone
+ // missing:
+ bool const hasMigrated = set->hasByName(migratedName);
+ css::uno::Any elem;
+ if (hasMigrated) {
+ elem = set->getByName(migratedName);
+ set->removeByName(migratedName);
+ } else {
+ SAL_INFO("desktop.migration", "unexpected loss of " << migratedName);
+ elem <<= css::uno::Reference<css::lang::XSingleServiceFactory>(
+ set, css::uno::UNO_QUERY_THROW)->createInstance();
+ }
+ if (set->hasByName(currentName)) {
+ SAL_INFO("desktop.migration", "unexpected reappearance of " << currentName);
+ if (hasMigrated) {
+ SAL_INFO(
+ "desktop.migration",
+ "reappeared " << currentName << " overwritten with " << migratedName);
+ set->replaceByName(currentName, elem);
+ }
+ } else {
+ set->insertByName(currentName, elem);
+ }
+}
+
}
void MigrationImpl::copyConfig()
@@ -651,6 +697,30 @@ void MigrationImpl::copyConfig()
regFile.close();
}
+ // If the to-be-migrated data contains modifications of
+ // /org.openoffice.Office.UI/ColorScheme/ColorSchemes set elements named after the migrated
+ // product name, those modifications must instead be made to the corresponding set elements
+ // named after the current product name. However, if the current configuration data does not
+ // contain those old-named set elements at all, their modification data would silently be
+ // ignored by css.configuration.XUpdate::insertModificationXcuFile. So temporarily rename any
+ // new-named set elements to their old-named counterparts here, and rename them back again down
+ // below after importing the migrated data:
+ OUString sProductName = utl::ConfigManager::getProductName();
+ OUString sProductNameDark = sProductName + " Dark";
+ OUString sMigratedProductName = m_aInfo.productname;
+ // remove version number from the end of product name if there’s one
+ if (isdigit(sMigratedProductName[sMigratedProductName.getLength() - 1]))
+ sMigratedProductName = (sMigratedProductName.copy(0, m_aInfo.productname.getLength() - 1)).trim();
+ OUString sMigratedProductNameDark = sMigratedProductName + " Dark";
+ auto const tempRename = sMigratedProductName != sProductName;
+ if (tempRename) {
+ auto const batch = comphelper::ConfigurationChanges::create();
+ auto const schemes = officecfg::Office::UI::ColorScheme::ColorSchemes::get(batch);
+ renameMigratedSetElementTo(schemes, sProductName, sMigratedProductName);
+ renameMigratedSetElementTo(schemes, sProductNameDark, sMigratedProductNameDark);
+ batch->commit();
+ }
+
for (auto const& comp : comps)
{
if (!comp.second.includedPaths.empty()) {
@@ -658,8 +728,8 @@ void MigrationImpl::copyConfig()
// shared registrymodifications.xcu does not exists
// the configuration is split in many registry files
// determine the file names from the first element in included paths
- OUStringBuffer buf(m_aInfo.userdata);
- buf.append("/user/registry/data");
+ OUStringBuffer buf(m_aInfo.userdata
+ + "/user/registry/data");
sal_Int32 n = 0;
do {
OUString seg(comp.first.getToken(0, '.', n));
@@ -671,11 +741,10 @@ void MigrationImpl::copyConfig()
SAL_INFO( "desktop.migration", "configuration migration component " << comp.first << " ignored (cannot be encoded as file path)" );
goto next;
}
- buf.append('/');
- buf.append(enc);
+ buf.append("/" + enc);
} while (n >= 0);
buf.append(".xcu");
- regFilePath = buf.toString();
+ regFilePath = buf.makeStringAndClear();
}
configuration::Update::get(
comphelper::getProcessComponentContext())->
@@ -683,12 +752,44 @@ void MigrationImpl::copyConfig()
regFilePath,
comphelper::containerToSequence(comp.second.includedPaths),
comphelper::containerToSequence(comp.second.excludedPaths));
+
} else {
SAL_INFO( "desktop.migration", "configuration migration component " << comp.first << " ignored (only excludes, no includes)" );
}
next:
;
}
+ if (tempRename) {
+ auto const batch = comphelper::ConfigurationChanges::create();
+ auto const schemes = officecfg::Office::UI::ColorScheme::ColorSchemes::get(batch);
+ renameMigratedSetElementBack(schemes, sProductName, sMigratedProductName);
+ renameMigratedSetElementBack(schemes, sProductNameDark, sMigratedProductNameDark);
+ batch->commit();
+ }
+ // checking the migrated (product name related) color scheme name, and replace it to the current version scheme name
+ try
+ {
+ OUString sMigratedColorScheme;
+ uno::Reference<XPropertySet> aPropertySet(
+ getConfigAccess("org.openoffice.Office.UI/ColorScheme", true), uno::UNO_QUERY_THROW);
+ if (aPropertySet->getPropertyValue("CurrentColorScheme") >>= sMigratedColorScheme)
+ {
+ if (sMigratedColorScheme.equals(sMigratedProductName))
+ {
+ aPropertySet->setPropertyValue("CurrentColorScheme",
+ uno::Any(sProductName));
+ uno::Reference<XChangesBatch>(aPropertySet, uno::UNO_QUERY_THROW)->commitChanges();
+ }
+ else if (sMigratedColorScheme.equals(sMigratedProductNameDark))
+ {
+ aPropertySet->setPropertyValue("CurrentColorScheme",
+ uno::Any(sProductNameDark));
+ uno::Reference<XChangesBatch>(aPropertySet, uno::UNO_QUERY_THROW)->commitChanges();
+ }
+ }
+ } catch (const Exception&) {
+ // fail silently...
+ }
}
uno::Reference< XNameAccess > MigrationImpl::getConfigAccess(const char* pPath, bool bUpdate)
@@ -708,7 +809,7 @@ uno::Reference< XNameAccess > MigrationImpl::getConfigAccess(const char* pPath,
comphelper::getProcessComponentContext()));
// access the provider
- uno::Sequence< uno::Any > theArgs {uno::makeAny(sConfigURL)};
+ uno::Sequence< uno::Any > theArgs {uno::Any(sConfigURL)};
xNameAccess.set(
theConfigProvider->createInstanceWithArguments(
sAccessSrvc, theArgs ), uno::UNO_QUERY_THROW );
@@ -756,10 +857,11 @@ void MigrationImpl::runServices()
{
// Build argument array
uno::Sequence< uno::Any > seqArguments(3);
- seqArguments[0] <<= NamedValue("Productname",
- uno::makeAny(m_aInfo.productname));
- seqArguments[1] <<= NamedValue("UserData",
- uno::makeAny(m_aInfo.userdata));
+ auto pseqArguments = seqArguments.getArray();
+ pseqArguments[0] <<= NamedValue("Productname",
+ uno::Any(m_aInfo.productname));
+ pseqArguments[1] <<= NamedValue("UserData",
+ uno::Any(m_aInfo.userdata));
// create an instance of every migration service
@@ -778,8 +880,8 @@ void MigrationImpl::runServices()
if ( nSize > 0 )
seqExtDenyList = comphelper::arrayToSequence< OUString >(
rMigration.excludeExtensions.data(), nSize );
- seqArguments[2] <<= NamedValue("ExtensionDenyList",
- uno::makeAny( seqExtDenyList ));
+ pseqArguments[2] <<= NamedValue("ExtensionDenyList",
+ uno::Any( seqExtDenyList ));
xMigrationJob.set(
xContext->getServiceManager()->createInstanceWithArgumentsAndContext(rMigration.service, seqArguments, xContext),
@@ -803,11 +905,11 @@ void MigrationImpl::runServices()
std::vector< MigrationModuleInfo > MigrationImpl::detectUIChangesForAllModules() const
{
std::vector< MigrationModuleInfo > vModulesInfo;
- const OUString MENUBAR("menubar");
- const OUString TOOLBAR("toolbar");
+ static constexpr OUStringLiteral MENUBAR(u"menubar");
+ static constexpr OUStringLiteral TOOLBAR(u"toolbar");
- uno::Sequence< uno::Any > lArgs {uno::makeAny(m_aInfo.userdata + "/user/config/soffice.cfg/modules"),
- uno::makeAny(embed::ElementModes::READ)};
+ uno::Sequence< uno::Any > lArgs {uno::Any(m_aInfo.userdata + "/user/config/soffice.cfg/modules"),
+ uno::Any(embed::ElementModes::READ)};
uno::Reference< lang::XSingleServiceFactory > xStorageFactory(
embed::FileSystemStorageFactory::create(comphelper::getProcessComponentContext()));
@@ -843,9 +945,9 @@ std::vector< MigrationModuleInfo > MigrationImpl::detectUIChangesForAllModules()
aModuleInfo.sModuleShortName = sModuleShortName;
sal_Int32 nIndex = sToolbarName.lastIndexOf('.');
if (nIndex > 0) {
- OUString sExtension(sToolbarName.copy(nIndex));
+ std::u16string_view sExtension(sToolbarName.subView(nIndex));
OUString sToolbarResourceName(sToolbarName.copy(0, nIndex));
- if (!sToolbarResourceName.isEmpty() && sExtension == ".xml")
+ if (!sToolbarResourceName.isEmpty() && sExtension == u".xml")
aModuleInfo.m_vToolbars.push_back(sToolbarResourceName);
}
}
@@ -864,7 +966,7 @@ void MigrationImpl::compareOldAndNewConfig(const OUString& sParent,
const uno::Reference< container::XIndexContainer >& xIndexNew,
const OUString& sResourceURL)
{
- const OUString MENU_SEPARATOR(" | ");
+ static constexpr OUStringLiteral MENU_SEPARATOR(u" | ");
std::vector< MigrationItem > vOldItems;
std::vector< MigrationItem > vNewItems;
@@ -875,7 +977,7 @@ void MigrationImpl::compareOldAndNewConfig(const OUString& sParent,
for (int n=0; n<nOldCount; ++n) {
MigrationItem aMigrationItem;
if (xIndexOld->getByIndex(n) >>= aProps) {
- for(beans::PropertyValue const & prop : std::as_const(aProps)) {
+ for(beans::PropertyValue const & prop : aProps) {
if ( prop.Name == ITEM_DESCRIPTOR_COMMANDURL )
prop.Value >>= aMigrationItem.m_sCommandURL;
else if ( prop.Name == ITEM_DESCRIPTOR_CONTAINER )
@@ -890,7 +992,7 @@ void MigrationImpl::compareOldAndNewConfig(const OUString& sParent,
for (int n=0; n<nNewCount; ++n) {
MigrationItem aMigrationItem;
if (xIndexNew->getByIndex(n) >>= aProps) {
- for(beans::PropertyValue const & prop : std::as_const(aProps)) {
+ for(beans::PropertyValue const & prop : aProps) {
if ( prop.Name == ITEM_DESCRIPTOR_COMMANDURL )
prop.Value >>= aMigrationItem.m_sCommandURL;
else if ( prop.Name == ITEM_DESCRIPTOR_CONTAINER )
@@ -945,8 +1047,8 @@ void MigrationImpl::mergeOldToNewVersion(const uno::Reference< ui::XUIConfigurat
OUString sParentNodeName = elem.m_sParentNodeName;
sal_Int32 nIndex = 0;
do {
- OUString sToken = sParentNodeName.getToken(0, '|', nIndex).trim();
- if (sToken.isEmpty())
+ std::u16string_view sToken( o3tl::trim(o3tl::getToken(sParentNodeName, 0, '|', nIndex)) );
+ if (sToken.empty())
break;
sal_Int32 nCount = xTemp->getCount();
@@ -957,7 +1059,7 @@ void MigrationImpl::mergeOldToNewVersion(const uno::Reference< ui::XUIConfigurat
uno::Sequence< beans::PropertyValue > aPropSeq;
xTemp->getByIndex(i) >>= aPropSeq;
- for (beans::PropertyValue const & prop : std::as_const(aPropSeq)) {
+ for (beans::PropertyValue const & prop : aPropSeq) {
OUString sPropName = prop.Name;
if ( sPropName == ITEM_DESCRIPTOR_COMMANDURL )
prop.Value >>= sCommandURL;
@@ -978,13 +1080,13 @@ void MigrationImpl::mergeOldToNewVersion(const uno::Reference< ui::XUIConfigurat
if (nIndex == -1) {
auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(elem.m_sCommandURL, sModuleIdentifier);
uno::Sequence< beans::PropertyValue > aPropSeq {
- beans::PropertyValue(ITEM_DESCRIPTOR_COMMANDURL, 0, uno::makeAny(elem.m_sCommandURL), beans::PropertyState_DIRECT_VALUE),
- beans::PropertyValue(ITEM_DESCRIPTOR_LABEL, 0, uno::makeAny(vcl::CommandInfoProvider::GetLabelForCommand(aProperties)), beans::PropertyState_DIRECT_VALUE),
- beans::PropertyValue(ITEM_DESCRIPTOR_CONTAINER, 0, uno::makeAny(elem.m_xPopupMenu), beans::PropertyState_DIRECT_VALUE)
+ beans::PropertyValue(ITEM_DESCRIPTOR_COMMANDURL, 0, uno::Any(elem.m_sCommandURL), beans::PropertyState_DIRECT_VALUE),
+ beans::PropertyValue(ITEM_DESCRIPTOR_LABEL, 0, uno::Any(vcl::CommandInfoProvider::GetLabelForCommand(aProperties)), beans::PropertyState_DIRECT_VALUE),
+ beans::PropertyValue(ITEM_DESCRIPTOR_CONTAINER, 0, uno::Any(elem.m_xPopupMenu), beans::PropertyState_DIRECT_VALUE)
};
if (elem.m_sPrevSibling.isEmpty())
- xTemp->insertByIndex(0, uno::makeAny(aPropSeq));
+ xTemp->insertByIndex(0, uno::Any(aPropSeq));
else {
sal_Int32 nCount = xTemp->getCount();
sal_Int32 i = 0;
@@ -992,7 +1094,7 @@ void MigrationImpl::mergeOldToNewVersion(const uno::Reference< ui::XUIConfigurat
OUString sCmd;
uno::Sequence< beans::PropertyValue > aTempPropSeq;
xTemp->getByIndex(i) >>= aTempPropSeq;
- for (beans::PropertyValue const & prop : std::as_const(aTempPropSeq)) {
+ for (beans::PropertyValue const & prop : aTempPropSeq) {
if ( prop.Name == ITEM_DESCRIPTOR_COMMANDURL ) {
prop.Value >>= sCmd;
break;
@@ -1003,7 +1105,7 @@ void MigrationImpl::mergeOldToNewVersion(const uno::Reference< ui::XUIConfigurat
break;
}
- xTemp->insertByIndex(i+1, uno::makeAny(aPropSeq));
+ xTemp->insertByIndex(i+1, uno::Any(aPropSeq));
}
}
}
@@ -1052,7 +1154,7 @@ uno::Reference< container::XIndexContainer > NewVersionUIInfo::getNewToolbarSett
if (newProp.Name == sModuleShortName) {
uno::Sequence< beans::PropertyValue > lToolbarSettingsSeq;
newProp.Value >>= lToolbarSettingsSeq;
- for (auto const & prop : std::as_const(lToolbarSettingsSeq)) {
+ for (auto const & prop : lToolbarSettingsSeq) {
if (prop.Name == sToolbarName) {
prop.Value >>= xNewToolbarSettings;
break;
@@ -1070,10 +1172,12 @@ void NewVersionUIInfo::init(const std::vector< MigrationModuleInfo >& vModulesIn
{
m_lCfgManagerSeq.resize(vModulesInfo.size());
m_lNewVersionMenubarSettingsSeq.realloc(vModulesInfo.size());
+ auto p_lNewVersionMenubarSettingsSeq = m_lNewVersionMenubarSettingsSeq.getArray();
m_lNewVersionToolbarSettingsSeq.realloc(vModulesInfo.size());
+ auto p_lNewVersionToolbarSettingsSeq = m_lNewVersionToolbarSettingsSeq.getArray();
- const OUString sMenubarResourceURL("private:resource/menubar/menubar");
- const OUString sToolbarResourcePre("private:resource/toolbar/");
+ static constexpr OUStringLiteral sMenubarResourceURL(u"private:resource/menubar/menubar");
+ static constexpr OUStringLiteral sToolbarResourcePre(u"private:resource/toolbar/");
uno::Reference< ui::XModuleUIConfigurationManagerSupplier > xModuleCfgSupplier = ui::theModuleUIConfigurationManagerSupplier::get( ::comphelper::getProcessComponentContext() );
@@ -1085,23 +1189,24 @@ void NewVersionUIInfo::init(const std::vector< MigrationModuleInfo >& vModulesIn
m_lCfgManagerSeq[i].Value <<= xCfgManager;
if (vModulesInfo[i].bHasMenubar) {
- m_lNewVersionMenubarSettingsSeq[i].Name = vModulesInfo[i].sModuleShortName;
- m_lNewVersionMenubarSettingsSeq[i].Value <<= xCfgManager->getSettings(sMenubarResourceURL, true);
+ p_lNewVersionMenubarSettingsSeq[i].Name = vModulesInfo[i].sModuleShortName;
+ p_lNewVersionMenubarSettingsSeq[i].Value <<= xCfgManager->getSettings(sMenubarResourceURL, true);
}
sal_Int32 nToolbars = vModulesInfo[i].m_vToolbars.size();
if (nToolbars > 0) {
uno::Sequence< beans::PropertyValue > lPropSeq(nToolbars);
+ auto plPropSeq = lPropSeq.getArray();
for (sal_Int32 j=0; j<nToolbars; ++j) {
OUString sToolbarName = vModulesInfo[i].m_vToolbars[j];
OUString sToolbarResourceURL = sToolbarResourcePre + sToolbarName;
- lPropSeq[j].Name = sToolbarName;
- lPropSeq[j].Value <<= xCfgManager->getSettings(sToolbarResourceURL, true);
+ plPropSeq[j].Name = sToolbarName;
+ plPropSeq[j].Value <<= xCfgManager->getSettings(sToolbarResourceURL, true);
}
- m_lNewVersionToolbarSettingsSeq[i].Name = vModulesInfo[i].sModuleShortName;
- m_lNewVersionToolbarSettingsSeq[i].Value <<= lPropSeq;
+ p_lNewVersionToolbarSettingsSeq[i].Name = vModulesInfo[i].sModuleShortName;
+ p_lNewVersionToolbarSettingsSeq[i].Value <<= lPropSeq;
}
}
}