summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-11-15 16:47:02 +0100
committerStephan Bergmann <sbergman@redhat.com>2016-11-15 16:47:02 +0100
commit40c44ed643acde1d3b9ab0177a09bdb8b3083dea (patch)
tree0eb0cc0d2cb10a3772d53208347290e9ef1dfa7b /sd
parentd436065bc1c68fc2d90e73253d8c00503c72dfd0 (diff)
Replace some trivial Sfx*Item derivations with make* functions
...as the trivial derivations (used to offer "convenience ctors") didn't override Clone(), so -fsanitize=vptr would cause warnings like > sd/source/ui/dlg/layeroptionsdlg.cxx:42:26: runtime error: downcast of address 0x603001dff830 which does not point to an object of type 'const SdAttrLayerName' > 0x603001dff830: note: object is of type 'SfxStringItem' > 61 05 80 1e 70 d6 f7 22 67 7f 00 00 01 00 00 00 4e 6e 00 be 60 f8 df 01 30 60 00 00 02 00 00 00 > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'SfxStringItem' > #0 0x7f66931db4b0 in SdInsertLayerDlg::SdInsertLayerDlg(vcl::Window*, SfxItemSet const&, bool, rtl::OUString const&) sd/source/ui/dlg/layeroptionsdlg.cxx:42:26 when doing "Insert - Layer..." in Draw. Change-Id: I54ade09027daecc8bbf6f4789a8b5318bbe8d22d
Diffstat (limited to 'sd')
-rw-r--r--sd/inc/sdattr.hxx56
-rw-r--r--sd/qa/unit/dialogs-test.cxx14
-rw-r--r--sd/source/ui/dlg/layeroptionsdlg.cxx24
-rw-r--r--sd/source/ui/view/drviews2.cxx52
4 files changed, 66 insertions, 80 deletions
diff --git a/sd/inc/sdattr.hxx b/sd/inc/sdattr.hxx
index 710a072e6b5d..b91d85798dcf 100644
--- a/sd/inc/sdattr.hxx
+++ b/sd/inc/sdattr.hxx
@@ -32,54 +32,40 @@
#include "diadef.h"
// layer attributes
-class SdAttrLayerName : public SfxStringItem
+inline SfxStringItem makeSdAttrLayerName( const OUString& aStr )
{
-public:
- SdAttrLayerName( const OUString& aStr ) :
- SfxStringItem( ATTR_LAYER_NAME, aStr ) {}
-};
+ return SfxStringItem( ATTR_LAYER_NAME, aStr );
+}
-class SdAttrLayerTitle : public SfxStringItem
+inline SfxStringItem makeSdAttrLayerTitle( const OUString& aStr = OUString() )
{
-public:
- SdAttrLayerTitle() : SfxStringItem( ATTR_LAYER_TITLE, OUString()) {}
- SdAttrLayerTitle( const OUString& aStr ) : SfxStringItem( ATTR_LAYER_TITLE, aStr ) {}
-};
+ return SfxStringItem( ATTR_LAYER_TITLE, aStr );
+}
-class SdAttrLayerDesc : public SfxStringItem
+inline SfxStringItem makeSdAttrLayerDesc( const OUString& aStr = OUString() )
{
-public:
- SdAttrLayerDesc() : SfxStringItem( ATTR_LAYER_DESC, OUString()) {}
- SdAttrLayerDesc( const OUString& aStr ) : SfxStringItem( ATTR_LAYER_DESC, aStr ) {}
-};
+ return SfxStringItem( ATTR_LAYER_DESC, aStr );
+}
-class SdAttrLayerVisible : public SfxBoolItem
+inline SfxBoolItem makeSdAttrLayerVisible( bool bValue = true )
{
-public:
- SdAttrLayerVisible( bool bValue = true ) :
- SfxBoolItem( ATTR_LAYER_VISIBLE, bValue ) {}
-};
+ return SfxBoolItem( ATTR_LAYER_VISIBLE, bValue );
+}
-class SdAttrLayerPrintable : public SfxBoolItem
+inline SfxBoolItem makeSdAttrLayerPrintable( bool bValue = true )
{
-public:
- SdAttrLayerPrintable( bool bValue = true ) :
- SfxBoolItem( ATTR_LAYER_PRINTABLE, bValue ) {}
-};
+ return SfxBoolItem( ATTR_LAYER_PRINTABLE, bValue );
+}
-class SdAttrLayerLocked : public SfxBoolItem
+inline SfxBoolItem makeSdAttrLayerLocked( bool bValue = false )
{
-public:
- SdAttrLayerLocked( bool bValue = false ) :
- SfxBoolItem( ATTR_LAYER_LOCKED, bValue ) {}
-};
+ return SfxBoolItem( ATTR_LAYER_LOCKED, bValue );
+}
-class SdAttrLayerThisPage : public SfxBoolItem
+inline SfxBoolItem makeSdAttrLayerThisPage()
{
-public:
- SdAttrLayerThisPage( bool bValue = false ) :
- SfxBoolItem( ATTR_LAYER_THISPAGE, bValue ) {}
-};
+ return SfxBoolItem( ATTR_LAYER_THISPAGE, false );
+}
class DiaEffectItem : public SfxEnumItem
{
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index d5e6cadbf2ea..37104a4ba1dd 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -363,13 +363,13 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
CPPUNIT_ASSERT(pDrawDoc);
SfxItemSet aNewAttr(pDrawDoc->GetItemPool(), ATTR_LAYER_START, ATTR_LAYER_END);
const OUString aLayerName = SD_RESSTR(STR_LAYER); // + OUString::number(2);
- aNewAttr.Put(SdAttrLayerName(aLayerName));
- aNewAttr.Put(SdAttrLayerTitle());
- aNewAttr.Put(SdAttrLayerDesc());
- aNewAttr.Put(SdAttrLayerVisible());
- aNewAttr.Put(SdAttrLayerPrintable());
- aNewAttr.Put(SdAttrLayerLocked());
- aNewAttr.Put(SdAttrLayerThisPage());
+ aNewAttr.Put(makeSdAttrLayerName(aLayerName));
+ aNewAttr.Put(makeSdAttrLayerTitle());
+ aNewAttr.Put(makeSdAttrLayerDesc());
+ aNewAttr.Put(makeSdAttrLayerVisible());
+ aNewAttr.Put(makeSdAttrLayerPrintable());
+ aNewAttr.Put(makeSdAttrLayerLocked());
+ aNewAttr.Put(makeSdAttrLayerThisPage());
pRetval = getSdAbstractDialogFactory()->CreateSdInsertLayerDlg(
getViewShell()->GetActiveWindow(),
aNewAttr,
diff --git a/sd/source/ui/dlg/layeroptionsdlg.cxx b/sd/source/ui/dlg/layeroptionsdlg.cxx
index a1e5d7f1a03b..636a3a2c059d 100644
--- a/sd/source/ui/dlg/layeroptionsdlg.cxx
+++ b/sd/source/ui/dlg/layeroptionsdlg.cxx
@@ -39,13 +39,13 @@ SdInsertLayerDlg::SdInsertLayerDlg( vcl::Window* pWindow, const SfxItemSet& rInA
get(m_pCbxPrintable, "printable");
get(m_pCbxLocked, "locked");
- m_pEdtName->SetText( static_cast<const SdAttrLayerName&>( mrOutAttrs.Get( ATTR_LAYER_NAME ) ).GetValue() );
- m_pEdtTitle->SetText( static_cast<const SdAttrLayerTitle&>( mrOutAttrs.Get( ATTR_LAYER_TITLE ) ).GetValue() );
- m_pEdtDesc->SetText( static_cast<const SdAttrLayerDesc&>( mrOutAttrs.Get( ATTR_LAYER_DESC ) ).GetValue() );
+ m_pEdtName->SetText( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_NAME ) ).GetValue() );
+ m_pEdtTitle->SetText( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_TITLE ) ).GetValue() );
+ m_pEdtDesc->SetText( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_DESC ) ).GetValue() );
m_pEdtDesc->set_height_request(4 * m_pEdtDesc->GetTextHeight());
- m_pCbxVisible->Check( static_cast<const SdAttrLayerVisible&>( mrOutAttrs.Get( ATTR_LAYER_VISIBLE ) ).GetValue() );
- m_pCbxPrintable->Check( static_cast<const SdAttrLayerPrintable&>( mrOutAttrs.Get( ATTR_LAYER_PRINTABLE ) ).GetValue() );
- m_pCbxLocked->Check( static_cast<const SdAttrLayerLocked&>( mrOutAttrs.Get( ATTR_LAYER_LOCKED ) ).GetValue() );
+ m_pCbxVisible->Check( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_VISIBLE ) ).GetValue() );
+ m_pCbxPrintable->Check( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_PRINTABLE ) ).GetValue() );
+ m_pCbxLocked->Check( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_LOCKED ) ).GetValue() );
get<VclContainer>("nameframe")->Enable(bDeletable);
}
@@ -68,12 +68,12 @@ void SdInsertLayerDlg::dispose()
void SdInsertLayerDlg::GetAttr( SfxItemSet& rAttrs )
{
- rAttrs.Put( SdAttrLayerName( m_pEdtName->GetText() ) );
- rAttrs.Put( SdAttrLayerTitle( m_pEdtTitle->GetText() ) );
- rAttrs.Put( SdAttrLayerDesc( m_pEdtDesc->GetText() ) );
- rAttrs.Put( SdAttrLayerVisible( m_pCbxVisible->IsChecked() ) );
- rAttrs.Put( SdAttrLayerPrintable( m_pCbxPrintable->IsChecked() ) );
- rAttrs.Put( SdAttrLayerLocked( m_pCbxLocked->IsChecked() ) );
+ rAttrs.Put( makeSdAttrLayerName( m_pEdtName->GetText() ) );
+ rAttrs.Put( makeSdAttrLayerTitle( m_pEdtTitle->GetText() ) );
+ rAttrs.Put( makeSdAttrLayerDesc( m_pEdtDesc->GetText() ) );
+ rAttrs.Put( makeSdAttrLayerVisible( m_pCbxVisible->IsChecked() ) );
+ rAttrs.Put( makeSdAttrLayerPrintable( m_pCbxPrintable->IsChecked() ) );
+ rAttrs.Put( makeSdAttrLayerLocked( m_pCbxLocked->IsChecked() ) );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index fb23aee39eca..68f0e38f5848 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -1388,13 +1388,13 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
SfxItemSet aNewAttr( GetDoc()->GetPool(), ATTR_LAYER_START, ATTR_LAYER_END );
- aNewAttr.Put( SdAttrLayerName( aLayerName ) );
- aNewAttr.Put( SdAttrLayerTitle() );
- aNewAttr.Put( SdAttrLayerDesc() );
- aNewAttr.Put( SdAttrLayerVisible() );
- aNewAttr.Put( SdAttrLayerPrintable() );
- aNewAttr.Put( SdAttrLayerLocked() );
- aNewAttr.Put( SdAttrLayerThisPage() );
+ aNewAttr.Put( makeSdAttrLayerName( aLayerName ) );
+ aNewAttr.Put( makeSdAttrLayerTitle() );
+ aNewAttr.Put( makeSdAttrLayerDesc() );
+ aNewAttr.Put( makeSdAttrLayerVisible() );
+ aNewAttr.Put( makeSdAttrLayerPrintable() );
+ aNewAttr.Put( makeSdAttrLayerLocked() );
+ aNewAttr.Put( makeSdAttrLayerThisPage() );
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSdInsertLayerDlg> pDlg(pFact ? pFact->CreateSdInsertLayerDlg(GetActiveWindow(), aNewAttr, true, SD_RESSTR(STR_INSERTLAYER)) : nullptr);
@@ -1407,7 +1407,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
while( bLoop && pDlg->Execute() == RET_OK )
{
pDlg->GetAttr( aNewAttr );
- aLayerName = static_cast<const SdAttrLayerName &>( aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
+ aLayerName = static_cast<const SfxStringItem &>( aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
if( rLayerAdmin.GetLayer( aLayerName, false )
|| aLayerName.isEmpty() )
@@ -1431,11 +1431,11 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
}
else
{
- aLayerTitle = static_cast<const SdAttrLayerTitle &>( aNewAttr.Get (ATTR_LAYER_TITLE)).GetValue ();
- aLayerDesc = static_cast<const SdAttrLayerDesc &>( aNewAttr.Get (ATTR_LAYER_DESC)).GetValue ();
- bIsVisible = static_cast<const SdAttrLayerVisible &>( aNewAttr.Get (ATTR_LAYER_VISIBLE)).GetValue ();
- bIsLocked = static_cast<const SdAttrLayerLocked &>( aNewAttr.Get (ATTR_LAYER_LOCKED)).GetValue () ;
- bIsPrintable = static_cast<const SdAttrLayerPrintable &>( aNewAttr.Get (ATTR_LAYER_PRINTABLE)).GetValue () ;
+ aLayerTitle = static_cast<const SfxStringItem &>( aNewAttr.Get (ATTR_LAYER_TITLE)).GetValue ();
+ aLayerDesc = static_cast<const SfxStringItem &>( aNewAttr.Get (ATTR_LAYER_DESC)).GetValue ();
+ bIsVisible = static_cast<const SfxBoolItem &>( aNewAttr.Get (ATTR_LAYER_VISIBLE)).GetValue ();
+ bIsLocked = static_cast<const SfxBoolItem &>( aNewAttr.Get (ATTR_LAYER_LOCKED)).GetValue () ;
+ bIsPrintable = static_cast<const SfxBoolItem &>( aNewAttr.Get (ATTR_LAYER_PRINTABLE)).GetValue () ;
}
}
}
@@ -1556,13 +1556,13 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
SfxItemSet aNewAttr( GetDoc()->GetPool(), ATTR_LAYER_START, ATTR_LAYER_END );
- aNewAttr.Put( SdAttrLayerName( aLayerName ) );
- aNewAttr.Put( SdAttrLayerTitle( aLayerTitle ) );
- aNewAttr.Put( SdAttrLayerDesc( aLayerDesc ) );
- aNewAttr.Put( SdAttrLayerVisible( bIsVisible ) );
- aNewAttr.Put( SdAttrLayerLocked( bIsLocked ) );
- aNewAttr.Put( SdAttrLayerPrintable( bIsPrintable ) );
- aNewAttr.Put( SdAttrLayerThisPage() );
+ aNewAttr.Put( makeSdAttrLayerName( aLayerName ) );
+ aNewAttr.Put( makeSdAttrLayerTitle( aLayerTitle ) );
+ aNewAttr.Put( makeSdAttrLayerDesc( aLayerDesc ) );
+ aNewAttr.Put( makeSdAttrLayerVisible( bIsVisible ) );
+ aNewAttr.Put( makeSdAttrLayerLocked( bIsLocked ) );
+ aNewAttr.Put( makeSdAttrLayerPrintable( bIsPrintable ) );
+ aNewAttr.Put( makeSdAttrLayerThisPage() );
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSdInsertLayerDlg> pDlg(pFact ? pFact->CreateSdInsertLayerDlg(GetActiveWindow(), aNewAttr, bDelete, SD_RESSTR(STR_MODIFYLAYER)) : nullptr);
@@ -1576,7 +1576,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
while( bLoop && ( (nRet = pDlg->Execute()) == RET_OK ) )
{
pDlg->GetAttr( aNewAttr );
- aLayerName = static_cast<const SdAttrLayerName &>( aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
+ aLayerName = static_cast<const SfxStringItem &>( aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
if( (rLayerAdmin.GetLayer( aLayerName, false ) &&
aLayerName != aOldLayerName) || aLayerName.isEmpty() )
@@ -1594,11 +1594,11 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
switch (nRet)
{
case RET_OK :
- aLayerTitle = static_cast<const SdAttrLayerTitle &>( aNewAttr.Get (ATTR_LAYER_TITLE)).GetValue ();
- aLayerDesc = static_cast<const SdAttrLayerDesc &>( aNewAttr.Get (ATTR_LAYER_DESC)).GetValue ();
- bIsVisible = static_cast<const SdAttrLayerVisible &>( aNewAttr.Get (ATTR_LAYER_VISIBLE)).GetValue ();
- bIsLocked = static_cast<const SdAttrLayerLocked &>( aNewAttr.Get (ATTR_LAYER_LOCKED)).GetValue ();
- bIsPrintable = static_cast<const SdAttrLayerLocked &>( aNewAttr.Get (ATTR_LAYER_PRINTABLE)).GetValue ();
+ aLayerTitle = static_cast<const SfxStringItem &>( aNewAttr.Get (ATTR_LAYER_TITLE)).GetValue ();
+ aLayerDesc = static_cast<const SfxStringItem &>( aNewAttr.Get (ATTR_LAYER_DESC)).GetValue ();
+ bIsVisible = static_cast<const SfxBoolItem &>( aNewAttr.Get (ATTR_LAYER_VISIBLE)).GetValue ();
+ bIsLocked = static_cast<const SfxBoolItem &>( aNewAttr.Get (ATTR_LAYER_LOCKED)).GetValue ();
+ bIsPrintable = static_cast<const SfxBoolItem &>( aNewAttr.Get (ATTR_LAYER_PRINTABLE)).GetValue ();
break;
default :