diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2021-06-11 12:07:44 +0200 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-06-13 19:23:28 +0200 |
commit | 8aaa28ed43978a9a4a20d62368410a57ec05c23f (patch) | |
tree | 16706bd93e2af74db7220a099a1391bf7cdd1bd4 /sd/source/ui/func | |
parent | f7c7e4c63f5479de66d2fbed9db34972a5bd05aa (diff) |
Assert on valid order of which ids in ranges on SfxItemSet creation
This allows to make sure we actually use sorted which ranges,
and then it's safe to call SfxItemSet::MergeRange when needed.
Also this change relaxes the previous requirement that ranges
must be separated by at least one; this allows to have adjacent
ranges, like in
RES_FRMATR_BEGIN, RES_FRMATR_END-1,
RES_GRFATR_BEGIN, RES_GRFATR_END-1,
where RES_FRMATR_END is equal to RES_GRFATR_BEGIN. Allowing this
makes possible to (1) self-document the ranges, so it's clear
which ranges are included; and (2) be safe in case when these
constants would change, so that the one merged range would not
unexpectedly contain everything inserted between RES_FRMATR_END
and RES_GRFATR_BEGIN.
Change-Id: Iaad0f099b85059b3aa318a347aa7fbd3f6d455c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116909
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'sd/source/ui/func')
-rw-r--r-- | sd/source/ui/func/fupage.cxx | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx index 6df50eafbe82..6d5fdbc896ec 100644 --- a/sd/source/ui/func/fupage.cxx +++ b/sd/source/ui/func/fupage.cxx @@ -201,16 +201,18 @@ const SfxItemSet* FuPage::ExecuteDialog(weld::Window* pParent, const SfxRequest& if (!mpDrawViewShell) return nullptr; - SfxItemSet aNewAttr(mpDoc->GetPool(), - {{mpDoc->GetPool().GetWhich(SID_ATTR_LRSPACE), - mpDoc->GetPool().GetWhich(SID_ATTR_ULSPACE)}, - {SID_ATTR_PAGE, SID_ATTR_PAGE_SHARED}, - {SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER}, - {SID_ATTR_BORDER_SHADOW, SID_ATTR_BORDER_SHADOW}, - {XATTR_FILL_FIRST, XATTR_FILL_LAST}, - {SID_ATTR_CHAR_GRABBAG, SID_ATTR_CHAR_GRABBAG}, - {SID_ATTR_PAGE_COLOR,SID_ATTR_PAGE_FILLSTYLE}, - {EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR}}); + SfxItemSet aNewAttr(mpDoc->GetPool(), { + { XATTR_FILL_FIRST, XATTR_FILL_LAST }, + { EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR }, + { SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER }, + { SID_ATTR_BORDER_SHADOW, SID_ATTR_BORDER_SHADOW }, + { SID_ATTR_PAGE, SID_ATTR_PAGE_SHARED }, + { SID_ATTR_CHAR_GRABBAG, SID_ATTR_CHAR_GRABBAG }, + { SID_ATTR_PAGE_COLOR, SID_ATTR_PAGE_FILLSTYLE }, + }); + // Keep it sorted + aNewAttr.MergeRange(mpDoc->GetPool().GetWhich(SID_ATTR_LRSPACE), + mpDoc->GetPool().GetWhich(SID_ATTR_ULSPACE)); // Retrieve additional data for dialog |