diff options
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/core/data/docpool.cxx | 8 | ||||
-rw-r--r-- | sc/source/core/data/dpgroup.cxx | 41 | ||||
-rw-r--r--[-rwxr-xr-x] | sc/source/core/data/dpobject.cxx | 5 | ||||
-rw-r--r--[-rwxr-xr-x] | sc/source/core/data/dpoutput.cxx | 160 | ||||
-rw-r--r--[-rwxr-xr-x] | sc/source/core/data/dptabdat.cxx | 10 | ||||
-rw-r--r--[-rwxr-xr-x] | sc/source/core/data/dptabres.cxx | 15 | ||||
-rw-r--r-- | sc/source/core/data/table4.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/table5.cxx | 21 | ||||
-rw-r--r-- | sc/source/filter/excel/excdoc.cxx | 3 | ||||
-rwxr-xr-x | sc/source/filter/excel/xichart.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/xml/XMLExportDataPilot.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlexprt.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlimprt.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlstyle.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/app/inputhdl.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/app/makefile.mk | 2 | ||||
-rw-r--r-- | sc/source/ui/cctrl/makefile.mk | 1 | ||||
-rw-r--r-- | sc/source/ui/drawfunc/makefile.mk | 4 | ||||
-rw-r--r-- | sc/source/ui/inc/spelldialog.hxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/spelldialog.cxx | 6 |
20 files changed, 153 insertions, 148 deletions
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx index d6aa91efcca6..cd763cfc0787 100644 --- a/sc/source/core/data/docpool.cxx +++ b/sc/source/core/data/docpool.cxx @@ -705,7 +705,7 @@ SfxItemPresentation lcl_HFPresentation nTmp = rLRItem.GetRight(); nRightMargin = nTmp < 0 ? 0 : USHORT(nTmp); - aText = SVX_RESSTR(RID_SVXITEMS_LRSPACE_LEFT); + aText = EE_RESSTR(RID_SVXITEMS_LRSPACE_LEFT); if ( 100 != nPropLeftMargin ) { aText += String::CreateFromInt32( nPropLeftMargin ); @@ -715,13 +715,13 @@ SfxItemPresentation lcl_HFPresentation { aText += GetMetricText( (long)nLeftMargin, eCoreMetric, ePresentationMetric, pIntl ); - aText += SVX_RESSTR(GetMetricId(ePresentationMetric)); + aText += EE_RESSTR(GetMetricId(ePresentationMetric)); } aText += cpDelim; // nPropFirstLineOfst haben wir nicht - aText += SVX_RESSTR(RID_SVXITEMS_LRSPACE_RIGHT); + aText += EE_RESSTR(RID_SVXITEMS_LRSPACE_RIGHT); if ( 100 != nPropRightMargin ) { aText += String::CreateFromInt32( nPropRightMargin ); @@ -731,7 +731,7 @@ SfxItemPresentation lcl_HFPresentation { aText += GetMetricText( (long)nRightMargin, eCoreMetric, ePresentationMetric, pIntl ); - aText += SVX_RESSTR(GetMetricId(ePresentationMetric)); + aText += EE_RESSTR(GetMetricId(ePresentationMetric)); } } break; diff --git a/sc/source/core/data/dpgroup.cxx b/sc/source/core/data/dpgroup.cxx index e71ec5c8b82c..edb3b787b9b2 100644 --- a/sc/source/core/data/dpgroup.cxx +++ b/sc/source/core/data/dpgroup.cxx @@ -1324,13 +1324,9 @@ void ScDPGroupTableData::GetDrillDownData(const vector<ScDPCacheTable::Criterion void ScDPGroupTableData::CalcResults(CalcInfo& rInfo, bool bAutoShow) { - // This CalcInfo instance is used only to retrive data from the original - // data source. - CalcInfo aInfoSrc = rInfo; - CopyFields(rInfo.aColLevelDims, aInfoSrc.aColLevelDims); - CopyFields(rInfo.aRowLevelDims, aInfoSrc.aRowLevelDims); - CopyFields(rInfo.aPageDims, aInfoSrc.aPageDims); - CopyFields(rInfo.aDataSrcCols, aInfoSrc.aDataSrcCols); + // #i111435# Inside FillRowDataFromCacheTable/GetItemData, virtual methods + // getIsDataLayoutDimension and GetSourceDim are used, so it has to be called + // with original rInfo, containing dimension indexes of the grouped data. const ScDPCacheTable& rCacheTable = pSourceData->GetCacheTable(); sal_Int32 nRowSize = rCacheTable.getRowSize(); @@ -1340,7 +1336,7 @@ void ScDPGroupTableData::CalcResults(CalcInfo& rInfo, bool bAutoShow) continue; CalcRowData aData; - FillRowDataFromCacheTable(nRow, rCacheTable, aInfoSrc, aData); + FillRowDataFromCacheTable(nRow, rCacheTable, rInfo, aData); if ( !rInfo.aColLevelDims.empty() ) FillGroupValues(&aData.aColData[0], rInfo.aColLevelDims.size(), &rInfo.aColLevelDims[0]); @@ -1358,35 +1354,6 @@ const ScDPCacheTable& ScDPGroupTableData::GetCacheTable() const return pSourceData->GetCacheTable(); } -void ScDPGroupTableData::CopyFields(const vector<long>& rFieldDims, vector<long>& rNewFieldDims) -{ - size_t nCount = rFieldDims.size(); - if (!nCount) - return; - - long nGroupedColumns = aGroups.size(); - - rNewFieldDims.clear(); - rNewFieldDims.reserve(nCount); - for (size_t i = 0; i < nCount; ++i) - { - if ( rFieldDims[i] >= nSourceCount ) - { - if ( rFieldDims[i] == nSourceCount + nGroupedColumns ) - // data layout in source - rNewFieldDims.push_back(nSourceCount); - else - { - // original dimension - long n = rFieldDims[i] - nSourceCount; - rNewFieldDims.push_back(aGroups[n].GetSourceDim()); - } - } - else - rNewFieldDims.push_back(rFieldDims[i]); - } -} - void ScDPGroupTableData::FillGroupValues( /*ScDPItemData* pItemData*/ SCROW* pItemDataIndex, long nCount, const long* pDims ) { long nGroupedColumns = aGroups.size(); diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx index 44c998fb4ede..5394605969d0 100755..100644 --- a/sc/source/core/data/dpobject.cxx +++ b/sc/source/core/data/dpobject.cxx @@ -623,6 +623,11 @@ void ScDPObject::BuildAllDimensionMembers() if (!pSaveData) return; + // #i111857# don't always create empty mpTableData for external service. + // Ideally, xSource should be used instead of mpTableData. + if (pServDesc) + return; + pSaveData->BuildAllDimensionMembers(GetTableData()); } diff --git a/sc/source/core/data/dpoutput.cxx b/sc/source/core/data/dpoutput.cxx index ec384874aa69..91688c6c0e2a 100755..100644 --- a/sc/source/core/data/dpoutput.cxx +++ b/sc/source/core/data/dpoutput.cxx @@ -1087,6 +1087,72 @@ bool ScDPOutput::GetHeaderLayout() const return mbHeaderLayout; } +void lcl_GetTableVars( sal_Int32& rGrandTotalCols, sal_Int32& rGrandTotalRows, sal_Int32& rDataLayoutIndex, + std::vector<String>& rDataNames, std::vector<String>& rGivenNames, + sheet::DataPilotFieldOrientation& rDataOrient, + const uno::Reference<sheet::XDimensionsSupplier>& xSource ) +{ + rDataLayoutIndex = -1; // invalid + rGrandTotalCols = 0; + rGrandTotalRows = 0; + rDataOrient = sheet::DataPilotFieldOrientation_HIDDEN; + + uno::Reference<beans::XPropertySet> xSrcProp( xSource, uno::UNO_QUERY ); + BOOL bColGrand = ScUnoHelpFunctions::GetBoolProperty( xSrcProp, + rtl::OUString::createFromAscii(DP_PROP_COLUMNGRAND) ); + if ( bColGrand ) + rGrandTotalCols = 1; // default if data layout not in columns + + BOOL bRowGrand = ScUnoHelpFunctions::GetBoolProperty( xSrcProp, + rtl::OUString::createFromAscii(DP_PROP_ROWGRAND) ); + if ( bRowGrand ) + rGrandTotalRows = 1; // default if data layout not in rows + + if ( xSource.is() ) + { + // find index and orientation of "data layout" dimension, count data dimensions + + sal_Int32 nDataCount = 0; + + uno::Reference<container::XIndexAccess> xDims = new ScNameToIndexAccess( xSource->getDimensions() ); + long nDimCount = xDims->getCount(); + for (long nDim=0; nDim<nDimCount; nDim++) + { + uno::Reference<uno::XInterface> xDim = + ScUnoHelpFunctions::AnyToInterface( xDims->getByIndex(nDim) ); + uno::Reference<beans::XPropertySet> xDimProp( xDim, uno::UNO_QUERY ); + if ( xDimProp.is() ) + { + sheet::DataPilotFieldOrientation eDimOrient = + (sheet::DataPilotFieldOrientation) ScUnoHelpFunctions::GetEnumProperty( + xDimProp, rtl::OUString::createFromAscii(DP_PROP_ORIENTATION), + sheet::DataPilotFieldOrientation_HIDDEN ); + if ( ScUnoHelpFunctions::GetBoolProperty( xDimProp, + rtl::OUString::createFromAscii(DP_PROP_ISDATALAYOUT) ) ) + { + rDataLayoutIndex = nDim; + rDataOrient = eDimOrient; + } + if ( eDimOrient == sheet::DataPilotFieldOrientation_DATA ) + { + String aSourceName; + String aGivenName; + ScDPOutput::GetDataDimensionNames( aSourceName, aGivenName, xDim ); + rDataNames.push_back( aSourceName ); + rGivenNames.push_back( aGivenName ); + + ++nDataCount; + } + } + } + + if ( ( rDataOrient == sheet::DataPilotFieldOrientation_COLUMN ) && bColGrand ) + rGrandTotalCols = nDataCount; + else if ( ( rDataOrient == sheet::DataPilotFieldOrientation_ROW ) && bRowGrand ) + rGrandTotalRows = nDataCount; + } +} + void ScDPOutput::GetPositionData(const ScAddress& rPos, DataPilotTablePositionData& rPosData) { using namespace ::com::sun::star::sheet; @@ -1207,15 +1273,14 @@ bool ScDPOutput::GetDataResultPositionData(vector<sheet::DataPilotFieldFilter>& // No data field is present in this datapilot table. return false; - bool bColGrand = bool(); - any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii(SC_UNO_COLGRAND)); - if (!(any >>= bColGrand)) - return false; - - bool bRowGrand = bool(); - any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii(SC_UNO_ROWGRAND)); - if (!(any >>= bRowGrand)) - return false; + // #i111421# use lcl_GetTableVars for correct size of totals and data layout position + sal_Int32 nGrandTotalCols; + sal_Int32 nGrandTotalRows; + sal_Int32 nDataLayoutIndex; + std::vector<String> aDataNames; + std::vector<String> aGivenNames; + sheet::DataPilotFieldOrientation eDataOrient; + lcl_GetTableVars( nGrandTotalCols, nGrandTotalRows, nDataLayoutIndex, aDataNames, aGivenNames, eDataOrient, xSource ); SCCOL nCol = rPos.Col(); SCROW nRow = rPos.Row(); @@ -1232,12 +1297,16 @@ bool ScDPOutput::GetDataResultPositionData(vector<sheet::DataPilotFieldFilter>& return false; } - bool bFilterByCol = !(bColGrand && (nCol == nTabEndCol)); - bool bFilterByRow = !(bRowGrand && (nRow == nTabEndRow)); + bool bFilterByCol = (nCol <= static_cast<SCCOL>(nTabEndCol - nGrandTotalCols)); + bool bFilterByRow = (nRow <= static_cast<SCROW>(nTabEndRow - nGrandTotalRows)); // column fields for (SCCOL nColField = 0; nColField < nColFieldCount && bFilterByCol; ++nColField) { + if (pColFields[nColField].nDim == nDataLayoutIndex) + // There is no sense including the data layout field for filtering. + continue; + sheet::DataPilotFieldFilter filter; filter.FieldName = pColFields[nColField].maName; @@ -1256,10 +1325,9 @@ bool ScDPOutput::GetDataResultPositionData(vector<sheet::DataPilotFieldFilter>& } // row fields - bool bDataLayoutExists = (nDataFieldCount > 1); for (SCROW nRowField = 0; nRowField < nRowFieldCount && bFilterByRow; ++nRowField) { - if (bDataLayoutExists && nRowField == nRowFieldCount - 1) + if (pRowFields[nRowField].nDim == nDataLayoutIndex) // There is no sense including the data layout field for filtering. continue; @@ -1643,72 +1711,6 @@ void ScDPOutput::GetDataDimensionNames( String& rSourceName, String& rGivenName, } } -void lcl_GetTableVars( sal_Int32& rGrandTotalCols, sal_Int32& rGrandTotalRows, sal_Int32& rDataLayoutIndex, - std::vector<String>& rDataNames, std::vector<String>& rGivenNames, - sheet::DataPilotFieldOrientation& rDataOrient, - const uno::Reference<sheet::XDimensionsSupplier>& xSource ) -{ - rDataLayoutIndex = -1; // invalid - rGrandTotalCols = 0; - rGrandTotalRows = 0; - rDataOrient = sheet::DataPilotFieldOrientation_HIDDEN; - - uno::Reference<beans::XPropertySet> xSrcProp( xSource, uno::UNO_QUERY ); - BOOL bColGrand = ScUnoHelpFunctions::GetBoolProperty( xSrcProp, - rtl::OUString::createFromAscii(DP_PROP_COLUMNGRAND) ); - if ( bColGrand ) - rGrandTotalCols = 1; // default if data layout not in columns - - BOOL bRowGrand = ScUnoHelpFunctions::GetBoolProperty( xSrcProp, - rtl::OUString::createFromAscii(DP_PROP_ROWGRAND) ); - if ( bRowGrand ) - rGrandTotalRows = 1; // default if data layout not in rows - - if ( xSource.is() ) - { - // find index and orientation of "data layout" dimension, count data dimensions - - sal_Int32 nDataCount = 0; - - uno::Reference<container::XIndexAccess> xDims = new ScNameToIndexAccess( xSource->getDimensions() ); - long nDimCount = xDims->getCount(); - for (long nDim=0; nDim<nDimCount; nDim++) - { - uno::Reference<uno::XInterface> xDim = - ScUnoHelpFunctions::AnyToInterface( xDims->getByIndex(nDim) ); - uno::Reference<beans::XPropertySet> xDimProp( xDim, uno::UNO_QUERY ); - if ( xDimProp.is() ) - { - sheet::DataPilotFieldOrientation eDimOrient = - (sheet::DataPilotFieldOrientation) ScUnoHelpFunctions::GetEnumProperty( - xDimProp, rtl::OUString::createFromAscii(DP_PROP_ORIENTATION), - sheet::DataPilotFieldOrientation_HIDDEN ); - if ( ScUnoHelpFunctions::GetBoolProperty( xDimProp, - rtl::OUString::createFromAscii(DP_PROP_ISDATALAYOUT) ) ) - { - rDataLayoutIndex = nDim; - rDataOrient = eDimOrient; - } - if ( eDimOrient == sheet::DataPilotFieldOrientation_DATA ) - { - String aSourceName; - String aGivenName; - ScDPOutput::GetDataDimensionNames( aSourceName, aGivenName, xDim ); - rDataNames.push_back( aSourceName ); - rGivenNames.push_back( aGivenName ); - - ++nDataCount; - } - } - } - - if ( ( rDataOrient == sheet::DataPilotFieldOrientation_COLUMN ) && bColGrand ) - rGrandTotalCols = nDataCount; - else if ( ( rDataOrient == sheet::DataPilotFieldOrientation_ROW ) && bRowGrand ) - rGrandTotalRows = nDataCount; - } -} - // Returns TRUE on success and stores the result in rTarget // Returns FALSE if rFilters or rTarget describes something that is not visible BOOL ScDPOutput::GetPivotData( ScDPGetPivotDataField& rTarget, diff --git a/sc/source/core/data/dptabdat.cxx b/sc/source/core/data/dptabdat.cxx index cff18ef925d9..cb68732a237f 100755..100644 --- a/sc/source/core/data/dptabdat.cxx +++ b/sc/source/core/data/dptabdat.cxx @@ -169,13 +169,19 @@ void ScDPTableData::FillRowDataFromCacheTable(sal_Int32 nRow, const ScDPCacheTab // page dimensions GetItemData(rCacheTable, nRow, rInfo.aPageDims, rData.aPageData); + long nCacheColumnCount = rCacheTable.GetCache()->GetColumnCount(); sal_Int32 n = rInfo.aDataSrcCols.size(); for (sal_Int32 i = 0; i < n; ++i) { long nDim = rInfo.aDataSrcCols[i]; rData.aValues.push_back( ScDPValueData() ); - ScDPValueData& rVal = rData.aValues.back(); - rCacheTable.getValue( rVal, static_cast<SCCOL>(nDim), static_cast<SCROW>(nRow), false); + // #i111435# GetItemData needs dimension indexes including groups, + // so the index must be checked here (groups aren't useful as data fields). + if ( nDim < nCacheColumnCount ) + { + ScDPValueData& rVal = rData.aValues.back(); + rCacheTable.getValue( rVal, static_cast<SCCOL>(nDim), static_cast<SCROW>(nRow), false); + } } } diff --git a/sc/source/core/data/dptabres.cxx b/sc/source/core/data/dptabres.cxx index af8b74d546a8..c79f7c1b17a6 100755..100644 --- a/sc/source/core/data/dptabres.cxx +++ b/sc/source/core/data/dptabres.cxx @@ -1153,11 +1153,16 @@ void ScDPResultMember::LateInitFrom( LateInitParams& rParams/*const vector<ScDPD { if ( rParams.GetDim( nPos ) ->getIsDataLayoutDimension() ) { - if ( !pChildDimension ) - pChildDimension = new ScDPResultDimension( pResultData ); - rParams.SetInitChild( FALSE ); - pChildDimension->LateInitFrom( rParams, pItemData, nPos, rInitState ); - return; + if ( !pChildDimension ) + pChildDimension = new ScDPResultDimension( pResultData ); + + // #i111462# reset InitChild flag only for this child dimension's LateInitFrom call, + // not for following members of parent dimensions + BOOL bWasInitChild = rParams.GetInitChild(); + rParams.SetInitChild( FALSE ); + pChildDimension->LateInitFrom( rParams, pItemData, nPos, rInitState ); + rParams.SetInitChild( bWasInitChild ); + return; } else { //find next dim diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx index 4a736e8c11b7..434144d06e00 100644 --- a/sc/source/core/data/table4.cxx +++ b/sc/source/core/data/table4.cxx @@ -586,13 +586,13 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, // Attributierung uebertragen const ScPatternAttr* pSrcPattern = NULL; + const ScStyleSheet* pStyleSheet = NULL; ULONG nAtSrc = nISrcStart; ScPatternAttr* pNewPattern = NULL; BOOL bGetPattern = TRUE; rInner = nIStart; while (true) // #i53728# with "for (;;)" old solaris/x86 compiler mis-optimizes { - const ScStyleSheet* pStyleSheet = NULL; if ( bGetPattern ) { if ( pNewPattern ) diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx index 3a7117dfcd10..a3a0153a4b97 100644 --- a/sc/source/core/data/table5.cxx +++ b/sc/source/core/data/table5.cxx @@ -114,14 +114,25 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea ) } // sonst alles } - // bSkipBreaks holen: + // get bSkipColBreaks/bSkipRowBreaks flags: - BOOL bSkipBreaks = FALSE; + bool bSkipColBreaks = false; + bool bSkipRowBreaks = false; if ( pStyleSet->GetItemState( ATTR_PAGE_SCALETOPAGES, FALSE, &pItem ) == SFX_ITEM_SET ) { DBG_ASSERT( pItem->ISA(SfxUInt16Item), "falsches Item" ); - bSkipBreaks = ( ((const SfxUInt16Item*)pItem)->GetValue() > 0 ); + bSkipColBreaks = bSkipRowBreaks = ( ((const SfxUInt16Item*)pItem)->GetValue() > 0 ); + } + + if ( !bSkipColBreaks && pStyleSet->GetItemState(ATTR_PAGE_SCALETO, FALSE, &pItem) == SFX_ITEM_SET ) + { + // #i54993# when fitting to width or height, ignore only manual breaks in that direction + const ScPageScaleToItem* pScaleToItem = static_cast<const ScPageScaleToItem*>(pItem); + if ( pScaleToItem->GetWidth() > 0 ) + bSkipColBreaks = true; + if ( pScaleToItem->GetHeight() > 0 ) + bSkipRowBreaks = true; } //-------------------------------------------------------------------------- @@ -149,7 +160,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea ) { BOOL bStartOfPage = FALSE; long nThisX = ( pColFlags[nX] & CR_HIDDEN ) ? 0 : pColWidth[nX]; - if ( (nSizeX+nThisX > nPageSizeX) || ((pColFlags[nX] & CR_MANUALBREAK) && !bSkipBreaks) ) + if ( (nSizeX+nThisX > nPageSizeX) || ((pColFlags[nX] & CR_MANUALBREAK) && !bSkipColBreaks) ) { pColFlags[nX] |= CR_PAGEBREAK; nSizeX = 0; @@ -187,7 +198,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea ) BOOL bStartOfPage = FALSE; BYTE nFlags = *aFlagsIter; long nThisY = (nFlags & CR_HIDDEN) ? 0 : *aHeightIter; - if ( (nSizeY+nThisY > nPageSizeY) || ((nFlags & CR_MANUALBREAK) && !bSkipBreaks) ) + if ( (nSizeY+nThisY > nPageSizeY) || ((nFlags & CR_MANUALBREAK) && !bSkipRowBreaks) ) { pRowFlags->SetValue( nY, nFlags | CR_PAGEBREAK); aFlagsIter.Resync( nY); diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx index bba1543dd403..5534f8e775a9 100644 --- a/sc/source/filter/excel/excdoc.cxx +++ b/sc/source/filter/excel/excdoc.cxx @@ -437,7 +437,8 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx ) DBG_ASSERT( nExcTab <= static_cast<sal_uInt16>(MAXTAB), "-ExcTable::Table(): nExcTab - no ordinary table!" ); // create a new OBJ list for this sheet (may be used by notes, autofilter, data validation) - GetObjectManager().StartSheet(); + if( eBiff == EXC_BIFF8 ) + GetObjectManager().StartSheet(); // cell table: DEFROWHEIGHT, DEFCOLWIDTH, COLINFO, DIMENSIONS, ROW, cell records mxCellTable.reset( new XclExpCellTable( GetRoot() ) ); diff --git a/sc/source/filter/excel/xichart.cxx b/sc/source/filter/excel/xichart.cxx index e9bfb8ca3f60..5c10a0716028 100755 --- a/sc/source/filter/excel/xichart.cxx +++ b/sc/source/filter/excel/xichart.cxx @@ -2902,7 +2902,8 @@ void XclImpChValueRange::Convert( ScaleData& rScaleData, bool bMirrorOrient ) co Any& rIntervalCount = rSubIncrementSeq[ 0 ].IntervalCount; if( bLogScale ) { - rIntervalCount <<= sal_Int32( 10 ); + if( !bAutoMinor ) + rIntervalCount <<= sal_Int32( 9 ); } else { diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx index a37617e0b8b9..e43ff21a114d 100644 --- a/sc/source/filter/xml/XMLExportDataPilot.cxx +++ b/sc/source/filter/xml/XMLExportDataPilot.cxx @@ -880,8 +880,8 @@ void ScXMLExportDataPilot::WriteDataPilots(const uno::Reference <sheet::XSpreads rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SOURCE_NAME, rtl::OUString(pServSource->aParSource)); rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OBJECT_NAME, rtl::OUString(pServSource->aParName)); rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_USER_NAME, rtl::OUString(pServSource->aParUser)); - // How to write the Passwort? We must know, whether the passwort shoulb be written encrypted and how or not - rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_PASSWORT, rtl::OUString(pServSource->aParPass)); + // #i111754# leave out password attribute as long as DataPilotSource doesn't specify the content + // rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_PASSWORD, rtl::OUString(pServSource->aParPass)); SvXMLElementExport aElemSD(rExport, XML_NAMESPACE_TABLE, XML_SOURCE_SERVICE, sal_True, sal_True); rExport.CheckAttrList(); } diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index 1b45c35c9394..f7822c753308 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -3567,8 +3567,8 @@ sal_Bool ScXMLExport::IsCellEqual (ScMyCell& aCell1, ScMyCell& aCell2) { if (!aCell1.bHasAnnotation || (aCell1.bHasAnnotation && sal_False/*IsAnnotationEqual(aCell1.xCell, aCell2.xCell)*/)) // no longer compareable { - if (((aCell1.nStyleIndex == aCell2.nStyleIndex) && ((aCell1.bIsAutoStyle == aCell2.bIsAutoStyle) || - (aCell1.nStyleIndex == aCell2.nStyleIndex)) && (aCell1.nStyleIndex == -1)) && + if ((((aCell1.nStyleIndex == aCell2.nStyleIndex) && (aCell1.bIsAutoStyle == aCell2.bIsAutoStyle)) || + ((aCell1.nStyleIndex == aCell2.nStyleIndex) && (aCell1.nStyleIndex == -1))) && (aCell1.nValidationIndex == aCell2.nValidationIndex) && IsCellTypeEqual(aCell1, aCell2)) { diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx index 533d9417414f..b9e5238508d8 100644 --- a/sc/source/filter/xml/xmlimprt.cxx +++ b/sc/source/filter/xml/xmlimprt.cxx @@ -1370,7 +1370,7 @@ const SvXMLTokenMap& ScXMLImport::GetDataPilotTableSourceServiceAttrTokenMap() { XML_NAMESPACE_TABLE, XML_SOURCE_NAME, XML_TOK_SOURCE_SERVICE_ATTR_SOURCE_NAME }, { XML_NAMESPACE_TABLE, XML_OBJECT_NAME, XML_TOK_SOURCE_SERVICE_ATTR_OBJECT_NAME }, { XML_NAMESPACE_TABLE, XML_USER_NAME, XML_TOK_SOURCE_SERVICE_ATTR_USER_NAME }, - { XML_NAMESPACE_TABLE, XML_PASSWORT, XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD }, + { XML_NAMESPACE_TABLE, XML_PASSWORD, XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD }, XML_TOKEN_MAP_END }; diff --git a/sc/source/filter/xml/xmlstyle.cxx b/sc/source/filter/xml/xmlstyle.cxx index f9f0d063a843..733a11c9a1da 100644 --- a/sc/source/filter/xml/xmlstyle.cxx +++ b/sc/source/filter/xml/xmlstyle.cxx @@ -1039,8 +1039,10 @@ sal_Bool XmlScPropHdl_CellProtection::exportXML( rStrExpValue = GetXMLToken(XML_NONE); bRetval = sal_True; } - else if (aCellProtection.IsHidden && aCellProtection.IsLocked) + else if (aCellProtection.IsHidden) { + // #i105964# "Hide all" implies "Protected" in the UI, so it must be saved as "hidden-and-protected" + // even if "IsLocked" is not set in the CellProtection struct. rStrExpValue = GetXMLToken(XML_HIDDEN_AND_PROTECTED); bRetval = sal_True; } diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index 28f178565da0..55aa0986d2ec 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -950,7 +950,7 @@ void ScInputHandler::ShowTipBelow( const String& rText ) } aPos = pTipVisibleSecParent->OutputToScreenPixel( aPos ); Rectangle aRect( aPos, aPos ); - USHORT nAlign = QUICKHELP_LEFT | QUICKHELP_TOP; + USHORT nAlign = QUICKHELP_LEFT | QUICKHELP_TOP | QUICKHELP_NOEVADEPOINTER; nTipVisibleSec = Help::ShowTip(pTipVisibleSecParent, aRect, rText, nAlign); pTipVisibleSecParent->AddEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleSecParentListener ) ); } diff --git a/sc/source/ui/app/makefile.mk b/sc/source/ui/app/makefile.mk index a5e4fe8cc024..a7ff3fe86d7d 100644 --- a/sc/source/ui/app/makefile.mk +++ b/sc/source/ui/app/makefile.mk @@ -57,8 +57,10 @@ SLOFILES = \ EXCEPTIONSFILES= \ $(SLO)$/drwtrans.obj \ + $(SLO)$/scdll.obj \ $(SLO)$/scmod2.obj \ $(SLO)$/scmod.obj \ + $(SLO)$/typemap.obj \ $(SLO)$/client.obj \ $(SLO)$/inputwin.obj diff --git a/sc/source/ui/cctrl/makefile.mk b/sc/source/ui/cctrl/makefile.mk index 17fd9b40cb95..531013ea1c2e 100644 --- a/sc/source/ui/cctrl/makefile.mk +++ b/sc/source/ui/cctrl/makefile.mk @@ -41,6 +41,7 @@ LIBTARGET=NO # --- Files -------------------------------------------------------- EXCEPTIONSFILES= \ + $(SLO)$/tbinsert.obj \ $(SLO)$/tbzoomsliderctrl.obj \ $(SLO)$/dpcontrol.obj diff --git a/sc/source/ui/drawfunc/makefile.mk b/sc/source/ui/drawfunc/makefile.mk index 52f54b56edce..a50c450ab373 100644 --- a/sc/source/ui/drawfunc/makefile.mk +++ b/sc/source/ui/drawfunc/makefile.mk @@ -75,7 +75,9 @@ SLOFILES = \ $(SLO)$/mediash.obj EXCEPTIONSFILES= \ - $(SLO)$/fuins2.obj + $(SLO)$/fuins2.obj \ + $(SLO)$/graphsh.obj \ + $(SLO)$/mediash.obj NOOPTFILES=\ $(SLO)$/fusel.obj diff --git a/sc/source/ui/inc/spelldialog.hxx b/sc/source/ui/inc/spelldialog.hxx index af97519a2b43..eef0d170c2c8 100644 --- a/sc/source/ui/inc/spelldialog.hxx +++ b/sc/source/ui/inc/spelldialog.hxx @@ -65,12 +65,12 @@ protected: next sentence with spelling errors. While doing so the view mode may be changed and text shapes are set into edit mode. */ - virtual ::svx::SpellPortions GetNextWrongSentence(); + virtual ::svx::SpellPortions GetNextWrongSentence( bool bRecheck ); /** This method is responsible for merging corrections made in the spelling dialog back into the document. */ - virtual void ApplyChangedSentence( const ::svx::SpellPortions& rChanged ); + virtual void ApplyChangedSentence( const ::svx::SpellPortions& rChanged, bool bRecheck ); virtual void GetFocus(); virtual void LoseFocus(); diff --git a/sc/source/ui/view/spelldialog.cxx b/sc/source/ui/view/spelldialog.cxx index a178b0a0ada6..ee13ee9fbf90 100644 --- a/sc/source/ui/view/spelldialog.cxx +++ b/sc/source/ui/view/spelldialog.cxx @@ -79,7 +79,7 @@ void ScSpellDialogChildWindow::InvalidateSpellDialog() // protected ------------------------------------------------------------------ -::svx::SpellPortions ScSpellDialogChildWindow::GetNextWrongSentence() +::svx::SpellPortions ScSpellDialogChildWindow::GetNextWrongSentence( bool /*bRecheck*/ ) { ::svx::SpellPortions aPortions; if( mxEngine.get() && mpViewData ) @@ -103,11 +103,11 @@ void ScSpellDialogChildWindow::InvalidateSpellDialog() return aPortions; } -void ScSpellDialogChildWindow::ApplyChangedSentence( const ::svx::SpellPortions& rChanged ) +void ScSpellDialogChildWindow::ApplyChangedSentence( const ::svx::SpellPortions& rChanged, bool bRecheck ) { if( mxEngine.get() && mpViewData ) if( EditView* pEditView = mpViewData->GetSpellingView() ) - mxEngine->ApplyChangedSentence( *pEditView, rChanged, false ); + mxEngine->ApplyChangedSentence( *pEditView, rChanged, bRecheck ); } void ScSpellDialogChildWindow::GetFocus() |