Repository.mk | 2 sc/inc/global.hxx | 18 --- sc/source/core/data/global.cxx | 147 ------------------------------- sc/source/filter/excel/read.cxx | 9 - sc/source/filter/excel/xiescher.cxx | 22 ---- sc/source/filter/oox/drawingbase.cxx | 5 - sc/source/filter/oox/drawingfragment.cxx | 7 - sc/source/ui/unoobj/docuno.cxx | 65 +++++++++++-- sc/source/ui/view/drawutil.cxx | 12 -- sc/source/ui/view/drawvie4.cxx | 2 sc/source/ui/view/drawview.cxx | 2 sc/source/ui/view/gridwin3.cxx | 2 sc/source/ui/view/viewdata.cxx | 7 - svl/qa/unit/makefile.mk | 95 -------------------- svl/qa/unit/version.map | 34 ------- svtools/Executable_langsupport.mk | 61 ++++++++++++ svtools/Module_svtools.mk | 7 + svtools/langsupport/langsupport.cxx | 101 +++++++++++++++++++++ sw/source/ui/frmdlg/frmdlg.cxx | 5 - sw/source/ui/frmdlg/wrap.cxx | 2 20 files changed, 236 insertions(+), 369 deletions(-)
New commits: commit b01750b8750c6938bbe85749f30e6fd5ec0f1ede Author: Harri Pitkänen <hatap...@iki.fi> Date: Thu May 24 17:41:37 2012 +0300 Cleanup related to always enabled HTMLMODE_SOME_ABS_POS HTMLMODE_SOME_ABS_POS is enabled in all HTML export modes and thus code checking for it is not needed anymore. Change-Id: I416adc2fc6242daf9fa4ccaa9b2634138c5e17d0 diff --git a/sw/source/ui/frmdlg/frmdlg.cxx b/sw/source/ui/frmdlg/frmdlg.cxx index 2266141..e8a31ef 100644 --- a/sw/source/ui/frmdlg/frmdlg.cxx +++ b/sw/source/ui/frmdlg/frmdlg.cxx @@ -109,8 +109,6 @@ SwFrmDlg::SwFrmDlg( SfxViewFrame* pViewFrame, switch( m_nDlgType ) { case DLG_FRM_STD: - if(0 == (nHtmlMode & HTMLMODE_SOME_ABS_POS)) - RemoveTabPage(TP_BORDER); RemoveTabPage(TP_COLUMN); // no break case DLG_FRM_OLE: @@ -121,8 +119,7 @@ SwFrmDlg::SwFrmDlg( SfxViewFrame* pViewFrame, RemoveTabPage(RID_SVXPAGE_GRFCROP); break; } - if( 0 == (nHtmlMode & HTMLMODE_SOME_ABS_POS) || - m_nDlgType != DLG_FRM_STD ) + if( m_nDlgType != DLG_FRM_STD ) RemoveTabPage(TP_BACKGROUND); } diff --git a/sw/source/ui/frmdlg/wrap.cxx b/sw/source/ui/frmdlg/wrap.cxx index 07f0428..6969489 100644 --- a/sw/source/ui/frmdlg/wrap.cxx +++ b/sw/source/ui/frmdlg/wrap.cxx @@ -519,7 +519,6 @@ void SwWrapTabPage::ActivatePage(const SfxItemSet& rSet) aWrapTransparentCB.Enable( bEnable && !bHtmlMode && nSur == SURROUND_THROUGHT ); if(bHtmlMode) { - sal_Bool bSomeAbsPos = 0 != (nHtmlMode & HTMLMODE_SOME_ABS_POS); const SwFmtHoriOrient& rHori = (const SwFmtHoriOrient&)rSet.Get(RES_HORI_ORIENT); sal_Int16 eHOrient = rHori.GetHoriOrient(); sal_Int16 eHRelOrient = rHori.GetRelationOrient(); @@ -551,7 +550,6 @@ void SwWrapTabPage::ActivatePage(const SfxItemSet& rSet) || ( (FLY_AT_CHAR == nAnchorId) && (eHRelOrient != text::RelOrientation::PRINT_AREA)) || (FLY_AT_PARA == nAnchorId)) - && bSomeAbsPos && (eHOrient != text::HoriOrientation::RIGHT)); if(aNoWrapRB.IsChecked() && !aNoWrapRB.IsEnabled()) { commit 45b560ef50032015a07c202429ddcffcfa4cdc78 Author: Noel Power <noel.po...@novell.com> Date: Thu May 24 17:11:21 2012 +0100 Revert "tweak imported shape position for xls( binary ) format fdo#49430" This reverts commit 5813422d3eb9657c5a818057be0ebf831ca6a794. diff --git a/sc/source/filter/excel/read.cxx b/sc/source/filter/excel/read.cxx index 0b45e5f..08b56bc 100644 --- a/sc/source/filter/excel/read.cxx +++ b/sc/source/filter/excel/read.cxx @@ -52,7 +52,6 @@ #include "root.hxx" #include "imp_op.hxx" #include "excimp8.hxx" -#include <sfx2/objsh.hxx> FltError ImportExcel::Read( void ) { @@ -1310,14 +1309,6 @@ FltError ImportExcel8::Read( void ) PostDocLoad(); pD->CalcAfterLoad(); - SfxObjectShell* pDocShell = GetDocShell(); - - if ( pDocShell ) - { - std::vector< OrientationInfo > savedOrientations; - ScGlobal::CaptureShapeOrientationInfo( savedOrientations, pDocShell->GetModel() ); - ScGlobal::ApplyShapeOrientationInfo( savedOrientations, pDocShell->GetModel(), *pD ); - } // import change tracking data XclImpChangeTrack aImpChTr( GetRoot(), maStrm ); diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx index 932f956..74ed03b 100644 --- a/sc/source/filter/excel/xiescher.cxx +++ b/sc/source/filter/excel/xiescher.cxx @@ -497,28 +497,6 @@ void XclImpDrawObjBase::PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrOb } } - if ( GetAnchor() ) - { - ScDrawObjData* pAnchor = ScDrawLayer::GetObjData( &rSdrObj, sal_True); - if ( pAnchor ) - { - // Temporarily get start position of shape. - // At the end of the import we do some post processing - // to adjust the shape position to take into account - // errors between the drawing layer and the view/grid - pAnchor->maStart.SetRow( GetAnchor()->maFirst.mnRow ); - pAnchor->maStart.SetCol( GetAnchor()->maFirst.mnCol ); - pAnchor->maStart.SetTab( GetTab() ); - XclObjAnchor tmpAnchor( *GetAnchor() ); - - // Calculate the start offset ( from the cell postion ) - Rectangle withOffset = tmpAnchor.GetRect( GetRoot(), GetTab(), MAP_100TH_MM ); - tmpAnchor.mnLX = tmpAnchor.mnTY = tmpAnchor.mnRX = tmpAnchor.mnBY = 0; - Rectangle noOffset = tmpAnchor.GetRect( GetRoot(), GetTab(), MAP_100TH_MM ); - pAnchor->maStartOffset.X() = withOffset.Left() - noOffset.Left(); - pAnchor->maStartOffset.Y() = withOffset.Top() - noOffset.Top(); - } - } // call virtual function for object type specific processing DoPreProcessSdrObj( rDffConv, rSdrObj ); } commit ff9a993e5dc771335f8b9ee0bc95ec4ee80f64c1 Author: Noel Power <noel.po...@novell.com> Date: Thu May 24 16:49:55 2012 +0100 Revert "fix bad import positions of shapes & controls fdo#49430" This reverts commit 9dc4fa1b22a533ba0a6ce0353112c55eef8a14ef. diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx index c431598..c4c2e87 100644 --- a/sc/inc/global.hxx +++ b/sc/inc/global.hxx @@ -34,7 +34,6 @@ #include <tools/stream.hxx> #include <osl/endian.h> #include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/table/CellAddress.hpp> #include "scdllapi.h" #include <boost/unordered_map.hpp> @@ -499,27 +498,12 @@ namespace com { namespace sun { namespace star { namespace i18n { class XOrdinalSuffix; } - namespace frame { - class XModel; - } - namespace drawing { - class XShape; - } }}} namespace utl { class TransliterationWrapper; } #ifndef _SCALC_EXE -struct SC_DLLPUBLIC OrientationInfo -{ - OrientationInfo() : mnVert( 0 ), mnHori( 0 ) {} - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxShape; - ::com::sun::star::table::CellAddress maAddress; - sal_Int32 mnVert; - sal_Int32 mnHori; -}; - class ScGlobal { static SvxSearchItem* pSearchItem; @@ -712,8 +696,6 @@ SC_DLLPUBLIC static const sal_Unicode* FindUnquoted( const sal_Unicode* pStri /** Obtain the ordinal suffix for a number according to the system locale */ static String GetOrdinalSuffix( sal_Int32 nNumber); - SC_DLLPUBLIC static void CaptureShapeOrientationInfo( std::vector< OrientationInfo >& infos, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel ); - SC_DLLPUBLIC static void ApplyShapeOrientationInfo( std::vector< OrientationInfo >& infos, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel, ScDocument& rDoc ); }; #endif diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx index c92238d..1de68a0 100644 --- a/sc/source/core/data/global.cxx +++ b/sc/source/core/data/global.cxx @@ -63,15 +63,6 @@ #include <unotools/calendarwrapper.hxx> #include <unotools/collatorwrapper.hxx> #include <com/sun/star/i18n/CollatorOptions.hpp> -#include <com/sun/star/frame/XModel.hpp> -#include <com/sun/star/drawing/XDrawPagesSupplier.hpp> -#include <com/sun/star/document/XViewDataSupplier.hpp> -#include <com/sun/star/container/XIndexAccess.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/table/XCell.hpp> -#include <com/sun/star/sheet/XSpreadsheet.hpp> -#include <com/sun/star/sheet/XSpreadsheetDocument.hpp> -#include <com/sun/star/sheet/XCellAddressable.hpp> #include <unotools/intlwrapper.hxx> #include <unotools/syslocale.hxx> #include <unotools/transliterationwrapper.hxx> @@ -96,15 +87,11 @@ #include "sc.hrc" #include "scmod.hxx" #include "appoptio.hxx" -#include "unonames.hxx" -#include "drawview.hxx" -#include "drawutil.hxx" -#include "viewdata.hxx" + // ----------------------------------------------------------------------- using ::rtl::OUString; using ::rtl::OUStringBuffer; -using namespace ::com::sun::star; ScDocShellRef* ScGlobal::pDrawClipDocShellRef = NULL; SvxSearchItem* ScGlobal::pSearchItem = NULL; @@ -1188,139 +1175,5 @@ IntlWrapper* ScGlobal::GetScIntlWrapper() } return pLocale; } -void ScGlobal::CaptureShapeOrientationInfo( std::vector< OrientationInfo >& infos, const uno::Reference<frame::XModel >& rxModel ) -{ - rtl::OUString sHori( SC_UNONAME_HORIPOS ); - rtl::OUString sVert( SC_UNONAME_VERTPOS ); - uno::Reference<drawing::XDrawPagesSupplier> xDrwSupp( rxModel, uno::UNO_QUERY ); - uno::Reference<container::XIndexAccess> xPages( xDrwSupp.is() ? xDrwSupp->getDrawPages() : NULL, uno::UNO_QUERY ); - if ( xPages.is() ) - { - for ( sal_Int32 nIndex = 0, nPages = xPages->getCount(); nIndex < nPages; ++nIndex ) - { - uno::Reference<container::XIndexAccess> xShapes( xPages->getByIndex( nIndex ), uno::UNO_QUERY ); - for ( sal_Int32 nShapeIndex = 0, nShapes = xShapes->getCount(); nShapeIndex < nShapes; ++nShapeIndex ) - { - uno::Reference< beans::XPropertySet > xShape( xShapes->getByIndex( nShapeIndex ), uno::UNO_QUERY ); - uno::Reference< table::XCell > xCell( xShape->getPropertyValue( rtl::OUString( SC_UNONAME_ANCHOR ) ), uno::UNO_QUERY ); - uno::Reference< sheet::XSpreadsheetDocument > xSpreadSheet( rxModel, uno::UNO_QUERY ); - uno::Reference< container::XIndexAccess > xSheets( xSpreadSheet.is() ? xSpreadSheet->getSheets() : NULL, uno::UNO_QUERY ); - uno::Reference< sheet::XSpreadsheet > xSheet; - uno::Reference< sheet::XCellAddressable > xAddressable( xCell, uno::UNO_QUERY ); - if ( xSheets.is() && xAddressable.is() && xSpreadSheet.is() ) - xSheet.set( xSheets->getByIndex( xAddressable->getCellAddress().Sheet ), uno::UNO_QUERY ); - // only capture orientation if the shape is anchored to cell - if ( xShape.is() && xCell.is() && xAddressable.is() && xSheet.is() ) - { - uno::Reference< beans::XPropertySetInfo > xShapePropInfo = xShape->getPropertySetInfo(); - if ( xShapePropInfo.is() && xShapePropInfo->hasPropertyByName( sHori ) && xShapePropInfo->hasPropertyByName( sVert ) ) - { - OrientationInfo aShape; - aShape.mxShape.set( xShape, uno::UNO_QUERY ); - xShape->getPropertyValue( sHori ) >>= aShape.mnHori; - xShape->getPropertyValue( sVert ) >>= aShape.mnVert; - aShape.maAddress = xAddressable->getCellAddress(); - infos.push_back( aShape ); - // Remove temporary cell anchor. Ideally we should - // preserve the cell anchoring but the drawing layer - // and the ScGridWindow don't calcuate positions in the - // same way. This means unfortunately ( especially if - // row heights above the shape are not uniform ) that - // the shape anchor position and the shape position - // can be quite skewed. The only alterative - // unfortunately is to position the shape absolutely - // rather than relative to a cell address :-( - xShape->setPropertyValue( rtl::OUString( SC_UNONAME_ANCHOR ), uno::makeAny( xSheet ) ); - } - } - } - } - } -} - -// Note: this method is only expected to be called when importing an alien -// document. -void ScGlobal::ApplyShapeOrientationInfo( std::vector< OrientationInfo >& infos, const uno::Reference< frame::XModel >& rxModel, ScDocument& rDoc ) -{ - // For each shape previously anchored to a cell calculate the shape - // position ( as the view would ) based on the available zoom and scaling. - // This prevents the shape being being drawn in an unexpected postion due to - // a) differences in the calculation of shape position by drawinglayer and - // the postion of the actual rows drawn by ScGridwin - // b) affect of UpdateAllRowHeights - for ( std::vector< OrientationInfo >::iterator it = infos.begin(), it_end = infos.end(); it != it_end; ++it ) - { - OutputDevice* pDevice = Application::GetDefaultDevice(); - if ( pDevice ) - { - uno::Reference< document::XViewDataSupplier > xViewSup( rxModel, uno::UNO_QUERY ); - uno::Reference< container::XIndexAccess > xIndexAccess; - if ( xViewSup.is() ) - xIndexAccess = xViewSup->getViewData(); - uno::Sequence< beans::PropertyValue > aSeq; - // set up partial view data to calculate zoom, pptx & ppty values - ScViewData aViewData( NULL, NULL ); - aViewData.InitData( &rDoc ); - // support initialising view data from binary import - if ( ScExtDocOptions* pDocOptions = rDoc.GetExtDocOptions() ) - { - aViewData.ReadExtOptions( *pDocOptions ); - } - else // or from the view data from the model ( oox import ) - { - if ( xIndexAccess.is() && xIndexAccess->getCount() ) - xIndexAccess->getByIndex(0) >>= aSeq; - aViewData.ReadUserDataSequence( aSeq ); - } - - aViewData.SetTabNo( it->maAddress.Sheet ); - - long nHeight = 0; - long nWidth = 0; - - MapMode aTmpMode( MAP_TWIP ); - // get postion of shape based on the start anchor - for ( int i = 0; i < it->maAddress.Column; ++i ) - { - long nTwip = aViewData.GetDocument()->GetColWidth( i, it->maAddress.Sheet ); - Point aTmpPos = pDevice->LogicToPixel( Point( nTwip, nTwip ), aTmpMode ); - nWidth += ( nTwip * aViewData.GetPPTX() ); - } - for ( int i = 0; i < it->maAddress.Row; ++i ) - { - long nTwip = aViewData.GetDocument()->GetRowHeight( i, it->maAddress.Sheet ); - Point aTmpPos = pDevice->LogicToPixel( Point( nTwip, nTwip ), aTmpMode ); - nHeight += ( nTwip * aViewData.GetPPTY() ); - } - - // determine the scale that will be used by the view - Fraction aScaleX; - Fraction aScaleY; - SCROW nEndRow = it->maAddress.Row; - SCCOL nEndCol = it->maAddress.Column; - aViewData.GetDocument()->GetTableArea( aViewData.GetTabNo(), nEndCol, nEndRow ); - if (nEndCol<20) - nEndCol = 20; - if (nEndRow<20) - nEndRow = 20; - - ScDrawUtil::CalcScale( aViewData.GetDocument(), aViewData.GetTabNo(), 0,0, nEndCol,nEndRow, pDevice,aViewData.GetZoomX(),aViewData.GetZoomY(),aViewData.GetPPTX(),aViewData.GetPPTY(), aScaleX,aScaleY ); - - // finally calculate and apply the position of shape ( including - // any vertical and horizontal offsets ) - Point aTmpPos( nWidth, nHeight); - aTmpMode = MapMode ( MAP_100TH_MM ); - aTmpMode.SetScaleX(aScaleX); - aTmpMode.SetScaleY(aScaleY); - - aTmpPos = pDevice->PixelToLogic( aTmpPos, aTmpMode ); - if ( it->mxShape.is() ) - { - com::sun::star::awt::Point aUnoPos( aTmpPos.X() + it->mnHori, aTmpPos.Y() + it->mnVert ); - it->mxShape->setPosition( aUnoPos ); - } - } - } -} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/filter/oox/drawingbase.cxx b/sc/source/filter/oox/drawingbase.cxx index c7ff392..4a30a15 100644 --- a/sc/source/filter/oox/drawingbase.cxx +++ b/sc/source/filter/oox/drawingbase.cxx @@ -161,7 +161,6 @@ void ShapeAnchor::setCellPos( sal_Int32 nElement, sal_Int32 nParentContext, cons void ShapeAnchor::importVmlAnchor( const OUString& rAnchor ) { meAnchorType = ANCHOR_VML; - meCellAnchorType = CELLANCHOR_PIXEL; ::std::vector< OUString > aTokens; sal_Int32 nIndex = 0; @@ -279,16 +278,16 @@ ShapeAnchor::getFromCell() const void ShapeAnchor::applyToXShape( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape>& rxShape ) { - if ( ( meAnchorType == ANCHOR_VML || meAnchorType == ANCHOR_TWOCELL || meAnchorType == ANCHOR_ONECELL ) && getFromCell().is() ) + if ( ( meAnchorType == ANCHOR_TWOCELL || meAnchorType == ANCHOR_ONECELL ) && getFromCell().is() ) { PropertySet aShapeProp( rxShape ); + aShapeProp.setProperty( PROP_Anchor, getFromCell() ); CellAnchorModel offSets; offSets.mnColOffset = maFrom.mnColOffset; offSets.mnRowOffset = maFrom.mnRowOffset; EmuPoint aPos = calcCellAnchorEmu( offSets ); aShapeProp.setProperty( PROP_HoriOrientPosition, lclEmuToHmm( aPos.X ) ); aShapeProp.setProperty( PROP_VertOrientPosition, lclEmuToHmm( aPos.Y ) ); - aShapeProp.setProperty( PROP_Anchor, getFromCell() ); } } diff --git a/sc/source/filter/oox/drawingfragment.cxx b/sc/source/filter/oox/drawingfragment.cxx index 012c9a1..f041287 100644 --- a/sc/source/filter/oox/drawingfragment.cxx +++ b/sc/source/filter/oox/drawingfragment.cxx @@ -614,12 +614,7 @@ Reference< XShape > VmlDrawing::createAndInsertClientXShape( const ::oox::vml::S getBaseFilter().getVbaProject().registerMacroAttacher( xAttacher ); } } - if ( !pClientData->maAnchor.isEmpty() ) - { - ShapeAnchor aAnchor( *this ); - aAnchor.importVmlAnchor( pClientData->maAnchor ); - aAnchor.applyToXShape( xShape ); - } + return xShape; } } diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index ec1ec10..a1e7a1e 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -194,6 +194,55 @@ const SfxItemPropertyMapEntry* lcl_GetRowsPropertyMap() return aRowsPropertyMap_Impl; } +struct OrientationInfo +{ + OrientationInfo() : mnVert( 0 ), mnHori( 0 ) {} + uno::Reference< beans::XPropertySet > mxShape; + sal_Int32 mnVert; + sal_Int32 mnHori; +}; + +void lcl_captureShapeOrientationInfo( std::vector< OrientationInfo >& infos, ScModelObj& rModel ) +{ + rtl::OUString sHori( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_HORIPOS ) ); + rtl::OUString sVert( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_VERTPOS ) ); + + uno::Reference<container::XIndexAccess> xPages( rModel.getDrawPages(), uno::UNO_QUERY ); + if ( xPages.is() ) + { + for ( sal_Int32 nIndex = 0, nPages = xPages->getCount(); nIndex < nPages; ++nIndex ) + { + uno::Reference<container::XIndexAccess> xShapes( xPages->getByIndex( nIndex ), uno::UNO_QUERY ); + for ( sal_Int32 nShapeIndex = 0, nShapes = xShapes->getCount(); nShapeIndex < nShapes; ++nShapeIndex ) + { + uno::Reference< beans::XPropertySet > xShape( xShapes->getByIndex( nShapeIndex ), uno::UNO_QUERY ); + uno::Reference< table::XCell > xCell( xShape->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_ANCHOR ) ) ), uno::UNO_QUERY ); + // only capture orientation if the shape is anchored to cell + if ( xShape.is() && xCell.is() ) + { + uno::Reference< beans::XPropertySetInfo > xPropInfo = xShape->getPropertySetInfo(); + if ( xPropInfo.is() && xPropInfo->hasPropertyByName( sHori ) && xPropInfo->hasPropertyByName( sVert ) ) + { + OrientationInfo aShape; + aShape.mxShape = xShape; + xShape->getPropertyValue( sHori ) >>= aShape.mnHori; + xShape->getPropertyValue( sVert ) >>= aShape.mnVert; + infos.push_back( aShape ); + } + } + } + } + } +} + +void lcl_applyShapeOrientationInfo( std::vector< OrientationInfo >& infos ) +{ + for ( std::vector< OrientationInfo >::iterator it = infos.begin(), it_end = infos.end(); it != it_end; ++it ) + { + it->mxShape->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_HORIPOS ) ), uno::makeAny( it->mnHori ) ); + it->mxShape->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_VERTPOS ) ), uno::makeAny( it->mnVert ) ); + } +} using sc::HMMToTwips; using sc::TwipsToHMM; @@ -1690,19 +1739,13 @@ void SAL_CALL ScModelObj::setPropertyValue( // during import ( e.g. oox ) shapes anchored by cell lose // any additional Hori/Vert orientation ( which offsets the // shape position relative to the cell ) when - // UpdateAllRowHeights is called. Here we save Hori/Vert - // values before calling UpdateAllRowHeights. Also due to - // differences between the drawing layer and gridwindow - // position calculations we actually can't reliably use cell - // anchoring so we need to remove the cell anchoring, custom - // calculate where the view would position the shape and - // then position the shape absolutely at the newly - // calculated postion. + // UpdateAllRowHeights is called. Save Hori/Vert values + // before calling UpdateAllRowHeights and re-apply them + // after std::vector< OrientationInfo > savedOrientations; - uno::Reference< frame::XModel > xModel( this ); - ScGlobal::CaptureShapeOrientationInfo( savedOrientations, xModel ); + lcl_captureShapeOrientationInfo( savedOrientations, *this ); pDocShell->UpdateAllRowHeights(); - ScGlobal::ApplyShapeOrientationInfo( savedOrientations, xModel, *pDoc ); + lcl_applyShapeOrientationInfo( savedOrientations ); } } } diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 71877e8..b09c188 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -2486,8 +2486,7 @@ void ScViewData::ReadExtOptions( const ScExtDocOptions& rDocOpt ) /* Width of the tabbar, relative to frame window width. We do not have the correct width of the frame window here -> store in ScTabView, which sets the size in the next resize. */ - if ( pView ) - pView->SetPendingRelTabBarWidth( rDocSett.mfTabBarWidth ); + pView->SetPendingRelTabBarWidth( rDocSett.mfTabBarWidth ); // sheet settings for( SCTAB nTab = 0; nTab < static_cast<SCTAB>(maTabData.size()); ++nTab ) @@ -2790,12 +2789,12 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> nTabNo = nTab; } } - else if (pView && sName.compareToAscii(SC_HORIZONTALSCROLLBARWIDTH) == 0) + else if (sName.compareToAscii(SC_HORIZONTALSCROLLBARWIDTH) == 0) { if (rSettings[i].Value >>= nTemp32) pView->SetTabBarWidth(nTemp32); } - else if (pView && sName.compareToAscii(SC_RELHORIZONTALTABBARWIDTH) == 0 ) + else if (sName.compareToAscii(SC_RELHORIZONTALTABBARWIDTH) == 0) { double fWidth = 0.0; if (rSettings[i].Value >>= fWidth) commit 72268157aec5af91c0474d11cb4cf433a743d249 Author: Noel Power <noel.po...@novell.com> Date: Thu May 24 16:49:47 2012 +0100 Revert "(reworked )reorg. code a little so ole controls are catered for wrt fdo#49430" This reverts commit da81525ec2e86364def8b558e16c4e8eca6a121e. diff --git a/sc/source/filter/oox/drawingfragment.cxx b/sc/source/filter/oox/drawingfragment.cxx index 977c8de..012c9a1 100644 --- a/sc/source/filter/oox/drawingfragment.cxx +++ b/sc/source/filter/oox/drawingfragment.cxx @@ -614,6 +614,12 @@ Reference< XShape > VmlDrawing::createAndInsertClientXShape( const ::oox::vml::S getBaseFilter().getVbaProject().registerMacroAttacher( xAttacher ); } } + if ( !pClientData->maAnchor.isEmpty() ) + { + ShapeAnchor aAnchor( *this ); + aAnchor.importVmlAnchor( pClientData->maAnchor ); + aAnchor.applyToXShape( xShape ); + } return xShape; } } @@ -631,12 +637,6 @@ void VmlDrawing::notifyXShapeInserted( const Reference< XShape >& rxShape, // convert settings from VML client data if( const ::oox::vml::ClientData* pClientData = rShape.getClientData() ) { - if ( !pClientData->maAnchor.isEmpty() ) - { - ShapeAnchor aAnchor( *this ); - aAnchor.importVmlAnchor( pClientData->maAnchor ); - aAnchor.applyToXShape( rxShape ); - } // specific settings for embedded form controls try { commit dcded0a732b7e3f6905efd9b04323132c3263890 Author: Noel Power <noel.po...@novell.com> Date: Thu May 24 16:49:38 2012 +0100 Revert "WaE: variables set but unused" This reverts commit d0dcf1d65c79c4c607a1ac24c0c57f4b1a935294. diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx index 6ecf6ec..c92238d 100644 --- a/sc/source/core/data/global.cxx +++ b/sc/source/core/data/global.cxx @@ -1283,11 +1283,13 @@ void ScGlobal::ApplyShapeOrientationInfo( std::vector< OrientationInfo >& infos, for ( int i = 0; i < it->maAddress.Column; ++i ) { long nTwip = aViewData.GetDocument()->GetColWidth( i, it->maAddress.Sheet ); + Point aTmpPos = pDevice->LogicToPixel( Point( nTwip, nTwip ), aTmpMode ); nWidth += ( nTwip * aViewData.GetPPTX() ); } for ( int i = 0; i < it->maAddress.Row; ++i ) { long nTwip = aViewData.GetDocument()->GetRowHeight( i, it->maAddress.Sheet ); + Point aTmpPos = pDevice->LogicToPixel( Point( nTwip, nTwip ), aTmpMode ); nHeight += ( nTwip * aViewData.GetPPTY() ); } commit 67cb0840649335ede2aedd64a80d8a4305dd6919 Author: Noel Power <noel.po...@novell.com> Date: Thu May 24 14:48:16 2012 +0100 Revert "Fixed #i116848# Shapes are at wrong position" This reverts commit 31012ab9d7035f942486c87ecc1a79b4d6579975. diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx index 56e0ec4..2bf5be3 100644 --- a/sc/source/ui/view/drawvie4.cxx +++ b/sc/source/ui/view/drawvie4.cxx @@ -243,7 +243,7 @@ void ScDrawView::CalcNormScale( Fraction& rFractX, Fraction& rFractY ) const if (nEndCol<20) nEndCol = 20; if (nEndRow<20) - nEndRow = 20; + nEndRow = 1000; Fraction aZoom(1,1); ScDrawUtil::CalcScale( pDoc, nTab, 0,0, nEndCol,nEndRow, pDev, aZoom,aZoom, diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx index 27beef2..cf9def2 100644 --- a/sc/source/ui/view/drawview.cxx +++ b/sc/source/ui/view/drawview.cxx @@ -329,7 +329,7 @@ void ScDrawView::RecalcScale() if (nEndCol<20) nEndCol = 20; if (nEndRow<20) - nEndRow = 20; // #i116848# instead of a large row number for an empty sheet, heights are multiplied in CalcScale + nEndRow = 1000; ScDrawUtil::CalcScale( pDoc, nTab, 0,0, nEndCol,nEndRow, pDev,aZoomX,aZoomY,nPPTX,nPPTY, aScaleX,aScaleY ); diff --git a/sc/source/ui/view/gridwin3.cxx b/sc/source/ui/view/gridwin3.cxx index a071561..228bdd3 100644 --- a/sc/source/ui/view/gridwin3.cxx +++ b/sc/source/ui/view/gridwin3.cxx @@ -264,7 +264,7 @@ MapMode ScGridWindow::GetDrawMapMode( bool bForce ) SCROW nEndRow = 0; pDoc->GetTableArea( nTab, nEndCol, nEndRow ); if (nEndCol<20) nEndCol = 20; - if (nEndRow<20) nEndRow = 20; + if (nEndRow<20) nEndRow = 1000; ScDrawUtil::CalcScale( pDoc, nTab, 0,0, nEndCol,nEndRow, this, pViewData->GetZoomX(),pViewData->GetZoomY(), pViewData->GetPPTX(),pViewData->GetPPTY(), commit 2f242021fc91ed445d9df9e1e31953b1dc0016c3 Author: Noel Power <noel.po...@novell.com> Date: Thu May 24 14:47:41 2012 +0100 Revert "calc69: #i118068# handle all-hidden case in ScDrawUtil::CalcScale" This reverts commit 8a838b9fbf46ece9680824cd3a044ab7338bf306. diff --git a/sc/source/ui/view/drawutil.cxx b/sc/source/ui/view/drawutil.cxx index bebde55..c4112ae 100644 --- a/sc/source/ui/view/drawutil.cxx +++ b/sc/source/ui/view/drawutil.cxx @@ -80,18 +80,6 @@ void ScDrawUtil::CalcScale( ScDocument* pDoc, SCTAB nTab, nPixelY += ScViewData::ToPixel(nHeight, nPPTY); } - // #i116848# To get a large-enough number for PixelToLogic, multiply the integer values - // instead of using a larger number of rows - if ( nTwipsY ) - { - long nMultiply = 2000000 / nTwipsY; - if ( nMultiply > 1 ) - { - nTwipsY *= nMultiply; - nPixelY *= nMultiply; - } - } - MapMode aHMMMode( MAP_100TH_MM, Point(), rZoomX, rZoomY ); Point aPixelLog = pDev->PixelToLogic( Point( nPixelX,nPixelY ), aHMMMode ); commit 1c9f15711c99200f72759b58177792961a69b915 Author: Caolán McNamara <caol...@redhat.com> Date: Fri May 25 11:28:55 2012 +0100 add a little devtool to list the languages supported for spellchecking Change-Id: Iad21ad040e797690a80f94e2eec8e38b8bffadb2 diff --git a/Repository.mk b/Repository.mk index a7d7e53..ebefb94 100644 --- a/Repository.mk +++ b/Repository.mk @@ -98,6 +98,7 @@ $(eval $(call gb_Helper_register_executables,OOO,\ gengal \ guiloader \ guistdio \ + langsupport \ odbcconfig \ officeloader \ quickstart \ @@ -127,6 +128,7 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ else $(eval $(call gb_Helper_register_executables,OOO,\ + langsupport \ soffice.bin \ unopkg.bin \ gengal.bin \ diff --git a/svtools/Executable_langsupport.mk b/svtools/Executable_langsupport.mk new file mode 100644 index 0000000..5e3f11c --- /dev/null +++ b/svtools/Executable_langsupport.mk @@ -0,0 +1,61 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# Major Contributor(s): +# Copyright (C) 2012 Red Hat, Inc., Caolán McNamara <caol...@redhat.com> +# (initial developer) +# +# All Rights Reserved. +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +$(eval $(call gb_Executable_Executable,langsupport)) + +$(eval $(call gb_Executable_set_targettype_gui,langsupport,YES)) + +$(eval $(call gb_Executable_set_include,langsupport,\ + $$(INCLUDE) \ + -I$(SRCDIR)/svtools/inc \ + -I$(SRCDIR)/svtools/inc/svtools \ + -I$(SRCDIR)/svtools/source/inc \ +)) + +$(eval $(call gb_Executable_use_api,langsupport,\ + udkapi \ + offapi \ +)) + +$(eval $(call gb_Executable_use_libraries,langsupport,\ + comphelper \ + cppu \ + cppuhelper \ + i18nisolang1 \ + sal \ + svt \ + tl \ + ucbhelper \ + vcl \ + $(gb_STDLIBS) \ +)) + +$(eval $(call gb_Executable_add_exception_objects,langsupport,\ + svtools/langsupport/langsupport \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/svtools/Module_svtools.mk b/svtools/Module_svtools.mk index 2b0c9c8..c7f1122 100644 --- a/svtools/Module_svtools.mk +++ b/svtools/Module_svtools.mk @@ -41,6 +41,13 @@ $(eval $(call gb_Module_add_targets,svtools,\ Executable_bmpsum \ Executable_g2g \ )) + +ifeq ($(GUI),UNX) +$(eval $(call gb_Module_add_targets,svtools,\ + Executable_langsupport \ +)) +endif + endif $(eval $(call gb_Module_add_check_targets,svtools,\ diff --git a/svtools/langsupport/langsupport.cxx b/svtools/langsupport/langsupport.cxx new file mode 100644 index 0000000..1728fd1 --- /dev/null +++ b/svtools/langsupport/langsupport.cxx @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Initial Developer of the Original Code is + * Caolán McNamara <caol...@redhat.com> + * Portions created by the Initial Developer are Copyright (C) 2011 the + * Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Caolán McNamara <caol...@redhat.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <comphelper/processfactory.hxx> +#include <cppuhelper/bootstrap.hxx> +#include <i18npool/mslangid.hxx> +#include <sal/main.h> +#include <svtools/langtab.hxx> +#include <tools/extendapplicationenvironment.hxx> +#include <ucbhelper/contentbroker.hxx> +#include <vcl/svapp.hxx> +#include <iostream> + +using namespace com::sun::star; + +SAL_IMPLEMENT_MAIN() +{ + tools::extendApplicationEnvironment(); + + uno::Reference<uno::XComponentContext> xContext = + cppu::defaultBootstrap_InitialComponentContext(); + + uno::Reference<lang::XMultiComponentFactory> xFactory = + xContext->getServiceManager(); + + uno::Reference<lang::XMultiServiceFactory> xSFactory(xFactory, + uno::UNO_QUERY_THROW); + + comphelper::setProcessServiceFactory(xSFactory); + + InitVCL(xSFactory); + + { + SvtLanguageTable aTable; + + sal_uInt32 nCount = aTable.GetEntryCount(); + for (sal_uInt32 i = 0; i < nCount; ++i) + { + LanguageType eLang = aTable.GetTypeAtIndex(i); + + if (eLang >= LANGUAGE_USER1 && eLang <= LANGUAGE_USER9) + continue; + + if (eLang == LANGUAGE_DONTKNOW || + eLang == LANGUAGE_NONE || + eLang == LANGUAGE_HID_HUMAN_INTERFACE_DEVICE || + eLang == LANGUAGE_SYSTEM) + { + continue; + } + + lang::Locale aLocale; + + MsLangId::convertLanguageToLocale(eLang, aLocale); + + rtl::OUStringBuffer aBuf(aLocale.Language); + if (!aLocale.Country.isEmpty()) + aBuf.append('-').append(aLocale.Country); + rtl::OUString sTag = aBuf.makeStringAndClear(); + + std::cout << rtl::OUStringToOString(sTag, osl_getThreadTextEncoding()).getStr() + << std::endl; + } + } + + DeInitVCL(); + + uno::Reference< lang::XComponent >(xContext, uno::UNO_QUERY_THROW)->dispose(); + + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 938e7282ee34773e3d437c0692371707160b5e52 Author: Caolán McNamara <caol...@redhat.com> Date: Fri May 25 10:26:18 2012 +0100 drop dead makefile.mk and version.map Change-Id: I2a15f9685655b7c46893fcfe2d1ae102596522ca diff --git a/svl/qa/unit/makefile.mk b/svl/qa/unit/makefile.mk deleted file mode 100644 index 25ceb7a..0000000 --- a/svl/qa/unit/makefile.mk +++ /dev/null @@ -1,95 +0,0 @@ -# -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Initial Developer of the Original Code is -# Novell, Inc. -# Portions created by the Initial Developer are Copyright (C) 2010 the -# Initial Developer. All Rights Reserved. -# -# Contributor(s): -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. -# - -PRJ=..$/.. -PRJNAME=svl -TARGET=qa_unit - -ENABLE_EXCEPTIONS=TRUE - -.INCLUDE : settings.mk - -CFLAGSCXX += $(CPPUNIT_CFLAGS) -I../../inc - -SHL1TARGET = $(TARGET) -SHL1OBJS = $(SLO)$/svl.obj -SHL1STDLIBS= \ - $(UNOTOOLSLIB) \ - $(SVLLIB) \ - $(TOOLSLIB) \ - $(I18NISOLANGLIB) \ - $(UCBHELPERLIB) \ - $(COMPHELPERLIB) \ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SOTLIB) \ - $(SALLIB) \ - $(CPPUNITLIB) - -SHL1IMPLIB = i$(SHL1TARGET) -DEF1NAME = $(SHL1TARGET) -SHL1VERSIONMAP=version.map - -.INCLUDE: target.mk - -.IF "$(OS)" == "WNT" -my_file = file:/// -.ELSE -my_file = file:// -.END - -ALLTAR: test - -$(MISC)$/$(TARGET)$/types.rdb .ERRREMOVE : $(SOLARBINDIR)$/types.rdb - $(MKDIRHIER) $(@:d) - $(GNUCOPY) $? $@ - -$(MISC)/$(TARGET)/udkapi.rdb .ERRREMOVE : $(SOLARBINDIR)$/udkapi.rdb - $(MKDIRHIER) $(@:d) - $(GNUCOPY) $? $@ - -#Make a services.rdb with the services we know we need to get up and running -$(MISC)/$(TARGET)/services.rdb .ERRREMOVE : $(MISC)/$(TARGET)/udkapi.rdb makefile.mk - $(MKDIRHIER) $(@:d) - $(REGCOMP) -register -br $(MISC)/$(TARGET)/udkapi.rdb -r $@ -wop \ - -c i18npool.uno$(DLLPOST) - -#Tweak things so that we use the .res files in the solver -STAR_RESOURCEPATH:=$(PWD)/$(BIN)$(PATH_SEPERATOR)$(SOLARBINDIR) -.EXPORT : STAR_RESOURCEPATH - -test .PHONY: $(SHL1TARGETN) $(MISC)/$(TARGET)/services.rdb $(MISC)$/$(TARGET)$/types.rdb $(MISC)/$(TARGET)/udkapi.rdb - @echo ---------------------------------------------------------- - @echo - start unit test \#1 on library $(SHL1TARGETN) - @echo In the environment: STAR_RESOURCEPATH=$$STAR_RESOURCEPATH - @echo ---------------------------------------------------------- - $(CPPUNITTESTER) $(SHL1TARGETN) \ - -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \ - -env:UNO_TYPES="$(my_file)$(PWD)/$(MISC)/$(TARGET)/types.rdb $(my_file)$(PWD)/$(MISC)/$(TARGET)/udkapi.rdb" \ - -env:BRAND_BASE_DIR="$(my_file)$(PWD)/$(MISC)/$(TARGET)" \ - -env:UNO_USER_PACKAGES_CACHE="$(my_file)$(PWD)/$(MISC)/$(TARGET)" diff --git a/svl/qa/unit/version.map b/svl/qa/unit/version.map deleted file mode 100644 index 3308588..0000000 --- a/svl/qa/unit/version.map +++ /dev/null @@ -1,34 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -UDK_3_0_0 { - global: - cppunitTestPlugIn; - - local: - *; -};
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits