xref: /aoo4110/main/sd/source/ui/view/outlnvs2.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sd.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "OutlineViewShell.hxx"
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski #include <com/sun/star/presentation/XPresentation2.hpp>
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski #include "app.hrc"
32*b1cdbd2cSJim Jagielski #include <svx/hlnkitem.hxx>
33*b1cdbd2cSJim Jagielski #include <sfx2/docfile.hxx>
34*b1cdbd2cSJim Jagielski #include <sfx2/dispatch.hxx>
35*b1cdbd2cSJim Jagielski #include <sfx2/request.hxx>
36*b1cdbd2cSJim Jagielski #include <svl/eitem.hxx>
37*b1cdbd2cSJim Jagielski #ifndef _ZOOMITEM_HXX //autogen
38*b1cdbd2cSJim Jagielski #include <svx/zoomitem.hxx>
39*b1cdbd2cSJim Jagielski #endif
40*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
41*b1cdbd2cSJim Jagielski #include <editeng/eeitem.hxx>
42*b1cdbd2cSJim Jagielski #include <editeng/flditem.hxx>
43*b1cdbd2cSJim Jagielski #include <editeng/editstat.hxx>
44*b1cdbd2cSJim Jagielski #include "optsitem.hxx"
45*b1cdbd2cSJim Jagielski #include <unotools/useroptions.hxx>
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski #include <sfx2/viewfrm.hxx>
48*b1cdbd2cSJim Jagielski #include "Outliner.hxx"
49*b1cdbd2cSJim Jagielski #include "Window.hxx"
50*b1cdbd2cSJim Jagielski #include "OutlineViewShell.hxx"
51*b1cdbd2cSJim Jagielski #include "fubullet.hxx"
52*b1cdbd2cSJim Jagielski #include "fuolbull.hxx"
53*b1cdbd2cSJim Jagielski #include "FrameView.hxx"
54*b1cdbd2cSJim Jagielski #include "fuzoom.hxx"
55*b1cdbd2cSJim Jagielski #include "fuscale.hxx"
56*b1cdbd2cSJim Jagielski #include "fuchar.hxx"
57*b1cdbd2cSJim Jagielski #include "fuinsfil.hxx"
58*b1cdbd2cSJim Jagielski #include "fuprobjs.hxx"
59*b1cdbd2cSJim Jagielski #include "futhes.hxx"
60*b1cdbd2cSJim Jagielski #include "futempl.hxx"
61*b1cdbd2cSJim Jagielski #include "fusldlg.hxx"
62*b1cdbd2cSJim Jagielski #include "zoomlist.hxx"
63*b1cdbd2cSJim Jagielski #include "fuexpand.hxx"
64*b1cdbd2cSJim Jagielski #include "fusumry.hxx"
65*b1cdbd2cSJim Jagielski #include "fucushow.hxx"
66*b1cdbd2cSJim Jagielski #include "drawdoc.hxx"
67*b1cdbd2cSJim Jagielski #include "sdattr.hxx"
68*b1cdbd2cSJim Jagielski #include "ViewShellBase.hxx"
69*b1cdbd2cSJim Jagielski #include "sdabstdlg.hxx"
70*b1cdbd2cSJim Jagielski #include "framework/FrameworkHelper.hxx"
71*b1cdbd2cSJim Jagielski #include "DrawViewShell.hxx"
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
74*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::presentation;
75*b1cdbd2cSJim Jagielski 
76*b1cdbd2cSJim Jagielski namespace sd {
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski /************************************************************************/
80*b1cdbd2cSJim Jagielski 
81*b1cdbd2cSJim Jagielski /*************************************************************************
82*b1cdbd2cSJim Jagielski |*
83*b1cdbd2cSJim Jagielski |* SfxRequests fuer temporaere Funktionen
84*b1cdbd2cSJim Jagielski |*
85*b1cdbd2cSJim Jagielski \************************************************************************/
86*b1cdbd2cSJim Jagielski 
FuTemporary(SfxRequest & rReq)87*b1cdbd2cSJim Jagielski void OutlineViewShell::FuTemporary(SfxRequest &rReq)
88*b1cdbd2cSJim Jagielski {
89*b1cdbd2cSJim Jagielski 	DeactivateCurrentFunction();
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski 	OutlinerView* pOutlinerView = pOlView->GetViewByWindow( GetActiveWindow() );
92*b1cdbd2cSJim Jagielski 	sal_uInt16 nSId = rReq.GetSlot();
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski 	switch( nSId )
95*b1cdbd2cSJim Jagielski 	{
96*b1cdbd2cSJim Jagielski 		case SID_ATTR_ZOOM:
97*b1cdbd2cSJim Jagielski 		{
98*b1cdbd2cSJim Jagielski 			const SfxItemSet* pArgs = rReq.GetArgs();
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski 			if ( pArgs )
101*b1cdbd2cSJim Jagielski 			{
102*b1cdbd2cSJim Jagielski 				SvxZoomType eZT = ( ( const SvxZoomItem& ) pArgs->
103*b1cdbd2cSJim Jagielski 											Get( SID_ATTR_ZOOM ) ).GetType();
104*b1cdbd2cSJim Jagielski 				switch( eZT )
105*b1cdbd2cSJim Jagielski 				{
106*b1cdbd2cSJim Jagielski 					case SVX_ZOOM_PERCENT:
107*b1cdbd2cSJim Jagielski 						SetZoom( (long) ( ( const SvxZoomItem& ) pArgs->
108*b1cdbd2cSJim Jagielski 											Get( SID_ATTR_ZOOM ) ).GetValue() );
109*b1cdbd2cSJim Jagielski 						Invalidate( SID_ATTR_ZOOM );
110*b1cdbd2cSJim Jagielski 						Invalidate( SID_ATTR_ZOOMSLIDER );
111*b1cdbd2cSJim Jagielski 						break;
112*b1cdbd2cSJim Jagielski 					default:
113*b1cdbd2cSJim Jagielski 						break;
114*b1cdbd2cSJim Jagielski 				}
115*b1cdbd2cSJim Jagielski 				rReq.Done();
116*b1cdbd2cSJim Jagielski 			}
117*b1cdbd2cSJim Jagielski 			else
118*b1cdbd2cSJim Jagielski 			{
119*b1cdbd2cSJim Jagielski 				// hier den Zoom-Dialog oeffnen
120*b1cdbd2cSJim Jagielski 				SetCurrentFunction( FuScale::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
121*b1cdbd2cSJim Jagielski 			}
122*b1cdbd2cSJim Jagielski 			Cancel();
123*b1cdbd2cSJim Jagielski 		}
124*b1cdbd2cSJim Jagielski 		break;
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski 		case SID_ATTR_ZOOMSLIDER:
127*b1cdbd2cSJim Jagielski 		{
128*b1cdbd2cSJim Jagielski 			const SfxItemSet* pArgs = rReq.GetArgs();
129*b1cdbd2cSJim Jagielski 
130*b1cdbd2cSJim Jagielski 			if (pArgs && pArgs->Count () == 1 )
131*b1cdbd2cSJim Jagielski 			{
132*b1cdbd2cSJim Jagielski 				SFX_REQUEST_ARG (rReq, pScale, SfxUInt16Item, SID_ATTR_ZOOMSLIDER, sal_False);
133*b1cdbd2cSJim Jagielski 				if (CHECK_RANGE (5, pScale->GetValue (), 3000))
134*b1cdbd2cSJim Jagielski 				{
135*b1cdbd2cSJim Jagielski 					SetZoom (pScale->GetValue ());
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski 					SfxBindings& rBindings = GetViewFrame()->GetBindings();
138*b1cdbd2cSJim Jagielski 					rBindings.Invalidate( SID_ATTR_ZOOM );
139*b1cdbd2cSJim Jagielski 					rBindings.Invalidate( SID_ZOOM_IN );
140*b1cdbd2cSJim Jagielski 					rBindings.Invalidate( SID_ZOOM_OUT );
141*b1cdbd2cSJim Jagielski 					rBindings.Invalidate( SID_ATTR_ZOOMSLIDER );
142*b1cdbd2cSJim Jagielski 
143*b1cdbd2cSJim Jagielski 				}
144*b1cdbd2cSJim Jagielski 			}
145*b1cdbd2cSJim Jagielski 
146*b1cdbd2cSJim Jagielski 			Cancel();
147*b1cdbd2cSJim Jagielski 			rReq.Done ();
148*b1cdbd2cSJim Jagielski 			break;
149*b1cdbd2cSJim Jagielski 		}
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski 		case SID_ZOOM_OUT:
152*b1cdbd2cSJim Jagielski 		{
153*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuZoom::Create(this, GetActiveWindow(), pOlView, GetDoc(), rReq) );
154*b1cdbd2cSJim Jagielski 			// Beendet sich selbst, kein Cancel() notwendig!
155*b1cdbd2cSJim Jagielski 			rReq.Done();
156*b1cdbd2cSJim Jagielski 		}
157*b1cdbd2cSJim Jagielski 		break;
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 		case SID_SIZE_REAL:
160*b1cdbd2cSJim Jagielski 		{
161*b1cdbd2cSJim Jagielski 			SetZoom( 100 );
162*b1cdbd2cSJim Jagielski 			Rectangle aVisAreaWin = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0),
163*b1cdbd2cSJim Jagielski 											 GetActiveWindow()->GetOutputSizePixel()) );
164*b1cdbd2cSJim Jagielski 			mpZoomList->InsertZoomRect(aVisAreaWin);
165*b1cdbd2cSJim Jagielski 			Invalidate( SID_ATTR_ZOOM );
166*b1cdbd2cSJim Jagielski 			Invalidate( SID_ATTR_ZOOMSLIDER );
167*b1cdbd2cSJim Jagielski 			Cancel();
168*b1cdbd2cSJim Jagielski 			rReq.Done();
169*b1cdbd2cSJim Jagielski 		}
170*b1cdbd2cSJim Jagielski 		break;
171*b1cdbd2cSJim Jagielski 
172*b1cdbd2cSJim Jagielski 		case SID_ZOOM_IN:
173*b1cdbd2cSJim Jagielski 		{
174*b1cdbd2cSJim Jagielski 			SetZoom( Max( (long) ( GetActiveWindow()->GetZoom() / 2 ), (long) GetActiveWindow()->GetMinZoom() ) );
175*b1cdbd2cSJim Jagielski 			Rectangle aVisAreaWin = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0),
176*b1cdbd2cSJim Jagielski 											 GetActiveWindow()->GetOutputSizePixel()) );
177*b1cdbd2cSJim Jagielski 			mpZoomList->InsertZoomRect(aVisAreaWin);
178*b1cdbd2cSJim Jagielski 			Invalidate( SID_ATTR_ZOOM );
179*b1cdbd2cSJim Jagielski 			Invalidate( SID_ZOOM_OUT);
180*b1cdbd2cSJim Jagielski 			Invalidate( SID_ZOOM_IN );
181*b1cdbd2cSJim Jagielski 			Invalidate( SID_ATTR_ZOOMSLIDER );
182*b1cdbd2cSJim Jagielski 			Cancel();
183*b1cdbd2cSJim Jagielski 			rReq.Done();
184*b1cdbd2cSJim Jagielski 		}
185*b1cdbd2cSJim Jagielski 		break;
186*b1cdbd2cSJim Jagielski 
187*b1cdbd2cSJim Jagielski 		case SID_OUTLINE_COLLAPSE_ALL:
188*b1cdbd2cSJim Jagielski 		{
189*b1cdbd2cSJim Jagielski 			pOutlinerView->CollapseAll();
190*b1cdbd2cSJim Jagielski 			Cancel();
191*b1cdbd2cSJim Jagielski 			rReq.Done();
192*b1cdbd2cSJim Jagielski 		}
193*b1cdbd2cSJim Jagielski 		break;
194*b1cdbd2cSJim Jagielski 
195*b1cdbd2cSJim Jagielski 		case SID_OUTLINE_COLLAPSE:
196*b1cdbd2cSJim Jagielski 		{
197*b1cdbd2cSJim Jagielski 			pOutlinerView->Collapse();
198*b1cdbd2cSJim Jagielski 			Cancel();
199*b1cdbd2cSJim Jagielski 			rReq.Done();
200*b1cdbd2cSJim Jagielski 		}
201*b1cdbd2cSJim Jagielski 		break;
202*b1cdbd2cSJim Jagielski 
203*b1cdbd2cSJim Jagielski 		case SID_OUTLINE_EXPAND_ALL:
204*b1cdbd2cSJim Jagielski 		{
205*b1cdbd2cSJim Jagielski 			pOutlinerView->ExpandAll();
206*b1cdbd2cSJim Jagielski 			Cancel();
207*b1cdbd2cSJim Jagielski 			rReq.Done();
208*b1cdbd2cSJim Jagielski 		}
209*b1cdbd2cSJim Jagielski 		break;
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski 		case SID_OUTLINE_EXPAND:
212*b1cdbd2cSJim Jagielski 		{
213*b1cdbd2cSJim Jagielski 			pOutlinerView->Expand();
214*b1cdbd2cSJim Jagielski 			Cancel();
215*b1cdbd2cSJim Jagielski 			rReq.Done();
216*b1cdbd2cSJim Jagielski 		}
217*b1cdbd2cSJim Jagielski 		break;
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski 		case SID_OUTLINE_FORMAT:
220*b1cdbd2cSJim Jagielski 		{
221*b1cdbd2cSJim Jagielski 			::Outliner* pOutl = pOutlinerView->GetOutliner();
222*b1cdbd2cSJim Jagielski 			pOutl->SetFlatMode( !pOutl->IsFlatMode() );
223*b1cdbd2cSJim Jagielski 			Invalidate( SID_COLORVIEW );
224*b1cdbd2cSJim Jagielski 			Cancel();
225*b1cdbd2cSJim Jagielski 			rReq.Done();
226*b1cdbd2cSJim Jagielski 		}
227*b1cdbd2cSJim Jagielski 		break;
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski 		case SID_SELECTALL:
230*b1cdbd2cSJim Jagielski 		{
231*b1cdbd2cSJim Jagielski 			::Outliner* pOutl = pOlView->GetOutliner();
232*b1cdbd2cSJim Jagielski 			sal_uLong nParaCount = pOutl->GetParagraphCount();
233*b1cdbd2cSJim Jagielski 			if (nParaCount > 0)
234*b1cdbd2cSJim Jagielski 			{
235*b1cdbd2cSJim Jagielski 				pOutlinerView->SelectRange( 0, (sal_uInt16) nParaCount );
236*b1cdbd2cSJim Jagielski 			}
237*b1cdbd2cSJim Jagielski 			Cancel();
238*b1cdbd2cSJim Jagielski 		}
239*b1cdbd2cSJim Jagielski 		break;
240*b1cdbd2cSJim Jagielski 
241*b1cdbd2cSJim Jagielski 		case SID_PRESENTATION:
242*b1cdbd2cSJim Jagielski 		case SID_REHEARSE_TIMINGS:
243*b1cdbd2cSJim Jagielski 		{
244*b1cdbd2cSJim Jagielski 			pOlView->PrepareClose();
245*b1cdbd2cSJim Jagielski 
246*b1cdbd2cSJim Jagielski 			Reference< XPresentation2 > xPresentation( GetDoc()->getPresentation() );
247*b1cdbd2cSJim Jagielski 			if( xPresentation.is() )
248*b1cdbd2cSJim Jagielski             {
249*b1cdbd2cSJim Jagielski 				if( ( SID_REHEARSE_TIMINGS != rReq.GetSlot() ) )
250*b1cdbd2cSJim Jagielski 					xPresentation->start();
251*b1cdbd2cSJim Jagielski 				else
252*b1cdbd2cSJim Jagielski 					xPresentation->rehearseTimings();
253*b1cdbd2cSJim Jagielski             }
254*b1cdbd2cSJim Jagielski 			Cancel();
255*b1cdbd2cSJim Jagielski 			rReq.Done();
256*b1cdbd2cSJim Jagielski         }
257*b1cdbd2cSJim Jagielski         break;
258*b1cdbd2cSJim Jagielski 
259*b1cdbd2cSJim Jagielski 		case SID_COLORVIEW:
260*b1cdbd2cSJim Jagielski 		{
261*b1cdbd2cSJim Jagielski 			::Outliner* pOutl = pOutlinerView->GetOutliner();
262*b1cdbd2cSJim Jagielski 			sal_uLong nCntrl = pOutl->GetControlWord();
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski 			if ( !(nCntrl & EE_CNTRL_NOCOLORS) )
265*b1cdbd2cSJim Jagielski 			{
266*b1cdbd2cSJim Jagielski 				// Farbansicht ist eingeschaltet: ausschalten
267*b1cdbd2cSJim Jagielski 				pOutl->SetControlWord(nCntrl | EE_CNTRL_NOCOLORS);
268*b1cdbd2cSJim Jagielski 			}
269*b1cdbd2cSJim Jagielski 			else
270*b1cdbd2cSJim Jagielski 			{
271*b1cdbd2cSJim Jagielski 				// Farbansicht ist ausgeschaltet: einschalten
272*b1cdbd2cSJim Jagielski 				pOutl->SetControlWord(nCntrl & ~EE_CNTRL_NOCOLORS);
273*b1cdbd2cSJim Jagielski 			}
274*b1cdbd2cSJim Jagielski 
275*b1cdbd2cSJim Jagielski 			InvalidateWindows();
276*b1cdbd2cSJim Jagielski 			Invalidate( SID_COLORVIEW );
277*b1cdbd2cSJim Jagielski 			Cancel();
278*b1cdbd2cSJim Jagielski 			rReq.Done();
279*b1cdbd2cSJim Jagielski 		}
280*b1cdbd2cSJim Jagielski 		break;
281*b1cdbd2cSJim Jagielski 
282*b1cdbd2cSJim Jagielski 		case SID_STYLE_EDIT:
283*b1cdbd2cSJim Jagielski 		case SID_STYLE_UPDATE_BY_EXAMPLE:
284*b1cdbd2cSJim Jagielski 		{
285*b1cdbd2cSJim Jagielski 			if( rReq.GetArgs() )
286*b1cdbd2cSJim Jagielski 			{
287*b1cdbd2cSJim Jagielski 				SetCurrentFunction( FuTemplate::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
288*b1cdbd2cSJim Jagielski 				Cancel();
289*b1cdbd2cSJim Jagielski 			}
290*b1cdbd2cSJim Jagielski 
291*b1cdbd2cSJim Jagielski 			rReq.Ignore ();
292*b1cdbd2cSJim Jagielski 		}
293*b1cdbd2cSJim Jagielski 		break;
294*b1cdbd2cSJim Jagielski 
295*b1cdbd2cSJim Jagielski 		case SID_PRESENTATION_DLG:
296*b1cdbd2cSJim Jagielski 		{
297*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuSlideShowDlg::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
298*b1cdbd2cSJim Jagielski 			Cancel();
299*b1cdbd2cSJim Jagielski 		}
300*b1cdbd2cSJim Jagielski 		break;
301*b1cdbd2cSJim Jagielski 
302*b1cdbd2cSJim Jagielski 		case SID_CUSTOMSHOW_DLG:
303*b1cdbd2cSJim Jagielski 		{
304*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuCustomShowDlg::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
305*b1cdbd2cSJim Jagielski 			Cancel();
306*b1cdbd2cSJim Jagielski 		}
307*b1cdbd2cSJim Jagielski 		break;
308*b1cdbd2cSJim Jagielski 	}
309*b1cdbd2cSJim Jagielski 
310*b1cdbd2cSJim Jagielski 	if(HasCurrentFunction())
311*b1cdbd2cSJim Jagielski 		GetCurrentFunction()->Activate();
312*b1cdbd2cSJim Jagielski 
313*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_COLLAPSE_ALL );
314*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_COLLAPSE );
315*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_EXPAND_ALL );
316*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_EXPAND );
317*b1cdbd2cSJim Jagielski 
318*b1cdbd2cSJim Jagielski 	SfxBindings& rBindings = GetViewFrame()->GetBindings();
319*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_LEFT );
320*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_RIGHT );
321*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_UP );
322*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_DOWN );
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_FORMAT );
325*b1cdbd2cSJim Jagielski 	Invalidate( SID_COLORVIEW );
326*b1cdbd2cSJim Jagielski 	Invalidate(SID_CUT);
327*b1cdbd2cSJim Jagielski 	Invalidate(SID_COPY);
328*b1cdbd2cSJim Jagielski 	Invalidate(SID_PASTE);
329*b1cdbd2cSJim Jagielski }
330*b1cdbd2cSJim Jagielski 
FuTemporaryModify(SfxRequest & rReq)331*b1cdbd2cSJim Jagielski void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
332*b1cdbd2cSJim Jagielski {
333*b1cdbd2cSJim Jagielski 	sal_uInt16 nSId = rReq.GetSlot();
334*b1cdbd2cSJim Jagielski 	std::auto_ptr< OutlineViewModelChangeGuard > aGuard;
335*b1cdbd2cSJim Jagielski 	if (nSId != SID_OUTLINE_BULLET && nSId != FN_SVX_SET_BULLET && nSId != FN_SVX_SET_NUMBER)
336*b1cdbd2cSJim Jagielski 	{
337*b1cdbd2cSJim Jagielski 		aGuard.reset( new OutlineViewModelChangeGuard(*pOlView) );
338*b1cdbd2cSJim Jagielski 	}
339*b1cdbd2cSJim Jagielski 	DeactivateCurrentFunction();
340*b1cdbd2cSJim Jagielski 
341*b1cdbd2cSJim Jagielski 	OutlinerView* pOutlinerView = pOlView->GetViewByWindow( GetActiveWindow() );
342*b1cdbd2cSJim Jagielski 	//sal_uInt16 nSId = rReq.GetSlot();
343*b1cdbd2cSJim Jagielski 
344*b1cdbd2cSJim Jagielski 	switch( nSId )
345*b1cdbd2cSJim Jagielski 	{
346*b1cdbd2cSJim Jagielski 		case SID_HYPERLINK_SETLINK:
347*b1cdbd2cSJim Jagielski 		{
348*b1cdbd2cSJim Jagielski 			const SfxItemSet* pReqArgs = rReq.GetArgs();
349*b1cdbd2cSJim Jagielski 
350*b1cdbd2cSJim Jagielski 			if (pReqArgs)
351*b1cdbd2cSJim Jagielski 			{
352*b1cdbd2cSJim Jagielski 				SvxHyperlinkItem* pHLItem =
353*b1cdbd2cSJim Jagielski                 (SvxHyperlinkItem*) &pReqArgs->Get(SID_HYPERLINK_SETLINK);
354*b1cdbd2cSJim Jagielski 
355*b1cdbd2cSJim Jagielski 				SvxFieldItem aURLItem(SvxURLField(pHLItem->GetURL(),
356*b1cdbd2cSJim Jagielski 												  pHLItem->GetName(),
357*b1cdbd2cSJim Jagielski                                                   SVXURLFORMAT_REPR), EE_FEATURE_FIELD);
358*b1cdbd2cSJim Jagielski 				ESelection aSel( pOutlinerView->GetSelection() );
359*b1cdbd2cSJim Jagielski 				pOutlinerView->InsertField(aURLItem);
360*b1cdbd2cSJim Jagielski                 if ( aSel.nStartPos <= aSel.nEndPos )
361*b1cdbd2cSJim Jagielski 		            aSel.nEndPos = aSel.nStartPos + 1;
362*b1cdbd2cSJim Jagielski                 else
363*b1cdbd2cSJim Jagielski                     aSel.nStartPos = aSel.nEndPos + 1;
364*b1cdbd2cSJim Jagielski 				pOutlinerView->SetSelection( aSel );
365*b1cdbd2cSJim Jagielski 			}
366*b1cdbd2cSJim Jagielski 
367*b1cdbd2cSJim Jagielski 			Cancel();
368*b1cdbd2cSJim Jagielski 			rReq.Ignore ();
369*b1cdbd2cSJim Jagielski 		}
370*b1cdbd2cSJim Jagielski 		break;
371*b1cdbd2cSJim Jagielski 
372*b1cdbd2cSJim Jagielski 		case FN_INSERT_SOFT_HYPHEN:
373*b1cdbd2cSJim Jagielski 		case FN_INSERT_HARDHYPHEN:
374*b1cdbd2cSJim Jagielski 		case FN_INSERT_HARD_SPACE:
375*b1cdbd2cSJim Jagielski 		case SID_INSERT_RLM :
376*b1cdbd2cSJim Jagielski 		case SID_INSERT_LRM :
377*b1cdbd2cSJim Jagielski 		case SID_INSERT_ZWNBSP :
378*b1cdbd2cSJim Jagielski 		case SID_INSERT_ZWSP:
379*b1cdbd2cSJim Jagielski 		case SID_CHARMAP:
380*b1cdbd2cSJim Jagielski 		{
381*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuBullet::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
382*b1cdbd2cSJim Jagielski 			Cancel();
383*b1cdbd2cSJim Jagielski 		}
384*b1cdbd2cSJim Jagielski 		break;
385*b1cdbd2cSJim Jagielski 
386*b1cdbd2cSJim Jagielski 		case SID_OUTLINE_BULLET:
387*b1cdbd2cSJim Jagielski 		case FN_SVX_SET_BULLET:
388*b1cdbd2cSJim Jagielski 		case FN_SVX_SET_NUMBER:
389*b1cdbd2cSJim Jagielski 		{
390*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuOutlineBullet::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
391*b1cdbd2cSJim Jagielski 			Cancel();
392*b1cdbd2cSJim Jagielski 		}
393*b1cdbd2cSJim Jagielski 		break;
394*b1cdbd2cSJim Jagielski 
395*b1cdbd2cSJim Jagielski         case SID_THESAURUS:
396*b1cdbd2cSJim Jagielski 		{
397*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuThesaurus::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
398*b1cdbd2cSJim Jagielski 			Cancel();
399*b1cdbd2cSJim Jagielski 			rReq.Ignore ();
400*b1cdbd2cSJim Jagielski 		}
401*b1cdbd2cSJim Jagielski 		break;
402*b1cdbd2cSJim Jagielski 
403*b1cdbd2cSJim Jagielski 		case SID_CHAR_DLG_EFFECT:
404*b1cdbd2cSJim Jagielski 		case SID_CHAR_DLG:
405*b1cdbd2cSJim Jagielski 		{
406*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuChar::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
407*b1cdbd2cSJim Jagielski 			Cancel();
408*b1cdbd2cSJim Jagielski 		}
409*b1cdbd2cSJim Jagielski 		break;
410*b1cdbd2cSJim Jagielski 
411*b1cdbd2cSJim Jagielski 		case SID_INSERTFILE:
412*b1cdbd2cSJim Jagielski 		{
413*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuInsertFile::Create(this, GetActiveWindow(), pOlView, GetDoc(), rReq) );
414*b1cdbd2cSJim Jagielski 			Cancel();
415*b1cdbd2cSJim Jagielski 		}
416*b1cdbd2cSJim Jagielski 		break;
417*b1cdbd2cSJim Jagielski 
418*b1cdbd2cSJim Jagielski 		case SID_PRESENTATIONOBJECT:
419*b1cdbd2cSJim Jagielski 		{
420*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuPresentationObjects::Create(this, GetActiveWindow(), pOlView, GetDoc(), rReq) );
421*b1cdbd2cSJim Jagielski 			Cancel();
422*b1cdbd2cSJim Jagielski 		}
423*b1cdbd2cSJim Jagielski 		break;
424*b1cdbd2cSJim Jagielski 
425*b1cdbd2cSJim Jagielski 		case SID_SET_DEFAULT:
426*b1cdbd2cSJim Jagielski 		{
427*b1cdbd2cSJim Jagielski 			// 1. Selektion merken (kriegt die eselige EditEngine nicht selbst
428*b1cdbd2cSJim Jagielski 			//	  auf die Reihe!)
429*b1cdbd2cSJim Jagielski 			// 2. Update auf False (sonst flackert's noch staerker
430*b1cdbd2cSJim Jagielski 			// an allen selektierten Absaetzen:
431*b1cdbd2cSJim Jagielski 			//	a. deren Vorlage nochmal setzen, um absatzweite harte Attribute
432*b1cdbd2cSJim Jagielski 			//	   zu entfernen
433*b1cdbd2cSJim Jagielski 			//	b. harte Zeichenattribute loeschen
434*b1cdbd2cSJim Jagielski 			// 3. Update auf True und Selektion wieder setzen
435*b1cdbd2cSJim Jagielski 			/*
436*b1cdbd2cSJim Jagielski 			ESelection aEsel= pOutlinerView->GetSelection();
437*b1cdbd2cSJim Jagielski 			Outliner* pOutl = pOutlinerView->GetOutliner();
438*b1cdbd2cSJim Jagielski 			pOutl->SetUpdateMode(sal_False);
439*b1cdbd2cSJim Jagielski 			List* pSelectedParas = pOutlinerView->CreateSelectionList();
440*b1cdbd2cSJim Jagielski 			Paragraph* pPara = (Paragraph*)pSelectedParas->First();
441*b1cdbd2cSJim Jagielski 			while (pPara)
442*b1cdbd2cSJim Jagielski 			{
443*b1cdbd2cSJim Jagielski 				sal_uLong nParaPos = pOutl->GetAbsPos(pPara);
444*b1cdbd2cSJim Jagielski 				String aName;
445*b1cdbd2cSJim Jagielski 				SfxStyleFamily aFamily;
446*b1cdbd2cSJim Jagielski 				pOutl->GetStyleSheet(nParaPos, aName, aFamily);
447*b1cdbd2cSJim Jagielski 				pOutl->SetStyleSheet(nParaPos, aName, aFamily);
448*b1cdbd2cSJim Jagielski 				pOutl->QuickRemoveCharAttribs(nParaPos);
449*b1cdbd2cSJim Jagielski 				pPara = (Paragraph*)pSelectedParas->Next();
450*b1cdbd2cSJim Jagielski 			}
451*b1cdbd2cSJim Jagielski 			delete pSelectedParas;
452*b1cdbd2cSJim Jagielski 			pOutl->SetUpdateMode(sal_True);
453*b1cdbd2cSJim Jagielski 			pOutlinerView->SetSelection(aEsel);
454*b1cdbd2cSJim Jagielski 			*/
455*b1cdbd2cSJim Jagielski 			pOutlinerView->RemoveAttribs(sal_True); // sal_True = auch Absatzattribute
456*b1cdbd2cSJim Jagielski 			Cancel();
457*b1cdbd2cSJim Jagielski 			rReq.Done();
458*b1cdbd2cSJim Jagielski 		}
459*b1cdbd2cSJim Jagielski 		break;
460*b1cdbd2cSJim Jagielski 
461*b1cdbd2cSJim Jagielski 		case SID_SUMMARY_PAGE:
462*b1cdbd2cSJim Jagielski 		{
463*b1cdbd2cSJim Jagielski 			pOlView->SetSelectedPages();
464*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuSummaryPage::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
465*b1cdbd2cSJim Jagielski 			pOlView->GetOutliner()->Clear();
466*b1cdbd2cSJim Jagielski 			pOlView->FillOutliner();
467*b1cdbd2cSJim Jagielski 			pOlView->GetActualPage();
468*b1cdbd2cSJim Jagielski 			Cancel();
469*b1cdbd2cSJim Jagielski 		}
470*b1cdbd2cSJim Jagielski 		break;
471*b1cdbd2cSJim Jagielski 
472*b1cdbd2cSJim Jagielski 		case SID_EXPAND_PAGE:
473*b1cdbd2cSJim Jagielski 		{
474*b1cdbd2cSJim Jagielski 			pOlView->SetSelectedPages();
475*b1cdbd2cSJim Jagielski 			SetCurrentFunction( FuExpandPage::Create( this, GetActiveWindow(), pOlView, GetDoc(), rReq ) );
476*b1cdbd2cSJim Jagielski 			pOlView->GetOutliner()->Clear();
477*b1cdbd2cSJim Jagielski 			pOlView->FillOutliner();
478*b1cdbd2cSJim Jagielski 			pOlView->GetActualPage();
479*b1cdbd2cSJim Jagielski 			Cancel();
480*b1cdbd2cSJim Jagielski 		}
481*b1cdbd2cSJim Jagielski 		break;
482*b1cdbd2cSJim Jagielski 
483*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_DATE_FIX:
484*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_DATE_VAR:
485*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_TIME_FIX:
486*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_TIME_VAR:
487*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_AUTHOR:
488*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_PAGE:
489*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_PAGES:
490*b1cdbd2cSJim Jagielski 		case SID_INSERT_FLD_FILE:
491*b1cdbd2cSJim Jagielski 		{
492*b1cdbd2cSJim Jagielski 			SvxFieldItem* pFieldItem = 0;
493*b1cdbd2cSJim Jagielski 
494*b1cdbd2cSJim Jagielski 			switch( nSId )
495*b1cdbd2cSJim Jagielski 			{
496*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_DATE_FIX:
497*b1cdbd2cSJim Jagielski 					pFieldItem = new SvxFieldItem(
498*b1cdbd2cSJim Jagielski                         SvxDateField( Date(), SVXDATETYPE_FIX ), EE_FEATURE_FIELD );
499*b1cdbd2cSJim Jagielski 				break;
500*b1cdbd2cSJim Jagielski 
501*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_DATE_VAR:
502*b1cdbd2cSJim Jagielski                     pFieldItem = new SvxFieldItem( SvxDateField(), EE_FEATURE_FIELD );
503*b1cdbd2cSJim Jagielski 				break;
504*b1cdbd2cSJim Jagielski 
505*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_TIME_FIX:
506*b1cdbd2cSJim Jagielski 					pFieldItem = new SvxFieldItem(
507*b1cdbd2cSJim Jagielski                         SvxExtTimeField( Time(), SVXTIMETYPE_FIX ), EE_FEATURE_FIELD );
508*b1cdbd2cSJim Jagielski 				break;
509*b1cdbd2cSJim Jagielski 
510*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_TIME_VAR:
511*b1cdbd2cSJim Jagielski                     pFieldItem = new SvxFieldItem( SvxExtTimeField(), EE_FEATURE_FIELD );
512*b1cdbd2cSJim Jagielski 				break;
513*b1cdbd2cSJim Jagielski 
514*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_AUTHOR:
515*b1cdbd2cSJim Jagielski 				{
516*b1cdbd2cSJim Jagielski                     SvtUserOptions aUserOptions;
517*b1cdbd2cSJim Jagielski                     pFieldItem = new SvxFieldItem(
518*b1cdbd2cSJim Jagielski                             SvxAuthorField(
519*b1cdbd2cSJim Jagielski                                 aUserOptions.GetFirstName(), aUserOptions.GetLastName(), aUserOptions.GetID() )
520*b1cdbd2cSJim Jagielski                                 , EE_FEATURE_FIELD );
521*b1cdbd2cSJim Jagielski 				}
522*b1cdbd2cSJim Jagielski 				break;
523*b1cdbd2cSJim Jagielski 
524*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_PAGE:
525*b1cdbd2cSJim Jagielski                     pFieldItem = new SvxFieldItem( SvxPageField(), EE_FEATURE_FIELD );
526*b1cdbd2cSJim Jagielski 				break;
527*b1cdbd2cSJim Jagielski 
528*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_PAGES:
529*b1cdbd2cSJim Jagielski                     pFieldItem = new SvxFieldItem( SvxPagesField(), EE_FEATURE_FIELD );
530*b1cdbd2cSJim Jagielski 				break;
531*b1cdbd2cSJim Jagielski 
532*b1cdbd2cSJim Jagielski 				case SID_INSERT_FLD_FILE:
533*b1cdbd2cSJim Jagielski 				{
534*b1cdbd2cSJim Jagielski 					String aName;
535*b1cdbd2cSJim Jagielski 					if( GetDocSh()->HasName() )
536*b1cdbd2cSJim Jagielski 						aName = GetDocSh()->GetMedium()->GetName();
537*b1cdbd2cSJim Jagielski 					//else
538*b1cdbd2cSJim Jagielski 					//	aName = GetDocSh()->GetName();
539*b1cdbd2cSJim Jagielski                     pFieldItem = new SvxFieldItem( SvxExtFileField( aName ), EE_FEATURE_FIELD );
540*b1cdbd2cSJim Jagielski 				}
541*b1cdbd2cSJim Jagielski 				break;
542*b1cdbd2cSJim Jagielski 			}
543*b1cdbd2cSJim Jagielski 
544*b1cdbd2cSJim Jagielski 			const SvxFieldItem* pOldFldItem = pOutlinerView->GetFieldAtSelection();
545*b1cdbd2cSJim Jagielski 
546*b1cdbd2cSJim Jagielski 			if( pOldFldItem && ( pOldFldItem->GetField()->ISA( SvxURLField ) ||
547*b1cdbd2cSJim Jagielski 								pOldFldItem->GetField()->ISA( SvxDateField ) ||
548*b1cdbd2cSJim Jagielski 								pOldFldItem->GetField()->ISA( SvxTimeField ) ||
549*b1cdbd2cSJim Jagielski 								pOldFldItem->GetField()->ISA( SvxExtTimeField ) ||
550*b1cdbd2cSJim Jagielski 								pOldFldItem->GetField()->ISA( SvxExtFileField ) ||
551*b1cdbd2cSJim Jagielski 								pOldFldItem->GetField()->ISA( SvxAuthorField ) ||
552*b1cdbd2cSJim Jagielski 								pOldFldItem->GetField()->ISA( SvxPageField ) ||
553*b1cdbd2cSJim Jagielski                                 pOldFldItem->GetField()->ISA( SvxPagesField )) )
554*b1cdbd2cSJim Jagielski 			{
555*b1cdbd2cSJim Jagielski 				// Feld selektieren, so dass es beim Insert geloescht wird
556*b1cdbd2cSJim Jagielski 				ESelection aSel = pOutlinerView->GetSelection();
557*b1cdbd2cSJim Jagielski 				if( aSel.nStartPos == aSel.nEndPos )
558*b1cdbd2cSJim Jagielski 					aSel.nEndPos++;
559*b1cdbd2cSJim Jagielski 				pOutlinerView->SetSelection( aSel );
560*b1cdbd2cSJim Jagielski 			}
561*b1cdbd2cSJim Jagielski 
562*b1cdbd2cSJim Jagielski 			if( pFieldItem )
563*b1cdbd2cSJim Jagielski 				pOutlinerView->InsertField( *pFieldItem );
564*b1cdbd2cSJim Jagielski 
565*b1cdbd2cSJim Jagielski 			delete pFieldItem;
566*b1cdbd2cSJim Jagielski 
567*b1cdbd2cSJim Jagielski 			Cancel();
568*b1cdbd2cSJim Jagielski 			rReq.Ignore ();
569*b1cdbd2cSJim Jagielski 		}
570*b1cdbd2cSJim Jagielski 		break;
571*b1cdbd2cSJim Jagielski 
572*b1cdbd2cSJim Jagielski 		case SID_MODIFY_FIELD:
573*b1cdbd2cSJim Jagielski 		{
574*b1cdbd2cSJim Jagielski 			const SvxFieldItem* pFldItem = pOutlinerView->GetFieldAtSelection();
575*b1cdbd2cSJim Jagielski 
576*b1cdbd2cSJim Jagielski 			if( pFldItem && (pFldItem->GetField()->ISA( SvxDateField ) ||
577*b1cdbd2cSJim Jagielski 								pFldItem->GetField()->ISA( SvxAuthorField ) ||
578*b1cdbd2cSJim Jagielski 								pFldItem->GetField()->ISA( SvxExtFileField ) ||
579*b1cdbd2cSJim Jagielski 								pFldItem->GetField()->ISA( SvxExtTimeField ) ) )
580*b1cdbd2cSJim Jagielski 			{
581*b1cdbd2cSJim Jagielski 				// Dialog...
582*b1cdbd2cSJim Jagielski 				SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
583*b1cdbd2cSJim Jagielski 				AbstractSdModifyFieldDlg* pDlg = pFact ? pFact->CreateSdModifyFieldDlg(GetActiveWindow(), pFldItem->GetField(), pOutlinerView->GetAttribs() ) : 0;
584*b1cdbd2cSJim Jagielski 				if( pDlg && (pDlg->Execute() == RET_OK) )
585*b1cdbd2cSJim Jagielski 				{
586*b1cdbd2cSJim Jagielski 					SvxFieldData* pField = pDlg->GetField();
587*b1cdbd2cSJim Jagielski 					if( pField )
588*b1cdbd2cSJim Jagielski 					{
589*b1cdbd2cSJim Jagielski                         SvxFieldItem aFieldItem( *pField, EE_FEATURE_FIELD );
590*b1cdbd2cSJim Jagielski 						//pOLV->DeleteSelected(); <-- fehlt leider !
591*b1cdbd2cSJim Jagielski 						// Feld selektieren, so dass es beim Insert geloescht wird
592*b1cdbd2cSJim Jagielski 						ESelection aSel = pOutlinerView->GetSelection();
593*b1cdbd2cSJim Jagielski 						sal_Bool bSel = sal_True;
594*b1cdbd2cSJim Jagielski 						if( aSel.nStartPos == aSel.nEndPos )
595*b1cdbd2cSJim Jagielski 						{
596*b1cdbd2cSJim Jagielski 							bSel = sal_False;
597*b1cdbd2cSJim Jagielski 							aSel.nEndPos++;
598*b1cdbd2cSJim Jagielski 						}
599*b1cdbd2cSJim Jagielski 						pOutlinerView->SetSelection( aSel );
600*b1cdbd2cSJim Jagielski 
601*b1cdbd2cSJim Jagielski 						pOutlinerView->InsertField( aFieldItem );
602*b1cdbd2cSJim Jagielski 
603*b1cdbd2cSJim Jagielski 						// Selektion wird wieder in den Ursprungszustand gebracht
604*b1cdbd2cSJim Jagielski 						if( !bSel )
605*b1cdbd2cSJim Jagielski 							aSel.nEndPos--;
606*b1cdbd2cSJim Jagielski 						pOutlinerView->SetSelection( aSel );
607*b1cdbd2cSJim Jagielski 
608*b1cdbd2cSJim Jagielski 						delete pField;
609*b1cdbd2cSJim Jagielski 					}
610*b1cdbd2cSJim Jagielski 
611*b1cdbd2cSJim Jagielski 					SfxItemSet aSet( pDlg->GetItemSet() );
612*b1cdbd2cSJim Jagielski 					if( aSet.Count() )
613*b1cdbd2cSJim Jagielski 					{
614*b1cdbd2cSJim Jagielski 						pOutlinerView->SetAttribs( aSet );
615*b1cdbd2cSJim Jagielski 
616*b1cdbd2cSJim Jagielski 						::Outliner* pOutliner = pOutlinerView->GetOutliner();
617*b1cdbd2cSJim Jagielski 						if( pOutliner )
618*b1cdbd2cSJim Jagielski 							pOutliner->UpdateFields();
619*b1cdbd2cSJim Jagielski 					}
620*b1cdbd2cSJim Jagielski 				}
621*b1cdbd2cSJim Jagielski 				delete pDlg;
622*b1cdbd2cSJim Jagielski 			}
623*b1cdbd2cSJim Jagielski 
624*b1cdbd2cSJim Jagielski 			Cancel();
625*b1cdbd2cSJim Jagielski 			rReq.Ignore ();
626*b1cdbd2cSJim Jagielski 		}
627*b1cdbd2cSJim Jagielski 		break;
628*b1cdbd2cSJim Jagielski 	}
629*b1cdbd2cSJim Jagielski 
630*b1cdbd2cSJim Jagielski 	if(HasCurrentFunction())
631*b1cdbd2cSJim Jagielski 		GetCurrentFunction()->Activate();
632*b1cdbd2cSJim Jagielski 
633*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_COLLAPSE_ALL );
634*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_COLLAPSE );
635*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_EXPAND_ALL );
636*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_EXPAND );
637*b1cdbd2cSJim Jagielski 
638*b1cdbd2cSJim Jagielski 	SfxBindings& rBindings = GetViewFrame()->GetBindings();
639*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_LEFT );
640*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_RIGHT );
641*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_UP );
642*b1cdbd2cSJim Jagielski 	rBindings.Invalidate( SID_OUTLINE_DOWN );
643*b1cdbd2cSJim Jagielski 
644*b1cdbd2cSJim Jagielski 	Invalidate( SID_OUTLINE_FORMAT );
645*b1cdbd2cSJim Jagielski 	Invalidate( SID_COLORVIEW );
646*b1cdbd2cSJim Jagielski 	Invalidate(SID_CUT);
647*b1cdbd2cSJim Jagielski 	Invalidate(SID_COPY);
648*b1cdbd2cSJim Jagielski 	Invalidate(SID_PASTE);
649*b1cdbd2cSJim Jagielski }
650*b1cdbd2cSJim Jagielski 
651*b1cdbd2cSJim Jagielski 
652*b1cdbd2cSJim Jagielski } // end of namespace sd
653