summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2010-11-25 14:26:48 +0100
committerJan Holesovsky <kendy@suse.cz>2010-11-25 14:26:48 +0100
commit5c579aec2bbdfec4de0db8faf2176a0879851b52 (patch)
treeee45105b0960a3ec8c02e808fe09f76647607bad
parent3532aa15e4aed5bff8c8ea343343058d93c5c1dc (diff)
parent5d8e16bda040c8bc64d1619d034e5c49217fbf03 (diff)
Merge remote branch 'origin/libreoffice-3-3'
Conflicts: sc/source/filter/xml/xmlimprt.cxx
-rw-r--r--sc/source/core/tool/interpr1.cxx11
-rw-r--r--sc/source/filter/xml/xmlimprt.cxx3
-rw-r--r--sc/source/ui/dbgui/filtdlg.cxx1
-rw-r--r--sc/source/ui/view/preview.cxx7
-rw-r--r--sc/source/ui/view/viewfun3.cxx7
5 files changed, 26 insertions, 3 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index ba60d2649..21b7cd1e8 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -5638,7 +5638,8 @@ void ScInterpreter::CalculateLookup(BOOL HLookup)
SCCOL nCol2 = 0;
SCROW nRow2 = 0;
SCTAB nTab2;
- if (GetStackType() == svDoubleRef)
+ StackVar eType = GetStackType();
+ if (eType == svDoubleRef)
{
PopDoubleRef(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2);
if (nTab1 != nTab2)
@@ -5647,9 +5648,13 @@ void ScInterpreter::CalculateLookup(BOOL HLookup)
return;
}
}
- else if (GetStackType() == svMatrix)
+ else if (eType == svMatrix || eType == svExternalDoubleRef)
{
- pMat = PopMatrix();
+ if (eType == svMatrix)
+ pMat = PopMatrix();
+ else
+ PopExternalDoubleRef(pMat);
+
if (pMat)
pMat->GetDimensions(nC, nR);
else
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index 894cd43b9..b698bcc68 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -2842,8 +2842,11 @@ void ScXMLImport::SetNamedRanges()
++nCount;
}
}
+ UnlockSolarMutex();
}
}
+ delete *aItr;
+ aItr = pNamedExpressions->erase(aItr);
}
aItr = pNamedExpressions->begin();
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 025e3a978..d33a67431 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -497,6 +497,7 @@ void ScFilterDlg::UpdateValueList( USHORT nList )
}
}
pValList->SetText( aCurValue );
+ pValList->EnableDDAutoWidth(false);
}
UpdateHdrInValueList( nList );
diff --git a/sc/source/ui/view/preview.cxx b/sc/source/ui/view/preview.cxx
index 88c77497f..6e970f318 100644
--- a/sc/source/ui/view/preview.cxx
+++ b/sc/source/ui/view/preview.cxx
@@ -1152,11 +1152,13 @@ void __EXPORT ScPreview::MouseButtonUp( const MouseEvent& rMEvt )
{
aLRItem.SetLeft( (long)( aButtonUpPt.X() / HMM_PER_TWIPS + aOffset.X() / HMM_PER_TWIPS ));
rStyleSet.Put( aLRItem );
+ pDocShell->SetModified(true);
}
else if( bRightRulerChange && bRightRulerMove )
{
aLRItem.SetRight( (long)( nWidth - aButtonUpPt.X() / HMM_PER_TWIPS - aOffset.X() / HMM_PER_TWIPS ));
rStyleSet.Put( aLRItem );
+ pDocShell->SetModified(true);
}
ScStyleSaveData aNewData;
@@ -1220,11 +1222,13 @@ void __EXPORT ScPreview::MouseButtonUp( const MouseEvent& rMEvt )
{
aULItem.SetUpperValue( (USHORT)( aButtonUpPt.Y() / HMM_PER_TWIPS + aOffset.Y() / HMM_PER_TWIPS ) );
rStyleSet.Put( aULItem );
+ pDocShell->SetModified(true);
}
else if( bBottomRulerMove && bBottomRulerChange )
{
aULItem.SetLowerValue( (USHORT)( nHeight - aButtonUpPt.Y() / HMM_PER_TWIPS - aOffset.Y() / HMM_PER_TWIPS ) );
rStyleSet.Put( aULItem );
+ pDocShell->SetModified(true);
}
else if( bHeaderRulerMove && bHeaderRulerChange )
{
@@ -1238,6 +1242,7 @@ void __EXPORT ScPreview::MouseButtonUp( const MouseEvent& rMEvt )
SvxSetItem aNewHeader( (const SvxSetItem&)rStyleSet.Get(ATTR_PAGE_HEADERSET) );
aNewHeader.GetItemSet().Put( SvxSizeItem( ATTR_PAGE_SIZE, aHeaderSize ) );
rStyleSet.Put( aNewHeader );
+ pDocShell->SetModified(true);
}
}
else if( bFooterRulerMove && bFooterRulerChange )
@@ -1252,6 +1257,7 @@ void __EXPORT ScPreview::MouseButtonUp( const MouseEvent& rMEvt )
SvxSetItem aNewFooter( (const SvxSetItem&)rStyleSet.Get(ATTR_PAGE_FOOTERSET) );
aNewFooter.GetItemSet().Put( SvxSizeItem( ATTR_PAGE_SIZE, aFooterSize ) );
rStyleSet.Put( aNewFooter );
+ pDocShell->SetModified(true);
}
}
@@ -1319,6 +1325,7 @@ void __EXPORT ScPreview::MouseButtonUp( const MouseEvent& rMEvt )
if( nNewColWidth >= 0 )
{
aFunc.SetWidthOrHeight( TRUE, 1,nCols, nTab, SC_SIZE_DIRECT, (USHORT)nNewColWidth, TRUE, TRUE);
+ pDocShell->SetModified(true);
}
if ( ValidTab( nTab ) )
{
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 9c51b5fc5..409686bd3 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -650,6 +650,10 @@ void ScViewFunc::PasteFromSystem()
{
// If it's a Writer object, insert RTF instead of OLE
+ // Else, if the class id is all-zero, and SYLK is available,
+ // it probably is spreadsheet cells that have been put
+ // on the clipboard by OOo, so use the SYLK. (fdo#31077)
+
BOOL bDoRtf = FALSE;
TransferableObjectDescriptor aObjDesc;
if( aDataHelper.GetTransferableObjectDescriptor( SOT_FORMATSTR_ID_OBJECTDESCRIPTOR, aObjDesc ) )
@@ -660,6 +664,9 @@ void ScViewFunc::PasteFromSystem()
}
if ( bDoRtf )
PasteFromSystem( FORMAT_RTF );
+ else if ( aObjDesc.maClassName == SvGlobalName( 0,0,0,0,0,0,0,0,0,0,0 )
+ && aDataHelper.HasFormat( SOT_FORMATSTR_ID_SYLK ))
+ PasteFromSystem( SOT_FORMATSTR_ID_SYLK );
else
PasteFromSystem( SOT_FORMATSTR_ID_EMBED_SOURCE );
}