ooo-build r11486 - in trunk: . patches/src680
- From: kyoshida svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11486 - in trunk: . patches/src680
- Date: Fri, 1 Feb 2008 06:04:16 +0000 (GMT)
Author: kyoshida
Date: Fri Feb 1 06:04:16 2008
New Revision: 11486
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11486&view=rev
Log:
2008-02-01 Kohei Yoshida <kyoshida novell com>
* patches/src680/sc-calc-datapilot-drilldown.diff: fixed a crash when
double-clicking on the bottom row of an empty datapilot table.
Modified:
trunk/ChangeLog
trunk/patches/src680/sc-calc-datapilot-drilldown.diff
Modified: trunk/patches/src680/sc-calc-datapilot-drilldown.diff
==============================================================================
--- trunk/patches/src680/sc-calc-datapilot-drilldown.diff (original)
+++ trunk/patches/src680/sc-calc-datapilot-drilldown.diff Fri Feb 1 06:04:16 2008
@@ -1,3 +1,5 @@
+? sc/sc.diff
+? sc/sc.vpj
Index: sc/inc/dapiuno.hxx
===================================================================
RCS file: /cvs/sc/sc/inc/dapiuno.hxx,v
@@ -1870,10 +1872,9 @@
===================================================================
RCS file: /cvs/sc/sc/source/core/data/dpobject.cxx,v
retrieving revision 1.22
-retrieving revision 1.21.112.6
-diff -u -b -I $Revision.*$ -I $Author.*$ -r1.22 -r1.21.112.6
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.22 dpobject.cxx
--- sc/source/core/data/dpobject.cxx 26 Nov 2007 15:19:32 -0000 1.22
-+++ sc/source/core/data/dpobject.cxx 4 Dec 2007 06:06:26 -0000 1.21.112.6
++++ sc/source/core/data/dpobject.cxx 1 Feb 2008 05:52:05 -0000
@@ -62,18 +62,32 @@
#include "unonames.hxx"
@@ -2067,19 +2068,10 @@
===================================================================
RCS file: /cvs/sc/sc/source/core/data/dpoutput.cxx,v
retrieving revision 1.16
-retrieving revision 1.15.112.9
-diff -u -b -I $Revision.*$ -I $Author.*$ -r1.16 -r1.15.112.9
+retrieving revision 1.15.112.10
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.16 -r1.15.112.10
--- sc/source/core/data/dpoutput.cxx 26 Nov 2007 15:19:49 -0000 1.16
-+++ sc/source/core/data/dpoutput.cxx 5 Dec 2007 00:25:14 -0000 1.15.112.9
-@@ -36,7 +36,7 @@
- // MARKER(update_precomp.py): autogen include statement, do not remove
- #include "precompiled_sc.hxx"
-
--
-+#include <stdio.h>
-
- // INCLUDE ---------------------------------------------------------------
-
++++ sc/source/core/data/dpoutput.cxx 1 Feb 2008 05:28:12 -0000 1.15.112.10
@@ -48,6 +48,8 @@
#include <unotools/transliterationwrapper.hxx>
@@ -2089,7 +2081,7 @@
#include "document.hxx"
#include "patattr.hxx"
#include "docpool.hxx"
-@@ -60,21 +62,37 @@
+@@ -60,21 +62,38 @@
#include "stlsheet.hxx"
#include "collect.hxx"
#include "scresid.hxx"
@@ -2119,6 +2111,7 @@
+#include <com/sun/star/sheet/XDataPilotResults.hpp>
+#include <com/sun/star/sheet/XHierarchiesSupplier.hpp>
+#include <com/sun/star/sheet/XLevelsSupplier.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
+
+#include <vector>
@@ -2135,7 +2128,7 @@
// -----------------------------------------------------------------------
-@@ -702,6 +720,42 @@
+@@ -702,6 +721,42 @@
}
}
@@ -2178,7 +2171,7 @@
void ScDPOutput::Output()
{
long nField;
-@@ -862,12 +916,30 @@
+@@ -862,12 +917,30 @@
lcl_SetFrame( pDoc,nTab, nTabStartCol,nTabStartRow, nTabEndCol,nTabEndRow, 40 );
}
@@ -2211,7 +2204,7 @@
}
BOOL ScDPOutput::HasError()
-@@ -929,13 +1001,10 @@
+@@ -929,13 +1002,10 @@
}
}
@@ -2227,7 +2220,7 @@
SCCOL nCol = rPos.Col();
SCROW nRow = rPos.Row();
-@@ -947,56 +1016,88 @@
+@@ -947,57 +1017,96 @@
CalcSizes();
@@ -2252,7 +2245,7 @@
+ {
+ sal_Int32 nDataFieldCount;
+ Any any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii("DataFieldCount"));
-+ if (any >>= nDataFieldCount)
++ if ((any >>= nDataFieldCount) && nDataFieldCount > 0)
+ aResData.DataFieldIndex = (nRow - nDataStartRow) % nDataFieldCount;
+ }
+
@@ -2267,11 +2260,10 @@
+ }
+ case DataPilotTablePositionType::COLUMN_HEADER:
{
-+ fprintf(stdout, "ScDPOutput::GetPositionData: column header\n");fflush(stdout);
long nField = nRow - nMemberStartRow;
const uno::Sequence<sheet::MemberResult> rSequence = pColFields[nField].aResult;
const sheet::MemberResult* pArray = rSequence.getConstArray();
- long nThisColCount = rSequence.getLength();
+- long nThisColCount = rSequence.getLength();
- if ( nCol >= nDataStartCol && nCol < nDataStartCol + nThisColCount )
- {
@@ -2303,11 +2295,10 @@
+ }
+ case DataPilotTablePositionType::ROW_HEADER:
{
-+ fprintf(stdout, "ScDPOutput::GetPositionData: row header\n");fflush(stdout);
long nField = nCol - nMemberStartCol;
const uno::Sequence<sheet::MemberResult> rSequence = pRowFields[nField].aResult;
const sheet::MemberResult* pArray = rSequence.getConstArray();
- long nThisRowCount = rSequence.getLength();
+- long nThisRowCount = rSequence.getLength();
- if ( nRow >= nDataStartRow && nRow < nDataStartRow + nThisRowCount )
- {
@@ -2338,9 +2329,21 @@
-bool ScDPOutput::GetDataFieldPositionData(std::vector<sheet::DataPilotFieldFilter>& rFilters, const ScAddress& rPos)
+bool ScDPOutput::GetDataResultPositionData(vector<sheet::DataPilotFieldFilter>& rFilters, const ScAddress& rPos)
{
++ // Check to make sure there is at least one data field.
++ Reference<beans::XPropertySet> xPropSet(xSource, UNO_QUERY);
++ if (!xPropSet.is())
++ return false;
++
++ sal_Int32 nDataFieldCount;
++ Any any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii("DataFieldCount"));
++ if (!(any >>= nDataFieldCount) || nDataFieldCount == 0)
++ // No data field is present in this datapilot table.
++ return false;
++
SCCOL nCol = rPos.Col();
SCROW nRow = rPos.Row();
-@@ -1013,8 +1114,6 @@
+ SCTAB nTab = rPos.Tab();
+@@ -1013,8 +1122,6 @@
return false;
}
@@ -2349,20 +2352,17 @@
// column fields
for (SCCOL nColField = 0; nColField < nColFieldCount; ++nColField)
{
-@@ -1022,10 +1121,10 @@
- filter.FieldName = pColFields[nColField].aCaption;
-
+@@ -1024,8 +1131,7 @@
const uno::Sequence<sheet::MemberResult> rSequence = pColFields[nColField].aResult;
-+ long nThisColCount = rSequence.getLength();
const sheet::MemberResult* pArray = rSequence.getConstArray();
- DBG_ASSERT(nDataStartCol + rSequence.getLength() - 1 == nTabEndCol,
- "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
-+ DBG_ASSERT(nDataStartCol + nThisColCount - 1 == nTabEndCol, "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
++ DBG_ASSERT(nDataStartCol + rSequence.getLength() - 1 == nTabEndCol, "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
long nItem = nCol - nDataStartCol;
// get origin of "continue" fields
-@@ -1033,7 +1132,7 @@
+@@ -1033,7 +1139,7 @@
--nItem;
filter.MatchValue = pArray[nItem].Name;
@@ -2371,20 +2371,17 @@
rFilters.push_back(filter);
}
-@@ -1044,10 +1143,10 @@
- filter.FieldName = pRowFields[nRowField].aCaption;
-
+@@ -1046,8 +1152,7 @@
const uno::Sequence<sheet::MemberResult> rSequence = pRowFields[nRowField].aResult;
-+ long nThisRowCount = rSequence.getLength();
const sheet::MemberResult* pArray = rSequence.getConstArray();
- DBG_ASSERT(nDataStartRow + rSequence.getLength() - 1 == nTabEndRow,
- "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
-+ DBG_ASSERT(nDataStartRow + nThisRowCount - 1 == nTabEndRow, "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
++ DBG_ASSERT(nDataStartRow + rSequence.getLength() - 1 == nTabEndRow, "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
long nItem = nRow - nDataStartRow;
// get origin of "continue" fields
-@@ -1055,7 +1154,7 @@
+@@ -1055,7 +1160,7 @@
--nItem;
filter.MatchValue = pArray[nItem].Name;
@@ -5057,8 +5054,13 @@
}
//
---- sc/source/ui/view/gridwin.cxx.orig 2008-01-15 11:54:09.000000000 -0500
-+++ sc/source/ui/view/gridwin.cxx 2008-01-15 12:04:53.000000000 -0500
+Index: sc/source/ui/view/gridwin.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/gridwin.cxx,v
+retrieving revision 1.88
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.88 gridwin.cxx
+--- sc/source/ui/view/gridwin.cxx 12 Dec 2007 13:21:19 -0000 1.88
++++ sc/source/ui/view/gridwin.cxx 1 Feb 2008 05:52:06 -0000
@@ -93,6 +93,10 @@
#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
@@ -5079,7 +5081,7 @@
const BYTE SC_NESTEDBUTTON_NONE = 0;
const BYTE SC_NESTEDBUTTON_DOWN = 1;
-@@ -2046,11 +2052,13 @@
+@@ -2028,11 +2034,13 @@
if ( pDPObj && pDPObj->GetSaveData()->GetDrillDown() )
{
ScAddress aCellPos( nPosX, nPosY, nTab );
@@ -5097,7 +5099,7 @@
{
USHORT nDummy;
if ( pView->HasSelectionForDrillDown( nDummy ) )
-@@ -2072,8 +2080,8 @@
+@@ -2054,8 +2062,8 @@
{
// Check if the data area is double-clicked.
@@ -5108,7 +5110,7 @@
pViewData->GetView()->ShowDataPilotSourceData( *pDPObj, aFilters );
else
Sound::Beep(); // nothing to expand/collapse/show
-@@ -3274,24 +3282,24 @@
+@@ -3238,24 +3246,24 @@
bool bDPSort = false;
if ( pThisDoc->GetDPAtCursor( nSourceStartX, nSourceStartY, aSourceRange.aStart.Tab() ) == pDPObj )
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]