update to 4.2.4 rc1

f41
David Tardon 11 years ago
parent 188f064fca
commit 6168b26e0c

11
.gitignore vendored

@ -7,9 +7,6 @@
/libreoffice-multiliblauncher.sh /libreoffice-multiliblauncher.sh
/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz /0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
/b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz /b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz
/libreoffice-4.2.3.3.tar.xz
/libreoffice-help-4.2.3.3.tar.xz
/libreoffice-translations-4.2.3.3.tar.xz
/15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2 /15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2
/22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz /22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz /32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz
@ -27,10 +24,11 @@
/ea2acaf140ae40a87a952caa75184f4d-liborcus-0.5.1.tar.bz2 /ea2acaf140ae40a87a952caa75184f4d-liborcus-0.5.1.tar.bz2
/Firebird-2.5.2.26540-0.tar.bz2 /Firebird-2.5.2.26540-0.tar.bz2
/harfbuzz-0.9.23.tar.bz2 /harfbuzz-0.9.23.tar.bz2
/language-subtag-registry-2014-03-27.tar.bz2
/libabw-0.0.2.tar.bz2 /libabw-0.0.2.tar.bz2
/libatomic_ops-7_2d.zip /libatomic_ops-7_2d.zip
/libcdr-0.0.14.tar.bz2 /libcdr-0.0.15.tar.bz2
/libe-book-0.0.3.tar.bz2 /libe-book-0.0.4.tar.bz2
/libeot-0.01.tar.bz2 /libeot-0.01.tar.bz2
/libetonyek-0.0.3.tar.bz2 /libetonyek-0.0.3.tar.bz2
/libfreehand-0.0.0.tar.bz2 /libfreehand-0.0.0.tar.bz2
@ -38,3 +36,6 @@
/libmwaw-0.2.0.tar.bz2 /libmwaw-0.2.0.tar.bz2
/libodfgen-0.0.4.tar.bz2 /libodfgen-0.0.4.tar.bz2
/libvisio-0.0.31.tar.bz2 /libvisio-0.0.31.tar.bz2
/libreoffice-4.2.4.1.tar.xz
/libreoffice-help-4.2.4.1.tar.xz
/libreoffice-translations-4.2.4.1.tar.xz

