Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2473

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/73/2473/1

some refinements on label configurations in writer

Change-Id: I94ad02972b0fae1327f72a41373f34962452b8ef
---
M extras/source/labels/labels.xml
M sw/source/ui/envelp/labelcfg.cxx
M sw/source/ui/envelp/labfmt.cxx
M sw/source/ui/envelp/labfmt.hrc
M sw/source/ui/envelp/labfmt.src
M sw/source/ui/inc/labelcfg.hxx
6 files changed, 155 insertions(+), 164 deletions(-)



diff --git a/extras/source/labels/labels.xml b/extras/source/labels/labels.xml
index a9f81ba..8ed02b9 100644
--- a/extras/source/labels/labels.xml
+++ b/extras/source/labels/labels.xml
@@ -651,7 +651,7 @@
         <measure>S;4064;2117;3810;2117;467;1090;5;13;21000;29700</measure>
     </label>
     <label id="L125">
-        <name>J8654 Miini Address</name>
+        <name>J8654 Mini Address</name>
         <measure>S;4826;2540;4572;2540;975;2143;4;10;21000;29700</measure>
     </label>
     <label id="L126">
@@ -1199,7 +1199,7 @@
         <measure>S;4064;2117;3810;2117;467;1090;5;13;21000;29700</measure>
     </label>
     <label id="L262">
-        <name>L7652 Miini Address</name>
+        <name>L7652 Mini Address</name>
         <measure>S;4826;1693;4572;1693;975;1299;4;16;21000;29700</measure>
     </label>
     <label id="L263">
@@ -1207,7 +1207,7 @@
         <measure>S;4572;1693;2200;1270;2542;4902;4;12;21000;29700</measure>
     </label>
     <label id="L264">
-        <name>L7654 Miini Address</name>
+        <name>L7654 Mini Address</name>
         <measure>S;4826;2540;4572;2540;975;2143;4;10;21000;29700</measure>
     </label>
     <label id="L265">
diff --git a/sw/source/ui/envelp/labelcfg.cxx b/sw/source/ui/envelp/labelcfg.cxx
index 28d4074..785eff6 100644
--- a/sw/source/ui/envelp/labelcfg.cxx
+++ b/sw/source/ui/envelp/labelcfg.cxx
@@ -59,6 +59,18 @@
     return sTmp;
 }
 
+static Sequence<OUString> lcl_CreatePropertyNames(const OUString& rPrefix)
+{
+    Sequence<OUString> aProperties(2);
+    OUString* pProperties = aProperties.getArray();
+    for(sal_Int32 nProp = 0; nProp < 2; nProp++)
+        pProperties[nProp] = rPrefix;
+
+    pProperties[ 0] += "Name";
+    pProperties[ 1] += "Measure";
+    return aProperties;
+}
+
 SwLabelConfig::SwLabelConfig() :
     ConfigItem("Office.Labels/Manufacturer")
 {
@@ -72,6 +84,7 @@
     OUString sName;
     OUString sMeasure;
 
+    // fill m_aLabels and m_aManufacturers with the predefined labels
     res = reader.nextItem(
             xmlreader::XmlReader::TEXT_NONE, &name, &nsId);
     assert(res == xmlreader::XmlReader::RESULT_BEGIN &&
@@ -105,7 +118,10 @@
                     xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("measure")));
             // Ending label mark
             lcl_assertEndingItem(reader);
-            m_aLabels[sManufacturer][sName] = sMeasure;
+            if ( m_aLabels.find( sManufacturer ) == m_aLabels.end() )
+                m_aManufacturers.push_back( sManufacturer );
+            m_aLabels[sManufacturer][sName].m_aMeasure = sMeasure;
+            m_aLabels[sManufacturer][sName].m_bPredefined = true;
         }
         // Get next manufacturer or end
         res = reader.nextItem(
@@ -115,7 +131,35 @@
             xmlreader::XmlReader::TEXT_NONE, &name, &nsId);
     assert(res == xmlreader::XmlReader::RESULT_DONE);
 
-    FillManufacturers();
+    // add to m_aLabels and m_aManufacturers the custom labels
+    const Sequence<rtl::OUString>& rMan = GetNodeNames( OUString() );
+    const rtl::OUString* pMan = rMan.getConstArray();
+    for ( sal_Int32 nMan = 0; nMan < rMan.getLength(); nMan++ )
+    {
+        sManufacturer = pMan[nMan];
+        const Sequence<OUString> aLabels = GetNodeNames( sManufacturer );
+        const OUString* pLabels = aLabels.getConstArray();
+        for( sal_Int32 nLabel = 0; nLabel < aLabels.getLength(); nLabel++ )
+        {
+            OUString sPrefix( sManufacturer );
+            sPrefix += "/";
+            sPrefix += pLabels[nLabel];
+            sPrefix += "/";
+            Sequence<OUString> aPropNames = lcl_CreatePropertyNames( sPrefix );
+            Sequence<Any>   aValues = GetProperties( aPropNames );
+            const Any* pValues = aValues.getConstArray();
+            if (aValues.getLength() >= 1)
+                if(pValues[0].hasValue())
+                    pValues[0] >>= sName;
+            if (aValues.getLength() >= 2)
+                if(pValues[1].hasValue())
+                    pValues[1] >>= sMeasure;
+            if ( m_aLabels.find( sManufacturer ) == m_aLabels.end() )
+                m_aManufacturers.push_back( sManufacturer );
+            m_aLabels[sManufacturer][sName].m_aMeasure = sMeasure;
+            m_aLabels[sManufacturer][sName].m_bPredefined = false;
+        }
+    }
 }
 
 SwLabelConfig::~SwLabelConfig()
@@ -127,32 +171,6 @@
 
 void SwLabelConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
 
-void SwLabelConfig::FillManufacturers()
-{
-    m_aManufacturers.clear();
-    for (std::map< OUString, std::map<OUString, OUString> >::iterator it =
-            m_aLabels.begin(); it != m_aLabels.end(); ++it)
-        m_aManufacturers.push_back( it->first );
-
-    const com::sun::star::uno::Sequence<rtl::OUString>& rMan = GetNodeNames(OUString());
-    const rtl::OUString* pMan = rMan.getConstArray();
-    for(sal_Int32 nMan = 0; nMan < rMan.getLength(); nMan++)
-        if (m_aLabels.find( pMan[nMan] ) == m_aLabels.end())
-            m_aManufacturers.push_back( pMan[nMan] );
-}
-
-static Sequence<OUString> lcl_CreatePropertyNames(const OUString& rPrefix)
-{
-    Sequence<OUString> aProperties(2);
-    OUString* pProperties = aProperties.getArray();
-    for(sal_Int32 nProp = 0; nProp < 2; nProp++)
-        pProperties[nProp] = rPrefix;
-
-    pProperties[ 0] += "Name";
-    pProperties[ 1] += "Measure";
-    return aProperties;
-}
-
 static SwLabRec* lcl_CreateSwLabRec(const OUString& rType, const OUString& rMeasure, const 
OUString& rManufacturer)
 {
     SwLabRec* pNewRec = new SwLabRec;
@@ -161,7 +179,7 @@
     pNewRec->lPHeight = 0;
     pNewRec->aType = rType;
     //all values are contained as colon-separated 1/100 mm values
-    //except for the continuous flag ('C'/'S')
+    //except for the continuous flag ('C'/'S') and nCols, nRows (sal_Int32)
     String sMeasure(rMeasure);
     sal_uInt16 nTokenCount = comphelper::string::getTokenCount(sMeasure, ';');
     for(sal_uInt16 i = 0; i < nTokenCount; i++)
@@ -183,7 +201,7 @@
             case 10 : pNewRec->lPHeight  = MM100_TO_TWIP(nVal);  break;
         }
     }
