[Libreoffice-commits] core.git: 8 commits - sw/source

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Thu Apr 2 03:25:31 PDT 2015


 sw/source/core/unocore/unotbl.cxx |  460 +++++++++++++++-----------------------
 1 file changed, 187 insertions(+), 273 deletions(-)

New commits:
commit c8cf6766fd38d45b73d49cb85dd5fe2d7e3dba50
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 05:04:02 2015 +0200

    use helpers some more
    
    Change-Id: Ia448046b41d6d7594b1ff6f630dbbd4217e13732

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 5c95be3..73a5f4e 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -2108,9 +2108,7 @@ uno::Reference< table::XTableColumns >  SwXTextTable::getColumns(void) throw( un
 uno::Reference<table::XCell> SwXTextTable::getCellByName(const OUString& sCellName) throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt(GetFrmFmt());
-    if(!pFmt)
-        throw uno::RuntimeException();
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
     SwTable* pTable = SwTable::FindTable(pFmt);
     SwTableBox* pBox = const_cast<SwTableBox*>(pTable->GetTblBox(sCellName));
     if(!pBox)
@@ -2136,9 +2134,7 @@ uno::Reference<text::XTextTableCursor> SwXTextTable::createCursorByCellName(cons
     throw (uno::RuntimeException, std::exception)
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt(GetFrmFmt());
-    if(!pFmt)
-        throw uno::RuntimeException();
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
     uno::Reference<text::XTextTableCursor> xRet;
     SwTable* pTable = SwTable::FindTable(pFmt);
     SwTableBox* pBox = const_cast<SwTableBox*>(pTable->GetTblBox(sCellName));
@@ -2230,18 +2226,14 @@ uno::Reference<text::XTextRange>  SwXTextTable::getAnchor(void)
         throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt(GetFrmFmt());
-    if(!pFmt)
-        throw uno::RuntimeException();
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
     return new SwXTextRange(*pFmt);
 }
 
 void SwXTextTable::dispose(void) throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt = GetFrmFmt();
-    if(!pFmt)
-        throw uno::RuntimeException();
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
     SwTable* pTable = SwTable::FindTable(pFmt);
     SwSelBoxes aSelBoxes;
     for(auto& rBox : pTable->GetTabSortBoxes() )
@@ -2345,31 +2337,24 @@ uno::Reference<table::XCellRange> SwXTextTable::getCellRangeByName(const OUStrin
 {
     SolarMutexGuard aGuard;
     uno::Reference< table::XCellRange >  aRef;
-    SwFrmFmt* pFmt(GetFrmFmt());
-    if(pFmt)
-    {
-        SwTable* pTable = SwTable::FindTable( pFmt );
-        if(!pTable->IsTblComplex())
-        {
-            sal_Int32 nPos = 0;
-            const OUString sTLName(sRange.getToken(0, ':', nPos));
-            const OUString sBRName(sRange.getToken(0, ':', nPos));
-            if(sTLName.isEmpty() || sBRName.isEmpty())
-                throw uno::RuntimeException();
-            SwRangeDescriptor aDesc;
-            aDesc.nTop = aDesc.nLeft = aDesc.nBottom = aDesc.nRight = -1;
-            sw_GetCellPosition(sTLName, aDesc.nLeft, aDesc.nTop );
-            sw_GetCellPosition(sBRName, aDesc.nRight, aDesc.nBottom );
-
-            // we should normalize the range now (e.g. A5:C1 will become A1:C5)
-            // since (depending on what is done later) it will be troublesome
-            // elsewhere when the cursor in the implementation does not
-            // point to the top-left and bottom-right cells
-            aDesc.Normalize();
-            return GetRangeByName(pFmt, pTable, sTLName, sBRName, aDesc);
-        }
-    }
-    throw uno::RuntimeException();
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
+    SwTable* pTable = lcl_EnsureTableNotComplex(SwTable::FindTable(pFmt), static_cast<cppu::OWeakObject*>(this));
+    sal_Int32 nPos = 0;
+    const OUString sTLName(sRange.getToken(0, ':', nPos));
+    const OUString sBRName(sRange.getToken(0, ':', nPos));
+    if(sTLName.isEmpty() || sBRName.isEmpty())
+        throw uno::RuntimeException();
+    SwRangeDescriptor aDesc;
+    aDesc.nTop = aDesc.nLeft = aDesc.nBottom = aDesc.nRight = -1;
+    sw_GetCellPosition(sTLName, aDesc.nLeft, aDesc.nTop );
+    sw_GetCellPosition(sBRName, aDesc.nRight, aDesc.nBottom );
+
+    // we should normalize the range now (e.g. A5:C1 will become A1:C5)
+    // since (depending on what is done later) it will be troublesome
+    // elsewhere when the cursor in the implementation does not
+    // point to the top-left and bottom-right cells
+    aDesc.Normalize();
+    return GetRangeByName(pFmt, pTable, sTLName, sBRName, aDesc);
 }
 
 uno::Sequence< uno::Sequence< uno::Any > > SAL_CALL SwXTextTable::getDataArray()
@@ -2573,32 +2558,24 @@ void SwXTextTable::autoFormat(const OUString& sAutoFmtName)
            std::exception)
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt = GetFrmFmt();
-    if(pFmt)
-    {
-        SwTable* pTable = SwTable::FindTable( pFmt );
-        if(!pTable->IsTblComplex())
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
+    SwTable* pTable = lcl_EnsureTableNotComplex(SwTable::FindTable(pFmt), static_cast<cppu::OWeakObject*>(this));
+    SwTableAutoFmtTbl aAutoFmtTbl;
+    aAutoFmtTbl.Load();
+    for (size_t i = aAutoFmtTbl.size(); i;)
+        if( sAutoFmtName == aAutoFmtTbl[ --i ].GetName() )
         {
-            SwTableAutoFmtTbl aAutoFmtTbl;
-            aAutoFmtTbl.Load();
-            for (size_t i = aAutoFmtTbl.size(); i;)
-                if( sAutoFmtName == aAutoFmtTbl[ --i ].GetName() )
-                {
-                    SwSelBoxes aBoxes;
-                    const SwTableSortBoxes& rTBoxes = pTable->GetTabSortBoxes();
-                    for (size_t n = 0; n < rTBoxes.size(); ++n)
-                    {
-                        SwTableBox* pBox = rTBoxes[ n ];
-                        aBoxes.insert( pBox );
-                    }
-                    UnoActionContext aContext( pFmt->GetDoc() );
-                    pFmt->GetDoc()->SetTableAutoFmt( aBoxes, aAutoFmtTbl[i] );
-                    break;
-                }
+            SwSelBoxes aBoxes;
+            const SwTableSortBoxes& rTBoxes = pTable->GetTabSortBoxes();
+            for (size_t n = 0; n < rTBoxes.size(); ++n)
+            {
+                SwTableBox* pBox = rTBoxes[ n ];
+                aBoxes.insert( pBox );
+            }
+            UnoActionContext aContext( pFmt->GetDoc() );
+            pFmt->GetDoc()->SetTableAutoFmt( aBoxes, aAutoFmtTbl[i] );
+            break;
         }
-    }
-    else
-        throw uno::RuntimeException();
 }
 
 uno::Reference< beans::XPropertySetInfo >  SwXTextTable::getPropertySetInfo(void) throw( uno::RuntimeException, std::exception )
@@ -3622,24 +3599,16 @@ uno::Any SwXCellRange::getPropertyValue(const OUString& rPropertyName)
 }
 
 void SwXCellRange::addPropertyChangeListener(const OUString& /*PropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*aListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXCellRange::removePropertyChangeListener(const OUString& /*PropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*aListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXCellRange::addVetoableChangeListener(const OUString& /*PropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*aListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXCellRange::removeVetoableChangeListener(const OUString& /*PropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*aListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXCellRange::GetDataSequence(
         uno::Sequence< uno::Any >   *pAnySeq,   //-> first pointer != 0 is used
commit b878c2b833b0b4b951bd09edd2642267615b9be7
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 04:35:24 2015 +0200

    condense item population code down a bit
    
    - the functor argument is likely overkill, but I havent checked yet if
      there are sideeffects from the item ctor in the previous late eval
    
    Change-Id: I439ac3095013945b725ad02ed04076bf008a71c0

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index e2ce8a1..5c95be3 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1855,6 +1855,8 @@ public:
 
     void SetProperty(sal_uInt16 nWhichId, sal_uInt16 nMemberId, const uno::Any& aVal);
     bool GetProperty(sal_uInt16 nWhichId, sal_uInt16 nMemberId, const uno::Any*& rpAny);
+    template<typename Tpoolitem>
+    inline void AddItemToSet(SfxItemSet& rSet, std::function<Tpoolitem()> aItemFactory, sal_uInt16 nWhich, std::initializer_list<sal_uInt16> vMember);
 
     void ApplyTblAttr(const SwTable& rTbl, SwDoc& rDoc);
 };
@@ -1871,6 +1873,25 @@ void SwTableProperties_Impl::SetProperty(sal_uInt16 nWhichId, sal_uInt16 nMember
 bool SwTableProperties_Impl::GetProperty(sal_uInt16 nWhichId, sal_uInt16 nMemberId, const uno::Any*& rpAny )
     { return aAnyMap.FillValue( nWhichId, nMemberId, rpAny ); }
 
+template<typename Tpoolitem>
+void SwTableProperties_Impl::AddItemToSet(SfxItemSet& rSet, std::function<Tpoolitem()> aItemFactory, sal_uInt16 nWhich, std::initializer_list<sal_uInt16> vMember)
+{
+    std::list< std::pair<sal_uInt16, const uno::Any* > > vMemberAndAny;
+    for(sal_uInt16 nMember : vMember)
+    {
+        const uno::Any* pAny = nullptr;
+        GetProperty(nWhich, nMember, pAny);
+        if(pAny)
+            vMemberAndAny.push_back(std::make_pair(nMember, pAny));
+    }
+    if(!vMemberAndAny.empty())
+    {
+        Tpoolitem aItem = aItemFactory();
+        for(auto& aMemberAndAny : vMemberAndAny)
+            aItem.PutValue(*aMemberAndAny.second, aMemberAndAny.first);
+        rSet.Put(aItem);
+    }
+}
 void SwTableProperties_Impl::ApplyTblAttr(const SwTable& rTbl, SwDoc& rDoc)
 {
     SfxItemSet aSet(rDoc.GetAttrPool(),
@@ -1892,32 +1913,12 @@ void SwTableProperties_Impl::ApplyTblAttr(const SwTable& rTbl, SwDoc& rDoc)
         const_cast<SwTable&>(rTbl).SetRowsToRepeat( bVal ? 1 : 0 );  // TODO: MULTIHEADER
     }
 
-    const uno::Any* pBackColor   = 0;
-    GetProperty(RES_BACKGROUND, MID_BACK_COLOR, pBackColor );
-    const uno::Any* pBackTrans  = 0;
-    GetProperty(RES_BACKGROUND, MID_GRAPHIC_TRANSPARENT, pBackTrans );
-    const uno::Any* pGrLoc      = 0;
-    GetProperty(RES_BACKGROUND, MID_GRAPHIC_POSITION, pGrLoc    );
-    const uno::Any* pGrURL      = 0;
-    GetProperty(RES_BACKGROUND, MID_GRAPHIC_URL, pGrURL     );
-    const uno::Any* pGrFilter   = 0;
-    GetProperty(RES_BACKGROUND, MID_GRAPHIC_FILTER, pGrFilter     );
-
-    if(pBackColor||pBackTrans||pGrURL||pGrFilter||pGrLoc)
-    {
-        SvxBrushItem aBrush(rFrmFmt.makeBackgroundBrushItem());
-        if(pBackColor)
-            aBrush.PutValue(*pBackColor, MID_BACK_COLOR);
-        if(pBackTrans)
-            aBrush.PutValue(*pBackTrans, MID_GRAPHIC_TRANSPARENT);
-        if(pGrURL)
-            aBrush.PutValue(*pGrURL, MID_GRAPHIC_URL);
-        if(pGrFilter)
-            aBrush.PutValue(*pGrFilter, MID_GRAPHIC_FILTER);
-        if(pGrLoc)
-            aBrush.PutValue(*pGrLoc, MID_GRAPHIC_POSITION);
-        aSet.Put(aBrush);
-    }
+    AddItemToSet<SvxBrushItem>(aSet, [rFrmFmt]() { return rFrmFmt.makeBackgroundBrushItem(); }, RES_BACKGROUND, {
+        MID_BACK_COLOR,
+        MID_GRAPHIC_TRANSPARENT,
+        MID_GRAPHIC_POSITION,
+        MID_GRAPHIC_URL,
+        MID_GRAPHIC_FILTER });
 
     bool bPutBreak = true;
     const uno::Any* pPage;
@@ -1942,27 +1943,17 @@ void SwTableProperties_Impl::ApplyTblAttr(const SwTable& rTbl, SwDoc& rDoc)
 
         }
     }
-    const uno::Any* pBreak;
-    if(bPutBreak && GetProperty(RES_BREAK, 0, pBreak))
-    {
-        SvxFmtBreakItem aBreak(rFrmFmt.GetBreak());
-        aBreak.PutValue(*pBreak, 0);
-        aSet.Put(aBreak);
-    }
+
+    if(bPutBreak)
+        AddItemToSet<SvxFmtBreakItem>(aSet, [rFrmFmt]() { return rFrmFmt.GetBreak(); }, RES_BREAK, {0});
     const uno::Any* pShadow;
     if(GetProperty(RES_SHADOW, 0, pShadow))
     {
         SvxShadowItem aShd(rFrmFmt.GetShadow());
-        aShd.PutValue(*pShadow, CONVERT_TWIPS);
+        aShd.PutValue(*pShadow, CONVERT_TWIPS); // putting to CONVERT_TWIPS, but getting from 0?
         aSet.Put(aShd);
     }
-    const uno::Any* pKeep;
-    if(GetProperty(RES_KEEP, 0, pKeep))
-    {
-        SvxFmtKeepItem aKeep( rFrmFmt.GetKeep() );
-        aKeep.PutValue(*pKeep, 0);
-        aSet.Put(aKeep);
-    }
+    AddItemToSet<SvxFmtKeepItem>(aSet, [rFrmFmt]() { return rFrmFmt.GetKeep(); }, RES_KEEP, {0});
 
     const uno::Any* pHOrient;
     if(GetProperty(RES_HORI_ORIENT, MID_HORIORIENT_ORIENT, pHOrient))
@@ -1997,32 +1988,12 @@ void SwTableProperties_Impl::ApplyTblAttr(const SwTable& rTbl, SwDoc& rDoc)
             aSz.SetWidth(MINLAY);
         aSet.Put(aSz);
     }
-    const uno::Any* pL(nullptr);
-    GetProperty(RES_LR_SPACE, MID_L_MARGIN|CONVERT_TWIPS, pL);
-    const uno::Any* pR(nullptr);
-    GetProperty(RES_LR_SPACE, MID_R_MARGIN|CONVERT_TWIPS, pR);
-    if(pL||pR)
-    {
-        SvxLRSpaceItem aLR(rFrmFmt.GetLRSpace());
-        if(pL)
-            aLR.PutValue(*pL, MID_L_MARGIN|CONVERT_TWIPS);
-        if(pR)
-            aLR.PutValue(*pR, MID_R_MARGIN|CONVERT_TWIPS);
-        aSet.Put(aLR);
-    }
-    const uno::Any* pU(nullptr);
-    GetProperty(RES_UL_SPACE, MID_UP_MARGIN|CONVERT_TWIPS, pU);
-    const uno::Any* pLo(nullptr);
-    GetProperty(RES_UL_SPACE, MID_LO_MARGIN|CONVERT_TWIPS, pLo);
-    if(pU||pLo)
-    {
-        SvxULSpaceItem aUL(rFrmFmt.GetULSpace());
-        if(pU)
-            aUL.PutValue(*pU, MID_UP_MARGIN|CONVERT_TWIPS);
-        if(pLo)
-            aUL.PutValue(*pLo, MID_LO_MARGIN|CONVERT_TWIPS);
-        aSet.Put(aUL);
-    }
+    AddItemToSet<SvxLRSpaceItem>(aSet, [rFrmFmt]() { return rFrmFmt.GetLRSpace(); }, RES_LR_SPACE, {
+        MID_L_MARGIN|CONVERT_TWIPS,
+        MID_R_MARGIN|CONVERT_TWIPS });
+    AddItemToSet<SvxULSpaceItem>(aSet, [rFrmFmt]() { return rFrmFmt.GetULSpace(); }, RES_UL_SPACE, {
+        MID_UP_MARGIN|CONVERT_TWIPS,
+        MID_LO_MARGIN|CONVERT_TWIPS });
     const::uno::Any* pSplit(nullptr);
     if(GetProperty(RES_LAYOUT_SPLIT, 0, pSplit))
     {
commit 86247236b78a31f701317df3c27dbc1d552e09af
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 11:39:14 2015 +0200

    use helpers some more
    
    Change-Id: I596f25d3098edeef154917201ba6fd2f351517b3

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index d7f182d..e2ce8a1 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1306,7 +1306,7 @@ void SwXTextTableRow::setPropertyValue(const OUString& rPropertyName, const uno:
            std::exception)
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt());
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
     SwTable* pTable = SwTable::FindTable( pFmt );
     SwTableLine* pLn = SwXTextTableRow::FindLine(pTable, pLine);
     if(pLn)
@@ -1388,7 +1388,7 @@ uno::Any SwXTextTableRow::getPropertyValue(const OUString& rPropertyName) throw(
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt());
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt(), static_cast<cppu::OWeakObject*>(this));
     SwTable* pTable = SwTable::FindTable( pFmt );
     SwTableLine* pLn = SwXTextTableRow::FindLine(pTable, pLine);
     if(pLn)
commit e0e1577e54688914f1a44bdf842e650a509aa19f
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 03:09:31 2015 +0200

    throw instead of returning an empty Any
    
    Change-Id: I299ac48e480517289348c651f28b5c7fc7653362

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 8a3fd0e..d7f182d 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1388,44 +1388,41 @@ uno::Any SwXTextTableRow::getPropertyValue(const OUString& rPropertyName) throw(
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    SwFrmFmt* pFmt = GetFrmFmt();
-    if(pFmt)
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt());
+    SwTable* pTable = SwTable::FindTable( pFmt );
+    SwTableLine* pLn = SwXTextTableRow::FindLine(pTable, pLine);
+    if(pLn)
     {
-        SwTable* pTable = SwTable::FindTable( pFmt );
-        SwTableLine* pLn = SwXTextTableRow::FindLine(pTable, pLine);
-        if(pLn)
-        {
-            const SfxItemPropertySimpleEntry* pEntry =
-                                    m_pPropSet->getPropertyMap().getByName(rPropertyName);
-            if (!pEntry)
-                throw beans::UnknownPropertyException("Unknown property: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+        const SfxItemPropertySimpleEntry* pEntry =
+                                m_pPropSet->getPropertyMap().getByName(rPropertyName);
+        if (!pEntry)
+            throw beans::UnknownPropertyException("Unknown property: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
 
-            switch(pEntry->nWID)
+        switch(pEntry->nWID)
+        {
+            case FN_UNO_ROW_HEIGHT:
+            case FN_UNO_ROW_AUTO_HEIGHT:
             {
-                case FN_UNO_ROW_HEIGHT:
-                case FN_UNO_ROW_AUTO_HEIGHT:
+                const SwFmtFrmSize& rSize = pLn->GetFrmFmt()->GetFrmSize();
+                if(FN_UNO_ROW_AUTO_HEIGHT== pEntry->nWID)
                 {
-                    const SwFmtFrmSize& rSize = pLn->GetFrmFmt()->GetFrmSize();
-                    if(FN_UNO_ROW_AUTO_HEIGHT== pEntry->nWID)
-                    {
-                        aRet <<= ATT_VAR_SIZE == rSize.GetHeightSizeType();
-                    }
-                    else
-                        aRet <<= (sal_Int32)(convertTwipToMm100(rSize.GetSize().Height()));
+                    aRet <<= ATT_VAR_SIZE == rSize.GetHeightSizeType();
                 }
-                break;
+                else
+                    aRet <<= (sal_Int32)(convertTwipToMm100(rSize.GetSize().Height()));
+            }
+            break;
 
-                case FN_UNO_TABLE_COLUMN_SEPARATORS:
-                {
-                    lcl_GetTblSeparators(aRet, pTable, pLine->GetTabBoxes()[0], true);
-                }
-                break;
+            case FN_UNO_TABLE_COLUMN_SEPARATORS:
+            {
+                lcl_GetTblSeparators(aRet, pTable, pLine->GetTabBoxes()[0], true);
+            }
+            break;
 
-                default:
-                {
-                    const SwAttrSet& rSet = pLn->GetFrmFmt()->GetAttrSet();
-                    m_pPropSet->getPropertyValue(*pEntry, rSet, aRet);
-                }
+            default:
+            {
+                const SwAttrSet& rSet = pLn->GetFrmFmt()->GetAttrSet();
+                m_pPropSet->getPropertyValue(*pEntry, rSet, aRet);
             }
         }
     }
commit c78449c8a84923693731c7b0ad622e79f99af603
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 03:04:39 2015 +0200

    throw instead of silent noop
    
    Change-Id: I47dddce1513a870c27844d88694295c5999c0c7f

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index d36884a..8a3fd0e 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1306,81 +1306,78 @@ void SwXTextTableRow::setPropertyValue(const OUString& rPropertyName, const uno:
            std::exception)
 {
     SolarMutexGuard aGuard;
-    SwFrmFmt* pFmt = GetFrmFmt();
-    if(pFmt)
+    SwFrmFmt* pFmt = lcl_EnsureCoreConnected(GetFrmFmt());
+    SwTable* pTable = SwTable::FindTable( pFmt );
+    SwTableLine* pLn = SwXTextTableRow::FindLine(pTable, pLine);
+    if(pLn)
     {
-        SwTable* pTable = SwTable::FindTable( pFmt );
-        SwTableLine* pLn = SwXTextTableRow::FindLine(pTable, pLine);
-        if(pLn)
+        // Check for a specific property
+        if  ( rPropertyName == "TableRedlineParams" )
         {
-            // Check for a specific property
-            if  ( rPropertyName == "TableRedlineParams" )
+            // Get the table row properties
+            uno::Sequence< beans::PropertyValue > tableRowProperties;
+            tableRowProperties = aValue.get< uno::Sequence< beans::PropertyValue > >();
+            comphelper::SequenceAsHashMap aPropMap( tableRowProperties );
+            OUString sRedlineType;
+            uno::Any sRedlineTypeValue;
+            sRedlineTypeValue = aPropMap.getUnpackedValueOrDefault("RedlineType", sRedlineTypeValue);
+            if( sRedlineTypeValue >>= sRedlineType )
             {
-                // Get the table row properties
-                uno::Sequence< beans::PropertyValue > tableRowProperties;
-                tableRowProperties = aValue.get< uno::Sequence< beans::PropertyValue > >();
-                comphelper::SequenceAsHashMap aPropMap( tableRowProperties );
-                OUString sRedlineType;
-                uno::Any sRedlineTypeValue;
-                sRedlineTypeValue = aPropMap.getUnpackedValueOrDefault("RedlineType", sRedlineTypeValue);
-                if( sRedlineTypeValue >>= sRedlineType )
-                {
-                    // Create a 'Table Row Redline' object
-                    SwUnoCursorHelper::makeTableRowRedline( *pLn, sRedlineType, tableRowProperties);
-                }
-                else
-                {
-                    throw beans::UnknownPropertyException("No redline type property: ", static_cast < cppu::OWeakObject * > ( this ) );
-                }
+                // Create a 'Table Row Redline' object
+                SwUnoCursorHelper::makeTableRowRedline( *pLn, sRedlineType, tableRowProperties);
             }
             else
             {
-                const SfxItemPropertySimpleEntry* pEntry =
-                    m_pPropSet->getPropertyMap().getByName(rPropertyName);
-                SwDoc* pDoc = pFmt->GetDoc();
-                if (!pEntry)
-                    throw beans::UnknownPropertyException("Unknown property: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
-                if ( pEntry->nFlags & beans::PropertyAttribute::READONLY)
-                    throw beans::PropertyVetoException("Property is read-only: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
-
-                switch(pEntry->nWID)
+                throw beans::UnknownPropertyException("No redline type property: ", static_cast < cppu::OWeakObject * > ( this ) );
+            }
+        }
+        else
+        {
+            const SfxItemPropertySimpleEntry* pEntry =
+                m_pPropSet->getPropertyMap().getByName(rPropertyName);
+            SwDoc* pDoc = pFmt->GetDoc();
+            if (!pEntry)
+                throw beans::UnknownPropertyException("Unknown property: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+            if ( pEntry->nFlags & beans::PropertyAttribute::READONLY)
+                throw beans::PropertyVetoException("Property is read-only: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+
+            switch(pEntry->nWID)
+            {
+                case FN_UNO_ROW_HEIGHT:
+                case FN_UNO_ROW_AUTO_HEIGHT:
                 {
-                    case FN_UNO_ROW_HEIGHT:
-                    case FN_UNO_ROW_AUTO_HEIGHT:
+                    SwFmtFrmSize aFrmSize(pLn->GetFrmFmt()->GetFrmSize());
+                    if(FN_UNO_ROW_AUTO_HEIGHT== pEntry->nWID)
                     {
-                        SwFmtFrmSize aFrmSize(pLn->GetFrmFmt()->GetFrmSize());
-                        if(FN_UNO_ROW_AUTO_HEIGHT== pEntry->nWID)
-                        {
-                            bool bSet = *static_cast<sal_Bool const *>(aValue.getValue());
-                            aFrmSize.SetHeightSizeType(bSet ? ATT_VAR_SIZE : ATT_FIX_SIZE);
-                        }
-                        else
-                        {
-                            sal_Int32 nHeight = 0;
-                            aValue >>= nHeight;
-                             Size aSz(aFrmSize.GetSize());
-                            aSz.Height() = convertMm100ToTwip(nHeight);
-                            aFrmSize.SetSize(aSz);
-                        }
-                        pDoc->SetAttr(aFrmSize, *pLn->ClaimFrmFmt());
+                        bool bSet = *static_cast<sal_Bool const *>(aValue.getValue());
+                        aFrmSize.SetHeightSizeType(bSet ? ATT_VAR_SIZE : ATT_FIX_SIZE);
                     }
-                    break;
-
-                    case FN_UNO_TABLE_COLUMN_SEPARATORS:
+                    else
                     {
-                        UnoActionContext aContext(pDoc);
-                        SwTable* pTable2 = SwTable::FindTable( pFmt );
-                        lcl_SetTblSeparators(aValue, pTable2, pLine->GetTabBoxes()[0], true, pDoc);
+                        sal_Int32 nHeight = 0;
+                        aValue >>= nHeight;
+                         Size aSz(aFrmSize.GetSize());
+                        aSz.Height() = convertMm100ToTwip(nHeight);
+                        aFrmSize.SetSize(aSz);
                     }
-                    break;
+                    pDoc->SetAttr(aFrmSize, *pLn->ClaimFrmFmt());
+                }
+                break;
 
-                    default:
-                    {
-                        SwFrmFmt* pLnFmt = pLn->ClaimFrmFmt();
-                        SwAttrSet aSet(pLnFmt->GetAttrSet());
-                        m_pPropSet->setPropertyValue(*pEntry, aValue, aSet);
-                        pDoc->SetAttr(aSet, *pLnFmt);
-                    }
+                case FN_UNO_TABLE_COLUMN_SEPARATORS:
+                {
+                    UnoActionContext aContext(pDoc);
+                    SwTable* pTable2 = SwTable::FindTable( pFmt );
+                    lcl_SetTblSeparators(aValue, pTable2, pLine->GetTabBoxes()[0], true, pDoc);
+                }
+                break;
+
+                default:
+                {
+                    SwFrmFmt* pLnFmt = pLn->ClaimFrmFmt();
+                    SwAttrSet aSet(pLnFmt->GetAttrSet());
+                    m_pPropSet->setPropertyValue(*pEntry, aValue, aSet);
+                    pDoc->SetAttr(aSet, *pLnFmt);
                 }
             }
         }
commit c34d3eb3eaae4076cf3de5d0cf76fdeaf02c66e8
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 02:58:46 2015 +0200

    simplify UNO boilerplate
    
    Change-Id: I07538ae4b33a4fa1f07bc6bb4ce6b9af2159e40f

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 71a84eb..d36884a 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -3307,27 +3307,21 @@ sal_Int64 SAL_CALL SwXCellRange::getSomething( const uno::Sequence< sal_Int8 >&
 TYPEINIT1(SwXCellRange, SwClient);
 
 OUString SwXCellRange::getImplementationName(void) throw( uno::RuntimeException, std::exception )
-{
-    return OUString("SwXCellRange");
-}
+    { return OUString("SwXCellRange"); }
 
 sal_Bool SwXCellRange::supportsService(const OUString& rServiceName) throw( uno::RuntimeException, std::exception )
-{
-    return cppu::supportsService(this, rServiceName);
-}
+    { return cppu::supportsService(this, rServiceName); }
 
-uno::Sequence< OUString > SwXCellRange::getSupportedServiceNames(void) throw( uno::RuntimeException, std::exception )
+uno::Sequence<OUString> SwXCellRange::getSupportedServiceNames(void) throw( uno::RuntimeException, std::exception )
 {
-    uno::Sequence< OUString > aRet(7);
-    OUString* pArray = aRet.getArray();
-    pArray[0] = "com.sun.star.text.CellRange";
-    pArray[1] = "com.sun.star.style.CharacterProperties";
-    pArray[2] = "com.sun.star.style.CharacterPropertiesAsian";
-    pArray[3] = "com.sun.star.style.CharacterPropertiesComplex";
-    pArray[4] = "com.sun.star.style.ParagraphProperties";
-    pArray[5] = "com.sun.star.style.ParagraphPropertiesAsian";
-    pArray[6] = "com.sun.star.style.ParagraphPropertiesComplex";
-    return aRet;
+    return {
+        "com.sun.star.text.CellRange",
+        "com.sun.star.style.CharacterProperties",
+        "com.sun.star.style.CharacterPropertiesAsian",
+        "com.sun.star.style.CharacterPropertiesComplex",
+        "com.sun.star.style.ParagraphProperties",
+        "com.sun.star.style.ParagraphPropertiesAsian",
+        "com.sun.star.style.ParagraphPropertiesComplex" };
 }
 
 SwXCellRange::SwXCellRange(SwUnoCrsr* pCrsr, SwFrmFmt& rFrmFmt,
commit 0315bdee186674fe5556442ab9f39cce45f72f39
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 02:56:28 2015 +0200

    simplify UNO boilerplate
    
    Change-Id: Iec0f4bff0d32c79e3ee8b545abe30d03bddb162b

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 3e43296..71a84eb 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -3268,24 +3268,18 @@ void SwXTextTable::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
 }
 
 OUString SAL_CALL SwXTextTable::getImplementationName(void) throw( uno::RuntimeException, std::exception )
-{
-    return OUString("SwXTextTable");
-}
+    { return OUString("SwXTextTable"); }
 
 sal_Bool SwXTextTable::supportsService(const OUString& rServiceName) throw( uno::RuntimeException, std::exception )
-{
-    return cppu::supportsService(this, rServiceName);
-}
+    { return cppu::supportsService(this, rServiceName); }
 
-uno::Sequence< OUString > SwXTextTable::getSupportedServiceNames(void) throw( uno::RuntimeException, std::exception )
+uno::Sequence<OUString> SwXTextTable::getSupportedServiceNames(void) throw(uno::RuntimeException, std::exception)
 {
-    uno::Sequence< OUString > aRet(4);
-    OUString* pArr = aRet.getArray();
-    pArr[0] = "com.sun.star.document.LinkTarget";
-    pArr[1] = "com.sun.star.text.TextTable";
-    pArr[2] = "com.sun.star.text.TextContent";
-    pArr[3] = "com.sun.star.text.TextSortable";
-    return aRet;
+    return {
+        "com.sun.star.document.LinkTarget",
+        "com.sun.star.text.TextTable",
+        "com.sun.star.text.TextContent",
+        "com.sun.star.text.TextSortable" };
 }
 
 namespace
commit 924e88877c2d93e0ae05633b1a4307f6ca2d18e0
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Thu Apr 2 02:53:57 2015 +0200

    be honest and throw about unimplemented functions
    
    Change-Id: I912297a79d3eb99700dce635ab606eee190350e5

diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 2871b84..3e43296 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -3134,24 +3134,16 @@ uno::Any SwXTextTable::getPropertyValue(const OUString& rPropertyName)
 }
 
 void SwXTextTable::addPropertyChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXTextTable::removePropertyChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXTextTable::addVetoableChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 void SwXTextTable::removeVetoableChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
+    { throw uno::RuntimeException("Not implemented", static_cast<cppu::OWeakObject*>(this)); }
 
 OUString SwXTextTable::getName(void) throw( uno::RuntimeException, std::exception )
 {


More information about the Libreoffice-commits mailing list