include/sfx2/classificationhelper.hxx      |    2 ++
 sfx2/source/view/classificationhelper.cxx  |   15 +++++++++++++++
 svx/source/dialog/ClassificationDialog.cxx |   22 +++++++++++++++-------
 3 files changed, 32 insertions(+), 7 deletions(-)

New commits:
commit 5fd90dcf5b12af4bf8ca21866b23209aa4d3d531
Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
Date:   Thu Nov 16 18:32:14 2017 +0900

    TSCP: resolve identifier to name, abbr. name is for category only
    
    In paragraph classification we store only the identifier and not
    the name, but for the ClassificationDialog we use the name as an
    identifier, so we need to resovle the identifier to the name when
    reading in the input classification results. It might make sense
    to switch to identifiers in the dialog also as they are language
    independent.
    
    Abbreviated name is only for the classification category and has
    no effect for other classefication elementslike markers and IP
    parts, so always fill them with the full name directly.
    
    Change-Id: I23bd0e8e92b16807a5b4d3162e503b799aa40718
    Reviewed-on: https://gerrit.libreoffice.org/44845
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/include/sfx2/classificationhelper.hxx 
b/include/sfx2/classificationhelper.hxx
index f535cf4adae9..a2699623c4be 100644
--- a/include/sfx2/classificationhelper.hxx
+++ b/include/sfx2/classificationhelper.hxx
@@ -67,6 +67,8 @@ public:
     std::vector<OUString> GetBACIdentifiers();
     /// Get the currently selected category abbreviation for eType. Returns 
full name if no abbreviation defined.
     const OUString& GetAbbreviatedBACName(const OUString& sFullName);
+    /// Get the currently selected category for the identifier.
+    OUString GetBACNameForIdentifier(const OUString& sIdentifier);
     /// Return all possible valid abbreviated category names, based on the 
policy.
     std::vector<OUString> GetAbbreviatedBACNames();
     /// Setting this sets all the other properties, based on the policy.
diff --git a/sfx2/source/view/classificationhelper.cxx 
b/sfx2/source/view/classificationhelper.cxx
index 82287da47171..a1e4aea55324 100644
--- a/sfx2/source/view/classificationhelper.cxx
+++ b/sfx2/source/view/classificationhelper.cxx
@@ -614,6 +614,21 @@ const OUString& 
SfxClassificationHelper::GetAbbreviatedBACName(const OUString& s
     return sFullName;
 }
 
+OUString SfxClassificationHelper::GetBACNameForIdentifier(const OUString& 
sIdentifier)
+{
+    OUString aRet;
+    if (sIdentifier.isEmpty())
+        return aRet;
+
+    for (const auto& category : m_pImpl->m_aCategories)
+    {
+        if (category.m_aIdentifier == sIdentifier)
+            return category.m_aName;
+    }
+
+    return aRet;
+}
+
 OUString SfxClassificationHelper::GetHigherClass(const OUString& first, const 
OUString& second)
 {
     size_t nFirstConfidentiality = 0;
diff --git a/svx/source/dialog/ClassificationDialog.cxx 
b/svx/source/dialog/ClassificationDialog.cxx
index 0bb8e7892d4e..f8cebe090042 100644
--- a/svx/source/dialog/ClassificationDialog.cxx
+++ b/svx/source/dialog/ClassificationDialog.cxx
@@ -410,11 +410,9 @@ void ClassificationDialog::writeRecentlyUsed()
 void ClassificationDialog::readIn(std::vector<ClassificationResult> const & 
rInput)
 {
     sal_Int32 nParagraph = -1;
+
     for (ClassificationResult const & rClassificationResult : rInput)
     {
-        OUString sAbbreviatedName = rClassificationResult.msAbbreviatedName;
-        if (sAbbreviatedName.isEmpty())
-            sAbbreviatedName = 
maHelper.GetAbbreviatedBACName(rClassificationResult.msName);
 
         switch (rClassificationResult.meType)
         {
@@ -426,24 +424,34 @@ void 
ClassificationDialog::readIn(std::vector<ClassificationResult> const & rInp
 
             case svx::ClassificationType::CATEGORY:
             {
-                
m_pClassificationListBox->SelectEntry(rClassificationResult.msName);
+                OUString sName;
+                if (rClassificationResult.msName.isEmpty())
+                    sName = 
maHelper.GetBACNameForIdentifier(rClassificationResult.msIdentifier);
+                else
+                    sName = rClassificationResult.msName;
+
+                OUString sAbbreviatedName = 
rClassificationResult.msAbbreviatedName;
+                if (sAbbreviatedName.isEmpty())
+                    sAbbreviatedName = maHelper.GetAbbreviatedBACName(sName);
+
+                m_pClassificationListBox->SelectEntry(sName);
                 m_nCurrentSelectedCategory = 
m_pClassificationListBox->GetSelectedEntryPos();
                 
m_pInternationalClassificationListBox->SelectEntryPos(m_pClassificationListBox->GetSelectedEntryPos());
 
-                insertField(rClassificationResult.meType, sAbbreviatedName, 
rClassificationResult.msName, rClassificationResult.msIdentifier);
+                insertField(rClassificationResult.meType, sAbbreviatedName, 
sName, rClassificationResult.msIdentifier);
             }
             break;
 
             case svx::ClassificationType::MARKING:
             {
                 m_pMarkingListBox->SelectEntry(rClassificationResult.msName);
-                insertField(rClassificationResult.meType, sAbbreviatedName, 
rClassificationResult.msName, rClassificationResult.msIdentifier);
+                insertField(rClassificationResult.meType, 
rClassificationResult.msName, rClassificationResult.msName, 
rClassificationResult.msIdentifier);
             }
             break;
 
             case svx::ClassificationType::INTELLECTUAL_PROPERTY_PART:
             {
-                insertField(rClassificationResult.meType, sAbbreviatedName, 
rClassificationResult.msName, rClassificationResult.msIdentifier);
+                insertField(rClassificationResult.meType, 
rClassificationResult.msName, rClassificationResult.msName, 
rClassificationResult.msIdentifier);
             }
             break;
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to