sc/source/ui/collab/sendfunc.cxx | 9 +++++++-- sc/source/ui/collab/sendfunc.hxx | 2 +- sc/source/ui/docshell/docfunc.cxx | 14 ++++++++++---- sc/source/ui/inc/docfunc.hxx | 2 +- sc/source/ui/view/viewfunc.cxx | 11 +++++++++-- 5 files changed, 28 insertions(+), 10 deletions(-)
New commits: commit a79219ded027de8d90edf281061a58a955c0d4f5 Author: Eike Rathke <er...@redhat.com> Date: Tue Jul 17 11:28:22 2012 +0200 tubes: reintroduced handling of extending formats in ScViewFunc::EnterData() In ScDocFunc*::SetNormalString() pass the underlying ScDocument::SetString() return value back to caller. Change-Id: Ie75169af1bd9bc55d1447ee14e1206407d750c73 diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index 27d8c93..c16364b 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -77,8 +77,11 @@ void ScDocFuncRecv::RecvMessage( const rtl::OString &rString ) RTL_TEXTENCODING_UTF8 ) ); // FIXME: have some hash to enumeration mapping here if ( aReader.getMethod() == "setNormalString" ) - mpChain->SetNormalString( aReader.getAddress( 1 ), aReader.getString( 2 ), + { + bool bNumFmtSet = false; + mpChain->SetNormalString( bNumFmtSet, aReader.getAddress( 1 ), aReader.getString( 2 ), aReader.getBool( 3 ) ); + } else if ( aReader.getMethod() == "putCell" ) { ScBaseCell *pNewCell = aReader.getCell( 2 ); @@ -313,7 +316,7 @@ void ScDocFuncSend::EndListAction() SendMessage( aOp ); } -sal_Bool ScDocFuncSend::SetNormalString( const ScAddress& rPos, const String& rText, sal_Bool bApi ) +sal_Bool ScDocFuncSend::SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, const String& rText, sal_Bool bApi ) { ScChangeOpWriter aOp( "setNormalString" ); aOp.appendAddress( rPos ); @@ -321,6 +324,8 @@ sal_Bool ScDocFuncSend::SetNormalString( const ScAddress& rPos, const String& rT aOp.appendBool( bApi ); SendMessage( aOp ); + o_rbNumFmtSet = false; + if ( rtl::OUString( rText ) == "saveme" ) SendFile( rText ); diff --git a/sc/source/ui/collab/sendfunc.hxx b/sc/source/ui/collab/sendfunc.hxx index 459be2a..9813633 100644 --- a/sc/source/ui/collab/sendfunc.hxx +++ b/sc/source/ui/collab/sendfunc.hxx @@ -244,7 +244,7 @@ public: virtual void EnterListAction( sal_uInt16 nNameResId ); virtual void EndListAction(); - virtual sal_Bool SetNormalString( const ScAddress& rPos, const String& rText, sal_Bool bApi ); + virtual sal_Bool SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, const String& rText, sal_Bool bApi ); virtual sal_Bool PutCell( const ScAddress& rPos, ScBaseCell* pNewCell, sal_Bool bApi ); virtual sal_Bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, sal_Bool bInterpret, sal_Bool bApi ); diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 72227ed..f8df434 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -761,7 +761,7 @@ sal_Bool ScDocFunc::TransliterateText( const ScMarkData& rMark, sal_Int32 nType, //------------------------------------------------------------------------ -sal_Bool ScDocFunc::SetNormalString( const ScAddress& rPos, const String& rText, sal_Bool bApi ) +sal_Bool ScDocFunc::SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, const String& rText, sal_Bool bApi ) { ScDocShellModificator aModificator( rDocShell ); ScDocument* pDoc = rDocShell.GetDocument(); @@ -802,7 +802,7 @@ sal_Bool ScDocFunc::SetNormalString( const ScAddress& rPos, const String& rText, pHasFormat[0] = false; } - pDoc->SetString( rPos.Col(), rPos.Row(), rPos.Tab(), rText ); + o_rbNumFmtSet = pDoc->SetString( rPos.Col(), rPos.Row(), rPos.Tab(), rText ); if (bUndo) { @@ -988,7 +988,10 @@ sal_Bool ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngi { String aText = rEngine.GetText(); if ( bInterpret || !aText.Len() ) - bRet = SetNormalString( rPos, aText, bApi ); + { + bool bNumFmtSet = false; + bRet = SetNormalString( bNumFmtSet, rPos, aText, bApi ); + } else bRet = PutCell( rPos, new ScStringCell( aText ), bApi ); } @@ -1107,7 +1110,10 @@ sal_Bool ScDocFunc::SetCellText( const ScAddress& rPos, const String& rText, if (pNewCell) return PutCell( rPos, pNewCell, bApi ); else - return SetNormalString( rPos, rText, bApi ); + { + bool bNumFmtSet = false; + return SetNormalString( bNumFmtSet, rPos, rText, bApi ); + } } //------------------------------------------------------------------------ diff --git a/sc/source/ui/inc/docfunc.hxx b/sc/source/ui/inc/docfunc.hxx index 61524c7..fcf851c 100644 --- a/sc/source/ui/inc/docfunc.hxx +++ b/sc/source/ui/inc/docfunc.hxx @@ -95,7 +95,7 @@ public: virtual sal_Bool TransliterateText( const ScMarkData& rMark, sal_Int32 nType, sal_Bool bRecord, sal_Bool bApi ); - virtual sal_Bool SetNormalString( const ScAddress& rPos, const String& rText, sal_Bool bApi ); + virtual sal_Bool SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, const String& rText, sal_Bool bApi ); virtual sal_Bool PutCell( const ScAddress& rPos, ScBaseCell* pNewCell, sal_Bool bApi ); virtual sal_Bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, sal_Bool bInterpret, sal_Bool bApi ); diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index 18659f0..64f4a58 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -539,9 +539,16 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab, { ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end(); for ( ; itr != itrEnd; ++itr ) - if ( rFunc.SetNormalString( ScAddress( nCol, nRow, *itr ), - rString, sal_False ) ) + { + bool bNumFmtSet = false; + rFunc.SetNormalString( bNumFmtSet, ScAddress( nCol, nRow, *itr ), rString, sal_False ); + if (bNumFmtSet) + { + /* FIXME: if set on any sheet results in changed only on + * sheet nTab for TestFormatArea() and DoAutoAttributes() */ bNumFmtChanged = true; + } + } } sal_Bool bAutoFormat = TestFormatArea(nCol, nRow, nTab, bNumFmtChanged); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits