[Libreoffice-commits] core.git: xmloff/source

Noel Grandin noel at peralex.com
Thu May 12 11:54:46 UTC 2016


 xmloff/source/forms/elementexport.cxx  |   14 +++++++-------
 xmloff/source/forms/propertyexport.cxx |    8 ++++----
 xmloff/source/forms/propertyexport.hxx |   19 ++++++++++++-------
 3 files changed, 23 insertions(+), 18 deletions(-)

New commits:
commit e82fe5f00afe0364fbcbfea3e91e10b85faae34c
Author: Noel Grandin <noel at peralex.com>
Date:   Thu May 12 13:53:29 2016 +0200

    Convert BOOL_ATTR to scoped enum
    
    Change-Id: I7991c6d05503dcbc1e5fd45d07227b766c409f65

diff --git a/xmloff/source/forms/elementexport.cxx b/xmloff/source/forms/elementexport.cxx
index f7bc4ee..b799182 100644
--- a/xmloff/source/forms/elementexport.cxx
+++ b/xmloff/source/forms/elementexport.cxx
@@ -579,9 +579,9 @@ namespace xmloff
                 PROPERTY_READONLY, PROPERTY_DEFAULT_STATE,
                 PROPERTY_TABSTOP, PROPERTY_ENABLEVISIBLE
             };
-            static const sal_Int8 nBooleanPropertyAttrFlags[] =
+            static const BoolAttrFlags nBooleanPropertyAttrFlags[] =
             {   // attribute defaults
-                BOOLATTR_DEFAULT_FALSE, BOOLATTR_DEFAULT_FALSE | BOOLATTR_INVERSE_SEMANTICS, BOOLATTR_DEFAULT_FALSE, BOOLATTR_DEFAULT_TRUE, BOOLATTR_DEFAULT_FALSE, BOOLATTR_DEFAULT_FALSE, BOOLATTR_DEFAULT_VOID, BOOLATTR_DEFAULT_FALSE
+                BoolAttrFlags::DefaultFalse, BoolAttrFlags::DefaultFalse | BoolAttrFlags::InverseSemantics, BoolAttrFlags::DefaultFalse, BoolAttrFlags::DefaultTrue, BoolAttrFlags::DefaultFalse, BoolAttrFlags::DefaultFalse, BoolAttrFlags::DefaultVoid, BoolAttrFlags::DefaultFalse
             };
         #if OSL_DEBUG_LEVEL > 0
             static const sal_Int32 nIdCount = SAL_N_ELEMENTS(nBooleanPropertyAttributeIds);
@@ -843,7 +843,7 @@ namespace xmloff
                 OAttributeMetaData::getDatabaseAttributeNamespace( DA_INPUT_REQUIRED ),
                 OAttributeMetaData::getDatabaseAttributeName( DA_INPUT_REQUIRED ),
                 PROPERTY_INPUT_REQUIRED,
-                BOOLATTR_DEFAULT_TRUE
+                BoolAttrFlags::DefaultTrue
             );
             RESET_BIT( nIncludeDatabase, DA_INPUT_REQUIRED );
         }
@@ -867,7 +867,7 @@ namespace xmloff
                 OAttributeMetaData::getDatabaseAttributeNamespace(DA_CONVERT_EMPTY),
                 OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY),
                 PROPERTY_EMPTY_IS_NULL,
-                BOOLATTR_DEFAULT_FALSE
+                BoolAttrFlags::DefaultFalse
                 );
             RESET_BIT( nIncludeDatabase, DA_CONVERT_EMPTY );
         }
@@ -992,7 +992,7 @@ namespace xmloff
                         OAttributeMetaData::getSpecialAttributeNamespace( *pAttributeId ),
                         OAttributeMetaData::getSpecialAttributeName( *pAttributeId ),
                         OUString::createFromAscii(pBooleanPropertyNames[i]),
-                        ( *pAttributeId == SCA_FOCUS_ON_CLICK ) ? BOOLATTR_DEFAULT_TRUE : BOOLATTR_DEFAULT_FALSE
+                        ( *pAttributeId == SCA_FOCUS_ON_CLICK ) ? BoolAttrFlags::DefaultTrue : BoolAttrFlags::DefaultFalse
                     );
             #if OSL_DEBUG_LEVEL > 0
                 //  reset the bit for later checking
@@ -2142,9 +2142,9 @@ namespace xmloff
                 PROPERTY_ESCAPEPROCESSING,
                 PROPERTY_IGNORERESULT
             };
