summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2009-05-19 09:32:45 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2009-05-19 09:32:45 +0000
commit615772fb62f460cb026771b27822f83264784a1c (patch)
tree5e0ed28e780a5321a8156a8246cddee0aef84f07 /sd
parent04a678277a03469c17b32b6bfdc259700e55e956 (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')
-rw-r--r--sd/inc/anminfo.hxx11
-rw-r--r--sd/inc/drawdoc.hxx3
-rw-r--r--sd/inc/pres.hxx2
-rw-r--r--sd/source/core/anminfo.cxx57
-rw-r--r--sd/source/core/drawdoc2.cxx126
-rw-r--r--sd/source/core/drawdoc4.cxx30
-rw-r--r--sd/source/core/sdobjfac.cxx2
-rw-r--r--sd/source/core/sdpage.cxx42
-rw-r--r--sd/source/filter/eppt/epptso.cxx2
-rw-r--r--sd/source/filter/html/htmlex.cxx6
-rw-r--r--sd/source/filter/pptin.cxx8
-rw-r--r--sd/source/filter/sdpptwrp.cxx20
-rw-r--r--sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx28
-rw-r--r--sd/source/ui/app/res_bmp.src16
-rw-r--r--sd/source/ui/app/strings.src8
-rw-r--r--sd/source/ui/func/fudraw.cxx17
-rw-r--r--sd/source/ui/func/fuoaprms.cxx14
-rw-r--r--sd/source/ui/func/fusel.cxx13
-rw-r--r--sd/source/ui/func/unoaprms.cxx6
-rw-r--r--sd/source/ui/inc/res_bmp.hrc5
-rw-r--r--sd/source/ui/inc/strings.hrc4
-rw-r--r--sd/source/ui/toolpanel/LayoutMenu.cxx3
-rw-r--r--sd/source/ui/unoidl/unoobj.cxx34
-rw-r--r--sd/source/ui/view/drtxtob1.cxx4
-rw-r--r--sd/source/ui/view/drviewse.cxx2
-rw-r--r--sd/source/ui/view/drviewsf.cxx2
-rw-r--r--sd/source/ui/view/sdview2.cxx4
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;