Kaydet (Commit) 9bab5e14 authored tarafından Bjoern Michaelsen's avatar Bjoern Michaelsen

flatten and improve exception msgs

Change-Id: I438d25d719b4a7e89ba0a628e29b11ee88e8af6e
üst af686aa8
...@@ -4813,64 +4813,47 @@ void SwXTableColumns::removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) ...@@ -4813,64 +4813,47 @@ void SwXTableColumns::removeByIndex(sal_Int32 nIndex, sal_Int32 nCount)
SolarMutexGuard aGuard; SolarMutexGuard aGuard;
if (nCount == 0) if (nCount == 0)
return; return;
SwFrmFmt* pFrmFmt = GetFrmFmt(); SwFrmFmt* pFrmFmt(GetFrmFmt());
if(!pFrmFmt|| nIndex < 0 || nCount <=0 ) if(!pFrmFmt|| nIndex < 0 || nCount <=0 )
throw uno::RuntimeException(); throw uno::RuntimeException();
else SwTable* pTable = SwTable::FindTable(pFrmFmt);
if(pTable->IsTblComplex())
throw uno::RuntimeException("Table too complex", static_cast<cppu::OWeakObject*>(this));
const OUString sTLName = sw_GetCellName(nIndex, 0);
const SwTableBox* pTLBox = pTable->GetTblBox( sTLName );
if(!pTLBox)
throw uno::RuntimeException("Cell not found", static_cast<cppu::OWeakObject*>(this));
{ {
bool bSuccess = false; // invalidate all actions
SwTable* pTable = SwTable::FindTable( pFrmFmt ); UnoActionRemoveContext aRemoveContext(pFrmFmt->GetDoc());
if(!pTable->IsTblComplex()) }
{ const SwStartNode* pSttNd = pTLBox->GetSttNd();
const OUString sTLName = sw_GetCellName(nIndex, 0); SwPosition aPos(*pSttNd);
const SwTableBox* pTLBox = pTable->GetTblBox( sTLName ); // set cursor to the upper-left cell of the range
if(pTLBox) SwUnoCrsr* pUnoCrsr = pFrmFmt->GetDoc()->CreateUnoCrsr(aPos, true);
{ pUnoCrsr->Move(fnMoveForward, fnGoNode);
{ pUnoCrsr->SetRemainInSection(false);
// invalidate all actions const OUString sTRName = sw_GetCellName(nIndex + nCount - 1, 0);
UnoActionRemoveContext aRemoveContext(pFrmFmt->GetDoc()); const SwTableBox* pTRBox = pTable->GetTblBox(sTRName);
} if(!pTRBox)
const SwStartNode* pSttNd = pTLBox->GetSttNd(); throw uno::RuntimeException("Cell not found", static_cast<cppu::OWeakObject*>(this));
SwPosition aPos(*pSttNd); pUnoCrsr->SetMark();
// set cursor to the upper-left cell of the range pUnoCrsr->GetPoint()->nNode = *pTRBox->GetSttNd();
SwUnoCrsr* pUnoCrsr = pFrmFmt->GetDoc()->CreateUnoCrsr(aPos, true); pUnoCrsr->Move(fnMoveForward, fnGoNode);
pUnoCrsr->Move( fnMoveForward, fnGoNode ); SwUnoTableCrsr* pCrsr = dynamic_cast<SwUnoTableCrsr*>(pUnoCrsr);
pUnoCrsr->SetRemainInSection( false ); pCrsr->MakeBoxSels();
const OUString sTRName = sw_GetCellName(nIndex + nCount - 1, 0); { // these braces are important
const SwTableBox* pTRBox = pTable->GetTblBox( sTRName ); UnoActionContext aAction(pFrmFmt->GetDoc());
if(pTRBox) pFrmFmt->GetDoc()->DeleteCol(*pUnoCrsr);
{ delete pUnoCrsr;
pUnoCrsr->SetMark(); }
pUnoCrsr->GetPoint()->nNode = *pTRBox->GetSttNd(); {
pUnoCrsr->Move( fnMoveForward, fnGoNode ); // invalidate all actions
SwUnoTableCrsr* pCrsr = UnoActionRemoveContext aRemoveContext(pFrmFmt->GetDoc());
dynamic_cast<SwUnoTableCrsr*>(pUnoCrsr);
pCrsr->MakeBoxSels();
{ // these braces are important
UnoActionContext aAction(pFrmFmt->GetDoc());
pFrmFmt->GetDoc()->DeleteCol(*pUnoCrsr);
delete pUnoCrsr;
bSuccess = true;
}
{
// invalidate all actions
UnoActionRemoveContext aRemoveContext(pFrmFmt->GetDoc());
}
}
}
}
if(!bSuccess)
{
uno::RuntimeException aExcept;
aExcept.Message = "Illegal arguments";
throw aExcept;
}
} }
} }
void SwXTableColumns::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) void SwXTableColumns::Modify(const SfxPoolItem* pOld, const SfxPoolItem *pNew)
{ { ClientModify(this, pOld, pNew); }
ClientModify(this, pOld, pNew);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment