diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-05-19 09:32:45 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-05-19 09:32:45 +0000 |
commit | 615772fb62f460cb026771b27822f83264784a1c (patch) | |
tree | 5e0ed28e780a5321a8156a8246cddee0aef84f07 /sd | |
parent | 04a678277a03469c17b32b6bfdc259700e55e956 (diff) |
CWS-TOOLING: integrate CWS impress169
2009-05-13 17:37:21 +0200 sj r271865 : #i100942# applied patch, removed oversafe buffer check (now without warnings on 64 bit platform)
2009-05-13 12:27:18 +0200 sj r271855 : #i101769# fixed line/fill attributes for graphic objects
2009-05-12 10:25:17 +0200 cl r271799 : report correct minimum cell hight for empty cells
2009-04-28 17:29:46 +0200 cl r271334 : fixed merge error
2009-04-28 16:18:01 +0200 cl r271330 : fixed build error
2009-04-28 12:38:09 +0200 cl r271320 : #i100129# images for new layouts
2009-04-27 19:12:06 +0200 cl r271302 : CWS-TOOLING: rebase CWS impress169 to trunk@270723 (milestone: DEV300:m46)
2009-04-20 19:13:28 +0200 sj r271012 : #i100942# applied patch, removed oversafe buffer check
2009-04-09 18:00:01 +0200 sj r270719 : #158488# added rectangular gradient support
2009-04-09 17:49:52 +0200 sj r270718 : #158488# added rectangular gradient support
2009-04-09 17:46:24 +0200 sj r270717 : #158488# added rectangular gradient support
2009-03-26 18:16:34 +0100 cl r270098 : #i99867# applied patch from jlcheng to correctly register table design pane
2009-03-26 18:12:11 +0100 cl r270097 : #i100220# leave some items default so they are not overridden if a new table style is set
2009-03-26 18:11:10 +0100 cl r270096 : #i100220# clear only those items that are also in the style when assigning a new table layout
2009-03-26 15:56:24 +0100 cl r270085 : #i99977# listen to outliner and dispose if outliner dies
2009-03-26 15:47:29 +0100 cl r270084 : #i99977# made the Outliner a SfxBroadcaster so others can listen for its death
2009-03-24 19:10:05 +0100 sj r269991 : #i100490# fixed text resize problem
2009-03-23 14:31:11 +0100 sj r269872 : #i96083# added patch, (dubious && and ||)
2009-03-19 17:55:11 +0100 sj r269764 : #i100275# applied patch, row height is now correct even for rows containing no text
2009-03-18 18:10:52 +0100 sj r269701 : #i93616# solved performance problem when loading document
2009-03-18 16:20:40 +0100 sj r269688 : removing unused code
2009-03-18 16:19:22 +0100 sj r269687 : removing unused code
2009-03-18 16:17:54 +0100 sj r269686 : removing unused code
2009-03-18 10:28:07 +0100 cl r269643 : #i100029# let cells be disposed as soon as the table model is disposed
2009-03-17 15:56:50 +0100 cl r269614 : #i99984# new impress photo layouts 3x2 and 2x2
2009-03-17 15:36:35 +0100 cl r269611 : #i99984# adding new impress photo layouts 3x2 and 2x2
2009-03-16 18:43:48 +0100 cl r269564 : #i55224# correct internal links if pages are changed
2009-03-16 16:40:38 +0100 cl r269559 : #i55224# correct internal hyperlinks if slides are changed/renamed
2009-03-16 15:34:12 +0100 cl r269553 : #i99427# invalidate slots after promote/demote
2009-03-13 18:18:20 +0100 sj r269492 : #i92421# fixed loop if loading encrypted ppt file
2009-03-13 14:51:58 +0100 sj r269481 : #i93002# fixed crash if saving presentation without master title placeholder
2009-03-13 12:26:21 +0100 sj r269468 : #i100147# do not exceed the max point count if creating simple polygon via ::GetSimple
2009-03-12 17:00:45 +0100 sj r269427 : #i82518# justifying rectangles for arc/pie and chord actions, fixed round rectangle problem
Diffstat (limited to 'sd')
27 files changed, 367 insertions, 102 deletions
diff --git a/sd/inc/anminfo.hxx b/sd/inc/anminfo.hxx index e48eee39569f..8acb207d8065 100644 --- a/sd/inc/anminfo.hxx +++ b/sd/inc/anminfo.hxx @@ -73,16 +73,19 @@ public: String maSecondSoundFile; // fuer Objekt ausblenden BOOL mbSecondSoundOn; // fuer Objekt ausblenden BOOL mbSecondPlayFull;// fuer Objekt ausblenden - String maBookmark; // Sprung zu Objekt/Seite +// String maBookmark; // Sprung zu Objekt/Seite USHORT mnVerb; // fuer OLE-Objekt ULONG mnPresOrder; + SdrObject& mrObject; + void SetBookmark( const String& rBookmark ); + String GetBookmark(); public: - SdAnimationInfo(); - SdAnimationInfo(const SdAnimationInfo& rAnmInfo); + SdAnimationInfo(SdrObject& rObject); + SdAnimationInfo(const SdAnimationInfo& rAnmInfo, SdrObject& rObject); virtual ~SdAnimationInfo(); - virtual SdrObjUserData* Clone(SdrObject* pObj) const; + virtual SdrObjUserData* Clone(SdrObject* pObject) const; }; #endif // _SD_ANMINFO_HXX diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx index 8117e4d55ef3..8ef84f263d98 100644 --- a/sd/inc/drawdoc.hxx +++ b/sd/inc/drawdoc.hxx @@ -205,6 +205,7 @@ private: ::std::auto_ptr<ImpMasterPageListWatcher> mpMasterPageListWatcher; void UpdatePageObjectsInNotes(USHORT nStartPos); + void UpdatePageRelativeURLs(SdPage* pPage, USHORT nPos, sal_Int32 nIncrement); void FillOnlineSpellingList(SdPage* pPage); void SpellObject(SdrTextObj* pObj); @@ -588,6 +589,8 @@ public: /* converts the given western font height to a corresponding ctl font height, deppending on the system language */ static sal_uInt32 convertFontHeightToCTL( sal_uInt32 nWesternFontHeight ); + void UpdatePageRelativeURLs(const String& rOldName, const String& rNewName); + private: /** This member stores the printer independent layout mode. Please refer to <member>SetPrinterIndependentLayout()</member> for its diff --git a/sd/inc/pres.hxx b/sd/inc/pres.hxx index 2e5171a4b14d..bd1d5015e5f4 100644 --- a/sd/inc/pres.hxx +++ b/sd/inc/pres.hxx @@ -90,6 +90,8 @@ enum AutoLayout AUTOLAYOUT_TITLE_VERTICAL_OUTLINE_CLIPART, AUTOLAYOUT_HANDOUT9, AUTOLAYOUT_ONLY_TEXT, + AUTOLAYOUT_4CLIPART, + AUTOLAYOUT_6CLIPART, AUTOLAYOUT__END }; diff --git a/sd/source/core/anminfo.cxx b/sd/source/core/anminfo.cxx index 2143067681d2..04bedc8ee8f8 100644 --- a/sd/source/core/anminfo.cxx +++ b/sd/source/core/anminfo.cxx @@ -35,7 +35,8 @@ #include "svx/xtable.hxx" #include <svx/svdopath.hxx> #include <svtools/urihelper.hxx> - +#include <svx/flditem.hxx> +#include <svx/eeitem.hxx> #include "anminfo.hxx" #include "glob.hxx" @@ -47,7 +48,7 @@ using namespace ::com::sun::star; -SdAnimationInfo::SdAnimationInfo() +SdAnimationInfo::SdAnimationInfo(SdrObject& rObject) : SdrObjUserData(SdUDInventor, SD_ANIMATIONINFO_ID, 0), mePresObjKind (PRESOBJ_NONE), meEffect (presentation::AnimationEffect_NONE), @@ -66,13 +67,14 @@ SdAnimationInfo::SdAnimationInfo() mbSecondSoundOn (FALSE), mbSecondPlayFull (FALSE), mnVerb (0), - mnPresOrder (LIST_APPEND) + mnPresOrder (LIST_APPEND), + mrObject (rObject) { maBlueScreen = RGB_Color(COL_LIGHTMAGENTA); maDimColor = RGB_Color(COL_LIGHTGRAY); } -SdAnimationInfo::SdAnimationInfo(const SdAnimationInfo& rAnmInfo) +SdAnimationInfo::SdAnimationInfo(const SdAnimationInfo& rAnmInfo, SdrObject& rObject) : SdrObjUserData (rAnmInfo), mePresObjKind (PRESOBJ_NONE), meEffect (rAnmInfo.meEffect), @@ -94,9 +96,10 @@ SdAnimationInfo::SdAnimationInfo(const SdAnimationInfo& rAnmInfo) maSecondSoundFile (rAnmInfo.maSecondSoundFile), mbSecondSoundOn (rAnmInfo.mbSecondSoundOn), mbSecondPlayFull (rAnmInfo.mbSecondPlayFull), - maBookmark (rAnmInfo.maBookmark), +// maBookmark (rAnmInfo.maBookmark), mnVerb (rAnmInfo.mnVerb), - mnPresOrder (LIST_APPEND) + mnPresOrder (LIST_APPEND), + mrObject (rObject) { // can not be copied if(meEffect == presentation::AnimationEffect_PATH) @@ -108,7 +111,45 @@ SdAnimationInfo::~SdAnimationInfo() { } -SdrObjUserData* SdAnimationInfo::Clone(SdrObject*) const +SdrObjUserData* SdAnimationInfo::Clone(SdrObject* pObject) const +{ + DBG_ASSERT( pObject, "SdAnimationInfo::Clone(), pObject must not be null!" ); + if( pObject == 0 ) + pObject = &mrObject; + + return new SdAnimationInfo(*this, *pObject ); +} + +void SdAnimationInfo::SetBookmark( const String& rBookmark ) { - return new SdAnimationInfo(*this); + if( meClickAction == ::com::sun::star::presentation::ClickAction_BOOKMARK )
+ {
+ String sURL( '#' );
+ sURL += rBookmark;
+ SvxFieldItem aURLItem( SvxURLField( sURL, sURL ), EE_FEATURE_FIELD ); + mrObject.SetMergedItem( aURLItem ); + } + else + { + SvxFieldItem aURLItem( SvxURLField( rBookmark, rBookmark ), EE_FEATURE_FIELD ); + mrObject.SetMergedItem( aURLItem ); + } +} + +String SdAnimationInfo::GetBookmark() +{ + String sBookmark; + + const SvxFieldItem* pFldItem = dynamic_cast< const SvxFieldItem* >( &mrObject.GetMergedItem( EE_FEATURE_FIELD ) ); + if( pFldItem ) + { + SvxURLField* pURLField = const_cast< SvxURLField* >( dynamic_cast<const SvxURLField*>( pFldItem->GetField() ) ); + if( pURLField ) + sBookmark = pURLField->GetURL(); + } + + if( (meClickAction == ::com::sun::star::presentation::ClickAction_BOOKMARK) && sBookmark.Len() && (sBookmark.GetChar(0) == '#') ) + sBookmark = sBookmark.Copy( 1 ); + + return sBookmark; } diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx index 3fb085ba651d..04d15401a4d2 100644 --- a/sd/source/core/drawdoc2.cxx +++ b/sd/source/core/drawdoc2.cxx @@ -50,7 +50,8 @@ #include <svx/eeitem.hxx> #include <svx/langitem.hxx> #include <svtools/itempool.hxx> - +#include <svx/svdpool.hxx>
+#include <svx/flditem.hxx> #include <svx/linkmgr.hxx> #include <svx/editdata.hxx> @@ -303,6 +304,114 @@ void SdDrawDocument::UpdatePageObjectsInNotes(USHORT nStartPos) } } +void SdDrawDocument::UpdatePageRelativeURLs(const String& rOldName, const String& rNewName)
+{
+ if (rNewName.Len() == 0)
+ return;
+
+ SfxItemPool& pPool(GetPool());
+ USHORT nCount = pPool.GetItemCount(EE_FEATURE_FIELD);
+ for (USHORT nOff = 0; nOff < nCount; nOff++)
+ {
+ const SfxPoolItem *pItem = pPool.GetItem(EE_FEATURE_FIELD, nOff);
+ const SvxFieldItem* pFldItem = dynamic_cast< const SvxFieldItem * > (pItem);
+
+ if(pFldItem)
+ {
+ SvxURLField* pURLField = const_cast< SvxURLField* >( dynamic_cast<const SvxURLField*>( pFldItem->GetField() ) );
+
+ if(pURLField)
+ {
+ XubString aURL = pURLField->GetURL();
+
+ if (aURL.Len() && (aURL.GetChar(0) == 35) && (aURL.Search(rOldName, 1) == 1))
+ {
+ if (aURL.Len() == rOldName.Len() + 1) // standard page name
+ {
+ aURL.Erase (1, aURL.Len() - 1);
+ aURL += rNewName;
+ pURLField->SetURL(aURL);
+ }
+ else
+ {
+ const XubString sNotes = SdResId(STR_NOTES);
+ if (aURL.Len() == rOldName.Len() + 2 + sNotes.Len() && aURL.Search(sNotes, rOldName.Len() + 2) == rOldName.Len() + 2)
+ {
+ aURL.Erase (1, aURL.Len() - 1);
+ aURL += rNewName;
+ aURL += ' ';
+ aURL += sNotes;
+ pURLField->SetURL(aURL);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+void SdDrawDocument::UpdatePageRelativeURLs(SdPage* pPage, USHORT nPos, sal_Int32 nIncrement)
+{
+ bool bNotes = (pPage->GetPageKind() == PK_NOTES);
+
+ SfxItemPool& pPool(GetPool());
+ USHORT nCount = pPool.GetItemCount(EE_FEATURE_FIELD);
+ for (USHORT nOff = 0; nOff < nCount; nOff++)
+ {
+ const SfxPoolItem *pItem = pPool.GetItem(EE_FEATURE_FIELD, nOff);
+ const SvxFieldItem* pFldItem;
+
+ if ((pFldItem = dynamic_cast< const SvxFieldItem * > (pItem)) != 0)
+ {
+ SvxURLField* pURLField = const_cast< SvxURLField* >( dynamic_cast<const SvxURLField*>( pFldItem->GetField() ) );
+
+ if(pURLField)
+ {
+ XubString aURL = pURLField->GetURL();
+
+ if (aURL.Len() && (aURL.GetChar(0) == 35))
+ {
+ XubString aHashSlide('#');
+ aHashSlide += SdResId(STR_PAGE);
+
+ if (aURL.CompareTo(aHashSlide, aHashSlide.Len()) == COMPARE_EQUAL)
+ {
+ XubString aURLCopy = aURL;
+ const XubString sNotes = SdResId(STR_NOTES);
+
+ aURLCopy.Erase(0, aHashSlide.Len());
+
+ bool bNotesLink = (aURLCopy.Len() >= sNotes.Len() + 3 && aURLCopy.Search(sNotes, aURLCopy.Len() - sNotes.Len()) == aURLCopy.Len() - sNotes.Len());
+
+ if (bNotesLink ^ bNotes)
+ continue; // no compatible link and page
+
+ if (bNotes)
+ aURLCopy.Erase(aURLCopy.Len() - sNotes.Len(), sNotes.Len());
+
+ sal_Int32 number = aURLCopy.ToInt32();
+ USHORT realPageNumber = (nPos + 1)/ 2;
+
+ if ( number >= realPageNumber )
+ {
+ // update link page number
+ number += nIncrement;
+ aURL.Erase (aHashSlide.Len() + 1, aURL.Len() - aHashSlide.Len() - 1);
+ aURL += XubString::CreateFromInt32(number);
+ if (bNotes)
+ {
+ aURL += ' ';
+ aURL += sNotes;
+ }
+ pURLField->SetURL(aURL);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+ /************************************************************************* |* |* Seite verschieben @@ -327,11 +436,17 @@ void SdDrawDocument::MovePage(USHORT nPgNum, USHORT nNewPos) void SdDrawDocument::InsertPage(SdrPage* pPage, USHORT nPos) { + bool bLast = (nPos == GetPageCount());
+ FmFormModel::InsertPage(pPage, nPos); ((SdPage*)pPage)->ConnectLink(); UpdatePageObjectsInNotes(nPos); + + if (!bLast)
+ UpdatePageRelativeURLs(static_cast<SdPage*>( pPage ), nPos, 1);
+ } /************************************************************************* @@ -356,11 +471,16 @@ void SdDrawDocument::DeletePage(USHORT nPgNum) SdrPage* SdDrawDocument::RemovePage(USHORT nPgNum) { SdrPage* pPage = FmFormModel::RemovePage(nPgNum); +
+ bool bLast = ((nPgNum+1)/2 == (GetPageCount()+1)/2);
((SdPage*)pPage)->DisconnectLink(); ReplacePageInCustomShows( dynamic_cast< SdPage* >( pPage ), 0 ); UpdatePageObjectsInNotes(nPgNum); + if (!bLast)
+ UpdatePageRelativeURLs((SdPage*)pPage, nPgNum, -1);
+ return pPage; } @@ -965,8 +1085,8 @@ SdAnimationInfo* SdDrawDocument::GetShapeUserData(SdrObject& rObject, bool bCrea if( (pRet == 0) && bCreate ) { - pRet = new SdAnimationInfo; - rObject.InsertUserData( pRet ); + pRet = new SdAnimationInfo( rObject ); + rObject.InsertUserData( pRet); } return pRet; diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx index 7413644ced2f..adba35d33880 100644 --- a/sd/source/core/drawdoc4.cxx +++ b/sd/source/core/drawdoc4.cxx @@ -640,21 +640,21 @@ void SdDrawDocument::CreateDefaultCellStyles() rISet.Put( SvxFontHeightItem( 635, 100, EE_CHAR_FONTHEIGHT_CJK ) ); // 18 pt rISet.Put( SvxFontHeightItem( convertFontHeightToCTL( 635 ), 100, EE_CHAR_FONTHEIGHT_CTL ) ); // 18 pt - rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT ) ); - rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK ) ); - rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL ) ); - - rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC ) ); - rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK ) ); - rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CTL ) ); - - rISet.Put(SvxContourItem(FALSE, EE_CHAR_OUTLINE )); - rISet.Put(SvxShadowedItem(FALSE, EE_CHAR_SHADOW )); - rISet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE)); - rISet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE)); - rISet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT )); - rISet.Put(SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK)); - rISet.Put(SvxCharReliefItem(RELIEF_NONE, EE_CHAR_RELIEF)); +// rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT ) ); +// rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK ) ); +// rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL ) ); + +// rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC ) ); +// rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK ) ); +// rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CTL ) ); + +// rISet.Put(SvxContourItem(FALSE, EE_CHAR_OUTLINE )); +// rISet.Put(SvxShadowedItem(FALSE, EE_CHAR_SHADOW )); +// rISet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE)); +// rISet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE)); +// rISet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT )); +// rISet.Put(SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK)); +// rISet.Put(SvxCharReliefItem(RELIEF_NONE, EE_CHAR_RELIEF)); rISet.Put(SvxColorItem(Color(COL_AUTO), EE_CHAR_COLOR )); // Absatzattribute (Edit Engine) diff --git a/sd/source/core/sdobjfac.cxx b/sd/source/core/sdobjfac.cxx index fcede46dfe6f..8657360a65da 100644 --- a/sd/source/core/sdobjfac.cxx +++ b/sd/source/core/sdobjfac.cxx @@ -58,7 +58,7 @@ IMPL_LINK( SdObjectFactory, MakeUserData, SdrObjFactory *, pObjFactory ) switch( pObjFactory->nIdentifier ) { case( SD_ANIMATIONINFO_ID ): - pObjFactory->pNewData = new SdAnimationInfo; + pObjFactory->pNewData = new SdAnimationInfo( *pObjFactory->pObj ); break; case( SD_IMAPINFO_ID ): diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index 2aad3821d1be..47ffb832b52a 100644 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -1058,7 +1058,7 @@ Rectangle SdPage::GetLayoutRect() const |* \*************************************************************************/ -const int MAX_PRESOBJS = 5; // maximum number of presentation objects per layout +const int MAX_PRESOBJS = 7; // maximum number of presentation objects per layout const int VERTICAL = 0x8000; struct LayoutDescriptor @@ -1067,10 +1067,10 @@ struct LayoutDescriptor PresObjKind meKind[MAX_PRESOBJS]; bool mbVertical[MAX_PRESOBJS]; - LayoutDescriptor( int nLayout, int k0 = 0, int k1 = 0, int k2 = 0, int k3 = 0, int k4 = 0 ); + LayoutDescriptor( int nLayout, int k0 = 0, int k1 = 0, int k2 = 0, int k3 = 0, int k4 = 0, int k5 = 0, int k6 = 0 ); }; -LayoutDescriptor::LayoutDescriptor( int nLayout, int k0, int k1, int k2, int k3, int k4 ) +LayoutDescriptor::LayoutDescriptor( int nLayout, int k0, int k1, int k2, int k3, int k4, int k5, int k6 ) : mnLayout( nLayout ) { meKind[0] = static_cast<PresObjKind>(k0 & (~VERTICAL)); mbVertical[0] = (k0 & VERTICAL) == VERTICAL; @@ -1078,6 +1078,8 @@ LayoutDescriptor::LayoutDescriptor( int nLayout, int k0, int k1, int k2, int k3, meKind[2] = static_cast<PresObjKind>(k2 & (~VERTICAL)); mbVertical[2] = (k2 & VERTICAL) == VERTICAL; meKind[3] = static_cast<PresObjKind>(k3 & (~VERTICAL)); mbVertical[3] = (k3 & VERTICAL) == VERTICAL; meKind[4] = static_cast<PresObjKind>(k4 & (~VERTICAL)); mbVertical[4] = (k4 & VERTICAL) == VERTICAL; + meKind[5] = static_cast<PresObjKind>(k5 & (~VERTICAL)); mbVertical[5] = (k5 & VERTICAL) == VERTICAL;
+ meKind[6] = static_cast<PresObjKind>(k6 & (~VERTICAL)); mbVertical[6] = (k6 & VERTICAL) == VERTICAL; } static const LayoutDescriptor& GetLayoutDescriptor( AutoLayout eLayout ) @@ -1117,7 +1119,11 @@ static const LayoutDescriptor& GetLayoutDescriptor( AutoLayout eLayout ) LayoutDescriptor( 0, PRESOBJ_TITLE, PRESOBJ_OUTLINE|VERTICAL ), // AUTOLAYOUT_TITLE_VERTICAL_OUTLINE LayoutDescriptor( 9, PRESOBJ_TITLE, PRESOBJ_GRAPHIC, PRESOBJ_OUTLINE|VERTICAL ), // AUTOLAYOUT_TITLE_VERTICAL_OUTLINE_CLIPART LayoutDescriptor( 0 ), // AUTOLAYOUT_HANDOUT9 - LayoutDescriptor( 10, PRESOBJ_TEXT, PRESOBJ_NONE ) // AUTOLAYOUT_ONLY_TEXT + LayoutDescriptor( 10, PRESOBJ_TEXT, PRESOBJ_NONE ), // AUTOLAYOUT_ONLY_TEXT + LayoutDescriptor( 6, PRESOBJ_TITLE, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC, // AUTOLAYOUT_4CLIPART
+ PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC ), + LayoutDescriptor( 11, PRESOBJ_TITLE, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC, // AUTOLAYOUT_6CLIPART
+ PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC ) }; if( (eLayout < AUTOLAYOUT__START) || (eLayout >= AUTOLAYOUT__END) ) @@ -1306,6 +1312,32 @@ static void CalcAutoLayoutRectangles( SdPage& rPage, int nLayout, Rectangle* rRe rRectangle[0].SetPos( aTitlePos);
break; } + case 11: // title, 6 shapes
+ {
+ ULONG nX = long (aLayoutPos.X());
+
+ aLayoutSize.Height() = long (aLayoutSize.Height() * 0.477);
+ aLayoutSize.Width() = long (aLayoutSize.Width() * 0.322);
+ rRectangle[1] = Rectangle (aLayoutPos, aLayoutSize);
+
+ aLayoutPos.X() = long (nX + aLayoutSize.Width() * 1.05);
+ rRectangle[2] = Rectangle (aLayoutPos, aLayoutSize);
+
+ aLayoutPos.X() = long (nX + aLayoutSize.Width() * 2 * 1.05);
+ rRectangle[3] = Rectangle (aLayoutPos, aLayoutSize);
+
+ aLayoutPos.Y() = long (aLayoutPos.Y() + aLayoutSize.Height() * 1.095);
+ rRectangle[4] = Rectangle (aLayoutPos, aLayoutSize);
+
+ aLayoutPos.X() = long (nX + aLayoutSize.Width() * 1.05);
+ rRectangle[5] = Rectangle (aLayoutPos, aLayoutSize);
+
+ aLayoutPos.X() = nX;
+ rRectangle[6] = Rectangle (aLayoutPos, aLayoutSize);
+
+ break;
+ }
+ } } @@ -2753,7 +2785,9 @@ SdPage* SdPage::getImplementation( const ::com::sun::star::uno::Reference< ::com void SdPage::SetName (const String& rName) { + String aOldName = GetName(); FmFormPage::SetName (rName); + static_cast<SdDrawDocument*>(pModel)->UpdatePageRelativeURLs(aOldName, rName); ActionChanged(); } diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx index 555dd965a2f5..b3e14e4bd359 100644 --- a/sd/source/filter/eppt/epptso.cxx +++ b/sd/source/filter/eppt/epptso.cxx @@ -4889,8 +4889,8 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a *mpStrm << (sal_uInt32)( mnTextSize + 1 ) << (sal_uInt32)1 << (sal_uInt16)0; mpPptEscherEx->CloseContainer(); // ESCHER_ClientTextBox mpPptEscherEx->CloseContainer(); // ESCHER_SpContainer - continue; } + continue; } else { diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx index 80e76fa2a3fd..6e2a7feb5240 100644 --- a/sd/source/filter/html/htmlex.cxx +++ b/sd/source/filter/html/htmlex.cxx @@ -1773,13 +1773,13 @@ bool HtmlExport::CreateHtmlForPresPages() case presentation::ClickAction_BOOKMARK: { BOOL bIsMasterPage; - USHORT nPgNum = mpDoc->GetPageByName( pInfo->maBookmark, bIsMasterPage ); + USHORT nPgNum = mpDoc->GetPageByName( pInfo->GetBookmark(), bIsMasterPage ); SdrObject* pObj = NULL; if( nPgNum == SDRPAGE_NOTFOUND ) { // Ist das Bookmark ein Objekt? - pObj = mpDoc->GetObj(pInfo->maBookmark); + pObj = mpDoc->GetObj(pInfo->GetBookmark()); if (pObj) nPgNum = pObj->GetPage()->GetPageNum(); } @@ -1790,7 +1790,7 @@ bool HtmlExport::CreateHtmlForPresPages() break; case presentation::ClickAction_DOCUMENT: - aHRef = pInfo->maBookmark; + aHRef = pInfo->GetBookmark(); break; case presentation::ClickAction_PREVPAGE: diff --git a/sd/source/filter/pptin.cxx b/sd/source/filter/pptin.cxx index dae9e427aa35..c4e59cd4275b 100644 --- a/sd/source/filter/pptin.cxx +++ b/sd/source/filter/pptin.cxx @@ -236,7 +236,7 @@ ImplSdPPTImport::ImplSdPPTImport( SdDrawDocument* pDocument, SvStorage& rStorage InitSvxMSDffManager( nDggContainerOfs, pStData, nSvxMSDffOLEConvFlags2 ); SetSvxMSDffSettings( SVXMSDFF_SETTINGS_CROP_BITMAPS - | SVXMSDFF_SETTINGS_IMPORT_IAS | SVXMSDFF_SETTINGS_IMPORT_PPT ); + | SVXMSDFF_SETTINGS_IMPORT_PPT ); SetModel( mpDoc, 576 ); } } @@ -2099,7 +2099,7 @@ void ImplSdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiv // Lokale Informationen in pInfo eintragen if( pIAtom->nSoundRef ) { - pInfo->maBookmark = ReadSound( pIAtom->nSoundRef ); // Pfad zum Soundfile in MSDOS-Notation + pInfo->SetBookmark( ReadSound( pIAtom->nSoundRef ) ); // Pfad zum Soundfile in MSDOS-Notation pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_SOUND; // RunProgramAction } // if ( nFlags & 0x01 ) // koennen wir nicht ( beim Anklicken markieren ) @@ -2117,7 +2117,7 @@ void ImplSdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiv case 0x02 : // RunProgramAction { pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_PROGRAM; - pInfo->maBookmark = aMacroName; // Programmname in aBookmark + pInfo->SetBookmark( aMacroName ); // Programmname in aBookmark } break; case 0x03 : // JumpAction @@ -2187,8 +2187,8 @@ void ImplSdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiv { if ( pPtr->aConvSubString.Len() ) { - pInfo->maBookmark = pPtr->aConvSubString; pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_BOOKMARK; + pInfo->SetBookmark( pPtr->aConvSubString ); } } break; diff --git a/sd/source/filter/sdpptwrp.cxx b/sd/source/filter/sdpptwrp.cxx index 7d386623c9b2..ab42e2bde5cb 100644 --- a/sd/source/filter/sdpptwrp.cxx +++ b/sd/source/filter/sdpptwrp.cxx @@ -107,18 +107,20 @@ sal_Bool SdPPTFilter::Import() aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DocumentURL" ) ); aConfigData[ 0 ] = aPropValue; - MSFilterTracer aTracer( aTraceConfigPath, &aConfigData ); - aTracer.StartTracing(); - SdPPTImport* pImport = new SdPPTImport( &mrDocument, *pDocStream, *pStorage, mrMedium, &aTracer ); - if ( ( bRet = pImport->Import() ) == sal_False ) + if ( pStorage->IsStream( String( RTL_CONSTASCII_USTRINGPARAM("EncryptedSummary") ) ) ) + mrMedium.SetError( ERRCODE_SVX_READ_FILTER_PPOINT ); + else { - if ( pStorage->IsStream( String( RTL_CONSTASCII_USTRINGPARAM("EncryptedSummary") ) ) ) - mrMedium.SetError( ERRCODE_SVX_READ_FILTER_PPOINT ); - else + MSFilterTracer aTracer( aTraceConfigPath, &aConfigData ); + aTracer.StartTracing(); + + SdPPTImport* pImport = new SdPPTImport( &mrDocument, *pDocStream, *pStorage, mrMedium, &aTracer ); + if ( ( bRet = pImport->Import() ) == sal_False ) mrMedium.SetError( SVSTREAM_WRONGVERSION ); + + aTracer.EndTracing(); + delete pImport; } - aTracer.EndTracing(); - delete pImport; delete pDocStream; } } diff --git a/sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx b/sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx index 8b4ec2819db2..2b9e977b073f 100644 --- a/sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx +++ b/sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx @@ -56,6 +56,7 @@ namespace accessibility { // register as listener - need to broadcast state change messages rOutliner.SetNotifyHdl( LINK(this, AccessibleOutlineEditSource, NotifyHdl) ); + StartListening(rOutliner); } AccessibleOutlineEditSource::~AccessibleOutlineEditSource() @@ -177,13 +178,32 @@ namespace accessibility return Point(); } - void AccessibleOutlineEditSource::Notify( SfxBroadcaster&, const SfxHint& rHint ) + void AccessibleOutlineEditSource::Notify( SfxBroadcaster& rBroadcaster, const SfxHint& rHint ) { - const SdrHint* pSdrHint = dynamic_cast< const SdrHint* >( &rHint ); + bool bDispose = false; - if( pSdrHint && ( pSdrHint->GetKind() == HINT_MODELCLEARED ) ) + if( &rBroadcaster == mpOutliner ) + { + const SfxSimpleHint* pHint = dynamic_cast< const SfxSimpleHint * >( &rHint ); + if( pHint && (pHint->GetId() == SFX_HINT_DYING) ) + { + bDispose = true; + mpOutliner = NULL; + } + } + else + { + const SdrHint* pSdrHint = dynamic_cast< const SdrHint* >( &rHint ); + + if( pSdrHint && ( pSdrHint->GetKind() == HINT_MODELCLEARED ) ) + { + // model is dying under us, going defunc + bDispose = true; + } + } + + if( bDispose ) { - // model is dying under us, going defunc if( mpOutliner ) mpOutliner->SetNotifyHdl( Link() ); mpOutliner = NULL; diff --git a/sd/source/ui/app/res_bmp.src b/sd/source/ui/app/res_bmp.src index 5951fddd0e1c..25bb04e954ca 100644 --- a/sd/source/ui/app/res_bmp.src +++ b/sd/source/ui/app/res_bmp.src @@ -237,6 +237,22 @@ Bitmap BMP_FOIL_25_H {
File = "foil25_h.bmp" ;
}; +Bitmap BMP_FOIL_26
+{
+ File = "foil26.bmp" ;
+};
+Bitmap BMP_FOIL_26_H
+{
+ File = "foil26_h.bmp" ;
+}; +Bitmap BMP_FOIL_27
+{
+ File = "foil27.bmp" ;
+};
+Bitmap BMP_FOIL_27_H
+{
+ File = "foil27_h.bmp" ;
+}; Bitmap BMP_FOILH_01 { File = "foilh01.bmp" ; diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src index 7bea646e3122..ca20d5900768 100644 --- a/sd/source/ui/app/strings.src +++ b/sd/source/ui/app/strings.src @@ -253,6 +253,10 @@ String STR_AUTOLAYOUT_4OBJ { Text [ en-US ] = "Title, 4 Objects" ; }; +String STR_AUTOLAYOUT_4CLIPART
+{
+ Text [ en-US ] = "Title, 4 Cliparts" ;
+}; String STR_AL_TITLE_VERT_OUTLINE { Text [ en-US ] = "Title, Vertical Text" ; @@ -269,6 +273,10 @@ String STR_AL_VERT_TITLE_VERT_OUTLINE { Text [ en-US ] = "Vertical Title, Vertical Text" ; }; +String STR_AUTOLAYOUT_6CLIPART
+{
+ Text [ en-US ] = "Title, 6 Cliparts" ;
+};
String STR_AUTOLAYOUT_HANDOUT1 { diff --git a/sd/source/ui/func/fudraw.cxx b/sd/source/ui/func/fudraw.cxx index 0a539111fb82..a0d7c47d9841 100644 --- a/sd/source/ui/func/fudraw.cxx +++ b/sd/source/ui/func/fudraw.cxx @@ -1006,7 +1006,7 @@ BOOL FuDraw::SetHelpText(SdrObject* pObj, const Point& rPosPixel, const SdrViewE // jump to object/page aHelpText = String(SdResId(STR_CLICK_ACTION_BOOKMARK)); aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) ); - aHelpText.Append( String(INetURLObject::decode( pInfo->maBookmark, '%', INetURLObject::DECODE_WITH_CHARSET ) )); + aHelpText.Append( String(INetURLObject::decode( pInfo->GetBookmark(), '%', INetURLObject::DECODE_WITH_CHARSET ) )); } break; @@ -1015,7 +1015,7 @@ BOOL FuDraw::SetHelpText(SdrObject* pObj, const Point& rPosPixel, const SdrViewE // jump to document (object/page) aHelpText = String(SdResId(STR_CLICK_ACTION_DOCUMENT)); aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) ); - aHelpText.Append( String(INetURLObject::decode( pInfo->maBookmark, '%', INetURLObject::DECODE_WITH_CHARSET ) )); + aHelpText.Append( String(INetURLObject::decode( pInfo->GetBookmark(), '%', INetURLObject::DECODE_WITH_CHARSET ) )); } break; @@ -1024,7 +1024,7 @@ BOOL FuDraw::SetHelpText(SdrObject* pObj, const Point& rPosPixel, const SdrViewE // execute program aHelpText = String(SdResId(STR_CLICK_ACTION_PROGRAM)); aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) ); - aHelpText.Append( String(INetURLObject::decode( pInfo->maBookmark, '%', INetURLObject::DECODE_WITH_CHARSET ) )); + aHelpText.Append( String(INetURLObject::decode( pInfo->GetBookmark(), '%', INetURLObject::DECODE_WITH_CHARSET ) )); } break; @@ -1034,18 +1034,19 @@ BOOL FuDraw::SetHelpText(SdrObject* pObj, const Point& rPosPixel, const SdrViewE aHelpText = String(SdResId(STR_CLICK_ACTION_MACRO)); aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) ); - if ( SfxApplication::IsXScriptURL( pInfo->maBookmark ) ) + if ( SfxApplication::IsXScriptURL( pInfo->GetBookmark() ) ) { - aHelpText.Append( pInfo->maBookmark ); + aHelpText.Append( pInfo->GetBookmark() ); } else { + String sBookmark( pInfo->GetBookmark() ); sal_Unicode cToken = '.'; - aHelpText.Append( pInfo->maBookmark.GetToken( 2, cToken ) ); + aHelpText.Append( sBookmark.GetToken( 2, cToken ) ); aHelpText.Append( cToken ); - aHelpText.Append( pInfo->maBookmark.GetToken( 1, cToken ) ); + aHelpText.Append( sBookmark.GetToken( 1, cToken ) ); aHelpText.Append( cToken ); - aHelpText.Append( pInfo->maBookmark.GetToken( 0, cToken ) ); + aHelpText.Append( sBookmark.GetToken( 0, cToken ) ); } } break; diff --git a/sd/source/ui/func/fuoaprms.cxx b/sd/source/ui/func/fuoaprms.cxx index 965b52b3a94b..694f1ae6615a 100644 --- a/sd/source/ui/func/fuoaprms.cxx +++ b/sd/source/ui/func/fuoaprms.cxx @@ -186,7 +186,7 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) eClickAction = pInfo->meClickAction; nClickActionSet = ATTR_SET; - aBookmark = pInfo->maBookmark; + aBookmark = pInfo->GetBookmark(); nBookmarkSet = ATTR_SET; eSecondEffect = pInfo->meSecondEffect; @@ -243,7 +243,7 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) if( eClickAction != pInfo->meClickAction ) nClickActionSet = ATTR_MIXED; - if( aBookmark != pInfo->maBookmark ) + if( aBookmark != pInfo->GetBookmark() ) nBookmarkSet = ATTR_MIXED; if( eSecondEffect != pInfo->meSecondEffect ) @@ -353,7 +353,7 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) aSound = pInfo->maSoundFile; nSoundFileSet = ATTR_SET; bPlayFull = pInfo->mbPlayFull; nPlayFullSet = ATTR_SET; eClickAction = pInfo->meClickAction; nClickActionSet = ATTR_SET; - aBookmark = pInfo->maBookmark; nBookmarkSet = ATTR_SET; + aBookmark = pInfo->GetBookmark(); nBookmarkSet = ATTR_SET; eSecondEffect = pInfo->meSecondEffect; nSecondEffectSet = ATTR_SET; eSecondSpeed = pInfo->meSecondSpeed; nSecondSpeedSet = ATTR_SET; bSecondSoundOn = pInfo->mbSecondSoundOn; nSecondSoundOnSet = ATTR_SET; @@ -733,7 +733,7 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) pAction->SetPlayFull(pInfo->mbPlayFull, pInfo->mbPlayFull); // pAction->SetPathObj(pInfo->mpPathObj, pInfo->mpPathObj); pAction->SetClickAction(pInfo->meClickAction, pInfo->meClickAction); - pAction->SetBookmark(pInfo->maBookmark, pInfo->maBookmark); + pAction->SetBookmark(pInfo->GetBookmark(), pInfo->GetBookmark()); // pAction->SetInvisibleInPres(pInfo->mbInvisibleInPresentation, TRUE); pAction->SetVerb(pInfo->mnVerb, pInfo->mnVerb); pAction->SetSecondEffect(pInfo->meSecondEffect, pInfo->meSecondEffect); @@ -762,10 +762,10 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) pAction->SetPlayFull(pInfo->mbPlayFull, bPlayFull); pAction->SetPathObj(pInfo->mpPathObj, pPath); pAction->SetClickAction(pInfo->meClickAction, eClickAction); - pAction->SetBookmark(pInfo->maBookmark, aBookmark); + pAction->SetBookmark(pInfo->GetBookmark(), aBookmark); // pAction->SetInvisibleInPres(pInfo->mbInvisibleInPresentation, // pInfo->mbInvisibleInPresentation); - pAction->SetVerb(pInfo->mnVerb, (USHORT)pInfo->maBookmark.ToInt32() ); + pAction->SetVerb(pInfo->mnVerb, (USHORT)pInfo->GetBookmark().ToInt32() ); pAction->SetSecondEffect(pInfo->meSecondEffect, eSecondEffect); pAction->SetSecondSpeed(pInfo->meSecondSpeed, eSecondSpeed); pAction->SetSecondSoundOn(pInfo->mbSecondSoundOn, bSecondSoundOn); @@ -807,7 +807,7 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq ) pInfo->meClickAction = eClickAction; if (nBookmarkSet == ATTR_SET) - pInfo->maBookmark = aBookmark; + pInfo->SetBookmark( aBookmark ); if (nSecondEffectSet == ATTR_SET) pInfo->meSecondEffect = eSecondEffect; diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx index cab26dee337e..068686d4a709 100644 --- a/sd/source/ui/func/fusel.cxx +++ b/sd/source/ui/func/fusel.cxx @@ -1254,7 +1254,7 @@ BOOL FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos) case presentation::ClickAction_BOOKMARK: { // Sprung zu Bookmark (Seite oder Objekt) - SfxStringItem aItem(SID_NAVIGATOR_OBJECT, pInfo->maBookmark); + SfxStringItem aItem(SID_NAVIGATOR_OBJECT, pInfo->GetBookmark()); mpViewShell->GetViewFrame()->GetDispatcher()-> Execute(SID_NAVIGATOR_OBJECT, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD, &aItem, 0L); bAnimated = TRUE; @@ -1263,11 +1263,12 @@ BOOL FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos) case presentation::ClickAction_DOCUMENT: { + String sBookmark( pInfo->GetBookmark() ); // Sprung zu Dokument - if (pInfo->maBookmark.Len()) + if (sBookmark.Len()) { SfxStringItem aReferer(SID_REFERER, mpDocSh->GetMedium()->GetName()); - SfxStringItem aStrItem(SID_FILE_NAME, pInfo->maBookmark); + SfxStringItem aStrItem(SID_FILE_NAME, sBookmark); SfxViewFrame* pFrame = mpViewShell->GetViewFrame(); SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame); SfxBoolItem aBrowseItem( SID_BROWSE, TRUE ); @@ -1328,7 +1329,7 @@ BOOL FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos) { try { - mxPlayer.set( avmedia::MediaWindow::createPlayer( pInfo->maBookmark ), uno::UNO_QUERY_THROW ); + mxPlayer.set( avmedia::MediaWindow::createPlayer( pInfo->GetBookmark()), uno::UNO_QUERY_THROW ); mxPlayer->start(); } catch( uno::Exception& e ) @@ -1352,7 +1353,7 @@ BOOL FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos) case presentation::ClickAction_PROGRAM: { String aBaseURL = GetDocSh()->GetMedium()->GetBaseURL(); - INetURLObject aURL( ::URIHelper::SmartRel2Abs( INetURLObject(aBaseURL), pInfo->maBookmark, + INetURLObject aURL( ::URIHelper::SmartRel2Abs( INetURLObject(aBaseURL), pInfo->GetBookmark(), URIHelper::GetMaybeFileHdl(), true, false, INetURLObject::WAS_ENCODED, INetURLObject::DECODE_UNAMBIGUOUS ) ); @@ -1377,7 +1378,7 @@ BOOL FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos) case presentation::ClickAction_MACRO: { // Execute makro - String aMacro = pInfo->maBookmark; + String aMacro = pInfo->GetBookmark(); if ( SfxApplication::IsXScriptURL( aMacro ) ) { diff --git a/sd/source/ui/func/unoaprms.cxx b/sd/source/ui/func/unoaprms.cxx index d602fa3ee9f4..7dcd41f87339 100644 --- a/sd/source/ui/func/unoaprms.cxx +++ b/sd/source/ui/func/unoaprms.cxx @@ -74,7 +74,7 @@ SdAnimationPrmsUndoAction::SdAnimationPrmsUndoAction( pNewPathObj = pOldPathObj = pInfo->mpPathObj; eNewClickAction = eOldClickAction = pInfo->meClickAction; - aNewBookmark = aOldBookmark = pInfo->maBookmark; + aNewBookmark = aOldBookmark = pInfo->GetBookmark(); // bNewInvisibleInPres = bOldInvisibleInPres= pInfo->mbInvisibleInPresentation; nNewVerb = nOldVerb = pInfo->mnVerb; nNewPresOrder = nOldPresOrder = pInfo->mnPresOrder; @@ -115,7 +115,7 @@ void SdAnimationPrmsUndoAction::Undo() pInfo->mbPlayFull = bOldPlayFull; // pInfo->mSetPath(pOldPathObj); pInfo->meClickAction = eOldClickAction; - pInfo->maBookmark = aOldBookmark; + pInfo->SetBookmark( aOldBookmark ); // pInfo->mbInvisibleInPresentation = bOldInvisibleInPres; pInfo->mnVerb = nOldVerb; pInfo->mnPresOrder = nOldPresOrder; @@ -161,7 +161,7 @@ void SdAnimationPrmsUndoAction::Redo() pInfo->mbPlayFull = bNewPlayFull; // pInfo->mSetPath(pNewPathObj); pInfo->meClickAction = eNewClickAction; - pInfo->maBookmark = aNewBookmark; + pInfo->SetBookmark( aNewBookmark ); // pInfo->mbInvisibleInPresentation = bNewInvisibleInPres; pInfo->mnVerb = nNewVerb; pInfo->mnPresOrder = nNewPresOrder; diff --git a/sd/source/ui/inc/res_bmp.hrc b/sd/source/ui/inc/res_bmp.hrc index 46787633b898..c31b2ba7bae0 100644 --- a/sd/source/ui/inc/res_bmp.hrc +++ b/sd/source/ui/inc/res_bmp.hrc @@ -114,6 +114,8 @@ #define BMP_COLLAPSE RID_APP_START+52 #define BMP_GRAPHIC RID_APP_START+53 +#define BMP_FOIL_26 RID_APP_START+54
+ // Bimaps fuer ValueSet im EffekteWindow #define BMP_EFFECT_NONE RID_APP_START+105 #define BMP_TEXTEFFECT_DISCARD_FROM_T RID_APP_START+106 @@ -231,6 +233,9 @@ #define BMP_FOILH_09_H RID_SD_START+333 #define BMP_FOIL_25_H RID_SD_START+334 +#define BMP_FOIL_26_H RID_SD_START+335 +#define BMP_FOIL_27 RID_SD_START+336 +#define BMP_FOIL_27_H RID_SD_START+337 // ----------------------------------------------------------------------------- diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc index 5deb5e900a93..5e70e0d227e2 100644 --- a/sd/source/ui/inc/strings.hrc +++ b/sd/source/ui/inc/strings.hrc @@ -199,9 +199,11 @@ #define STR_AUTOLAYOUT_NOTES (RID_APP_START+236) #define STR_AUTOLAYOUT_HANDOUT9 (RID_APP_START+237) #define STR_AUTOLAYOUT_ONLY_TEXT (RID_APP_START+238)
- +#define STR_AUTOLAYOUT_4CLIPART (RID_APP_START+239)
#define STR_TRANSFORM (RID_APP_START+240) +
+#define STR_AUTOLAYOUT_6CLIPART (RID_APP_START+241)
#define STR_EXPORT_HTML_NAME (RID_APP_START+244) #define STR_EXPORT_HTML_FILTER (RID_APP_START+245) diff --git a/sd/source/ui/toolpanel/LayoutMenu.cxx b/sd/source/ui/toolpanel/LayoutMenu.cxx index 056317ef6358..96558c720cb7 100644 --- a/sd/source/ui/toolpanel/LayoutMenu.cxx +++ b/sd/source/ui/toolpanel/LayoutMenu.cxx @@ -205,6 +205,9 @@ static snewfoil_value_info standard[] = AUTOLAYOUT_TEXTOVEROBJ}, {BMP_FOIL_18, BMP_FOIL_18_H, STR_AUTOLAYOUT_4OBJ, WritingMode_LR_TB, AUTOLAYOUT_4OBJ}, + {BMP_FOIL_26, BMP_FOIL_26_H, STR_AUTOLAYOUT_4CLIPART, WritingMode_LR_TB, AUTOLAYOUT_4CLIPART}, + {BMP_FOIL_27, BMP_FOIL_27_H, STR_AUTOLAYOUT_6CLIPART, WritingMode_LR_TB, AUTOLAYOUT_6CLIPART}, + // vertical {BMP_FOIL_21, BMP_FOIL_21_H, STR_AL_VERT_TITLE_TEXT_CHART, WritingMode_TB_RL, AUTOLAYOUT_VERTICAL_TITLE_TEXT_CHART}, diff --git a/sd/source/ui/unoidl/unoobj.cxx b/sd/source/ui/unoidl/unoobj.cxx index 149350df17b0..8dbaa9a486ad 100644 --- a/sd/source/ui/unoidl/unoobj.cxx +++ b/sd/source/ui/unoidl/unoobj.cxx @@ -486,7 +486,7 @@ void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName, if(!(aValue >>= aString)) throw lang::IllegalArgumentException(); - pInfo->maBookmark = SdDrawPage::getUiNameFromPageApiName( aString ); + pInfo->SetBookmark( SdDrawPage::getUiNameFromPageApiName( aString ) ); break; } case WID_CLICKACTION: @@ -726,13 +726,13 @@ void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName, SdDrawDocument* pDoc = mpModel?mpModel->GetDoc():NULL; // is the bookmark a page? BOOL bIsMasterPage; - if(pDoc->GetPageByName( pInfo->maBookmark, bIsMasterPage ) != SDRPAGE_NOTFOUND) + if(pDoc->GetPageByName( pInfo->GetBookmark(), bIsMasterPage ) != SDRPAGE_NOTFOUND) { - aString = SdDrawPage::getPageApiNameFromUiName( pInfo->maBookmark ); + aString = SdDrawPage::getPageApiNameFromUiName( pInfo->GetBookmark() ); } else { - aString = pInfo->maBookmark ; + aString = pInfo->GetBookmark() ; sal_Int32 nPos = aString.lastIndexOf( sal_Unicode('#') ); if( nPos >= 0 ) { @@ -1160,7 +1160,7 @@ SdUnoEventsAccess::SdUnoEventsAccess( SdXShape* pShape ) throw() static void clearEventsInAnimationInfo( SdAnimationInfo* pInfo ) { const String aEmpty; - pInfo->maBookmark = aEmpty; + pInfo->SetBookmark( aEmpty ); pInfo->mbSecondSoundOn = sal_False; pInfo->mbSecondPlayFull = sal_False; pInfo->meClickAction = presentation::ClickAction_NONE; @@ -1344,7 +1344,7 @@ void SAL_CALL SdUnoEventsAccess::replaceByName( const OUString& aName, const uno } } - pInfo->maBookmark = aStrBookmark; + pInfo->SetBookmark( aStrBookmark ); bOk = sal_True; } break; @@ -1352,7 +1352,7 @@ void SAL_CALL SdUnoEventsAccess::replaceByName( const OUString& aName, const uno case presentation::ClickAction_MACRO: if( nFound & FOUND_MACRO ) { - pInfo->maBookmark = aStrMacro; + pInfo->SetBookmark( aStrMacro ); bOk = sal_True; } break; @@ -1379,7 +1379,7 @@ void SAL_CALL SdUnoEventsAccess::replaceByName( const OUString& aName, const uno case presentation::ClickAction_SOUND: if( nFound & FOUND_SOUNDURL ) { - pInfo->maBookmark = aStrSoundURL; + pInfo->SetBookmark( aStrSoundURL ); if( eClickAction != presentation::ClickAction_SOUND ) pInfo->mbSecondSoundOn = aStrSoundURL.getLength() != 0; pInfo->mbSecondPlayFull = nFound & FOUND_PLAYFULL ? bPlayFull : sal_False; @@ -1404,7 +1404,7 @@ void SAL_CALL SdUnoEventsAccess::replaceByName( const OUString& aName, const uno if ( SfxApplication::IsXScriptURL( aStrMacro ) ) { - pInfo->maBookmark = aStrMacro; + pInfo->SetBookmark( aStrMacro ); } else { @@ -1431,7 +1431,7 @@ void SAL_CALL SdUnoEventsAccess::replaceByName( const OUString& aName, const uno sBuffer.append( aStrLibrary ); } - pInfo->maBookmark = sBuffer.makeStringAndClear(); + pInfo->SetBookmark( sBuffer.makeStringAndClear() ); } bOk = sal_True; } @@ -1471,7 +1471,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) case presentation::ClickAction_BOOKMARK: case presentation::ClickAction_DOCUMENT: case presentation::ClickAction_MACRO: - if ( !SfxApplication::IsXScriptURL( pInfo->maBookmark ) ) + if ( !SfxApplication::IsXScriptURL( pInfo->GetBookmark() ) ) nPropertyCount += 1; break; @@ -1493,7 +1493,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) if( eClickAction == presentation::ClickAction_MACRO ) { - if ( SfxApplication::IsXScriptURL( pInfo->maBookmark ) ) + if ( SfxApplication::IsXScriptURL( pInfo->GetBookmark() ) ) { // Scripting Framework URL aAny <<= maStrScript;; @@ -1503,7 +1503,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) pProperties->State = beans::PropertyState_DIRECT_VALUE; pProperties++; - aAny <<= OUString( pInfo->maBookmark ); + aAny <<= OUString( pInfo->GetBookmark() ); pProperties->Name = maStrScript; pProperties->Handle = -1; pProperties->Value = aAny; @@ -1520,7 +1520,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) pProperties->State = beans::PropertyState_DIRECT_VALUE; pProperties++; - String aMacro = pInfo->maBookmark; + String aMacro = pInfo->GetBookmark(); // aMacro has got following format: // "Macroname.Modulname.Libname.Documentname" or @@ -1579,7 +1579,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) break; case presentation::ClickAction_BOOKMARK: { - const OUString aStrBookmark( getPageApiNameFromUiName( pInfo->maBookmark ) ); + const OUString aStrBookmark( getPageApiNameFromUiName( pInfo->GetBookmark()) ); pProperties->Name = maStrBookmark; pProperties->Handle = -1; pProperties->Value <<= aStrBookmark; @@ -1590,7 +1590,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) case presentation::ClickAction_DOCUMENT: case presentation::ClickAction_PROGRAM: { - OUString aString( pInfo->maBookmark ); + OUString aString( pInfo->GetBookmark()); sal_Int32 nPos = aString.lastIndexOf( sal_Unicode('#') ); if( nPos >= 0 ) { @@ -1625,7 +1625,7 @@ uno::Any SAL_CALL SdUnoEventsAccess::getByName( const OUString& aName ) case presentation::ClickAction_SOUND: if( eClickAction == presentation::ClickAction_SOUND || pInfo->mbSecondSoundOn ) { - aAny <<= OUString( pInfo->maBookmark ); + aAny <<= OUString( pInfo->GetBookmark()); pProperties->Name = maStrSoundURL; pProperties->Handle = -1; pProperties->Value = aAny; diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx index 8c14b57fe286..a2bcfa3d8e0f 100644 --- a/sd/source/ui/view/drtxtob1.cxx +++ b/sd/source/ui/view/drtxtob1.cxx @@ -256,6 +256,8 @@ void TextObjectBar::Execute( SfxRequest &rReq ) { pOLV->AdjustDepth( -1 ); + // Ensure bold/italic etc. icon state updates
+ Invalidate();
// #96551# trigger preview refresh mpViewShell->GetViewFrame()->GetBindings().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE ); } @@ -269,6 +271,8 @@ void TextObjectBar::Execute( SfxRequest &rReq ) { pOLV->AdjustDepth( 1 ); + // Ensure bold/italic etc. icon state updates
+ Invalidate();
// #96551# trigger preview refresh mpViewShell->GetViewFrame()->GetBindings().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE ); } diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index bd8c7136495f..7cc9de9f611f 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -1552,7 +1552,7 @@ void DrawViewShell::InsertURLButton(const String& rURL, const String& rText, SdAnimationInfo* pInfo = SdDrawDocument::GetShapeUserData(*pMarkedObj, true); pInfo->meClickAction = presentation::ClickAction_DOCUMENT; - pInfo->maBookmark = sTargetURL; + pInfo->SetBookmark( sTargetURL ); } } catch( uno::Exception& ) diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx index 0893bcb8b46c..2b1b7518666c 100644 --- a/sd/source/ui/view/drviewsf.cxx +++ b/sd/source/ui/view/drviewsf.cxx @@ -195,7 +195,7 @@ void DrawViewShell::GetCtrlState(SfxItemSet &rSet) { SdAnimationInfo* pInfo = SdDrawDocument::GetShapeUserData(*pMarkedObj); if( pInfo && (pInfo->meClickAction == presentation::ClickAction_DOCUMENT) ) - aHLinkItem.SetURL( pInfo->maBookmark ); + aHLinkItem.SetURL( pInfo->GetBookmark()); aHLinkItem.SetInsertMode(HLINK_BUTTON); } } diff --git a/sd/source/ui/view/sdview2.cxx b/sd/source/ui/view/sdview2.cxx index 15539b7dd276..0c19247b14e1 100644 --- a/sd/source/ui/view/sdview2.cxx +++ b/sd/source/ui/view/sdview2.cxx @@ -839,7 +839,7 @@ sal_Int8 View::ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rTar pAction->SetPlayFull(pInfo->mbPlayFull, pInfo->mbPlayFull); pAction->SetPathObj(pInfo->mpPathObj, pInfo->mpPathObj); pAction->SetClickAction(pInfo->meClickAction, eClickAction); - pAction->SetBookmark(pInfo->maBookmark, aBookmark); + pAction->SetBookmark(pInfo->GetBookmark(), aBookmark); // pAction->SetInvisibleInPres(pInfo->mbInvisibleInPresentation, TRUE); pAction->SetVerb(pInfo->mnVerb, pInfo->mnVerb); pAction->SetSecondEffect(pInfo->meSecondEffect, pInfo->meSecondEffect); @@ -851,7 +851,7 @@ sal_Int8 View::ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rTar pAction->SetComment(aString); mpDocSh->GetUndoManager()->AddUndoAction(pAction); pInfo->meClickAction = eClickAction; - pInfo->maBookmark = aBookmark; + pInfo->SetBookmark( aBookmark ); mpDoc->SetChanged(); nRet = nDropAction; |