[Libreoffice-commits] core.git: include/svx svx/source
Eike Rathke (via logerrit)
logerrit at kemper.freedesktop.org
Sat Feb 22 21:13:02 UTC 2020
include/svx/numfmtsh.hxx | 5 +--
svx/source/items/numfmtsh.cxx | 64 ++++++++++++------------------------------
2 files changed, 22 insertions(+), 47 deletions(-)
New commits:
commit 8a1d66a27428359e853a20acf0f308e4fcdda692
Author: Eike Rathke <erack at redhat.com>
AuthorDate: Sat Feb 22 20:59:17 2020 +0100
Commit: Eike Rathke <erack at redhat.com>
CommitDate: Sat Feb 22 22:12:31 2020 +0100
Factor out FillEListWithOneFormat_Impl()
... from almost identical FillEListWithFormats_Impl().
Change-Id: Id0443b40a2acfdfee24426fa0672f711889f3e2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89286
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Jenkins
diff --git a/include/svx/numfmtsh.hxx b/include/svx/numfmtsh.hxx
index fe1193aee5a3..563920af41ca 100644
--- a/include/svx/numfmtsh.hxx
+++ b/include/svx/numfmtsh.hxx
@@ -203,8 +203,9 @@ private:
bool bSuppressDuplicates );
SVX_DLLPRIVATE short FillEListWithDateTime_Impl( std::vector<OUString>& rList,short nSelPos,
bool bSuppressDuplicates );
- SVX_DLLPRIVATE void FillEListWithOneDateTime_Impl( std::vector<OUString>& rList, short & nSelPos,
- bool bSuppressDuplicates, NfIndexTableOffset nOffset );
+ SVX_DLLPRIVATE void FillEListWithOneFormat_Impl( std::vector<OUString>& rList, short & nSelPos,
+ bool bSuppressDuplicates, NfIndexTableOffset nOffset,
+ bool bSuppressIsoDateTime );
SVX_DLLPRIVATE short FillEListWithCurrency_Impl( std::vector<OUString>& rList,short nSelPos);
SVX_DLLPRIVATE short FillEListWithSysCurrencys( std::vector<OUString>& rList,short nSelPos);
SVX_DLLPRIVATE short FillEListWithUserCurrencys( std::vector<OUString>& rList,short nSelPos);
diff --git a/svx/source/items/numfmtsh.cxx b/svx/source/items/numfmtsh.cxx
index e169319df799..ade17b02af62 100644
--- a/svx/source/items/numfmtsh.cxx
+++ b/svx/source/items/numfmtsh.cxx
@@ -622,37 +622,9 @@ short SvxNumberFormatShell::FillEListWithFormats_Impl(std::vector<OUString>& rLi
* the list position of the current format. If the list is empty
* or if there is no current format, SELPOS_NONE is delivered.
*/
- sal_uInt16 nMyType;
-
- sal_uInt32 nNFEntry;
- OUString aNewFormNInfo;
-
- long nIndex;
-
- for (nIndex = eOffsetStart; nIndex <= eOffsetEnd; nIndex++)
+ for (long nIndex = eOffsetStart; nIndex <= eOffsetEnd; ++nIndex)
{
- nNFEntry = pFormatter->GetFormatIndex(static_cast<NfIndexTableOffset>(nIndex), eCurLanguage);
-
- const SvNumberformat* pNumEntry = pFormatter->GetEntry(nNFEntry);
-
- if (pNumEntry == nullptr)
- continue;
-
- SvNumFormatType nMyCat = pNumEntry->GetMaskedType();
- CategoryToPos_Impl(nMyCat, nMyType);
- aNewFormNInfo = pNumEntry->GetFormatstring();
-
- if (nNFEntry == nCurFormatKey)
- {
- nSelPos = (!IsRemoved_Impl(nNFEntry)) ? aCurEntryList.size() : SELPOS_NONE;
- }
-
- if (!bSuppressDuplicates || IsEssentialFormat_Impl(nMyCat, nNFEntry)
- || std::find(rList.begin(), rList.end(), aNewFormNInfo) == rList.end())
- {
- rList.push_back(aNewFormNInfo);
- aCurEntryList.push_back(nNFEntry);
- }
+ FillEListWithOneFormat_Impl( rList, nSelPos, bSuppressDuplicates, static_cast<NfIndexTableOffset>(nIndex), false);
}
return nSelPos;
@@ -661,14 +633,16 @@ short SvxNumberFormatShell::FillEListWithFormats_Impl(std::vector<OUString>& rLi
short SvxNumberFormatShell::FillEListWithDateTime_Impl(std::vector<OUString>& rList, short nSelPos,
bool bSuppressDuplicates)
{
+ // Append a list of date+time formats.
+
// Add first, so a NF_DATETIME_SYSTEM_SHORT_HHMM may be suppressed in
// locales that do not use 2-digit years there and this here is the
// default.
- FillEListWithOneDateTime_Impl( rList, nSelPos, bSuppressDuplicates, NF_DATETIME_SYS_DDMMYYYY_HHMM);
+ FillEListWithOneFormat_Impl( rList, nSelPos, bSuppressDuplicates, NF_DATETIME_SYS_DDMMYYYY_HHMM, true);
for (long nIndex = NF_DATETIME_START; nIndex <= NF_DATETIME_END; ++nIndex)
{
- FillEListWithOneDateTime_Impl( rList, nSelPos, bSuppressDuplicates, static_cast<NfIndexTableOffset>(nIndex));
+ FillEListWithOneFormat_Impl( rList, nSelPos, bSuppressDuplicates, static_cast<NfIndexTableOffset>(nIndex), true);
}
// Always add the internally generated ISO formats.
@@ -678,8 +652,9 @@ short SvxNumberFormatShell::FillEListWithDateTime_Impl(std::vector<OUString>& rL
return nSelPos;
}
-void SvxNumberFormatShell::FillEListWithOneDateTime_Impl(std::vector<OUString>& rList, short & nSelPos,
- bool bSuppressDuplicates, NfIndexTableOffset nOffset)
+void SvxNumberFormatShell::FillEListWithOneFormat_Impl(std::vector<OUString>& rList, short & nSelPos,
+ bool bSuppressDuplicates, NfIndexTableOffset nOffset,
+ bool bSuppressIsoDateTime)
{
sal_uInt32 nNFEntry = pFormatter->GetFormatIndex(nOffset, eCurLanguage);
@@ -697,18 +672,17 @@ void SvxNumberFormatShell::FillEListWithOneDateTime_Impl(std::vector<OUString>&
nSelPos = (!IsRemoved_Impl(nNFEntry)) ? aCurEntryList.size() : SELPOS_NONE;
}
- if (!bSuppressDuplicates || IsEssentialFormat_Impl(nMyCat, nNFEntry)
- || std::find(rList.begin(), rList.end(), aNewFormNInfo) == rList.end())
+ // Ugly hack to suppress an ISO date+time format that is the default
+ // date+time format of the locale and identical to the internally generated
+ // one always to be added after/below.
+ const bool bSupIso = bSuppressIsoDateTime && bSuppressDuplicates &&
+ (aNewFormNInfo == "YYYY-MM-DD HH:MM:SS" || aNewFormNInfo == "YYYY-MM-DD\"T\"HH:MM:SS");
+
+ if (!bSupIso && (!bSuppressDuplicates || IsEssentialFormat_Impl(nMyCat, nNFEntry)
+ || std::find(rList.begin(), rList.end(), aNewFormNInfo) == rList.end()))
{
- // Ugly hack to suppress an ISO date+time format that is the
- // default date+time format of the locale and identical to the
- // internally generated one to be added after/below.
- if (!bSuppressDuplicates || (aNewFormNInfo != "YYYY-MM-DD HH:MM:SS"
- && aNewFormNInfo != "YYYY-MM-DD\"T\"HH:MM:SS"))
- {
- rList.push_back(aNewFormNInfo);
- aCurEntryList.push_back(nNFEntry);
- }
+ rList.push_back(aNewFormNInfo);
+ aCurEntryList.push_back(nNFEntry);
}
}
More information about the Libreoffice-commits
mailing list