@ -1,203 +0,0 @@
From 135bdf4ef1a5d256f00bebf1b734ae44544d757c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 14 Mar 2014 20:28:10 +0000
Subject: [PATCH] Related: rhbz#1076264 intermittent a11y crash in calc
http://retrace.fedoraproject.org/faf/reports/338291/
this crash refuses to be captured alive. But seeing as
we sometimes check mpViewShell against NULL and sometimes check
GetViewData against NULL its worth making those checks everytime
for consistency
see also...
rhbz#923993 rhbz#896711 rhbz#602273 rhbz#577595 lp#811057 lp#760665
(cherry picked from commit fae1e19af05e664364c55d4f686aaab860fd538d)
Conflicts:
sc/source/ui/Accessibility/AccessibleDocument.cxx
Change-Id: I5553848018f500b63ade60bcfc756a736b27c64f
---
sc/source/ui/Accessibility/AccessibleDocument.cxx | 70 ++++++++++++++---------
1 file changed, 43 insertions(+), 27 deletions(-)
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 6d3b7f8..14ac8fe 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -337,13 +337,14 @@ ScChildrenShapes::ScChildrenShapes(ScAccessibleDocument* pAccessibleDocument, Sc
}
if (pViewShell)
{
- SfxBroadcaster* pDrawBC = pViewShell->GetViewData()->GetDocument()->GetDrawBroadcaster();
+ ScViewData *pViewData = pViewShell->GetViewData();
+ SfxBroadcaster* pDrawBC = pViewData ? pViewData->GetDocument()->GetDrawBroadcaster() : NULL;
if (pDrawBC)
{
StartListening(*pDrawBC);
- maShapeTreeInfo.SetModelBroadcaster( new ScDrawModelBroadcaster(pViewShell->GetViewData()->GetDocument()->GetDrawLayer()) );
- maShapeTreeInfo.SetSdrView(pViewShell->GetViewData()->GetScDrawView());
+ maShapeTreeInfo.SetModelBroadcaster( new ScDrawModelBroadcaster(pViewData->GetDocument()->GetDrawLayer()) );
+ maShapeTreeInfo.SetSdrView(pViewData->GetScDrawView());
maShapeTreeInfo.SetController(NULL);
maShapeTreeInfo.SetWindow(pViewShell->GetWindowByPos(meSplitPos));
maShapeTreeInfo.SetViewForwarder(mpAccessibleDocument);
@@ -356,7 +357,8 @@ ScChildrenShapes::~ScChildrenShapes()
std::for_each(maZOrderedShapes.begin(), maZOrderedShapes.end(), Destroy());
if (mpViewShell)
{
- SfxBroadcaster* pDrawBC = mpViewShell->GetViewData()->GetDocument()->GetDrawBroadcaster();
+ ScViewData *pViewData = mpViewShell->GetViewData();
+ SfxBroadcaster* pDrawBC = pViewData ? pViewData->GetDocument()->GetDrawBroadcaster() : NULL;
if (pDrawBC)
EndListening(*pDrawBC);
}
@@ -366,13 +368,14 @@ void ScChildrenShapes::SetDrawBroadcaster()
{
if (mpViewShell)
{
- SfxBroadcaster* pDrawBC = mpViewShell->GetViewData()->GetDocument()->GetDrawBroadcaster();
+ ScViewData *pViewData = mpViewShell->GetViewData();
+ SfxBroadcaster* pDrawBC = pViewData ? pViewData->GetDocument()->GetDrawBroadcaster() : NULL;
if (pDrawBC)
{
StartListening(*pDrawBC, sal_True);
- maShapeTreeInfo.SetModelBroadcaster( new ScDrawModelBroadcaster(mpViewShell->GetViewData()->GetDocument()->GetDrawLayer()) );
- maShapeTreeInfo.SetSdrView(mpViewShell->GetViewData()->GetScDrawView());
+ maShapeTreeInfo.SetModelBroadcaster( new ScDrawModelBroadcaster(pViewData->GetDocument()->GetDrawLayer()) );
+ maShapeTreeInfo.SetSdrView(pViewData->GetScDrawView());
maShapeTreeInfo.SetController(NULL);
maShapeTreeInfo.SetWindow(mpViewShell->GetWindowByPos(meSplitPos));
maShapeTreeInfo.SetViewForwarder(mpAccessibleDocument);
@@ -827,7 +830,8 @@ SdrPage* ScChildrenShapes::GetDrawPage() const
SdrPage* pDrawPage = NULL;
if (mpViewShell)
{
- ScDocument* pDoc = mpViewShell->GetViewData()->GetDocument();
+ ScViewData *pViewData = mpViewShell->GetViewData();
+ ScDocument* pDoc = pViewData ? pViewData->GetDocument() : NULL;
if (pDoc && pDoc->GetDrawLayer())
{
ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
@@ -1239,9 +1243,10 @@ ScAccessibleDocument::ScAccessibleDocument(
AddChild( pChildWin->GetAccessible(), false );
}
}
- if (pViewShell->GetViewData()->HasEditView( eSplitPos ))
+ ScViewData *pViewData = pViewShell->GetViewData();
+ if (pViewData && pViewData->HasEditView(eSplitPos))
{
- uno::Reference<XAccessible> xAcc = new ScAccessibleEditObject(this, pViewShell->GetViewData()->GetEditView(eSplitPos),
+ uno::Reference<XAccessible> xAcc = new ScAccessibleEditObject(this, pViewData->GetEditView(eSplitPos),
pViewShell->GetWindowByPos(eSplitPos), GetCurrentCellName(), GetCurrentCellDescription(),
ScAccessibleEditObject::CellInEditMode);
AddChild(xAcc, false);
@@ -1382,9 +1387,10 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
}
else if ((rRef.GetId() == SC_HINT_ACC_ENTEREDITMODE)) // this event comes only on creating edit field of a cell
{
- if (mpViewShell && mpViewShell->GetViewData()->HasEditView(meSplitPos))
+ ScViewData *pViewData = mpViewShell ? mpViewShell->GetViewData() : NULL;
+ if (pViewData && pViewData->HasEditView(meSplitPos))
{
- mpTempAccEdit = new ScAccessibleEditObject(this, mpViewShell->GetViewData()->GetEditView(meSplitPos),
+ mpTempAccEdit = new ScAccessibleEditObject(this, pViewData->GetEditView(meSplitPos),
mpViewShell->GetWindowByPos(meSplitPos), GetCurrentCellName(),
OUString(ScResId(STR_ACC_EDITLINE_DESCR)), ScAccessibleEditObject::CellInEditMode);
uno::Reference<XAccessible> xAcc = mpTempAccEdit;
@@ -1639,7 +1645,7 @@ void SAL_CALL
SolarMutexGuard aGuard;
IsObjectValid();
- if (mpChildrenShapes)
+ if (mpChildrenShapes && mpViewShell)
{
sal_Int32 nCount(mpChildrenShapes->GetCount()); //all shapes and the table
if (mxTempAcc.is())
@@ -1782,7 +1788,7 @@ void SAL_CALL
SolarMutexGuard aGuard;
IsObjectValid();
- if (mpChildrenShapes)
+ if (mpChildrenShapes && mpViewShell)
{
sal_Int32 nCount(mpChildrenShapes->GetCount()); //all shapes and the table
if (mxTempAcc.is())
@@ -1861,14 +1867,21 @@ Rectangle ScAccessibleDocument::GetVisibleArea_Impl() const
{
Rectangle aVisRect(GetBoundingBox());
- Point aPoint(mpViewShell->GetViewData()->GetPixPos(meSplitPos)); // returns a negative Point
- aPoint.setX(-aPoint.getX());
- aPoint.setY(-aPoint.getY());
- aVisRect.SetPos(aPoint);
+ if (mpViewShell)
+ {
+ ScViewData *pViewData = mpViewShell->GetViewData();
+ if (pViewData)
+ {
+ Point aPoint(pViewData->GetPixPos(meSplitPos)); // returns a negative Point
+ aPoint.setX(-aPoint.getX());
+ aPoint.setY(-aPoint.getY());
+ aVisRect.SetPos(aPoint);
+ }
- ScGridWindow* pWin = static_cast<ScGridWindow*>(mpViewShell->GetWindowByPos(meSplitPos));
- if (pWin)
- aVisRect = pWin->PixelToLogic(aVisRect, pWin->GetDrawMapMode());
+ ScGridWindow* pWin = static_cast<ScGridWindow*>(mpViewShell->GetWindowByPos(meSplitPos));
+ if (pWin)
+ aVisRect = pWin->PixelToLogic(aVisRect, pWin->GetDrawMapMode());
+ }
return aVisRect;
}
@@ -1989,8 +2002,9 @@ Rectangle ScAccessibleDocument::GetBoundingBox() const
SCTAB ScAccessibleDocument::getVisibleTable() const
{
SCTAB nVisibleTable(0);
- if (mpViewShell && mpViewShell->GetViewData())
- nVisibleTable = mpViewShell->GetViewData()->GetTabNo();
+ ScViewData *pViewData = mpViewShell ? mpViewShell->GetViewData() : NULL;
+ if (pViewData)
+ nVisibleTable = pViewData->GetTabNo();
return nVisibleTable;
}
@@ -2020,11 +2034,12 @@ void ScAccessibleDocument::FreeAccessibleSpreadsheet()
sal_Bool ScAccessibleDocument::IsTableSelected() const
{
sal_Bool bResult (false);
- if(mpViewShell)
+ ScViewData *pViewData = mpViewShell ? mpViewShell->GetViewData() : NULL;
+ if(pViewData)
{
SCTAB nTab(getVisibleTable());
//#103800#; use a copy of MarkData
- ScMarkData aMarkData(mpViewShell->GetViewData()->GetMarkData());
+ ScMarkData aMarkData(pViewData->GetMarkData());
aMarkData.MarkToMulti();
if (aMarkData.IsAllMarked(ScRange(ScAddress(0, 0, nTab),ScAddress(MAXCOL, MAXROW, nTab))))
bResult = sal_True;
@@ -2084,10 +2099,11 @@ void ScAccessibleDocument::RemoveChild(const uno::Reference<XAccessible>& xAcc,
OUString ScAccessibleDocument::GetCurrentCellName() const
{
OUString sName(SC_RESSTR(STR_ACC_CELL_NAME));
- if (mpViewShell)
+ ScViewData *pViewData = mpViewShell ? mpViewShell->GetViewData() : NULL;
+ if (pViewData)
{
// Document not needed, because only the cell address, but not the tablename is needed
- OUString sAddress(mpViewShell->GetViewData()->GetCurPos().Format(SCA_VALID, NULL));
+ OUString sAddress(pViewData->GetCurPos().Format(SCA_VALID, NULL));
sName = sName.replaceFirst("%1", sAddress);
}
return sName;
--
1.8.5.3

@ -1,7 +1,7 @@
From c309eed705edd358ba2db8b26d711d0f8ae41dca Mon Sep 17 00:00:00 2001 From cc9493e690c6dbe40a1da47a06acf7172a33ffa7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 24 Feb 2014 11:38:13 +0000 Date: Mon, 24 Feb 2014 11:38:13 +0000
Subject: [PATCH 3/4] Resolves: rhbz#1065807 use xdg ~/Templates for default Subject: [PATCH 1/2] Resolves: rhbz#1065807 use xdg ~/Templates for default
Template location Template location
(if it exists) (if it exists)
@ -33,11 +33,11 @@ index 15fb3c0..bdb2949 100644
xPath->getByName(CFGPROP_ISSINGLEPATH) >>= aPathVal.bIsSinglePath; xPath->getByName(CFGPROP_ISSINGLEPATH) >>= aPathVal.bIsSinglePath;
diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
index 4b5ec7d..2ef605e 100644 index 05f8e0b..2a9eb5c 100644
--- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu --- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu +++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
@@ -160,8 +160,21 @@ @@ -161,8 +161,21 @@
<node oor:name="InternalPaths"> <node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/common" oor:op="fuse"/>
<node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/$(vlang)" oor:op="fuse"/> <node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/$(vlang)" oor:op="fuse"/>
</node> </node>
+ <!-- + <!--
@ -194,5 +194,5 @@ index 7f0a52a..3fcd217 100644
SETTING_SOURCEVIEWFONT_HEIGHT, SETTING_SOURCEVIEWFONT_HEIGHT,
SETTING_USER_GIVENNAME, SETTING_USER_GIVENNAME,
-- --
1.8.5.3 1.9.0

@ -1,26 +0,0 @@
From 88c2785c8fd4ec9ad9c4b318b91d1835cc04cd26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 25 Mar 2014 12:12:37 +0000
Subject: [PATCH] Resolves: rhbz#1077780 crash on loading .docx
Change-Id: I92670b9c46a2c745ba47c6dcc1b4dd672942cf59
---
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index aa0896a..79c1847 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -636,6 +636,8 @@ void lcl_MoveBorderPropertiesToFrame(uno::Sequence<beans::PropertyValue>& rFrame
{
try
{
+ if (!xStartTextRange.is()) //rhbz#1077780
+ return;
uno::Reference<text::XTextCursor> xRangeCursor = xStartTextRange->getText()->createTextCursorByRange( xStartTextRange );
xRangeCursor->gotoRange( xEndTextRange, true );
--
1.8.5.3

@ -1,25 +0,0 @@
From 783e5a2e149694974fcce79a01144c78f154bfee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 25 Feb 2014 09:55:48 +0000
Subject: [PATCH 4/4] explictly list common lang-independant template dir
Change-Id: I50d8efe46fc2eb3dfe615ad1f6eb7ee03cdcd29a
---
officecfg/registry/data/org/openoffice/Office/Paths.xcu | 1 +
1 file changed, 1 insertion(+)
diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
index 2ef605e..2a9eb5c 100644
--- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
@@ -158,6 +158,7 @@
</node>
<node oor:name="Template" oor:op="fuse" oor:mandatory="true">
<node oor:name="InternalPaths">
+ <node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/common" oor:op="fuse"/>
<node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/$(vlang)" oor:op="fuse"/>
</node>
<!--
--
1.8.5.3

@ -1,7 +1,7 @@
From 083613eb5521f19b900a1210fbc1dafcc489dcb9 Mon Sep 17 00:00:00 2001 From 2d3aabf379d546684f3229e14752a86d784feaa5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com> From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com>
Date: Tue, 25 Mar 2014 12:20:16 +0100 Date: Tue, 25 Mar 2014 12:20:16 +0100
Subject: [PATCH] prevent KDE/Qt from interfering with the session manager Subject: [PATCH 2/2] prevent KDE/Qt from interfering with the session manager
I occassionally get lockups in IceProcessMessages() called from QtCore, I occassionally get lockups in IceProcessMessages() called from QtCore,
I'm actually not exactly sure why, as theoretically two connections I'm actually not exactly sure why, as theoretically two connections
@ -16,10 +16,10 @@ Change-Id: Iebe20d4cb5403e5fea8bd5d8c1f69b62d1c2907b
2 files changed, 16 insertions(+), 9 deletions(-) 2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx
index 4a9b70b..2dfae32 100644 index 820d39a..e4900a7 100644
--- a/vcl/unx/kde4/KDEXLib.cxx --- a/vcl/unx/kde4/KDEXLib.cxx
+++ b/vcl/unx/kde4/KDEXLib.cxx +++ b/vcl/unx/kde4/KDEXLib.cxx
@@ -175,8 +175,23 @@ void KDEXLib::Init() @@ -166,8 +166,23 @@ void KDEXLib::Init()
KCmdLineArgs::init( m_nFakeCmdLineArgs, m_pAppCmdLineArgs, kAboutData ); KCmdLineArgs::init( m_nFakeCmdLineArgs, m_pAppCmdLineArgs, kAboutData );
@ -42,8 +42,8 @@ index 4a9b70b..2dfae32 100644
+ } + }
+ +
KApplication::setQuitOnLastWindowClosed(false); KApplication::setQuitOnLastWindowClosed(false);
setupEventLoop();
#if KDE_HAVE_GLIB
diff --git a/vcl/unx/kde4/VCLKDEApplication.hxx b/vcl/unx/kde4/VCLKDEApplication.hxx diff --git a/vcl/unx/kde4/VCLKDEApplication.hxx b/vcl/unx/kde4/VCLKDEApplication.hxx
index 412ee34..4ce0b2c 100644 index 412ee34..4ce0b2c 100644
--- a/vcl/unx/kde4/VCLKDEApplication.hxx --- a/vcl/unx/kde4/VCLKDEApplication.hxx
@ -72,5 +72,5 @@ index 412ee34..4ce0b2c 100644
}; };
-- --
1.8.5.3 1.9.0

@ -1,170 +0,0 @@
From e91bacdb67e0993d476611260cdcda9e49b4054a Mon Sep 17 00:00:00 2001
From: Kohei Yoshida <kohei.yoshida@collabora.com>
Date: Fri, 28 Mar 2014 20:50:29 -0400
Subject: [PATCH] rhbz#1080196: Delete the destination first then paste.
Deleting in-between pasting was causing the block iterators to become
invalid when the deletion took place, which resulted in a segfault.
Also cleaned up the bits about handling filtered rows. It was using the
old row flag which is empty these days (so it never would have worked).
Plus we do bail out earlier if the destination contains a filtered row.
Change-Id: I78d3ee8bce1647c1c8685f92a3df3c38cc014811
---
sc/source/core/data/document.cxx | 101 +++++++++++++--------------------------
1 file changed, 32 insertions(+), 69 deletions(-)
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index ab39965..fe5572f 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -2761,21 +2761,6 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMar
SetAutoCalc( bOldAutoCalc );
}
-static SCROW lcl_getLastNonFilteredRow(
- const ScBitMaskCompressedArray<SCROW, sal_uInt8>& rFlags, SCROW nBegRow, SCROW nEndRow,
- SCROW nRowCount)
-{
- SCROW nFilteredRow = rFlags.GetFirstForCondition(
- nBegRow, nEndRow, CR_FILTERED, CR_FILTERED);
-
- SCROW nRow = nFilteredRow - 1;
- if (nRow - nBegRow + 1 > nRowCount)
- // make sure the row range stays within the data size.
- nRow = nBegRow + nRowCount - 1;
-
- return nRow;
-}
-
void ScDocument::CopyMultiRangeFromClip(
const ScAddress& rDestPos, const ScMarkData& rMark, sal_uInt16 nInsFlag, ScDocument* pClipDoc,
bool bResetCut, bool bAsLink, bool /*bIncludeFiltered*/, bool bSkipAttrForEmpty)
@@ -2787,83 +2772,62 @@ void ScDocument::CopyMultiRangeFromClip(
// There is nothing in the clip doc to copy.
return;
- bool bOldAutoCalc = GetAutoCalc();
- SetAutoCalc( false ); // avoid multiple recalculations
+ // Right now, we don't allow pasting into filtered rows, so we don't even handle it here.
+ sc::AutoCalcSwitch aACSwitch(*this, false); // turn of auto calc temporarily.
NumFmtMergeHandler aNumFmtMergeHdl(this, pClipDoc);
+ ScRange aDestRange;
+ rMark.GetMarkArea(aDestRange);
+
+ bInsertingFromOtherDoc = true; // kein Broadcast/Listener aufbauen bei Insert
+
SCCOL nCol1 = rDestPos.Col();
SCROW nRow1 = rDestPos.Row();
ScClipParam& rClipParam = pClipDoc->GetClipParam();
+ if (!bSkipAttrForEmpty)
+ {
+ // Do the deletion first.
+ sal_uInt16 nDelFlag = IDF_CONTENTS;
+ SCCOL nColSize = rClipParam.getPasteColSize();
+ SCROW nRowSize = rClipParam.getPasteRowSize();
+
+ DeleteArea(nCol1, nRow1, nCol1+nColSize-1, nRow1+nRowSize-1, rMark, nDelFlag);
+ }
+
sc::CopyFromClipContext aCxt(*this, NULL, pClipDoc, nInsFlag, bAsLink, bSkipAttrForEmpty);
std::pair<SCTAB,SCTAB> aTabRanges = getMarkedTableRange(maTabs, rMark);
aCxt.setTabRange(aTabRanges.first, aTabRanges.second);
- ScRange aDestRange;
- rMark.GetMarkArea(aDestRange);
- SCROW nLastMarkedRow = aDestRange.aEnd.Row();
-
- bInsertingFromOtherDoc = true; // kein Broadcast/Listener aufbauen bei Insert
-
- SCROW nBegRow = nRow1;
- sal_uInt16 nDelFlag = IDF_CONTENTS;
- const ScBitMaskCompressedArray<SCROW, sal_uInt8>& rFlags = GetRowFlagsArray(aCxt.getTabStart());
-
- for ( size_t i = 0, n = rClipParam.maRanges.size(); i < n; ++i )
+ for (size_t i = 0, n = rClipParam.maRanges.size(); i < n; ++i)
{
- ScRange* p = rClipParam.maRanges[ i ];
- // The begin row must not be filtered.
+ ScRange* p = rClipParam.maRanges[i];
SCROW nRowCount = p->aEnd.Row() - p->aStart.Row() + 1;
-
SCsCOL nDx = static_cast<SCsCOL>(nCol1 - p->aStart.Col());
- SCsROW nDy = static_cast<SCsROW>(nBegRow - p->aStart.Row());
+ SCsROW nDy = static_cast<SCsROW>(nRow1 - p->aStart.Row());
SCCOL nCol2 = nCol1 + p->aEnd.Col() - p->aStart.Col();
+ SCROW nEndRow = nRow1 + nRowCount - 1;
- SCROW nEndRow = lcl_getLastNonFilteredRow(rFlags, nBegRow, nLastMarkedRow, nRowCount);
-
- if (!bSkipAttrForEmpty)
- DeleteArea(nCol1, nBegRow, nCol2, nEndRow, rMark, nDelFlag);
+ CopyBlockFromClip(aCxt, nCol1, nRow1, nCol2, nEndRow, rMark, nDx, nDy);
- CopyBlockFromClip(aCxt, nCol1, nBegRow, nCol2, nEndRow, rMark, nDx, nDy);
- nRowCount -= nEndRow - nBegRow + 1;
-
- while (nRowCount > 0)
+ switch (rClipParam.meDirection)
{
- // Get the first non-filtered row.
- SCROW nNonFilteredRow = rFlags.GetFirstForCondition(nEndRow+1, nLastMarkedRow, CR_FILTERED, 0);
- if (nNonFilteredRow > nLastMarkedRow)
- return;
-
- SCROW nRowsSkipped = nNonFilteredRow - nEndRow - 1;
- nDy += nRowsSkipped;
-
- nBegRow = nNonFilteredRow;
- nEndRow = lcl_getLastNonFilteredRow(rFlags, nBegRow, nLastMarkedRow, nRowCount);
-
- if (!bSkipAttrForEmpty)
- DeleteArea(nCol1, nBegRow, nCol2, nEndRow, rMark, nDelFlag);
-
- CopyBlockFromClip(aCxt, nCol1, nBegRow, nCol2, nEndRow, rMark, nDx, nDy);
- nRowCount -= nEndRow - nBegRow + 1;
+ case ScClipParam::Row:
+ // Begin row for the next range being pasted.
+ nRow1 += nRowCount;
+ break;
+ case ScClipParam::Column:
+ nCol1 += p->aEnd.Col() - p->aStart.Col() + 1;
+ break;
+ default:
+ ;
}
-
- if (rClipParam.meDirection == ScClipParam::Row)
- // Begin row for the next range being pasted.
- nBegRow = rFlags.GetFirstForCondition(nEndRow+1, nLastMarkedRow, CR_FILTERED, 0);
- else
- nBegRow = nRow1;
-
- if (rClipParam.meDirection == ScClipParam::Column)
- nCol1 += p->aEnd.Col() - p->aStart.Col() + 1;
}
bInsertingFromOtherDoc = false;
- ScRangeList aRanges;
- aRanges.Append(aDestRange);
-
// Listener aufbauen nachdem alles inserted wurde
StartListeningFromClip(aDestRange.aStart.Col(), aDestRange.aStart.Row(),
aDestRange.aEnd.Col(), aDestRange.aEnd.Row(), rMark, nInsFlag );
@@ -2873,7 +2837,6 @@ void ScDocument::CopyMultiRangeFromClip(
if (bResetCut)
pClipDoc->GetClipParam().mbCutMode = false;
- SetAutoCalc( bOldAutoCalc );
}
void ScDocument::SetClipArea( const ScRange& rArea, bool bCut )
--
1.9.0

@ -1,5 +1,5 @@
# download path contains version without the last (fourth) digit # download path contains version without the last (fourth) digit
%define libo_version 4.2.3 %define libo_version 4.2.4
# Should contain .alphaX / .betaX, if this is pre-release (actually # Should contain .alphaX / .betaX, if this is pre-release (actually
# pre-RC) version. The pre-release string is part of tarball file names, # pre-RC) version. The pre-release string is part of tarball file names,
# so we need a way to define it easily at one place. # so we need a way to define it easily at one place.
@ -42,8 +42,8 @@
Summary: Free Software Productivity Suite Summary: Free Software Productivity Suite
Name: libreoffice Name: libreoffice
Epoch: 1 Epoch: 1
Version: %{libo_version}.3 Version: %{libo_version}.1
Release: 6%{?libo_prerelease}%{?dist} Release: 1%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
Group: Applications/Productivity Group: Applications/Productivity
URL: http://www.libreoffice.org/default/ URL: http://www.libreoffice.org/default/
@ -74,7 +74,7 @@ Source13: %{external_url}/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.
Source14: %{external_url}/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz Source14: %{external_url}/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz
Source15: %{external_url}/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz Source15: %{external_url}/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz
Source16: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2 Source16: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
Source17: %{external_url}/libcdr-0.0.14.tar.bz2 Source17: %{external_url}/libcdr-0.0.15.tar.bz2
Source18: %{external_url}/b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2 Source18: %{external_url}/b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2
Source19: %{external_url}/a3dcac551fae5ebbec16e844810828c4-libwpd-0.9.9.tar.bz2 Source19: %{external_url}/a3dcac551fae5ebbec16e844810828c4-libwpd-0.9.9.tar.bz2
Source20: %{external_url}/46eb0e7f213ad61bd5dee0c494132cb0-libwps-0.2.9.tar.bz2 Source20: %{external_url}/46eb0e7f213ad61bd5dee0c494132cb0-libwps-0.2.9.tar.bz2
@ -91,13 +91,14 @@ Source28: %{external_url}/harfbuzz-0.9.23.tar.bz2
Source29: %{external_url}/22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz Source29: %{external_url}/22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
Source30: %{external_url}/libodfgen-0.0.4.tar.bz2 Source30: %{external_url}/libodfgen-0.0.4.tar.bz2
Source31: %{external_url}/libmwaw-0.2.0.tar.bz2 Source31: %{external_url}/libmwaw-0.2.0.tar.bz2
Source32: %{external_url}/libetonyek-0.0.3.tar.bz2 Source32: %{external_url}/libetonyek-0.0.4.tar.bz2
Source33: %{external_url}/libfreehand-0.0.0.tar.bz2 Source33: %{external_url}/libfreehand-0.0.0.tar.bz2
Source34: %{external_url}/libe-book-0.0.3.tar.bz2 Source34: %{external_url}/libe-book-0.0.3.tar.bz2
Source35: %{external_url}/Firebird-2.5.2.26540-0.tar.bz2 Source35: %{external_url}/Firebird-2.5.2.26540-0.tar.bz2
Source36: %{external_url}/libabw-0.0.2.tar.bz2 Source36: %{external_url}/libabw-0.0.2.tar.bz2
Source37: %{external_url}/libatomic_ops-7_2d.zip Source37: %{external_url}/libatomic_ops-7_2d.zip
Source38: %{external_url}/libeot-0.01.tar.bz2 Source38: %{external_url}/libeot-0.01.tar.bz2
Source39: %{external_url}/language-subtag-registry-2014-03-27.tar.bz2
%global bundling_options %{?bundling_options} --without-system-libcmis --without-system-libodfgen --without-system-libmwaw --without-system-libetonyek --without-system-libfreehand --without-system-libebook --without-system-firebird --without-system-libabw --without-system-libatomic_ops --without-system-libeot %global bundling_options %{?bundling_options} --without-system-libcmis --without-system-libodfgen --without-system-libmwaw --without-system-libetonyek --without-system-libfreehand --without-system-libebook --without-system-firebird --without-system-libabw --without-system-libatomic_ops --without-system-libeot
%endif %endif
@ -271,33 +272,29 @@ Patch8: libreoffice-rhel6poppler.patch
Patch9: libreoffice-rhel6langs.patch Patch9: libreoffice-rhel6langs.patch
Patch10: libreoffice-rhel6glib.patch Patch10: libreoffice-rhel6glib.patch
%endif %endif
Patch11: 0001-Related-rhbz-1032774-bodge-around-reported-NULL-valu.patch %if 0%{?rhel} && 0%{?rhel} == 7
Patch12: 0001-Resolves-rhbz-1035092-no-shortcut-key-for-Italian-To.patch Patch11: 0001-fix-libetonyek-build.patch
Patch13: 0001-Resolves-rhbz-912529-Kerkis-SmallCaps-shown-instead-.patch %endif
Patch14: 0001-disable-firebird-unit-test.patch Patch12: 0001-Related-rhbz-1032774-bodge-around-reported-NULL-valu.patch
Patch15: 0001-never-run-autogen.sh.patch Patch13: 0001-Resolves-rhbz-1035092-no-shortcut-key-for-Italian-To.patch
Patch16: 0001-Related-rhbz-1065807-rework-i66157-for-multiple-writ.patch Patch14: 0001-Resolves-rhbz-912529-Kerkis-SmallCaps-shown-instead-.patch
Patch17: 0001-Resolves-rhbz-1065807-use-xdg-Templates-for-default-.patch Patch15: 0001-disable-firebird-unit-test.patch
Patch18: 0001-explictly-list-common-lang-independant-template-dir.patch Patch16: 0001-never-run-autogen.sh.patch
Patch17: 0001-Related-rhbz-1065807-rework-i66157-for-multiple-writ.patch
Patch18: 0001-Resolves-rhbz-1065807-use-xdg-Templates-for-default-.patch
Patch19: 0001-rhbz-1057977-avoid-use-of-invalidated-pointers.patch Patch19: 0001-rhbz-1057977-avoid-use-of-invalidated-pointers.patch
Patch20: 0001-KDE-don-t-throw-on-TemplatePathVariable.patch Patch20: 0001-KDE-don-t-throw-on-TemplatePathVariable.patch
Patch21: 0001-Wizards-should-look-for-templates-in-Template_intern.patch Patch21: 0001-Wizards-should-look-for-templates-in-Template_intern.patch
Patch22: 0001-actively-search-for-wizards-dir-in-all-internal-temp.patch Patch22: 0001-actively-search-for-wizards-dir-in-all-internal-temp.patch
Patch23: 0001-Related-rhbz-1076264-intermittent-a11y-crash-in-calc.patch Patch23: 0001-Change-SDK-javaodc-from-static-Package-to-dynamic-Ge.patch
Patch24: 0001-Resolves-rhbz-1077780-crash-on-loading-.docx.patch Patch24: 0001-Package-GeneratedPackage-fixup.patch
Patch25: 0001-Change-SDK-javaodc-from-static-Package-to-dynamic-Ge.patch Patch25: 0001-Related-rhbz-1075951-abrt-crash-in-MSWordExportBase-.patch
Patch26: 0001-Package-GeneratedPackage-fixup.patch Patch26: 0001-drop-OnlyShowIn-from-.desktop-files.patch
Patch27: 0001-rhbz-1080196-Delete-the-destination-first-then-paste.patch Patch27: 0001-Resolves-rhbz-1081176-don-t-jump-to-cursor-pos-when.patch
Patch28: 0001-Related-rhbz-1075951-abrt-crash-in-MSWordExportBase-.patch Patch28: 0001-prevent-KDE-Qt-from-interfering-with-the-session-man.patch
Patch29: 0001-drop-OnlyShowIn-from-.desktop-files.patch Patch29: 0001-Resolves-fdo-36815-enable-printing-WYSIWYG-sidewindo.patch
Patch30: 0001-Resolves-rhbz-1081176-don-t-jump-to-cursor-pos-when.patch Patch30: 0001-Related-fdo-36815-print-the-text-highlight-range-as-.patch
Patch31: 0001-prevent-KDE-Qt-from-interfering-with-the-session-man.patch Patch31: 0001-Resolves-rhbz-1086714-overlarge-pixmap.patch
%if 0%{?rhel} && 0%{?rhel} == 7
Patch32: 0001-fix-libetonyek-build.patch
%endif
Patch33: 0001-Resolves-fdo-36815-enable-printing-WYSIWYG-sidewindo.patch
Patch34: 0001-Related-fdo-36815-print-the-text-highlight-range-as-.patch
Patch35: 0001-Resolves-rhbz-1086714-overlarge-pixmap.patch
%define instdir %{_libdir} %define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice %define baseinstdir %{instdir}/libreoffice
@ -1083,7 +1080,7 @@ Rules for auto-correcting common %{langname} typing errors. \
%autocorr -l af -n Afrikaans %autocorr -l af -n Afrikaans
%autocorr -l bg -n Bulgarian %autocorr -l bg -n Bulgarian
%autocorr -l ca -n Catalan -L %autocorr -l ca -n Catalan
%autocorr -l cs -n Czech %autocorr -l cs -n Czech
%autocorr -l da -n Danish %autocorr -l da -n Danish
%autocorr -l de -n German %autocorr -l de -n German
@ -2289,6 +2286,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif %endif
%changelog %changelog
* Thu Apr 17 2014 David Tardon <dtardon@redhat.com> - 1:4.2.4.1-1
- update to 4.2.4 rc1
* Wed Apr 16 2014 David Tardon <dtardon@redhat.com> - 1:4.2.3.3-6 * Wed Apr 16 2014 David Tardon <dtardon@redhat.com> - 1:4.2.3.3-6
- install man pages - install man pages
- Resolves: rhbz#1086714 overlarge pixmap - Resolves: rhbz#1086714 overlarge pixmap

Loading…
Cancel
Save