-    // lines added for compatibility with custom label defintions saved before patch 44516
+    // lines added for compatibility with custom label definitions saved before patch fdo#44516
     if (pNewRec->lPWidth == 0 || pNewRec->lPHeight == 0)
     {
         // old style definition (no paper dimensions), calculate probable values
@@ -194,7 +212,7 @@
 }
 
 static Sequence<PropertyValue> lcl_CreateProperties(
-    Sequence<OUString>& rPropNames, const SwLabRec& rRec)
+    Sequence<OUString>& rPropNames, OUString& rMeasure, const SwLabRec& rRec)
 {
     const OUString* pNames = rPropNames.getConstArray();
     Sequence<PropertyValue> aRet(rPropNames.getLength());
@@ -209,19 +227,19 @@
             case 0: pValues[nProp].Value <<= OUString(rRec.aType); break;
             case 1:
             {
-                OUString sTmp;
-                sTmp += rRec.bCont ? OUString("C") : OUString("S");           sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lHDist) );       sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lVDist));        sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lWidth)  );      sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lHeight) );      sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lLeft)   );      sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lUpper)  );      sTmp += sColon;
-                sTmp += OUString::valueOf(rRec.nCols   );                     sTmp += sColon;
-                sTmp += OUString::valueOf(rRec.nRows   );                     sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lPWidth)  );     sTmp += sColon;
-                sTmp += OUString::valueOf(TWIP_TO_MM100(rRec.lPHeight)  );
-                pValues[nProp].Value <<= sTmp;
+                rMeasure = "";
+                rMeasure += rRec.bCont ? OUString( "C" ) : OUString( "S" );      rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lHDist ) );   rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lVDist ) );   rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lWidth ) );   rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lHeight ) );  rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lLeft ) );    rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lUpper ) );   rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( rRec.nCols );                     rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( rRec.nRows );                     rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lPWidth ) );  rMeasure += 
sColon;
+                rMeasure += OUString::valueOf( TWIP_TO_MM100( rRec.lPHeight ) );
+                pValues[nProp].Value <<= rMeasure;
             }
             break;
         }
@@ -229,80 +247,21 @@
     return aRet;
 }
 
+// function fills SwLabDlg with label definitions for manufacturer rManufacturer
 void    SwLabelConfig::FillLabels(const OUString& rManufacturer, SwLabRecs& rLabArr)
 {
     OUString sManufacturer(wrapConfigurationElementName(rManufacturer));
-    const Sequence<OUString> aLabels = GetNodeNames(sManufacturer);
-    const OUString* pLabels = aLabels.getConstArray();
-    for(sal_Int32 nLabel = 0; nLabel < aLabels.getLength(); nLabel++)
-    {
-        OUString sPrefix(sManufacturer);
-        sPrefix += "/";
-        sPrefix += pLabels[nLabel];
-        sPrefix += "/";
-        Sequence<OUString> aPropNames = lcl_CreatePropertyNames(sPrefix);
-        Sequence<Any>   aValues = GetProperties(aPropNames);
-        const Any* pValues = aValues.getConstArray();
-        OUString sType;
-        OUString sMeasure;
-        if (aValues.getLength() >= 1)
-            if(pValues[0].hasValue())
-                pValues[0] >>= sType;
-        if (aValues.getLength() >= 2)
-            if(pValues[1].hasValue())
-                pValues[1] >>= sMeasure;
-        // Remove default value if we have one from configuration
-        if(m_aLabels.find(rManufacturer) != m_aLabels.end())
-            m_aLabels[rManufacturer].erase(sType);
-        rLabArr.push_back( lcl_CreateSwLabRec(sType, sMeasure, rManufacturer) );
-    }
-    // Add default labels
     if (m_aLabels.find(rManufacturer) == m_aLabels.end())
         return;
-    for (std::map<OUString, OUString>::iterator it =
-            m_aLabels[rManufacturer].begin();
+    for (std::map<OUString, SwLabelMeasure>::iterator it = m_aLabels[rManufacturer].begin();
             it != m_aLabels[rManufacturer].end(); ++it)
-        rLabArr.push_back( lcl_CreateSwLabRec(it->first, it->second, rManufacturer) );
+        rLabArr.push_back( lcl_CreateSwLabRec(it->first, it->second.m_aMeasure, rManufacturer) );
 }
 
 sal_Bool    SwLabelConfig::HasLabel(const rtl::OUString& rManufacturer, const rtl::OUString& rType)
 {
-    if (m_aLabels.find(rManufacturer) != m_aLabels.end())
-        if (m_aLabels[rManufacturer].find(rType) != m_aLabels[rManufacturer].end())
-            return true;
-
-    bool bFound = false;
-    for (size_t nNode = 0; nNode < m_aManufacturers.size() && !bFound; nNode++)
-    {
-        if (m_aManufacturers[nNode] == rManufacturer)
-            bFound = true;
-    }
-    if(bFound)
-    {
-        OUString sManufacturer(wrapConfigurationElementName(rManufacturer));
-        const Sequence<OUString> aLabels = GetNodeNames(sManufacturer);
-        const OUString* pLabels = aLabels.getConstArray();
-        for(sal_Int32 nLabel = 0; nLabel < aLabels.getLength(); nLabel++)
-        {
-            OUString sPrefix(sManufacturer);
-            sPrefix += "/";
-            sPrefix += pLabels[nLabel];
-            sPrefix += "/";
-            Sequence<OUString> aProperties(1);
-            aProperties.getArray()[0] = sPrefix;
-            aProperties.getArray()[0] += "Name";
-            Sequence<Any>   aValues = GetProperties(aProperties);
-            const Any* pValues = aValues.getConstArray();
-            if(pValues[0].hasValue())
-            {
-                OUString sTmp;
-                pValues[0] >>= sTmp;
-                if(rType == sTmp)
-                    return sal_True;
-            }
-        }
-    }
-    return sal_False;
+    return ( ( m_aLabels.find(rManufacturer) != m_aLabels.end() ) &&
+             ( m_aLabels[rManufacturer].find(rType) != m_aLabels[rManufacturer].end() ) );
 }
 
 static bool lcl_Exists(const OUString& rNode, const Sequence<OUString>& rLabels)
@@ -314,75 +273,85 @@
     return false;
 }
 
-void SwLabelConfig::SaveLabel(  const rtl::OUString& rManufacturer,
-        const rtl::OUString& rType, const SwLabRec& rRec)
+// label is always saved as a custom label
+// predefined labels can NOT be overwritten by custom labels with same manufacturer/name
+void SwLabelConfig::SaveLabel( const rtl::OUString& rManufacturer,
+        const rtl::OUString& rType, const SwLabRec& rRec )
 {
-    bool bFound = false;
-    for (size_t nNode = 0; nNode < m_aManufacturers.size() && !bFound; nNode++)
+    OUString sFoundNode;
+    bool bManufacturerNodeFound;
+    if ( m_aLabels.find( rManufacturer ) == m_aLabels.end() ||
+         GetNodeNames( rManufacturer ).getLength() == 0 )
     {
-        if (m_aManufacturers[nNode] == rManufacturer)
-            bFound = true;
-    }
-    if(!bFound)
-    {
-        if(!AddNode(OUString(), rManufacturer))
+        bManufacturerNodeFound = false;
+        // manufacturer node does not exist, add (and also to m_aManufacturers)
+        if ( !AddNode( OUString(), rManufacturer ) )
         {
             OSL_FAIL("New configuration node could not be created");
             return ;
         }
-        else
-        {
-            FillManufacturers();
-        }
+        m_aManufacturers.push_back( rManufacturer );
     }
+    else
+        bManufacturerNodeFound = true;
 
-    OUString sManufacturer(wrapConfigurationElementName(rManufacturer));
-    const Sequence<OUString> aLabels = GetNodeNames(sManufacturer);
-    const OUString* pLabels = aLabels.getConstArray();
-    OUString sFoundNode;
-    for(sal_Int32 nLabel = 0; nLabel < aLabels.getLength(); nLabel++)
+    if ( !bManufacturerNodeFound ||
+         m_aLabels[rManufacturer].find( rType ) == m_aLabels[rManufacturer].end() )
     {
-        OUString sPrefix(sManufacturer);
-        sPrefix += "/";
-        sPrefix += pLabels[nLabel];
-        sPrefix += "/";
-        Sequence<OUString> aProperties(1);
-        aProperties.getArray()[0] = sPrefix;
-        aProperties.getArray()[0] += "Name";
-        Sequence<Any>   aValues = GetProperties(aProperties);
-        const Any* pValues = aValues.getConstArray();
-        if(pValues[0].hasValue())
-        {
-            OUString sTmp;
-            pValues[0] >>= sTmp;
-            if(rType == sTmp)
-            {
-                sFoundNode = pLabels[nLabel];
-                break;
-            }
-        }
-    }
-    // if not found - generate a unique node name
-    if(sFoundNode.isEmpty())
-    {
+        // type does not yet exist, add to config
+        const Sequence<OUString> aLabels = GetNodeNames( rManufacturer );
         sal_Int32 nIndex = aLabels.getLength();
-        OUString sPrefix("Label");
+        OUString sPrefix( "Label" );
         sFoundNode = sPrefix;
-        sFoundNode += OUString::valueOf(nIndex);
-        while(lcl_Exists(sFoundNode, aLabels))
+        sFoundNode += OUString::valueOf( nIndex );
+        while ( lcl_Exists( sFoundNode, aLabels ) )
         {
             sFoundNode = sPrefix;
             sFoundNode += OUString::valueOf(nIndex++);
         }
     }
-    OUString sPrefix(wrapConfigurationElementName(rManufacturer));
+    else
+    {
+        // get the appropiate node
+        OUString sManufacturer( wrapConfigurationElementName( rManufacturer ) );
+        const Sequence<OUString> aLabels = GetNodeNames( sManufacturer );
+        const OUString* pLabels = aLabels.getConstArray();
+        for (sal_Int32 nLabel = 0; nLabel < aLabels.getLength(); nLabel++)
+        {
+            OUString sPrefix( sManufacturer );
+            sPrefix += "/";
+            sPrefix += pLabels[nLabel];
+            sPrefix += "/";
+            Sequence<OUString> aProperties(1);
+            aProperties.getArray()[0] = sPrefix;
+            aProperties.getArray()[0] += "Name";
+            Sequence<Any> aValues = GetProperties( aProperties );
+            const Any* pValues = aValues.getConstArray();
+            if ( pValues[0].hasValue() )
+            {
+                OUString sTmp;
+                pValues[0] >>= sTmp;
+                if ( rType == sTmp )
+                {
+                    sFoundNode = pLabels[nLabel];
+                    break;
+                }
+            }
+        }
+    }
+
+    OUString sPrefix( wrapConfigurationElementName( rManufacturer ) );
     sPrefix += "/";
     sPrefix += sFoundNode;
     sPrefix += "/";
-    Sequence<OUString> aPropNames = lcl_CreatePropertyNames(sPrefix);
-    Sequence<PropertyValue> aPropValues = lcl_CreateProperties(aPropNames, rRec);
-    SetSetProperties(wrapConfigurationElementName(rManufacturer), aPropValues);
+    Sequence<OUString> aPropNames = lcl_CreatePropertyNames( sPrefix );
+    OUString sMeasure;
+    Sequence<PropertyValue> aPropValues = lcl_CreateProperties( aPropNames, sMeasure, rRec );
+    SetSetProperties( wrapConfigurationElementName( rManufacturer ), aPropValues );
 
+    //update m_aLabels
+    m_aLabels[rManufacturer][rType].m_aMeasure = sMeasure;
+    m_aLabels[rManufacturer][rType].m_bPredefined = false;
 }
 
 
diff --git a/sw/source/ui/envelp/labfmt.cxx b/sw/source/ui/envelp/labfmt.cxx
index 1b30056..23a4453 100644
--- a/sw/source/ui/envelp/labfmt.cxx
+++ b/sw/source/ui/envelp/labfmt.cxx
@@ -617,7 +617,9 @@
     SwLabelConfig& rCfg = pLabPage->GetParentSwLabDlg()->GetLabelsConfig();
     const std::vector<OUString>& rMan = rCfg.GetManufacturers();
     for (sal_uInt16 i = 0; i < rMan.size(); i++)
+    {
         aMakeCB.InsertEntry(rMan[i]);
+    }
 }
 
 IMPL_LINK_NOARG(SwSaveLabelDlg, OkHdl)
@@ -627,6 +629,12 @@
     String sType(aTypeED.GetText());
     if(rCfg.HasLabel(sMake, sType))
     {
+        if ( rCfg.IsPredefinedLabel(sMake, sType) )
+        {
+            SAL_WARN( "IMPL_LINK_NOARG(SwSaveLabelDlg, OkHdl)", "label is predefined and cannot be 
overwritten" );
+            WarningBox( this, SW_RES( WB_PREDEFINED_LABEL ) ).Execute();
+            return 0;
+        }
         String sTmp(aQueryMB.GetMessText());
         String sQuery(sTmp);
         sQuery.SearchAndReplace(rtl::OUString("%1"), sMake);
diff --git a/sw/source/ui/envelp/labfmt.hrc b/sw/source/ui/envelp/labfmt.hrc
index dd7804b..49c238b 100644
--- a/sw/source/ui/envelp/labfmt.hrc
+++ b/sw/source/ui/envelp/labfmt.hrc
@@ -71,13 +71,14 @@
 #define STR_ROWS     (RC_LABFMT_BEGIN +  8)
 #define STR_PWIDTH   (RC_LABFMT_BEGIN +  9)
 #define STR_PHEIGHT  (RC_LABFMT_BEGIN + 10)
+#define WB_PREDEFINED_LABEL (RC_LABFMT_BEGIN + 10)
 
 // overflow check ********************************************************
 
-#define LABFMT_ACT_END  STR_PHEIGHT
+#define LABFMT_ACT_END WB_PREDEFINED_LABEL
 
 #if LABFMT_ACT_END > RC_LABFMT_END
-#error Resource-Ueberlauf in #file, #line
+#error Resource overflow in #file, #line
 #endif
 
 #endif
diff --git a/sw/source/ui/envelp/labfmt.src b/sw/source/ui/envelp/labfmt.src
index 8bb7bbe..4b83f69 100644
--- a/sw/source/ui/envelp/labfmt.src
+++ b/sw/source/ui/envelp/labfmt.src
@@ -302,6 +302,12 @@
 {
     Text [ en-US ] = "Page Height" ;
 };
+WarningBox WB_PREDEFINED_LABEL
+{
+    BUTTONS = WB_OK;
+    DEFBUTTON = WB_DEF_OK;
+    Message [ en-US ] = "Predefined labels cannot be overwritten, use another name." ;
+};
 ModalDialog DLG_SAVE_LABEL
 {
     HelpID = HID_SAVE_LABEL_DLG ;
diff --git a/sw/source/ui/inc/labelcfg.hxx b/sw/source/ui/inc/labelcfg.hxx
index 80135fe..216bef4 100644
--- a/sw/source/ui/inc/labelcfg.hxx
+++ b/sw/source/ui/inc/labelcfg.hxx
@@ -28,10 +28,16 @@
 class SwLabRecs;
 class SwLabRec;
 
+struct SwLabelMeasure
+{
+    OUString m_aMeasure;     // string contains the label dimensions
+    bool     m_bPredefined;  // used to distinguish predefined from user-defined labels
+};
+
 class SW_DLLPUBLIC SwLabelConfig : public utl::ConfigItem
 {
     std::vector<rtl::OUString> m_aManufacturers;
-    std::map< OUString, std::map<OUString, OUString> > m_aLabels;
+    std::map< OUString, std::map<OUString, SwLabelMeasure> > m_aLabels;
 
 public:
     SwLabelConfig();
@@ -40,11 +46,12 @@
     virtual void Commit();
     virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
 
-    void FillManufacturers();
     void    FillLabels(const rtl::OUString& rManufacturer, SwLabRecs& rLabArr);
     const std::vector<rtl::OUString>& GetManufacturers() const {return m_aManufacturers;}
 
     sal_Bool    HasLabel(const rtl::OUString& rManufacturer, const rtl::OUString& rType);
+    bool        IsPredefinedLabel(const rtl::OUString& rManufacturer, const rtl::OUString& rType)
+                  { return m_aLabels[rManufacturer][rType].m_bPredefined; };
     void        SaveLabel(const rtl::OUString& rManufacturer, const rtl::OUString& rType,
                             const SwLabRec& rRec);
 };

-- 
To view, visit https://gerrit.libreoffice.org/2473
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I94ad02972b0fae1327f72a41373f34962452b8ef
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Winfried Donkers <osc@dci-electronics.nl>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.