-            static const sal_Int8 nBooleanPropertyAttrFlags[] =
+            static const BoolAttrFlags nBooleanPropertyAttrFlags[] =
             {
-                BOOLATTR_DEFAULT_TRUE, BOOLATTR_DEFAULT_TRUE, BOOLATTR_DEFAULT_TRUE, BOOLATTR_DEFAULT_FALSE, BOOLATTR_DEFAULT_TRUE, BOOLATTR_DEFAULT_FALSE
+                BoolAttrFlags::DefaultTrue, BoolAttrFlags::DefaultTrue, BoolAttrFlags::DefaultTrue, BoolAttrFlags::DefaultFalse, BoolAttrFlags::DefaultTrue, BoolAttrFlags::DefaultFalse
             };
             static const sal_Int32 nIdCount = SAL_N_ELEMENTS(eBooleanPropertyIds);
         #if OSL_DEBUG_LEVEL > 0
diff --git a/xmloff/source/forms/propertyexport.cxx b/xmloff/source/forms/propertyexport.cxx
index f230863..e1b450b 100644
--- a/xmloff/source/forms/propertyexport.cxx
+++ b/xmloff/source/forms/propertyexport.cxx
@@ -268,14 +268,14 @@ namespace xmloff
     }
 
     void OPropertyExport::exportBooleanPropertyAttribute(const sal_uInt16 _nNamespaceKey, const sal_Char* _pAttributeName,
-            const OUString& _rPropertyName, const sal_Int8 _nBooleanAttributeFlags)
+            const OUString& _rPropertyName, const BoolAttrFlags _nBooleanAttributeFlags)
     {
         DBG_CHECK_PROPERTY_NO_TYPE( _rPropertyName );
         // no check of the property value type: this method is allowed to be called with any integer properties
         // (e.g. sal_Int32, sal_uInt16 etc)
 
-        bool bDefault = (BOOLATTR_DEFAULT_TRUE == (BOOLATTR_DEFAULT_MASK & _nBooleanAttributeFlags));
-        bool bDefaultVoid = (BOOLATTR_DEFAULT_VOID == (BOOLATTR_DEFAULT_MASK & _nBooleanAttributeFlags));
+        bool bDefault = (BoolAttrFlags::DefaultTrue == (BoolAttrFlags::DefaultMask & _nBooleanAttributeFlags));
+        bool bDefaultVoid = (BoolAttrFlags::DefaultVoid == (BoolAttrFlags::DefaultMask & _nBooleanAttributeFlags));
 
         // get the value
         bool bCurrentValue = bDefault;
@@ -285,7 +285,7 @@ namespace xmloff
             bCurrentValue = ::cppu::any2bool(aCurrentValue);
             // this will extract a boolean value even if the Any contains a int or short or something like that ...
 
-            if (_nBooleanAttributeFlags & BOOLATTR_INVERSE_SEMANTICS)
+            if (_nBooleanAttributeFlags & BoolAttrFlags::InverseSemantics)
                 bCurrentValue = !bCurrentValue;
 
             // we have a non-void current value
diff --git a/xmloff/source/forms/propertyexport.hxx b/xmloff/source/forms/propertyexport.hxx
index 7db076e..982c638 100644
--- a/xmloff/source/forms/propertyexport.hxx
+++ b/xmloff/source/forms/propertyexport.hxx
@@ -31,15 +31,20 @@
 #include "callbacks.hxx"
 #include "strings.hxx"
 
+enum class BoolAttrFlags {
+    DefaultFalse          = 0x00,
+    DefaultTrue           = 0x01,
+    DefaultVoid           = 0x02,
+    DefaultMask           = 0x03,
+    InverseSemantics      = 0x04,
+};
+namespace o3tl {
+    template<> struct typed_flags<BoolAttrFlags> : is_typed_flags<BoolAttrFlags, 0x0a> {};
+}
+
 namespace xmloff
 {
 
-#define BOOLATTR_DEFAULT_FALSE          0x00
-#define BOOLATTR_DEFAULT_TRUE           0x01
-#define BOOLATTR_DEFAULT_VOID           0x02
-#define BOOLATTR_DEFAULT_MASK           0x03
-
-#define BOOLATTR_INVERSE_SEMANTICS      0x04
     // if sal_True, indicates that the semantic of the property referred by <arg>_pPropertyName</arg>
     // is inverse to the semantic of the XML attribute.<br/>
     // I.e. if the property value is <TRUE/>, <FALSE/> has to be written and vice versa.
@@ -146,7 +151,7 @@ namespace xmloff
             const sal_uInt16 _nNamespaceKey,
             const sal_Char* _pAttributeName,
             const OUString& _rPropertyName,
-            const sal_Int8 _nBooleanAttributeFlags);
+            const BoolAttrFlags _nBooleanAttributeFlags);
 
         /** add an attribute which is represented by a sal_Int16 property to the export context
 


More information about the Libreoffice-commits mailing list