include/sfx2/classificationhelper.hxx | 27 ++++++++++++++++++--------- sd/source/ui/view/drviews2.cxx | 6 +++--- sw/source/core/edit/edfcol.cxx | 32 +++++++++++++++++++------------- 3 files changed, 40 insertions(+), 25 deletions(-)
New commits: commit 7bd8f9ed9559a745f3ed59161d282b199edd69a7 Author: Ashod Nakashian <ashodnakash...@yahoo.com> Date: Tue Oct 31 21:42:24 2017 -0400 TSCP: Paragraph signature RDF namespace now urn:bails And remove PARAGRAPH entries from ClassificationResults to restore adding the parens correctly. Change-Id: Id0f07758e4daad8d0736800e211e35e9c7e026cf Reviewed-on: https://gerrit.libreoffice.org/44145 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/include/sfx2/classificationhelper.hxx b/include/sfx2/classificationhelper.hxx index 11782247ca23..6467976c952b 100644 --- a/include/sfx2/classificationhelper.hxx +++ b/include/sfx2/classificationhelper.hxx @@ -113,16 +113,18 @@ namespace sfx class ClassificationKeyCreator { private: - SfxClassificationPolicyType m_ePolicyType; + const SfxClassificationPolicyType m_ePolicyType; + const OUString m_sPolicy; sal_Int32 m_nTextNumber; OUString getPolicyKey() const { - return SfxClassificationHelper::policyTypeToString(m_ePolicyType); + return m_sPolicy; } public: ClassificationKeyCreator(SfxClassificationPolicyType ePolicyType) : m_ePolicyType(ePolicyType) + , m_sPolicy(SfxClassificationHelper::policyTypeToString(m_ePolicyType)) , m_nTextNumber(1) {} @@ -133,9 +135,7 @@ public: OUString makeNumberedMarkingTextKey() { - OUString sKey = makeMarkingTextKey() + ":" + OUString::number(m_nTextNumber); - m_nTextNumber++; - return sKey; + return makeMarkingTextKey() + ":" + OUString::number(m_nTextNumber++); } bool isMarkingTextKey(OUString const & aKey) const @@ -143,15 +143,24 @@ public: return aKey.startsWith(makeMarkingTextKey()); } - OUString makeCategoryKey() const + OUString makeCategoryNameKey() const { return getPolicyKey() + "BusinessAuthorizationCategory:Name"; } - bool isCategoryKey(OUString const & aKey) const + bool isCategoryNameKey(OUString const & aKey) const { - return aKey.startsWith(makeCategoryKey()) || - aKey.startsWith(getPolicyKey() + "BusinessAuthorizationCategory:Identifier"); + return aKey.startsWith(makeCategoryNameKey()); + } + + OUString makeCategoryIdentifierKey() const + { + return getPolicyKey() + "BusinessAuthorizationCategory:Identifier"; + } + + bool isCategoryIdentifierKey(OUString const & aKey) const + { + return aKey.startsWith(makeCategoryIdentifierKey()); } OUString makeMarkingKey() const diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index 3ccbe562ccf8..d01957dcf10c 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -323,7 +323,7 @@ private: OUString aValue = lcl_getProperty(xPropertyContainer, aKey); m_aResults.push_back({ svx::ClassificationType::TEXT, aValue, sBlank, sBlank }); } - else if (aKeyCreator.isCategoryKey(aKey)) + else if (aKeyCreator.isCategoryNameKey(aKey) || aKeyCreator.isCategoryIdentifierKey(aKey)) { OUString aValue = lcl_getProperty(xPropertyContainer, aKey); m_aResults.push_back({ svx::ClassificationType::CATEGORY, aValue, sBlank, sBlank }); @@ -406,7 +406,7 @@ private: void deleteExistingObjects() { sfx::ClassificationKeyCreator aKeyCreator(SfxClassificationHelper::getPolicyType()); - OUString sKey = aKeyCreator.makeCategoryKey(); + OUString sKey = aKeyCreator.makeCategoryNameKey(); const sal_uInt16 nCount = m_rDrawViewShell.GetDoc()->GetMasterSdPageCount(PageKind::Standard); @@ -498,7 +498,7 @@ public: case svx::ClassificationType::CATEGORY: { - OUString sKey = aKeyCreator.makeCategoryKey(); + OUString sKey = aKeyCreator.makeCategoryNameKey(); pOutliner->QuickInsertField(SvxFieldItem(editeng::CustomPropertyField(sKey, rResult.msName), EE_FEATURE_FIELD), aPosition); } break; diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx index 2e0fa19c32e7..fe2700004fe5 100644 --- a/sw/source/core/edit/edfcol.cxx +++ b/sw/source/core/edit/edfcol.cxx @@ -95,11 +95,11 @@ namespace { static const OUString MetaFilename("tscp/bails.rdf"); static const OUString MetaNS("urn:bails"); -static const OUString ParagraphSignatureRDFName = "loext:paragraph:signature"; -static const OUString ParagraphSignatureDateRDFName = "loext:paragraph:signature:date"; -static const OUString ParagraphSignatureUsageRDFName = "loext:paragraph:signature:usage"; -static const OUString ParagraphClassificationNameRDFName = "loext:paragraph:classification:name"; -static const OUString ParagraphClassificationValueRDFName = "loext:paragraph:classification:value"; +static const OUString ParagraphSignatureRDFName = "urn:bails:loext:paragraph:signature"; +static const OUString ParagraphSignatureDateRDFName = "urn:bails:loext:paragraph:signature:date"; +static const OUString ParagraphSignatureUsageRDFName = "urn:bails:loext:paragraph:signature:usage"; +static const OUString ParagraphClassificationNameRDFName = "urn:bails:loext:paragraph:classification:name"; +static const OUString ParagraphClassificationValueRDFName = "urn:bails:loext:paragraph:classification:value"; static const OUString MetadataFieldServiceName = "com.sun.star.text.textfield.MetadataField"; static const OUString DocInfoServiceName = "com.sun.star.text.TextField.DocInfo.Custom"; @@ -724,7 +724,7 @@ void SwEditShell::ApplyAdvancedClassification(std::vector<svx::ClassificationRes case svx::ClassificationType::CATEGORY: { - OUString sKey = aCreator.makeCategoryKey(); + OUString sKey = aCreator.makeCategoryNameKey(); insertFieldToDocument(xMultiServiceFactory, xHeaderText, xHeaderParagraphCursor, sKey); insertFieldToDocument(xMultiServiceFactory, xFooterText, xFooterParagraphCursor, sKey); } @@ -857,7 +857,7 @@ std::vector<svx::ClassificationResult> SwEditShell::CollectAdvancedClassificatio if (!aValue.isEmpty()) aResult.push_back({ svx::ClassificationType::TEXT, aValue, sBlank, sBlank }); } - else if (aCreator.isCategoryKey(aName)) + else if (aCreator.isCategoryNameKey(aName) || aCreator.isCategoryIdentifierKey(aName)) { const OUString aValue = lcl_getProperty(xPropertyContainer, aName); if (!aValue.isEmpty()) @@ -1000,15 +1000,18 @@ void SwEditShell::ApplyParagraphClassification(std::vector<svx::ClassificationRe // Since we always insert at the start of the paragraph, // need to insert in reverse order. std::reverse(aResults.begin(), aResults.end()); + // Ignore "PARAGRAPH" types + aResults.erase(std::remove_if(aResults.begin(), + aResults.end(), + [&](const svx::ClassificationResult& rResult)-> bool + { return rResult.meType == svx::ClassificationType::PARAGRAPH; }), + aResults.end()); + for (size_t nIndex = 0; nIndex < aResults.size(); ++nIndex) { const svx::ClassificationResult& rResult = aResults[nIndex]; - // Ignore "PARAGRAPH" types - if (rResult.meType == svx::ClassificationType::PARAGRAPH) - continue; - const bool isLast = nIndex == 0; const bool isFirst = nIndex == aResults.size() - 1; OUString sKey; @@ -1022,7 +1025,10 @@ void SwEditShell::ApplyParagraphClassification(std::vector<svx::ClassificationRe case svx::ClassificationType::CATEGORY: { - sKey = aKeyCreator.makeCategoryKey(); + if (rResult.msIdentifier.isEmpty()) + sKey = aKeyCreator.makeCategoryNameKey(); + else + sKey = aKeyCreator.makeCategoryIdentifierKey(); } break; @@ -1098,7 +1104,7 @@ std::vector<svx::ClassificationResult> SwEditShell::CollectParagraphClassificati { aResult.push_back({ svx::ClassificationType::TEXT, aValue, sBlank, sBlank }); } - else if (aKeyCreator.isCategoryKey(aName)) + else if (aKeyCreator.isCategoryNameKey(aName) || aKeyCreator.isCategoryIdentifierKey(aName)) { aResult.push_back({ svx::ClassificationType::CATEGORY, aValue, sBlank, sBlank }); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits