ooo-build r11588 - in trunk: . patches/src680
- From: kyoshida svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11588 - in trunk: . patches/src680
- Date: Thu, 14 Feb 2008 22:37:46 +0000 (GMT)
Author: kyoshida
Date: Thu Feb 14 22:37:46 2008
New Revision: 11588
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11588&view=rev
Log:
2008-02-14 Kohei Yoshida <kyoshida novell com>
* patches/src680/sc-datapilot-dynamic-range.diff: update the field list
when the source range is modified, instead of when the OK button is
pressed, so that the user can have a chance to edit it in case of new
field names.
Modified:
trunk/ChangeLog
trunk/patches/src680/sc-datapilot-dynamic-range.diff
Modified: trunk/patches/src680/sc-datapilot-dynamic-range.diff
==============================================================================
--- trunk/patches/src680/sc-datapilot-dynamic-range.diff (original)
+++ trunk/patches/src680/sc-datapilot-dynamic-range.diff Thu Feb 14 22:37:46 2008
@@ -171,7 +171,7 @@
Only in sc/source/ui/dbgui: pivot.src~
diff -urp --exclude=CVS sc.clean/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
--- sc.clean/source/ui/dbgui/pvlaydlg.cxx 2008-02-05 11:16:56.000000000 -0500
-+++ sc/source/ui/dbgui/pvlaydlg.cxx 2008-02-14 14:29:15.000000000 -0500
++++ sc/source/ui/dbgui/pvlaydlg.cxx 2008-02-14 17:14:03.000000000 -0500
@@ -41,6 +41,7 @@
//----------------------------------------------------------------------------
@@ -228,18 +228,36 @@
aBtnMore.SetClickHdl( LINK( this, ScDPLayoutDlg, MoreClickHdl ) );
{
-@@ -237,6 +249,23 @@ void __EXPORT ScDPLayoutDlg::Init()
+@@ -237,31 +249,35 @@ void __EXPORT ScDPLayoutDlg::Init()
aRowArr.resize( MAX_FIELDS );
aDataArr.resize( MAX_FIELDS );
+- InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
+- InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
+- InitWnd( thePivotData.aColArr, static_cast<long>(thePivotData.nColCount), TYPE_COL );
+- InitWnd( thePivotData.aRowArr, static_cast<long>(thePivotData.nRowCount), TYPE_ROW );
+- InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
+-
+- aSlider.SetPageSize( PAGE_SIZE );
+- aSlider.SetVisibleSize( PAGE_SIZE );
+- aSlider.SetLineSize( LINE_SIZE );
+- aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
+-
+- if ( thePivotData.nLabels > PAGE_SIZE )
+- {
+- aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
+- aSlider.Show();
+- }
+- else
+- aSlider.Hide();
+ ScRange inRange;
+ String inString;
+ if (xDlgDPObject->GetSheetDesc())
+ {
+ aEdInPos.Enable();
+ aRbInPos.Enable();
-+ inRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
-+ inRange.Format( inString, STD_FORMAT, pDoc);
++ aOldRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
++ aOldRange.Format( inString, STD_FORMAT, pDoc);
+ aEdInPos.SetText(inString);
+ }
+ else
@@ -248,11 +266,9 @@
+ aEdInPos.Disable();
+ aRbInPos.Disable();
+ }
-+
- InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
- InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
- InitWnd( thePivotData.aColArr, static_cast<long>(thePivotData.nColCount), TYPE_COL );
-@@ -260,8 +289,14 @@ void __EXPORT ScDPLayoutDlg::Init()
+
+- // Ein-/Ausgabebereiche: ----------------------------------------------
++ InitFields();
aLbOutPos .SetSelectHdl( LINK( this, ScDPLayoutDlg, SelAreaHdl ) );
aEdOutPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdModifyHdl ) );
@@ -267,18 +283,46 @@
if ( pViewData && pDoc )
{
-@@ -1314,23 +1349,66 @@ BOOL ScDPLayoutDlg::GetPivotArrays( P
+@@ -480,6 +496,27 @@ void ScDPLayoutDlg::InitFocus()
+ aWndSelect.GrabFocus();
+ }
+
++void ScDPLayoutDlg::InitFields()
++{
++ InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
++ InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
++ InitWnd( thePivotData.aColArr, static_cast<long>(thePivotData.nColCount), TYPE_COL );
++ InitWnd( thePivotData.aRowArr, static_cast<long>(thePivotData.nRowCount), TYPE_ROW );
++ InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
++
++ aSlider.SetPageSize( PAGE_SIZE );
++ aSlider.SetVisibleSize( PAGE_SIZE );
++ aSlider.SetLineSize( LINE_SIZE );
++ aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
++
++ if ( thePivotData.nLabels > PAGE_SIZE )
++ {
++ aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
++ aSlider.Show();
++ }
++ else
++ aSlider.Hide();
++}
+
+ //----------------------------------------------------------------------------
+
+@@ -1314,23 +1351,79 @@ BOOL ScDPLayoutDlg::GetPivotArrays( P
return bFit;
}
-+bool ScDPLayoutDlg::UpdateSrcRange()
++void ScDPLayoutDlg::UpdateSrcRange()
+{
+ String theCurPosStr = aEdInPos.GetText();
+ USHORT nResult = ScRange().Parse(theCurPosStr, pDoc);
+
+ if ( SCA_VALID != (nResult & SCA_VALID) )
+ // invalid source range.
-+ return false;
++ return;
+
+ ScRefAddress start, end;
+ ConvertDoubleRef(pDoc, theCurPosStr, 1, start, end);
@@ -287,14 +331,12 @@
+
+ if (inSheet.aSourceRange == aNewRange)
+ // new range is identical to the current range. Nothing to do.
-+ return true;
++ return;
+
+ ScTabViewShell * pTabViewShell = pViewData->GetViewShell();
+ inSheet.aSourceRange = aNewRange;
+ xDlgDPObject->SetSheetDesc(inSheet);
+ xDlgDPObject->InvalidateSource();
-+ xDlgDPObject->Output();
-+ xDlgDPObject->SetAlive(true); // needed to get structure information
+ xDlgDPObject->FillOldParam(thePivotData, true);
+ xDlgDPObject->FillLabelData(thePivotData);
+
@@ -306,7 +348,22 @@
+ aWndCol.ClearFields();
+ aWndPage.ClearFields();
+
-+ return true;
++ for (USHORT i = 0; i < MAX_LABELS; ++i)
++ aSelectArr[i].reset();
++
++ for (USHORT i = 0; i < MAX_FIELDS; ++i)
++ {
++ RemoveField(TYPE_COL, i);
++ RemoveField(TYPE_ROW, i);
++ RemoveField(TYPE_DATA, i);
++ }
++
++ for (USHORT i = 0; i < MAX_PAGEFIELDS; ++i)
++ RemoveField(TYPE_PAGE, i);
++
++ InitFields();
++
++ return;
+}
//----------------------------------------------------------------------------
@@ -346,7 +403,7 @@
}
-@@ -1340,8 +1418,13 @@ void ScDPLayoutDlg::SetActive()
+@@ -1340,8 +1433,13 @@ void ScDPLayoutDlg::SetActive()
{
if ( bRefInputMode )
{
@@ -362,20 +419,27 @@
}
else
{
-@@ -1384,6 +1467,12 @@ IMPL_LINK( ScDPLayoutDlg, OkHdl, OKButto
- if ( bToNewTable
- || ( (aOutPosStr.Len() > 0) && (SCA_VALID == (nResult & SCA_VALID)) ) )
- {
-+ if (!UpdateSrcRange())
-+ {
-+ ErrorBox( this, WinBits(WB_OK | WB_DEF_OK), ScGlobal::GetRscString(STR_INVALID_TABREF) ).Execute();
-+ aEdInPos.GrabFocus();
-+ return 0;
-+ }
- //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
- //SFX_APPWINDOW->Enable();
+@@ -1497,12 +1595,17 @@ IMPL_LINK( ScDPLayoutDlg, OkHdl, OKButto
+
+ //----------------------------------------------------------------------------
-@@ -1514,9 +1603,18 @@ IMPL_LINK( ScDPLayoutDlg, MoreClickHdl,
+-IMPL_LINK_INLINE_START( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
++IMPL_LINK( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
+ {
++ ScSheetSourceDesc inSheet = *xDlgDPObject->GetSheetDesc();
++ inSheet.aSourceRange = aOldRange;
++ xDlgDPObject->SetSheetDesc(inSheet);
++ xDlgDPObject->InvalidateSource();
++ xDlgDPObject->FillOldParam(thePivotData, true);
++ xDlgDPObject->FillLabelData(thePivotData);
+ Close();
+ return 0;
+ }
+-IMPL_LINK_INLINE_END( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
+
+
+ //----------------------------------------------------------------------------
+@@ -1514,9 +1617,18 @@ IMPL_LINK( ScDPLayoutDlg, MoreClickHdl,
bRefInputMode = TRUE;
//@BugID 54702 Enablen/Disablen nur noch in Basisklasse
//SFX_APPWINDOW->Enable();
@@ -397,12 +461,13 @@
}
else
{
-@@ -1557,6 +1655,12 @@ IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, E
+@@ -1557,6 +1669,13 @@ IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, E
}
+IMPL_LINK( ScDPLayoutDlg, EdInModifyHdl, Edit *, EMPTYARG )
+{
++ UpdateSrcRange();
+ return 0;
+}
+
@@ -410,7 +475,7 @@
//----------------------------------------------------------------------------
IMPL_LINK( ScDPLayoutDlg, SelAreaHdl, ListBox *, EMPTYARG )
-@@ -1610,4 +1714,16 @@ IMPL_LINK( ScDPLayoutDlg, ScrollHdl, Scr
+@@ -1610,4 +1729,16 @@ IMPL_LINK( ScDPLayoutDlg, ScrollHdl, Scr
return 0;
}
@@ -430,7 +495,7 @@
Only in sc/source/ui/dbgui: pvlaydlg.cxx.orig
diff -urp --exclude=CVS sc.clean/source/ui/inc/pvlaydlg.hxx sc/source/ui/inc/pvlaydlg.hxx
--- sc.clean/source/ui/inc/pvlaydlg.hxx 2008-02-05 11:16:55.000000000 -0500
-+++ sc/source/ui/inc/pvlaydlg.hxx 2008-02-14 14:25:26.000000000 -0500
++++ sc/source/ui/inc/pvlaydlg.hxx 2008-02-14 16:42:01.000000000 -0500
@@ -143,10 +143,18 @@ private:
FixedInfo aFtInfo;
@@ -459,12 +524,28 @@
Rectangle aRectPage;
Rectangle aRectRow;
Rectangle aRectCol;
-@@ -221,14 +231,19 @@ private:
+@@ -187,6 +197,7 @@ private:
+ ScDPFuncDataVec aDataArr;
+
+ ScDPObjectPtr xDlgDPObject;
++ ScRange aOldRange;
+ ScPivotParam thePivotData;
+ ScViewData* pViewData;
+ ScDocument* pDoc;
+@@ -198,6 +209,7 @@ private:
+ void InitWndSelect ( LabelData** ppLabelArr, long nLabels );
+ void InitWnd ( PivotField* pArr, long nCount, ScDPFieldType eType );
+ void InitFocus ();
++ void InitFields ();
+ void CalcWndSizes ();
+ Point DlgPos2WndPos ( const Point& rPt, Window& rWnd );
+ ScDPLabelData* GetLabelData ( SCsCOL nCol, size_t* pPos = NULL );
+@@ -221,14 +233,19 @@ private:
USHORT& rColCount,
USHORT& rRowCount,
USHORT& rDataCount );
+
-+ bool UpdateSrcRange();
++ void UpdateSrcRange();
+
// Handler
DECL_LINK( ClickHdl, PushButton * );
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]