cui/source/options/treeopt.cxx | 31 +++------ desktop/source/lib/init.cxx | 18 ++--- include/editeng/editids.hrc | 12 ++- include/sfx2/bindings.hxx | 8 ++ include/sfx2/dispatch.hxx | 5 + include/sfx2/sfxsids.hrc | 15 ++-- include/svx/rulritem.hxx | 8 +- include/svx/svxids.hrc | 3 sc/qa/unit/tiledrendering/tiledrendering.cxx | 20 ++---- sc/source/ui/view/formatsh.cxx | 10 +-- sc/source/ui/view/viewutil.cxx | 4 - sd/inc/app.hrc | 6 - sd/qa/unit/tiledrendering/tiledrendering.cxx | 30 +++------ sd/source/ui/func/bulmaper.cxx | 2 sd/source/ui/unoidl/unomodel.cxx | 5 - sd/source/ui/view/drviews3.cxx | 4 - sd/source/ui/view/drviewsf.cxx | 20 ++---- sd/source/ui/view/outlnvsh.cxx | 5 - sfx2/source/dialog/securitypage.cxx | 14 ++-- svx/source/dialog/rubydialog.cxx | 5 - svx/source/fmcomp/fmgridcl.cxx | 4 - svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx | 8 +- svx/source/sidebar/text/TextCharacterSpacingControl.cxx | 5 - svx/source/sidebar/text/TextUnderlineControl.cxx | 6 - sw/inc/cmdid.h | 4 - sw/qa/extras/tiledrendering/tiledrendering.cxx | 53 ++++++---------- sw/qa/extras/uiwriter/uiwriter.cxx | 9 +- sw/source/uibase/app/docst.cxx | 5 - sw/source/uibase/dialog/watermarkdialog.cxx | 7 -- sw/source/uibase/sidebar/PageColumnControl.cxx | 6 - sw/source/uibase/sidebar/PageMarginControl.cxx | 21 ++---- sw/source/uibase/sidebar/PageOrientationControl.cxx | 16 ++-- sw/source/uibase/sidebar/PageSizeControl.cxx | 17 ++--- 33 files changed, 180 insertions(+), 206 deletions(-)
New commits: commit 6ba9daac763baf37c833911be5e5fb97e068bea1 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Mar 14 12:28:06 2022 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Mon Mar 14 14:20:26 2022 +0100 add TypedWhichId version of QueryState Change-Id: I95b86fc081847da01e06f50a1b2c7e7f5456c638 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131529 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx index 8d274f83ce4c..ed43861d654b 100644 --- a/cui/source/options/treeopt.cxx +++ b/cui/source/options/treeopt.cxx @@ -1050,12 +1050,12 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId ) SfxViewFrame* pViewFrame = SfxViewFrame::Current(); if ( pViewFrame ) { - const SfxPoolItem* pItem = nullptr; + const SfxUInt16Item* pItem = nullptr; SfxDispatcher* pDispatch = pViewFrame->GetDispatcher(); // miscellaneous - Year2000 if( SfxItemState::DEFAULT <= pDispatch->QueryState( SID_ATTR_YEAR2000, pItem ) ) - pRet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, static_cast<const SfxUInt16Item*>(pItem)->GetValue() ) ); + pRet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, pItem->GetValue() ) ); else pRet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, officecfg::Office::Common::DateFormat::TwoDigitYear::get() ) ); } @@ -1100,28 +1100,17 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId ) SfxViewFrame* pViewFrame = SfxViewFrame::Current(); if ( pViewFrame ) { - const SfxPoolItem* pItem = nullptr; + const SvxLanguageItem* pLangItem = nullptr; SfxDispatcher* pDispatch = pViewFrame->GetDispatcher(); - if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_LANGUAGE, pItem)) - pRet->Put( - SvxLanguageItem( - (static_cast<const SvxLanguageItem*>(pItem) - ->GetLanguage()), - SID_ATTR_LANGUAGE)); - if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CJK_LANGUAGE, pItem)) - pRet->Put( - SvxLanguageItem( - (static_cast<const SvxLanguageItem*>(pItem) - ->GetLanguage()), - SID_ATTR_CHAR_CJK_LANGUAGE)); - if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CTL_LANGUAGE, pItem)) - pRet->Put( - SvxLanguageItem( - (static_cast<const SvxLanguageItem*>(pItem) - ->GetLanguage()), - SID_ATTR_CHAR_CTL_LANGUAGE)); + if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_LANGUAGE, pLangItem)) + pRet->Put(*pLangItem, SID_ATTR_LANGUAGE); + if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CJK_LANGUAGE, pLangItem)) + pRet->Put(*pLangItem, SID_ATTR_CHAR_CJK_LANGUAGE); + if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CTL_LANGUAGE, pLangItem)) + pRet->Put(*pLangItem, SID_ATTR_CHAR_CTL_LANGUAGE); pRet->Put(aHyphen); + const SfxPoolItem* pItem = nullptr; if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_AUTOSPELL_CHECK, pItem)) { pRet->Put(std::unique_ptr<SfxPoolItem>(pItem->Clone())); diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 0e1c47e9b5dc..c8fd1be5ce88 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -771,17 +771,17 @@ void ExecuteOrientationChange() mxUndoManager->enterUndoContext( "" ); - const SfxPoolItem* pItem; + const SvxSizeItem* pSizeItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_SIZE, pSizeItem); + std::unique_ptr<SvxSizeItem> pPageSizeItem(pSizeItem->Clone()); + const SvxLongLRSpaceItem* pLRSpaceItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_LRSPACE, pLRSpaceItem); + std::unique_ptr<SvxLongLRSpaceItem> pPageLRMarginItem(pLRSpaceItem->Clone()); - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_SIZE, pItem); - std::unique_ptr<SvxSizeItem> pPageSizeItem(&pItem->Clone()->StaticWhichCast(SID_ATTR_PAGE_SIZE)); - - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_LRSPACE, pItem); - std::unique_ptr<SvxLongLRSpaceItem> pPageLRMarginItem(&pItem->Clone()->StaticWhichCast(SID_ATTR_PAGE_LRSPACE)); - - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_ULSPACE, pItem); - std::unique_ptr<SvxLongULSpaceItem> pPageULMarginItem(&pItem->Clone()->StaticWhichCast(SID_ATTR_PAGE_ULSPACE)); + const SvxLongULSpaceItem* pULSpaceItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_ULSPACE, pULSpaceItem); + std::unique_ptr<SvxLongULSpaceItem> pPageULMarginItem(pULSpaceItem->Clone()); { bool bIsLandscape = false; diff --git a/include/editeng/editids.hrc b/include/editeng/editids.hrc index 92007573fe5d..a418a3f889b5 100644 --- a/include/editeng/editids.hrc +++ b/include/editeng/editids.hrc @@ -25,10 +25,14 @@ class SfxGrabBagItem; class SfxUInt16Item; class SvxBrushItem; class SvxFontItem; +class SvxKerningItem; class SvxLanguageItem; +class SvxLineSpacingItem; class SvxPageModelItem; class SvxPostureItem; class SvxTabStopItem; +class SvxUnderlineItem; +class SvxWeightItem; /* These SID_SVX_START entries came from include/svx/svxids.hrc, avoid @@ -44,16 +48,16 @@ class SvxTabStopItem; #define SID_ATTR_CHAR ( SID_SVX_START + 6 ) #define SID_ATTR_CHAR_FONT TypedWhichId<SvxFontItem>( SID_SVX_START + 7 ) #define SID_ATTR_CHAR_POSTURE TypedWhichId<SvxPostureItem>( SID_SVX_START + 8 ) -#define SID_ATTR_CHAR_WEIGHT ( SID_SVX_START + 9 ) +#define SID_ATTR_CHAR_WEIGHT TypedWhichId<SvxWeightItem>( SID_SVX_START + 9 ) #define SID_ATTR_CHAR_SHADOWED ( SID_SVX_START + 10 ) #define SID_ATTR_CHAR_WORDLINEMODE ( SID_SVX_START + 11 ) #define SID_ATTR_CHAR_CONTOUR ( SID_SVX_START + 12 ) #define SID_ATTR_CHAR_STRIKEOUT ( SID_SVX_START + 13 ) -#define SID_ATTR_CHAR_UNDERLINE ( SID_SVX_START + 14 ) +#define SID_ATTR_CHAR_UNDERLINE TypedWhichId<SvxUnderlineItem>( SID_SVX_START + 14 ) #define SID_ATTR_CHAR_FONTHEIGHT ( SID_SVX_START + 15 ) // free #define SID_ATTR_CHAR_COLOR ( SID_SVX_START + 17 ) -#define SID_ATTR_CHAR_KERNING ( SID_SVX_START + 18 ) +#define SID_ATTR_CHAR_KERNING TypedWhichId<SvxKerningItem>( SID_SVX_START + 18 ) #define SID_ATTR_CHAR_CASEMAP ( SID_SVX_START + 19 ) #define SID_ATTR_CHAR_LANGUAGE ( SID_SVX_START + 20 ) #define SID_ATTR_CHAR_ESCAPEMENT ( SID_SVX_START + 21 ) @@ -65,7 +69,7 @@ class SvxTabStopItem; #define SID_ATTR_PARA_ADJUST_RIGHT ( SID_SVX_START + 29 ) #define SID_ATTR_PARA_ADJUST_CENTER ( SID_SVX_START + 30 ) #define SID_ATTR_PARA_ADJUST_BLOCK ( SID_SVX_START + 31 ) -#define SID_ATTR_PARA_LINESPACE ( SID_SVX_START + 33 ) +#define SID_ATTR_PARA_LINESPACE TypedWhichId<SvxLineSpacingItem>( SID_SVX_START + 33 ) #define SID_ATTR_PARA_LINESPACE_10 ( SID_SVX_START + 34 ) #define SID_ATTR_PARA_LINESPACE_15 ( SID_SVX_START + 35 ) #define SID_ATTR_PARA_LINESPACE_115 ( SID_SVX_START + 26 ) diff --git a/include/sfx2/bindings.hxx b/include/sfx2/bindings.hxx index 38104105088d..d058c939e4f9 100644 --- a/include/sfx2/bindings.hxx +++ b/include/sfx2/bindings.hxx @@ -141,6 +141,14 @@ public: * @param rpState the caller has to delete the pointer */ SfxItemState QueryState( sal_uInt16 nSID, std::unique_ptr<SfxPoolItem> &rpState ); + template<class T> + SfxItemState QueryState( TypedWhichId<T> nSID, std::unique_ptr<T> &rpState ) + { + std::unique_ptr<SfxPoolItem> tmp; + auto ret = QueryState(sal_uInt16(nSID), tmp); + rpState.reset(static_cast<T*>(tmp.release())); + return ret; + } void QueryControlState ( sal_uInt16 nSID, boost::property_tree::ptree& rState ); diff --git a/include/sfx2/dispatch.hxx b/include/sfx2/dispatch.hxx index 3bfd3eab4074..ee445710b9c0 100644 --- a/include/sfx2/dispatch.hxx +++ b/include/sfx2/dispatch.hxx @@ -151,6 +151,11 @@ public: ToolbarId GetObjectBarId( sal_uInt16 nPos ) const; SfxItemState QueryState( sal_uInt16 nSID, const SfxPoolItem* &rpState ); + template<class T> + SfxItemState QueryState( TypedWhichId<T> nSID, const T* &rpState ) + { + return QueryState(sal_uInt16(nSID), reinterpret_cast<SfxPoolItem const*&>(rpState)); + } SfxItemState QueryState( sal_uInt16 nSID, css::uno::Any& rAny ); void SetDisableFlags( SfxDisableFlags nFlags ); diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc index 12ac2cd763a5..b48f827aec69 100644 --- a/include/sfx2/sfxsids.hrc +++ b/include/sfx2/sfxsids.hrc @@ -38,6 +38,7 @@ class SfxStringListItem; class SfxUInt16Item; class SfxUnoAnyItem; class SfxUnoFrameItem; +class SfxWatermarkItem; class SvxClipboardFormatItem; class SvxHyperlinkItem; class SvxLanguageItem; @@ -150,7 +151,7 @@ class SvxZoomItem; #define SID_FILE_FILTEROPTIONS TypedWhichId<SfxStringItem>(SID_SFX_START + 527) #define SID_RELOAD (SID_SFX_START + 508) #define SID_PRINTDOCDIRECT (SID_SFX_START + 509) -#define SID_DOC_REPAIR (SID_SFX_START + 510) +#define SID_DOC_REPAIR TypedWhichId<SfxBoolItem>(SID_SFX_START + 510) #define SID_DOC_SERVICE TypedWhichId<SfxStringItem>(SID_SFX_START + 511) #define SID_PLUGIN_MODE TypedWhichId<SfxUInt16Item>(SID_SFX_START + 827) #define SID_EXPORTDOC (SID_SFX_START + 829) @@ -342,7 +343,7 @@ class SvxZoomItem; #define SID_AUTOPILOTMENU (SID_SFX_START + 1381) // Floating Window Template -#define SID_STYLE_DESIGNER (SID_SFX_START + 539) +#define SID_STYLE_DESIGNER TypedWhichId<SfxBoolItem>(SID_SFX_START + 539) #define SID_SIDEBAR_DECK (SID_SFX_START + 850) @@ -384,7 +385,7 @@ class SvxZoomItem; #define SID_INSERT_OBJECT (SID_SFX_START + 561) #define SID_INSERT_FLOATINGFRAME (SID_SFX_START + 563) #define SID_CLASSIFICATION_APPLY (SID_SFX_START + 672) -#define SID_WATERMARK (SID_SFX_START + 676) +#define SID_WATERMARK TypedWhichId<SfxWatermarkItem>(SID_SFX_START + 676) #define SID_WATERMARK_FONT TypedWhichId<SfxStringItem>(SID_SFX_START + 677) #define SID_WATERMARK_TRANSPARENCY TypedWhichId<SfxInt16Item>(SID_SFX_START + 805) #define SID_WATERMARK_COLOR TypedWhichId<SfxUInt32Item>(SID_SFX_START + 806) @@ -408,7 +409,7 @@ class SvxZoomItem; #define SID_NEWWINDOW (SID_SFX_START + 620) #define SID_CLOSEWIN (SID_SFX_START + 621) #define SID_VIEWSHELL TypedWhichId<SfxUInt16Item>(SID_SFX_START + 623) -#define SID_WIN_FULLSCREEN (SID_SFX_START + 627) +#define SID_WIN_FULLSCREEN TypedWhichId<SfxBoolItem>(SID_SFX_START + 627) #define SID_VIEWSHELL0 (SID_SFX_START + 630) #define SID_VIEWSHELL1 (SID_SFX_START + 631) @@ -713,7 +714,7 @@ class SvxZoomItem; #define FN_EDIT2 (SID_SW_START + 1800) #define FN_REDLINE_PROTECT TypedWhichId<SfxBoolItem>(FN_EDIT2 + 23) -#define FN_REDLINE_ON (FN_EDIT2 + 25) +#define FN_REDLINE_ON TypedWhichId<SfxBoolItem>(FN_EDIT2 + 25) #define SID_HTML_MODE TypedWhichId<SfxUInt16Item>(SID_SVX_START + 414) @@ -730,8 +731,8 @@ class SvxZoomItem; #ifndef SC_VIEW_START #define SC_VIEW_START (SID_SC_START) #endif -#define FID_CHG_RECORD (EDIT_MENU_START + 18) -#define SID_CHG_PROTECT (SC_VIEW_START + 84) +#define FID_CHG_RECORD TypedWhichId<SfxBoolItem>(EDIT_MENU_START + 18) +#define SID_CHG_PROTECT TypedWhichId<SfxBoolItem>(SC_VIEW_START + 84) #endif // #ifndef INCLUDED_SFX2_SFXSIDS_HRC diff --git a/include/svx/rulritem.hxx b/include/svx/rulritem.hxx index a5600a6588c4..b45683d31970 100644 --- a/include/svx/rulritem.hxx +++ b/include/svx/rulritem.hxx @@ -38,8 +38,6 @@ class SVX_DLLPUBLIC SvxLongLRSpaceItem final : public SfxPoolItem MapUnit ePresMetric, OUString &rText, const IntlWrapper& ) const override; - virtual SvxLongLRSpaceItem* Clone( SfxItemPool *pPool = nullptr ) const override; - const SvxLongLRSpaceItem& operator=(const SvxLongLRSpaceItem &) = delete; public: @@ -48,6 +46,8 @@ public: SvxLongLRSpaceItem(); SvxLongLRSpaceItem(SvxLongLRSpaceItem const &) = default; + virtual SvxLongLRSpaceItem* Clone( SfxItemPool *pPool = nullptr ) const override; + tools::Long GetLeft() const { return mlLeft;} tools::Long GetRight() const { return mlRight;} void SetLeft(tools::Long lArgLeft); @@ -68,8 +68,6 @@ class SVX_DLLPUBLIC SvxLongULSpaceItem final : public SfxPoolItem MapUnit ePresMetric, OUString &rText, const IntlWrapper& ) const override; - virtual SvxLongULSpaceItem* Clone( SfxItemPool *pPool = nullptr ) const override; - const SvxLongULSpaceItem& operator=(const SvxLongULSpaceItem &) = delete; public: @@ -78,6 +76,8 @@ public: SvxLongULSpaceItem(); SvxLongULSpaceItem(SvxLongULSpaceItem const &) = default; + virtual SvxLongULSpaceItem* Clone( SfxItemPool *pPool = nullptr ) const override; + tools::Long GetUpper() const { return mlLeft;} tools::Long GetLower() const { return mlRight;} void SetUpper(tools::Long lArgLeft); diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc index af1eddb8c226..4f4c07f2e2d5 100644 --- a/include/svx/svxids.hrc +++ b/include/svx/svxids.hrc @@ -592,7 +592,7 @@ class XFillGradientItem; #define SID_FM_DELETEROWS ( SID_SVX_START + 610 ) //FREE //FREE -#define SID_FM_CTL_PROPERTIES ( SID_SVX_START + 613 ) +#define SID_FM_CTL_PROPERTIES TypedWhichId<SfxBoolItem>( SID_SVX_START + 613 ) #define SID_FM_PROPERTIES ( SID_SVX_START + 614 ) #define SID_FM_TAB_DIALOG ( SID_SVX_START + 615 ) #define SID_FM_RECORD_FIRST ( SID_SVX_START + 616 ) @@ -1049,6 +1049,7 @@ class XFillGradientItem; #define SID_INSERT_TREECONTROL ( SID_SVX_START + 1206 ) #define SID_ATTR_VIEWLAYOUT TypedWhichId<SvxViewLayoutItem>( SID_SVX_START + 1207 ) #define SID_ATTR_ZOOMSLIDER TypedWhichId<SvxZoomSliderItem>( SID_SVX_START + 1208 ) +// Can be either SfxStringItem or SfxStringListItem #define SID_LANGUAGE_STATUS ( SID_SVX_START + 1209 ) #define SID_CHAR_DLG_FOR_PARAGRAPH ( SID_SVX_START + 1210 ) #define SID_SET_DOCUMENT_LANGUAGE TypedWhichId<SfxBoolItem>( SID_SVX_START + 1211 ) diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx index 9db6cd3a3ae3..5b84eef452b9 100644 --- a/sc/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx @@ -1575,12 +1575,10 @@ void ScTiledRenderingTest::testDocumentRepair() int nView2 = SfxLokHelper::getView(); CPPUNIT_ASSERT(pView1 != pView2); { - std::unique_ptr<SfxPoolItem> xItem1; - std::unique_ptr<SfxPoolItem> xItem2; - pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1); - pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2); - const SfxBoolItem* pItem1 = dynamic_cast< const SfxBoolItem* >(xItem1.get()); - const SfxBoolItem* pItem2 = dynamic_cast< const SfxBoolItem* >(xItem2.get()); + std::unique_ptr<SfxBoolItem> pItem1; + std::unique_ptr<SfxBoolItem> pItem2; + pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1); + pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2); CPPUNIT_ASSERT(pItem1); CPPUNIT_ASSERT(pItem2); CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue()); @@ -1596,12 +1594,10 @@ void ScTiledRenderingTest::testDocumentRepair() pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); { - std::unique_ptr<SfxPoolItem> xItem1; - std::unique_ptr<SfxPoolItem> xItem2; - pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1); - pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2); - const SfxBoolItem* pItem1 = dynamic_cast< const SfxBoolItem* >(xItem1.get()); - const SfxBoolItem* pItem2 = dynamic_cast< const SfxBoolItem* >(xItem2.get()); + std::unique_ptr<SfxBoolItem> pItem1; + std::unique_ptr<SfxBoolItem> pItem2; + pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1); + pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2); CPPUNIT_ASSERT(pItem1); CPPUNIT_ASSERT(pItem2); CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue()); diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx index df62ac25a409..913915a20dc8 100644 --- a/sc/source/ui/view/formatsh.cxx +++ b/sc/source/ui/view/formatsh.cxx @@ -214,9 +214,8 @@ void ScFormatShell::GetStyleState( SfxItemSet& rSet ) case SID_STYLE_UPDATE_BY_EXAMPLE: { - std::unique_ptr<SfxPoolItem> pItem; - pTabViewShell->GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + pTabViewShell->GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); bool bPage = pFamilyItem && SfxStyleFamily::Page == static_cast<SfxStyleFamily>(pFamilyItem->GetValue()); @@ -230,9 +229,8 @@ void ScFormatShell::GetStyleState( SfxItemSet& rSet ) case SID_STYLE_HIDE: case SID_STYLE_SHOW: { - std::unique_ptr<SfxPoolItem> pItem; - pTabViewShell->GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + pTabViewShell->GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); bool bPage = pFamilyItem && SfxStyleFamily::Page == static_cast<SfxStyleFamily>(pFamilyItem->GetValue()); if ( bProtected && !bPage ) diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx index bf691f778a99..7607c8f71bfa 100644 --- a/sc/source/ui/view/viewutil.cxx +++ b/sc/source/ui/view/viewutil.cxx @@ -331,11 +331,11 @@ void ScViewUtil::ExecuteCharMap(const SvxFontItem& rOldFont, bool ScViewUtil::IsFullScreen( const SfxViewShell& rViewShell ) { SfxBindings& rBindings = rViewShell.GetViewFrame()->GetBindings(); - std::unique_ptr<SfxPoolItem> pItem; + std::unique_ptr<SfxBoolItem> pItem; bool bIsFullScreen = false; if (rBindings.QueryState( SID_WIN_FULLSCREEN, pItem ) >= SfxItemState::DEFAULT) - bIsFullScreen = static_cast< SfxBoolItem* >( pItem.get() )->GetValue(); + bIsFullScreen = pItem->GetValue(); return bIsFullScreen; } diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc index 97d43b1d1c06..875dc0cc3e75 100644 --- a/sd/inc/app.hrc +++ b/sd/inc/app.hrc @@ -137,7 +137,7 @@ // In svxids.hrc: SID_BEZIER_CONVERT (SID_SD_START+65) // In svxids.hrc: SID_BEZIER_EDGE (SID_SD_START+66) // In svxids.hrc: SID_BEZIER_SYMMTR (SID_SD_START+67) -#define SID_NOTES_MODE (SID_SD_START+69) +#define SID_NOTES_MODE TypedWhichId<SfxBoolItem>(SID_SD_START+69) #define SID_HANDOUT_MASTER_MODE (SID_SD_START+70) #define SID_LINEEND_POLYGON (SID_SD_START+71) #define SID_EXECUTE_ANIMATION_EFFECT (SID_SD_START+72) @@ -375,7 +375,7 @@ #define SID_SUMMARY_PAGE (SID_SD_START+344) #define SID_LEAVE_ALL_GROUPS (SID_SD_START+345) // FREE -#define SID_SLIDE_MASTER_MODE (SID_SD_START+348) +#define SID_SLIDE_MASTER_MODE TypedWhichId<SfxBoolItem>(SID_SD_START+348) // FREE #define SID_NOTES_MASTER_MODE (SID_SD_START+350) // FREE @@ -430,7 +430,7 @@ // FREE #define SID_NOTES_WINDOW (SID_SD_START+417) // FREE -#define SID_NORMAL_MULTI_PANE_GUI (SID_SD_START+420) +#define SID_NORMAL_MULTI_PANE_GUI TypedWhichId<SfxBoolItem>(SID_SD_START+420) #define SID_SLIDE_SORTER_MULTI_PANE_GUI (SID_SD_START+421) #define SID_SELECT_BACKGROUND (SID_SD_START+422) diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index 8a4da8dbf301..ebab87741847 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -2201,15 +2201,13 @@ void SdTiledRenderingTest::testDocumentRepair() CPPUNIT_ASSERT(pView1 != pView2); { - std::unique_ptr<SfxPoolItem> xItem1; - pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1); - const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get()); + std::unique_ptr<SfxBoolItem> pItem1; + pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1); CPPUNIT_ASSERT(pItem1); CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue()); - std::unique_ptr<SfxPoolItem> xItem2; - pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2); - const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get()); + std::unique_ptr<SfxBoolItem> pItem2; + pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2); CPPUNIT_ASSERT(pItem2); CPPUNIT_ASSERT_EQUAL(false, pItem2->GetValue()); } @@ -2229,15 +2227,13 @@ void SdTiledRenderingTest::testDocumentRepair() CPPUNIT_ASSERT(!pViewShell2->GetView()->IsTextEdit()); { - std::unique_ptr<SfxPoolItem> xItem1; - pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1); - const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get()); + std::unique_ptr<SfxBoolItem> pItem1; + pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1); CPPUNIT_ASSERT(pItem1); CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue()); - std::unique_ptr<SfxPoolItem> xItem2; - pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2); - const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get()); + std::unique_ptr<SfxBoolItem> pItem2; + pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2); CPPUNIT_ASSERT(pItem2); CPPUNIT_ASSERT_EQUAL(true, pItem2->GetValue()); } @@ -2296,12 +2292,10 @@ void SdTiledRenderingTest::testDefaultView() SdXImpressDocument* pXImpressDocument = createDoc("notes-view.odp"); sd::ViewShell* pView = pXImpressDocument->GetDocShell()->GetViewShell(); { - std::unique_ptr<SfxPoolItem> xItem1; - std::unique_ptr<SfxPoolItem> xItem2; - pView->GetViewFrame()->GetBindings().QueryState(SID_NORMAL_MULTI_PANE_GUI, xItem1); - pView->GetViewFrame()->GetBindings().QueryState(SID_NOTES_MODE, xItem2); - const SfxBoolItem* pImpressView = dynamic_cast< const SfxBoolItem* >(xItem1.get()); - const SfxBoolItem* pNotesView = dynamic_cast< const SfxBoolItem* >(xItem2.get()); + std::unique_ptr<SfxBoolItem> pImpressView; + std::unique_ptr<SfxBoolItem> pNotesView; + pView->GetViewFrame()->GetBindings().QueryState(SID_NORMAL_MULTI_PANE_GUI, pImpressView); + pView->GetViewFrame()->GetBindings().QueryState(SID_NOTES_MODE, pNotesView); CPPUNIT_ASSERT(pImpressView); CPPUNIT_ASSERT(pNotesView); CPPUNIT_ASSERT_EQUAL(true, pImpressView->GetValue()); diff --git a/sd/source/ui/func/bulmaper.cxx b/sd/source/ui/func/bulmaper.cxx index 13bb404e4be9..67a6678918ea 100644 --- a/sd/source/ui/func/bulmaper.cxx +++ b/sd/source/ui/func/bulmaper.cxx @@ -74,7 +74,7 @@ void SdBulletMapper::MapFontsInNumRule( SvxNumRule& aNumRule, const SfxItemSet& static_cast<const SvxPostureItem&>(rSet.Get(GetWhich( sal_uInt16(SID_ATTR_CHAR_POSTURE) ))); aMyFont.SetItalic(rPItem.GetPosture()); - const SvxUnderlineItem& rUItem = static_cast<const SvxUnderlineItem&>(rSet.Get(GetWhich(SID_ATTR_CHAR_UNDERLINE))); + const SvxUnderlineItem& rUItem = rSet.Get(GetWhich(SID_ATTR_CHAR_UNDERLINE)); aMyFont.SetUnderline(rUItem.GetLineStyle()); const SvxOverlineItem& rOItem = static_cast<const SvxOverlineItem&>(rSet.Get(GetWhich(SID_ATTR_CHAR_OVERLINE))); diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 8c705f2a48a4..6fbcf5263118 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -2381,9 +2381,8 @@ bool SdXImpressDocument::isMasterViewMode() if (pViewSh->GetDispatcher()) { - const SfxPoolItem* xItem = nullptr; - pViewSh->GetDispatcher()->QueryState(SID_SLIDE_MASTER_MODE, xItem); - const SfxBoolItem* isMasterViewMode = dynamic_cast<const SfxBoolItem*>(xItem); + const SfxBoolItem* isMasterViewMode = nullptr; + pViewSh->GetDispatcher()->QueryState(SID_SLIDE_MASTER_MODE, isMasterViewMode); if (isMasterViewMode && isMasterViewMode->GetValue()) return true; } diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx index 25422d400f73..c80c6b3bbd5b 100644 --- a/sd/source/ui/view/drviews3.cxx +++ b/sd/source/ui/view/drviews3.cxx @@ -710,8 +710,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) case SID_ATTR_PARA_LINESPACE: if (pArgs) { - SvxLineSpacingItem aParaLineSP = static_cast<const SvxLineSpacingItem&>(pArgs->Get( - GetPool().GetWhich(SID_ATTR_PARA_LINESPACE))); + SvxLineSpacingItem aParaLineSP = pArgs->Get( + GetPool().GetWhich(SID_ATTR_PARA_LINESPACE)); SfxItemSetFixed<EE_PARA_SBL, EE_PARA_SBL> aEditAttr( GetPool() ); aParaLineSP.SetWhich( EE_PARA_SBL ); diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx index 471d549cb12a..f23bd042ce23 100644 --- a/sd/source/ui/view/drviewsf.cxx +++ b/sd/source/ui/view/drviewsf.cxx @@ -529,9 +529,8 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case SID_STYLE_WATERCAN: { - std::unique_ptr<SfxPoolItem> pItem; - GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem && static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Pseudo) rSet.Put(SfxBoolItem(nWhich,false)); else @@ -544,9 +543,8 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case SID_STYLE_NEW: { - std::unique_ptr<SfxPoolItem> pItem; - GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem && static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Pseudo) { rSet.DisableItem(nWhich); @@ -556,9 +554,8 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) case SID_STYLE_DRAGHIERARCHIE: { - std::unique_ptr<SfxPoolItem> pItem; - GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem && static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Pseudo) rSet.DisableItem(nWhich); } @@ -569,9 +566,8 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) // It is not possible to create PseudoStyleSheets 'by Example'; // normal style sheets need a selected object for that - std::unique_ptr<SfxPoolItem> pItem; - GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem) { if (static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Pseudo) diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx index a24f3596b290..0eb351f915b0 100644 --- a/sd/source/ui/view/outlnvsh.cxx +++ b/sd/source/ui/view/outlnvsh.cxx @@ -1460,9 +1460,8 @@ void OutlineViewShell::GetAttrState( SfxItemSet& rSet ) case SID_STYLE_EDIT: { - std::unique_ptr<SfxPoolItem> pItem; - GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + GetViewFrame()->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem && static_cast<SfxStyleFamily>(pFamilyItem->GetValue()) == SfxStyleFamily::Pseudo) { SfxItemSetFixed<SID_STATUS_LAYOUT, SID_STATUS_LAYOUT> aSet(*rSet.GetPool()); diff --git a/sfx2/source/dialog/securitypage.cxx b/sfx2/source/dialog/securitypage.cxx index 7441e47c1746..43ef5115908b 100644 --- a/sfx2/source/dialog/securitypage.cxx +++ b/sfx2/source/dialog/securitypage.cxx @@ -44,18 +44,18 @@ namespace { enum RedliningMode { RL_NONE, RL_WRITER, RL_CALC }; - bool QueryState( sal_uInt16 _nSlot, bool& _rValue ) + bool QueryState( TypedWhichId<SfxBoolItem> _nSlot, bool& _rValue ) { bool bRet = false; SfxViewShell* pViewSh = SfxViewShell::Current(); if (pViewSh) { - const SfxPoolItem* pItem; + const SfxBoolItem* pItem; SfxDispatcher* pDisp = pViewSh->GetDispatcher(); SfxItemState nState = pDisp->QueryState( _nSlot, pItem ); bRet = SfxItemState::DEFAULT <= nState; if (bRet) - _rValue = static_cast< const SfxBoolItem* >( pItem )->GetValue(); + _rValue = pItem->GetValue(); } return bRet; } @@ -66,7 +66,7 @@ namespace bool bRet = false; if (_eMode != RL_NONE) { - sal_uInt16 nSlot = _eMode == RL_WRITER ? FN_REDLINE_PROTECT : SID_CHG_PROTECT; + TypedWhichId<SfxBoolItem> nSlot = _eMode == RL_WRITER ? FN_REDLINE_PROTECT : SID_CHG_PROTECT; bRet = QueryState( nSlot, _rValue ); } return bRet; @@ -78,7 +78,7 @@ namespace bool bRet = false; if (_eMode != RL_NONE) { - sal_uInt16 nSlot = _eMode == RL_WRITER ? FN_REDLINE_ON : FID_CHG_RECORD; + TypedWhichId<SfxBoolItem> nSlot = _eMode == RL_WRITER ? FN_REDLINE_ON : FID_CHG_RECORD; bRet = QueryState( nSlot, _rValue ); } return bRet; @@ -246,11 +246,11 @@ void SfxSecurityPage_Impl::Reset_Impl() SfxViewShell* pViewSh = SfxViewShell::Current(); if (pViewSh) { - const SfxPoolItem* pItem; + const SfxUInt16Item* pItem; SfxDispatcher* pDisp = pViewSh->GetDispatcher(); if (SfxItemState::DEFAULT <= pDisp->QueryState( SID_HTML_MODE, pItem )) { - sal_uInt16 nMode = static_cast< const SfxUInt16Item* >( pItem )->GetValue(); + sal_uInt16 nMode = pItem->GetValue(); bIsHTMLDoc = ( ( nMode & HTMLMODE_ON ) != 0 ); } } diff --git a/svx/source/dialog/rubydialog.cxx b/svx/source/dialog/rubydialog.cxx index 006b07cc0918..9bc87b222fd4 100644 --- a/svx/source/dialog/rubydialog.cxx +++ b/svx/source/dialog/rubydialog.cxx @@ -533,10 +533,9 @@ IMPL_LINK_NOARG(SvxRubyDialog, CloseHdl_Impl, weld::Button&, void) { Close(); } IMPL_LINK_NOARG(SvxRubyDialog, StylistHdl_Impl, weld::Button&, void) { - std::unique_ptr<SfxPoolItem> pState; + std::unique_ptr<SfxBoolItem> pState; SfxItemState eState = pBindings->QueryState(SID_STYLE_DESIGNER, pState); - if (eState <= SfxItemState::SET || !pState - || !static_cast<SfxBoolItem*>(pState.get())->GetValue()) + if (eState <= SfxItemState::SET || !pState || !pState->GetValue()) { pBindings->GetDispatcher()->Execute(SID_STYLE_DESIGNER, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD); diff --git a/svx/source/fmcomp/fmgridcl.cxx b/svx/source/fmcomp/fmgridcl.cxx index 3906a6047258..762144002948 100644 --- a/svx/source/fmcomp/fmgridcl.cxx +++ b/svx/source/fmcomp/fmgridcl.cxx @@ -798,12 +798,12 @@ void FmGridHeader::PreExecuteColumnContextMenu(sal_uInt16 nColId, weld::Menu& rM // ask the bindings of the current view frame (which should be the one we're residing in) for the state if (pCurrentFrame) { - std::unique_ptr<SfxPoolItem> pItem; + std::unique_ptr<SfxBoolItem> pItem; SfxItemState eState = pCurrentFrame->GetBindings().QueryState(SID_FM_CTL_PROPERTIES, pItem); if (eState >= SfxItemState::DEFAULT && pItem != nullptr) { - bool bChecked = dynamic_cast<const SfxBoolItem*>( pItem.get()) != nullptr && static_cast<SfxBoolItem*>(pItem.get())->GetValue(); + bool bChecked = pItem && pItem->GetValue(); rMenu.set_active("column", bChecked); } } diff --git a/svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx b/svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx index 9a7b69b1a51d..9ff16f340b15 100644 --- a/svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx +++ b/svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx @@ -82,10 +82,10 @@ ParaLineSpacingControl::ParaLineSpacingControl(SvxLineSpacingToolBoxControl* pCo mxLineDistAtMetricBox->connect_value_changed( aLink2 ); FieldUnit eUnit = FieldUnit::INCH; - const SfxPoolItem* pItem = nullptr; + const SfxUInt16Item* pItem = nullptr; SfxViewFrame* pCurrent = SfxViewFrame::Current(); if (pCurrent && pCurrent->GetBindings().GetDispatcher()->QueryState(SID_ATTR_METRIC, pItem) >= SfxItemState::DEFAULT) - eUnit = static_cast<FieldUnit>(static_cast<const SfxUInt16Item*>(pItem)->GetValue()); + eUnit = static_cast<FieldUnit>(pItem->GetValue()); else eUnit = SfxModule::GetCurrentFieldUnit(); @@ -122,7 +122,7 @@ ParaLineSpacingControl::~ParaLineSpacingControl() void ParaLineSpacingControl::Initialize() { - const SfxPoolItem* pItem(nullptr); + const SvxLineSpacingItem* pItem(nullptr); SfxViewFrame* pCurrent = SfxViewFrame::Current(); const bool bItemStateSet(nullptr != pCurrent); const SfxItemState eState(bItemStateSet @@ -133,7 +133,7 @@ void ParaLineSpacingControl::Initialize() if( bItemStateSet && (eState == SfxItemState::DEFAULT || eState == SfxItemState::SET) ) { - const SvxLineSpacingItem* currSPItem = static_cast<const SvxLineSpacingItem*>(pItem); + const SvxLineSpacingItem* currSPItem = pItem; MapUnit eUnit = pCurrent->GetPool().GetMetric(currSPItem->Which()); meLNSpaceUnit = eUnit; diff --git a/svx/source/sidebar/text/TextCharacterSpacingControl.cxx b/svx/source/sidebar/text/TextCharacterSpacingControl.cxx index ba528d702282..0826434b79fb 100644 --- a/svx/source/sidebar/text/TextCharacterSpacingControl.cxx +++ b/svx/source/sidebar/text/TextCharacterSpacingControl.cxx @@ -106,10 +106,9 @@ TextCharacterSpacingControl::~TextCharacterSpacingControl() void TextCharacterSpacingControl::Initialize() { - const SfxPoolItem* pItem; - SfxItemState eState = SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_CHAR_KERNING, pItem); + const SvxKerningItem* pKerningItem; + SfxItemState eState = SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_CHAR_KERNING, pKerningItem); - const SvxKerningItem* pKerningItem = dynamic_cast<const SvxKerningItem*>(pItem); tools::Long nKerning = 0; if(pKerningItem) diff --git a/svx/source/sidebar/text/TextUnderlineControl.cxx b/svx/source/sidebar/text/TextUnderlineControl.cxx index 380389509865..9d79e924e877 100644 --- a/svx/source/sidebar/text/TextUnderlineControl.cxx +++ b/svx/source/sidebar/text/TextUnderlineControl.cxx @@ -99,10 +99,8 @@ namespace { Color GetUnderlineColor() { - const SfxPoolItem* pItem; - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_CHAR_UNDERLINE, pItem); - - const SvxUnderlineItem* pUnderlineItem = static_cast<const SvxUnderlineItem*>(pItem); + const SvxUnderlineItem* pUnderlineItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_CHAR_UNDERLINE, pUnderlineItem); if(pUnderlineItem) return pUnderlineItem->GetColor(); diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index 9d26cbe7197a..c42818d25fa5 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -281,8 +281,8 @@ class SwUINumRuleItem; #define FN_JAVAEDIT (FN_INSERT2 + 10) /* edit script field */ #define FN_TOOL_ANCHOR_AT_CHAR (FN_INSERT2 + 12) /* anchor object to character*/ -#define FN_INSERT_PAGEHEADER (FN_INSERT2 + 13) /* insert default header */ -#define FN_INSERT_PAGEFOOTER (FN_INSERT2 + 14) /* insert default footer */ +#define FN_INSERT_PAGEHEADER TypedWhichId<SfxStringListItem>(FN_INSERT2 + 13) /* insert default header */ +#define FN_INSERT_PAGEFOOTER TypedWhichId<SfxStringListItem>(FN_INSERT2 + 14) /* insert default footer */ #define FN_INSERT_ENDNOTE (FN_INSERT2 + 18) /* insert endnote*/ #define FN_INSERT_REGION TypedWhichId<SfxUInt16Item>(FN_INSERT2 + 19) /* Insert section */ diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index cc50ef8e9c83..a5083731c5a3 100644 --- a/sw/qa/extras/tiledrendering/tiledrendering.cxx +++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx @@ -2243,12 +2243,10 @@ void SwTiledRenderingTest::testDocumentRepair() int nView2 = SfxLokHelper::getView(); CPPUNIT_ASSERT(pView1 != pView2); { - std::unique_ptr<SfxPoolItem> xItem1; - std::unique_ptr<SfxPoolItem> xItem2; - pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1); - pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2); - const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get()); - const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get()); + std::unique_ptr<SfxBoolItem> pItem1; + std::unique_ptr<SfxBoolItem> pItem2; + pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1); + pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2); CPPUNIT_ASSERT(pItem1); CPPUNIT_ASSERT(pItem2); CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue()); @@ -2261,12 +2259,10 @@ void SwTiledRenderingTest::testDocumentRepair() pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'u', 0); Scheduler::ProcessEventsToIdle(); { - std::unique_ptr<SfxPoolItem> xItem1; - std::unique_ptr<SfxPoolItem> xItem2; - pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1); - pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2); - const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get()); - const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get()); + std::unique_ptr<SfxBoolItem> pItem1; + std::unique_ptr<SfxBoolItem> pItem2; + pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1); + pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2); CPPUNIT_ASSERT(pItem1); CPPUNIT_ASSERT(pItem2); CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue()); @@ -2281,12 +2277,11 @@ void SwTiledRenderingTest::testDocumentRepair() namespace { - void checkPageHeaderOrFooter(const SfxViewShell* pViewShell, sal_uInt16 nWhich, bool bValue) + void checkPageHeaderOrFooter(const SfxViewShell* pViewShell, TypedWhichId<SfxStringListItem> nWhich, bool bValue) { uno::Sequence<OUString> aSeq; - const SfxPoolItem* pState = nullptr; - pViewShell->GetDispatcher()->QueryState(nWhich, pState); - const SfxStringListItem* pListItem = dynamic_cast<const SfxStringListItem*>(pState); + const SfxStringListItem* pListItem = nullptr; + pViewShell->GetDispatcher()->QueryState(nWhich, pListItem); CPPUNIT_ASSERT(pListItem); pListItem->GetStringList(aSeq); if (bValue) @@ -2474,9 +2469,8 @@ void SwTiledRenderingTest::testIMEFormattingAtEndOfParagraph() pDocWindow->PostExtTextInputEvent(VclEventId::ExtTextInput, "a"); pDocWindow->PostExtTextInputEvent(VclEventId::EndExtTextInput, ""); - std::unique_ptr<SfxPoolItem> pItem; - pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pItem); - auto pWeightItem = dynamic_cast<SvxWeightItem*>(pItem.get()); + std::unique_ptr<SvxWeightItem> pWeightItem; + pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pWeightItem); CPPUNIT_ASSERT(pWeightItem); CPPUNIT_ASSERT_EQUAL(FontWeight::WEIGHT_BOLD, pWeightItem->GetWeight()); @@ -2494,8 +2488,8 @@ void SwTiledRenderingTest::testIMEFormattingAtEndOfParagraph() pDocWindow->PostExtTextInputEvent(VclEventId::ExtTextInput, "b"); pDocWindow->PostExtTextInputEvent(VclEventId::EndExtTextInput, ""); - pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pItem); - auto pWeightItem2 = dynamic_cast<SvxWeightItem*>(pItem.get()); + std::unique_ptr<SvxWeightItem> pWeightItem2; + pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pWeightItem2); CPPUNIT_ASSERT(pWeightItem2); CPPUNIT_ASSERT_EQUAL(FontWeight::WEIGHT_NORMAL, pWeightItem2->GetWeight()); @@ -2510,8 +2504,8 @@ void SwTiledRenderingTest::testIMEFormattingAtEndOfParagraph() pDocWindow->PostExtTextInputEvent(VclEventId::ExtTextInput, "a"); pDocWindow->PostExtTextInputEvent(VclEventId::EndExtTextInput, ""); - pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pItem); - auto pWeightItem3 = dynamic_cast<SvxWeightItem*>(pItem.get()); + std::unique_ptr<SvxWeightItem> pWeightItem3; + pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pWeightItem3); CPPUNIT_ASSERT(pWeightItem3); CPPUNIT_ASSERT_EQUAL(FontWeight::WEIGHT_BOLD, pWeightItem3->GetWeight()); @@ -2522,8 +2516,8 @@ void SwTiledRenderingTest::testIMEFormattingAtEndOfParagraph() pDocWindow->PostExtTextInputEvent(VclEventId::ExtTextInput, "b"); pDocWindow->PostExtTextInputEvent(VclEventId::EndExtTextInput, ""); - pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pItem); - auto pWeightItem4 = dynamic_cast<SvxWeightItem*>(pItem.get()); + std::unique_ptr<SvxWeightItem> pWeightItem4; + pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pWeightItem4); CPPUNIT_ASSERT(pWeightItem4); CPPUNIT_ASSERT_EQUAL(FontWeight::WEIGHT_NORMAL, pWeightItem4->GetWeight()); @@ -2580,9 +2574,8 @@ void SwTiledRenderingTest::testIMEFormattingAfterHeader() pDocWindow->PostExtTextInputEvent(VclEventId::EndExtTextInput, ""); Scheduler::ProcessEventsToIdle(); - std::unique_ptr<SfxPoolItem> pItem; - pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pItem); - auto pWeightItem = dynamic_cast<SvxWeightItem*>(pItem.get()); + std::unique_ptr<SvxWeightItem> pWeightItem; + pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pWeightItem); CPPUNIT_ASSERT(pWeightItem); CPPUNIT_ASSERT_EQUAL(FontWeight::WEIGHT_BOLD, pWeightItem->GetWeight()); @@ -2602,8 +2595,8 @@ void SwTiledRenderingTest::testIMEFormattingAfterHeader() // <h2>bb</h2>\n" // c" - pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pItem); - auto pWeightItem2 = dynamic_cast<SvxWeightItem*>(pItem.get()); + std::unique_ptr<SvxWeightItem> pWeightItem2; + pView->GetViewFrame()->GetBindings().QueryState(SID_ATTR_CHAR_WEIGHT, pWeightItem2); CPPUNIT_ASSERT(pWeightItem2); CPPUNIT_ASSERT_EQUAL(FontWeight::WEIGHT_NORMAL, pWeightItem2->GetWeight()); diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 0fe486ee2232..0d872d4e958f 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -647,14 +647,13 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest, testWatermarkDOCX) { SwDoc* const pDoc = createSwDoc(DATA_DIRECTORY, "watermark.docx"); SwDocShell* pDocShell = pDoc->GetDocShell(); - const SfxPoolItem* pItem; - SfxItemState eState = pDocShell->GetViewShell()->GetViewFrame()->GetDispatcher()->QueryState(SID_WATERMARK, pItem); + const SfxWatermarkItem* pWatermark; + SfxItemState eState = pDocShell->GetViewShell()->GetViewFrame()->GetDispatcher()->QueryState(SID_WATERMARK, pWatermark); CPPUNIT_ASSERT(eState >= SfxItemState::DEFAULT); - CPPUNIT_ASSERT(pItem); - CPPUNIT_ASSERT_EQUAL(static_cast<unsigned short>(SID_WATERMARK), pItem->Which()); + CPPUNIT_ASSERT(pWatermark); + CPPUNIT_ASSERT_EQUAL(static_cast<unsigned short>(SID_WATERMARK), pWatermark->Which()); - const SfxWatermarkItem* pWatermark = static_cast<const SfxWatermarkItem*>(pItem); CPPUNIT_ASSERT_EQUAL(OUString("CustomWatermark"), pWatermark->GetText()); CPPUNIT_ASSERT_EQUAL(OUString("DejaVu Sans Light"), pWatermark->GetFont()); CPPUNIT_ASSERT_EQUAL(sal_Int16(45), pWatermark->GetAngle()); diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx index 42eeebf1bf70..b4456c3066dc 100644 --- a/sw/source/uibase/app/docst.cxx +++ b/sw/source/uibase/app/docst.cxx @@ -104,9 +104,8 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh) else { SfxViewFrame* pFrame = pShell->GetView().GetViewFrame(); - std::unique_ptr<SfxPoolItem> pItem; - pFrame->GetBindings().QueryState(SID_STYLE_FAMILY, pItem); - SfxUInt16Item* pFamilyItem = dynamic_cast<SfxUInt16Item*>(pItem.get()); + std::unique_ptr<SfxUInt16Item> pFamilyItem; + pFrame->GetBindings().QueryState(SID_STYLE_FAMILY, pFamilyItem); if (pFamilyItem) { nActualFamily = static_cast<SfxStyleFamily>(pFamilyItem->GetValue()); diff --git a/sw/source/uibase/dialog/watermarkdialog.cxx b/sw/source/uibase/dialog/watermarkdialog.cxx index 62dbe8711f23..3e9a914a2917 100644 --- a/sw/source/uibase/dialog/watermarkdialog.cxx +++ b/sw/source/uibase/dialog/watermarkdialog.cxx @@ -78,13 +78,12 @@ void SwWatermarkDialog::InitFields() m_xOKButton->connect_clicked(LINK(this, SwWatermarkDialog, OKButtonHdl)); // Get watermark properties - const SfxPoolItem* pItem; - SfxItemState eState = m_rBindings.GetDispatcher()->QueryState( SID_WATERMARK, pItem ); + const SfxWatermarkItem* pWatermark; + SfxItemState eState = m_rBindings.GetDispatcher()->QueryState( SID_WATERMARK, pWatermark ); - if( !(eState >= SfxItemState::DEFAULT && pItem && pItem->Which() == SID_WATERMARK)) + if( !(eState >= SfxItemState::DEFAULT && pWatermark && pWatermark->Which() == SID_WATERMARK)) return; - const SfxWatermarkItem* pWatermark = static_cast<const SfxWatermarkItem*>( pItem ); const OUString& sText = pWatermark->GetText(); m_xTextInput->set_text(sText); OUString sFontName = pWatermark->GetFont(); diff --git a/sw/source/uibase/sidebar/PageColumnControl.cxx b/sw/source/uibase/sidebar/PageColumnControl.cxx index adf10c4af58e..18d4ef4248d1 100644 --- a/sw/source/uibase/sidebar/PageColumnControl.cxx +++ b/sw/source/uibase/sidebar/PageColumnControl.cxx @@ -39,9 +39,9 @@ PageColumnControl::PageColumnControl(PageColumnPopup* pControl, weld::Widget* pP bool bLandscape = false; if ( SfxViewFrame::Current() ) { - const SfxPoolItem *pItem; - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pItem ); - bLandscape = static_cast<const SvxPageItem*>(pItem)->IsLandscape(); + const SvxPageItem *pPageItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pPageItem ); + bLandscape = pPageItem->IsLandscape(); } if ( bLandscape ) diff --git a/sw/source/uibase/sidebar/PageMarginControl.cxx b/sw/source/uibase/sidebar/PageMarginControl.cxx index cd86320d7a77..632e94140e4f 100644 --- a/sw/source/uibase/sidebar/PageMarginControl.cxx +++ b/sw/source/uibase/sidebar/PageMarginControl.cxx @@ -54,11 +54,11 @@ namespace FieldUnit lcl_GetFieldUnit() { FieldUnit eUnit = FieldUnit::INCH; - const SfxPoolItem* pItem = nullptr; + const SfxUInt16Item* pItem = nullptr; SfxItemState eState = SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_METRIC, pItem ); if ( pItem && eState >= SfxItemState::DEFAULT ) { - eUnit = static_cast<FieldUnit>(static_cast<const SfxUInt16Item*>( pItem )->GetValue()); + eUnit = static_cast<FieldUnit>(pItem->GetValue()); } else { @@ -132,16 +132,13 @@ PageMarginControl::PageMarginControl(PageMarginPopup* pControl, weld::Widget* pP const SvxLongULSpaceItem* pULItem = nullptr; if ( SfxViewFrame::Current() ) { - const SfxPoolItem* pItem; - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pItem ); - bLandscape = static_cast<const SvxPageItem*>( pItem )->IsLandscape(); - m_bMirrored = static_cast<const SvxPageItem*>( pItem )->GetPageUsage() == SvxPageUsage::Mirror; - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_SIZE, pItem ); - pSize = static_cast<const SvxSizeItem*>( pItem ); - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_LRSPACE, pItem ); - pLRItem = static_cast<const SvxLongLRSpaceItem*>( pItem ); - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_ULSPACE, pItem ); - pULItem = static_cast<const SvxLongULSpaceItem*>( pItem ); + const SvxPageItem* pPageItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pPageItem ); + bLandscape = pPageItem->IsLandscape(); + m_bMirrored = pPageItem->GetPageUsage() == SvxPageUsage::Mirror; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_SIZE, pSize ); + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_LRSPACE, pLRItem ); + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_ULSPACE, pULItem ); } if ( pLRItem ) diff --git a/sw/source/uibase/sidebar/PageOrientationControl.cxx b/sw/source/uibase/sidebar/PageOrientationControl.cxx index b6f8aa78fff0..7f512d25516a 100644 --- a/sw/source/uibase/sidebar/PageOrientationControl.cxx +++ b/sw/source/uibase/sidebar/PageOrientationControl.cxx @@ -100,9 +100,9 @@ void PageOrientationControl::ExecuteOrientationChange( const bool bLandscape ) if ( mxUndoManager.is() ) mxUndoManager->enterUndoContext( "" ); - const SfxPoolItem* pItem; - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_SIZE, pItem); - mpPageSizeItem.reset( static_cast<SvxSizeItem*>(pItem->Clone()) ); + const SvxSizeItem* pSizeItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_SIZE, pSizeItem); + mpPageSizeItem.reset( pSizeItem->Clone() ); // Prevent accidental toggling of page orientation if ((mpPageSizeItem->GetWidth() > mpPageSizeItem->GetHeight()) == bLandscape) @@ -112,11 +112,13 @@ void PageOrientationControl::ExecuteOrientationChange( const bool bLandscape ) return; } - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_LRSPACE, pItem); - mpPageLRMarginItem.reset( static_cast<SvxLongLRSpaceItem*>(pItem->Clone()) ); + const SvxLongLRSpaceItem* pLRSpaceItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_LRSPACE, pLRSpaceItem); + mpPageLRMarginItem.reset( pLRSpaceItem->Clone() ); - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_ULSPACE, pItem); - mpPageULMarginItem.reset( static_cast<SvxLongULSpaceItem*>(pItem->Clone()) ); + const SvxLongULSpaceItem* pULSpaceItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_ULSPACE, pULSpaceItem); + mpPageULMarginItem.reset( pULSpaceItem->Clone() ); { // set new page orientation diff --git a/sw/source/uibase/sidebar/PageSizeControl.cxx b/sw/source/uibase/sidebar/PageSizeControl.cxx index 7ccee9bd302e..85c41ae80689 100644 --- a/sw/source/uibase/sidebar/PageSizeControl.cxx +++ b/sw/source/uibase/sidebar/PageSizeControl.cxx @@ -46,11 +46,11 @@ namespace FieldUnit lcl_GetFieldUnit() { FieldUnit eUnit = FieldUnit::INCH; - const SfxPoolItem* pItem = nullptr; + const SfxUInt16Item* pItem = nullptr; SfxItemState eState = SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_METRIC, pItem ); if ( pItem && eState >= SfxItemState::DEFAULT ) { - eUnit = static_cast<FieldUnit>(static_cast<const SfxUInt16Item*>(pItem)->GetValue()); + eUnit = static_cast<FieldUnit>(pItem->GetValue()); } else { @@ -122,11 +122,10 @@ PageSizeControl::PageSizeControl(PageSizePopup* pControl, weld::Widget* pParent) const SvxSizeItem* pSize = nullptr; if ( SfxViewFrame::Current() ) { - const SfxPoolItem* pItem; - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pItem ); - bLandscape = static_cast<const SvxPageItem*>(pItem)->IsLandscape(); - SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_SIZE, pItem ); - pSize = static_cast<const SvxSizeItem*>(pItem); + const SvxPageItem* pPageItem; + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pPageItem ); + bLandscape = pPageItem->IsLandscape(); + SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE_SIZE, pSize ); } const LocaleDataWrapper& localeDataWrapper = Application::GetSettings().GetLocaleDataWrapper(); @@ -194,13 +193,13 @@ PageSizeControl::~PageSizeControl() void PageSizeControl::ExecuteSizeChange( const Paper ePaper ) { bool bLandscape = false; - const SfxPoolItem *pItem; + const SvxPageItem *pItem; MapUnit eUnit = lcl_GetUnit(); if ( !SfxViewFrame::Current() ) return; SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState( SID_ATTR_PAGE, pItem ); - bLandscape = static_cast<const SvxPageItem*>(pItem)->IsLandscape(); + bLandscape = pItem->IsLandscape(); SvxSizeItem aPageSizeItem(SID_ATTR_PAGE_SIZE); Size aPageSize = SvxPaperInfo::GetPaperSize( ePaper, eUnit );