1 --- sc/inc/dpobject.hxx.old 2009-04-02 10:45:43.000000000 +0000
2 +++ sc/inc/dpobject.hxx 2009-04-06 16:41:48.000000000 +0000
3 @@ -106,6 +106,7 @@ private:
6 BOOL bAlive; // FALSE if only used to hold settings
7 + USHORT nAutoFormatIndex;
9 BOOL bInfoValid; // affects: nHeaderRows
10 long nHeaderRows; // page fields plus filter button
11 @@ -137,6 +138,9 @@ public:
12 void SetOutRange(const ScRange& rRange);
13 const ScRange& GetOutRange() const { return aOutRange; }
15 + void SetAutoFormatIndex (const USHORT nIndex);
16 + USHORT GetAutoFormatIndex () { if (this == NULL) return 65535; else return nAutoFormatIndex; }
18 void SetSheetDesc(const ScSheetSourceDesc& rDesc);
19 void SetImportDesc(const ScImportSourceDesc& rDesc);
20 void SetServiceData(const ScDPServiceDesc& rDesc);
21 --- sc/inc/sc.hrc.old 2009-04-06 16:41:39.000000000 +0000
22 +++ sc/inc/sc.hrc 2009-04-06 16:41:48.000000000 +0000
24 #define SID_DATA_FORM (SC_OOO_BUILD_START + 2) // menu (in Data menu)
25 #define RID_SCDLG_DATAFORM (SC_OOO_BUILD_START + 3) // dialog
27 +// Autoformat for DataPilot
28 +#define SID_PIVOT_AFMT (SC_OOO_BUILD_START + 4)
33 --- sc/sdi/pivotsh.sdi.old 2009-04-02 10:44:54.000000000 +0000
34 +++ sc/sdi/pivotsh.sdi 2009-04-06 16:41:48.000000000 +0000
35 @@ -34,6 +34,7 @@ interface Pivot
36 SID_PIVOT_RECALC [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
37 SID_PIVOT_KILL [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
38 SID_DP_FILTER [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
39 + SID_PIVOT_AFMT [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
43 --- sc/sdi/scalc.sdi.old 2009-04-06 16:41:39.000000000 +0000
44 +++ sc/sdi/scalc.sdi 2009-04-06 16:41:48.000000000 +0000
45 @@ -1900,6 +1900,31 @@ SfxVoidItem DeletePivotTable SID_PIVOT_K
49 +SfxVoidItem AutoFormatPivotTable SID_PIVOT_AFMT
54 + Cachable = Cachable,
61 + RecordAbsolute = FALSE,
66 + AccelConfig = FALSE,
68 + StatusBarConfig = FALSE,
69 + ToolBoxConfig = FALSE,
74 //--------------------------------------------------------------------------
75 SfxVoidItem DeletePrintArea SID_DELETE_PRINTAREA
77 --- sc/source/core/data/dpobject.cxx.old 2009-04-02 10:45:01.000000000 +0000
78 +++ sc/source/core/data/dpobject.cxx 2009-04-06 16:41:48.000000000 +0000
79 @@ -165,6 +165,7 @@ ScDPObject::ScDPObject( ScDocument* pD ) :
81 bSettingsChanged( FALSE ),
83 + nAutoFormatIndex( 65535 ),
87 @@ -178,6 +179,7 @@ ScDPObject::ScDPObject(const ScDPObject&
89 bSettingsChanged( FALSE ),
91 + nAutoFormatIndex( r.nAutoFormatIndex ),
93 bInfoValid( r.bInfoValid ),
94 nHeaderRows( r.nHeaderRows ),
95 @@ -234,6 +236,11 @@ void ScDPObject::SetSaveData(const ScDPS
96 InvalidateData(); // re-init source from SaveData
99 +void ScDPObject::SetAutoFormatIndex(const USHORT nIndex)
101 + nAutoFormatIndex = nIndex;
104 void ScDPObject::SetOutRange(const ScRange& rRange)
107 --- sc/source/ui/docshell/dbdocfun.cxx.old 2009-04-02 10:45:27.000000000 +0000
108 +++ sc/source/ui/docshell/dbdocfun.cxx 2009-04-06 16:41:48.000000000 +0000
109 @@ -1390,6 +1390,35 @@ BOOL ScDBDocFunc::DataPilotUpdate( ScDPO
113 + if (const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() != 65535)
115 + ScViewData* pViewData = rDocShell.GetViewData();
116 + rDocShell.GetViewData()->GetViewShell()->GetDBData( TRUE, SC_DB_OLD );
117 + const ScMarkData& rMark1 = pViewData->GetMarkData();
125 + rDocShell.GetViewData()->GetSimpleArea( nStartCol,nStartRow,nStartTab,nEndCol,nEndRow,nEndTab );
126 + ScRange Outrange = pNewObj->GetOutRange();
127 + if (( (Outrange.aStart.Col() <= nStartCol) && (nStartCol <= Outrange.aEnd.Col() )&& (nStartTab == Outrange.aStart.Tab()))
128 + && ( (Outrange.aStart.Row() <= nStartRow) && (nStartRow <= Outrange.aEnd.Row() )) )
131 + if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
132 + rDocShell.GetViewData()->GetViewShell()->MarkDataArea( TRUE );
133 + //FIXME: Autoformat even when clicked from a non-dp cell.
134 + pViewData->MoveNextRow();
135 + rDocShell.GetViewData()->GetViewShell()->AutoFormat( const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex());
136 + rDocShell.GetViewData()->GetViewShell()->AutoFormatPivotTable( const_cast<ScDPObject *>(pNewObj), const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() );
137 + pViewData->MovePrevRow();
143 aModificator.SetDocumentModified();
145 --- sc/source/ui/inc/dbfunc.hxx.old 2009-04-02 10:45:37.000000000 +0000
146 +++ sc/source/ui/inc/dbfunc.hxx 2009-04-06 16:41:48.000000000 +0000
147 @@ -90,6 +90,8 @@ public:
148 const ScDPObject& rSource, BOOL bApi = FALSE );
149 void DeletePivotTable();
150 void RecalcPivotTable();
151 + void AutoFormatPivotTable(USHORT nIndex);
152 + void AutoFormatPivotTable(ScDPObject* pDPObj, USHORT nIndex);
154 BOOL HasSelectionForDateGroup( ScDPNumGroupInfo& rOldInfo, sal_Int32& rParts );
155 BOOL HasSelectionForNumGroup( ScDPNumGroupInfo& rOldInfo );
156 --- sc/source/ui/inc/viewdata.hxx.old 2009-04-02 10:45:37.000000000 +0000
157 +++ sc/source/ui/inc/viewdata.hxx 2009-04-06 16:41:48.000000000 +0000
158 @@ -331,6 +331,10 @@ public:
160 ScMarkType GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& rStartTab,
161 SCCOL& rEndCol, SCROW& rEndRow, SCTAB& rEndTab ) const;
163 + void MoveNextRow();
164 + void MovePrevRow();
166 ScMarkType GetSimpleArea( ScRange& rRange ) const;
167 /// May modify rNewMark using MarkToSimple().
168 ScMarkType GetSimpleArea( ScRange & rRange, ScMarkData & rNewMark ) const;
169 --- sc/source/ui/miscdlgs/makefile.mk.old 2009-04-06 16:41:39.000000000 +0000
170 +++ sc/source/ui/miscdlgs/makefile.mk 2009-04-06 16:41:48.000000000 +0000
171 @@ -117,7 +117,9 @@ LIB1OBJFILES = \
173 $(SLO)$/warnbox.obj \
174 $(SLO)$/conflictsdlg.obj \
175 - $(SLO)$/sharedocdlg.obj
176 + $(SLO)$/sharedocdlg.obj \
177 + $(SLO)$/scuiautofmt.obj \
178 + $(SLO)$/strindlg.obj
180 # --- Tagets -------------------------------------------------------
182 --- sc/source/ui/src/popup.src.old 2009-04-02 10:45:23.000000000 +0000
183 +++ sc/source/ui/src/popup.src 2009-04-06 16:41:48.000000000 +0000
184 @@ -206,6 +206,84 @@ Menu RID_POPUP_PIVOT
185 Text [ en-US ] = "~Start..." ;
189 + Identifier = SID_PIVOT_AFMT ;
190 + HelpId = SID_PIVOT_AFMT ;
191 + Text [ en-US ] = "~AutoFormat..." ;
192 + Text [ de ] = "A~utoFormat" ;
193 + Text [ af ] = "OutoFormateer..." ;
194 + Text [ ar ] = "تنسيق تلقائي..." ;
195 + Text [ as-IN ] = "স্বয়ংক্ৰিয় ফৰমেট ..." ;
196 + Text [ be-BY ] = "Аўта-фармат..." ;
197 + Text [ bg ] = "Автоформат..." ;
198 + Text [ br ] = "EmVentrezhañ..." ;
199 + Text [ bs ] = "AutoFormat..." ;
200 + Text [ ca ] = "Formatació automàtica..." ;
201 + Text [ cs ] = "Automatický formát..." ;
202 + Text [ cy ] = "AwtoFformat..." ;
203 + Text [ da ] = "Autoformat..." ;
204 + Text [ el ] = "Αυτόματη μορφοποίηση..." ;
205 + Text [ en-GB ] = "AutoFormat..." ;
206 + Text [ en-ZA ] = "AutoFormat..." ;
207 + Text [ eo ] = "Aŭtomate Formati..." ;
208 + Text [ es ] = "Formateado automático..." ;
209 + Text [ et ] = "Automaatvormindus..." ;
210 + Text [ fa ] = "قالببندی خودکار..." ;
211 + Text [ fi ] = "Automaattinen muotoilu..." ;
212 + Text [ fr ] = "AutoFormat..." ;
213 + Text [ ga ] = "UathFhormáidigh..." ;
214 + Text [ gu ] = "આપોઆપબંધારણ..." ;
215 + Text [ gu-IN ] = "આપોઆપબંધારણ..." ;
216 + Text [ hi-IN ] = "स्वचालित ढंग से रचना..." ;
217 + Text [ hr ] = "SamoOblikovanje..." ;
218 + Text [ hu ] = "Automatikus formázás..." ;
219 + Text [ it ] = "Formattazione automatica..." ;
220 + Text [ ja ] = "オートフォーマット..." ;
221 + Text [ ka ] = "ავტო-ფორმატირება..." ;
222 + Text [ km ] = "ទ្រង់ទ្រាយស្វ័យប្រវត្តិ..." ;
223 + Text [ ko ] = "자동 서식..." ;
224 + Text [ ku ] = "TeşekirinaBixweber..." ;
225 + Text [ lt ] = "Automatinis formatavimas..." ;
226 + Text [ mk ] = "Автоматско форматирање..." ;
227 + Text [ ml-IN ] = "സ്വയം രൂപപ്പെടുത്തുക..." ;
228 + Text [ mr-IN ] = "स्वंयचलित रचना..." ;
229 + Text [ nb ] = "Autoformatering..." ;
230 + Text [ nl ] = "AutoOpmaak..." ;
231 + Text [ nn ] = "Autoformatering..." ;
232 + Text [ nr ] = "Fometha ngokuzenzakalela..." ;
233 + Text [ ns ] = "Fomate ye e Itiragalelago..." ;
234 + Text [ or-IN ] = "ସ୍ବଯଂଚାଳିତଫର୍ମାଟ..." ;
235 + Text [ pa-IN ] = "ਸਵੈ-ਫਾਰਮਿਟ..." ;
236 + Text [ pl ] = "Autoformatowanie..." ;
237 + Text [ pt ] = "Formatação automática..." ;
238 + Text [ pt-BR ] = "AutoFormatar..." ;
239 + Text [ ru ] = "Автоформат..." ;
240 + Text [ rw ] = "Nyamwihamiterere..." ;
241 + Text [ sh-YU ] = "Automatsko formatiranje..." ;
242 + Text [ sk ] = "Automatický formát..." ;
243 + Text [ sl ] = "Samooblikovanje..." ;
244 + Text [ sr-CS ] = "Аутоматско форматирање..." ;
245 + Text [ ss ] = "Kutifomethekela..." ;
246 + Text [ st ] = "Fomate e iketsahallang..." ;
247 + Text [ sv ] = "Autoformat..." ;
248 + Text [ sw-TZ ] = "AutoFormat..." ;
249 + Text [ ta ] = "தானியக்க வடிவம்..." ;
250 + Text [ ta-IN ] = "தானியக்க வடிவம்..." ;
251 + Text [ te-IN ] = "స్వయంరూపలావణ్యం..." ;
252 + Text [ tg ] = "Автоформат..." ;
253 + Text [ th ] = "AutoFormat..." ;
254 + Text [ tr ] = "Otomatik Biçimlendirme..." ;
255 + Text [ ts ] = "Fomati yo tiendlekela hi yoxe..." ;
256 + Text [ uk ] = "Автоформат..." ;
257 + Text [ ur-IN ] = "خودکارطریقہ..." ;
258 + Text [ ve ] = "OthoFomathi..." ;
259 + Text [ vi ] = "Tự định dạng..." ;
260 + Text [ xh ] = "Ulungiselelo Oluzenzekelayo..." ;
261 + Text [ zh-CN ] = "自动格式..." ;
262 + Text [ zh-TW ] = "自動格式..." ;
263 + Text [ zu ] = "Isakhiwo esizenzekelayo..." ;
267 Identifier = SID_PIVOT_RECALC ;
268 HelpId = SID_PIVOT_RECALC ;
269 --- sc/source/ui/view/dbfunc3.cxx.old 2009-04-02 10:45:40.000000000 +0000
270 +++ sc/source/ui/view/dbfunc3.cxx 2009-04-06 16:41:48.000000000 +0000
271 @@ -1976,7 +1976,28 @@ void ScDBFunc::RepeatDB( BOOL bRecord )
272 else // "Keine Operationen auszufuehren"
273 ErrorMessage(STR_MSSG_REPEATDB_0);
275 +void ScDBFunc::AutoFormatPivotTable(USHORT nIndex)
277 + ScDocument* pDoc = GetViewData()->GetDocument();
279 + // old pivot not used any more
281 + ScDPObject* pDPObj = pDoc->GetDPAtCursor( GetViewData()->GetCurX(),
282 + GetViewData()->GetCurY(),
283 + GetViewData()->GetTabNo() );
286 + pDPObj->SetAutoFormatIndex(nIndex);
289 + ErrorMessage(STR_PIVOT_NOTFOUND);
293 +void ScDBFunc::AutoFormatPivotTable(ScDPObject* pDPObj, USHORT nIndex)
295 + pDPObj->SetAutoFormatIndex(nIndex);
300 --- sc/source/ui/view/pivotsh.cxx.old 2009-04-02 10:45:40.000000000 +0000
301 +++ sc/source/ui/view/pivotsh.cxx 2009-04-06 16:41:48.000000000 +0000
303 #include "uiitems.hxx"
304 //CHINA001 #include "pfiltdlg.hxx"
305 #include "scabstdlg.hxx" //CHINA001
307 +#include "autoform.hxx"
308 +#include "scuiautofmt.hxx"
309 +#include "editable.hxx"
312 //------------------------------------------------------------------------
315 @@ -99,13 +105,56 @@ void ScPivotShell::Execute( SfxRequest&
317 switch ( rReq.GetSlot() )
319 - case SID_PIVOT_RECALC:
320 - pViewShell->RecalcPivotTable();
322 + case SID_PIVOT_AFMT:
324 + ScViewData* pViewData = pViewShell->GetViewData();
326 + pViewShell->GetDBData( TRUE, SC_DB_OLD );
327 + const ScMarkData& rMark1 = pViewData->GetMarkData();
328 + if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
329 + pViewShell->MarkDataArea( TRUE );
331 + Window* pDlgParent = pViewShell->GetDialogParent();
333 + pViewData->MoveNextRow();
335 + ScGlobal::ClearAutoFormat();
336 + ScAutoFormatData* pNewEntry = pViewShell->CreateAutoFormatData();
337 + ScAutoFormatDlg* pDlg = new ScAutoFormatDlg(
339 + ScGlobal::GetAutoFormat(),
341 + pViewShell->GetViewData()->GetDocument() );
343 + if ( pDlg->Execute() == RET_OK )
345 + ScEditableTester aTester( pViewShell );
346 + if ( !aTester.IsEditable() )
348 + pViewShell->ErrorMessage(aTester.GetMessageId());
352 + /* AutoFormat and Store the index */
353 + pViewShell->AutoFormat( pDlg->GetIndex() );
354 + pViewShell->AutoFormatPivotTable( pDlg->GetIndex() );
361 + //pViewShell->DeletePivotTable();
362 + //pViewShell->RecalcPivotTable();
366 pViewShell->DeletePivotTable();
368 + case SID_PIVOT_RECALC:
369 + //pViewShell->DeletePivotTable();
370 + pViewShell->RecalcPivotTable();
375 --- sc/source/ui/view/viewdata.cxx.old 2009-04-02 10:45:40.000000000 +0000
376 +++ sc/source/ui/view/viewdata.cxx 2009-04-06 16:41:48.000000000 +0000
377 @@ -670,6 +670,22 @@ void ScViewData::RefreshZoom()
378 aLogicMode.SetScaleY( GetZoomY() );
381 +void ScViewData::MoveNextRow()
383 + ScRange aMarkRange;
384 + aMarkData.GetMarkArea(aMarkRange);
385 + aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() +1, aMarkRange.aStart.Tab());
386 + aMarkData.SetMarkArea(aMarkRange);
389 +void ScViewData::MovePrevRow()
391 + ScRange aMarkRange;
392 + aMarkData.GetMarkArea(aMarkRange);
393 + aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() -1, aMarkRange.aStart.Tab());
394 + aMarkData.SetMarkArea(aMarkRange);
397 void ScViewData::SetPagebreakMode( BOOL bSet )