summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-04-01 09:44:46 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-04-01 11:56:36 +0200
commit7a743920c7fd46b2709186be5a344ba81b54b19d (patch)
treeeeb911549367152fd46a10bc83e3ff1e66ba9324
parent49066fcc969167e0744407b064ecb4b66c059705 (diff)
Simplify CheckFileExtRegistration
Change-Id: I49a01e9cae16a408c6be11fe0501f489c3db6e3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113438 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--vcl/win/app/fileregistration.cxx34
1 files changed, 13 insertions, 21 deletions
diff --git a/vcl/win/app/fileregistration.cxx b/vcl/win/app/fileregistration.cxx
index 7454f5e0c2f4..2555cede8d2d 100644
--- a/vcl/win/app/fileregistration.cxx
+++ b/vcl/win/app/fileregistration.cxx
@@ -23,7 +23,7 @@
#include <strings.hrc>
#include <svdata.hxx>
-#include <map>
+#include <utility>
#include <prewin.h>
#include <Shobjidl.h>
@@ -155,11 +155,11 @@ void CheckFileExtRegistration(weld::Window* pDialogParent)
if (bUninit)
CoUninitialize();
});
- sal::systools::COMReference<IApplicationAssociationRegistration> pAAR = nullptr;
+ sal::systools::COMReference<IApplicationAssociationRegistration> pAAR;
try
{
- pAAR = sal::systools::COMReference<IApplicationAssociationRegistration>().CoCreateInstance(
- CLSID_ApplicationAssociationRegistration, nullptr, CLSCTX_INPROC_SERVER);
+ pAAR.CoCreateInstance(CLSID_ApplicationAssociationRegistration, nullptr,
+ CLSCTX_INPROC_SERVER);
}
catch (...)
{
@@ -167,30 +167,22 @@ void CheckFileExtRegistration(weld::Window* pDialogParent)
return;
}
- std::map<OUString, OUString> formats = {
- { ".odp", "LibreOffice.ImpressDocument.1" },
- { ".odt", "LibreOffice.WriterDocument.1" },
- { ".ods", "LibreOffice.CalcDocument.1" },
+ static const std::pair<LPCWSTR, LPCWSTR> formats[] = {
+ { L".odp", L"LibreOffice.ImpressDocument.1" },
+ { L".odt", L"LibreOffice.WriterDocument.1" },
+ { L".ods", L"LibreOffice.CalcDocument.1" },
};
OUString aNonDefaults;
- bool isNotDefault = false;
- for (std::map<OUString, OUString>::iterator it = formats.begin(); it != formats.end(); it++)
+ for (const auto & [ szExt, szProgId ] : formats)
{
- if (IsPathDefaultForClass(pAAR, o3tl::toW(it->first.getStr()),
- o3tl::toW(it->second.getStr()))
- == S_FALSE)
- {
- isNotDefault = true;
- aNonDefaults += it->first;
- aNonDefaults += "\n";
- }
+ if (IsPathDefaultForClass(pAAR, szExt, szProgId) == S_FALSE)
+ aNonDefaults += OUString::Concat(o3tl::toU(szExt)) + "\n";
}
- if (isNotDefault)
+ if (!aNonDefaults.isEmpty())
{
- OUString aMsg(VclResId(STR_FILEEXT_NONDEFAULT_ASK_MSG));
- aMsg = aMsg.replaceFirst("$1", aNonDefaults);
+ OUString aMsg(VclResId(STR_FILEEXT_NONDEFAULT_ASK_MSG).replaceFirst("$1", aNonDefaults));
VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create();
ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateFileExtCheckDialog(