https://bz.apache.org/ooo/show_bug.cgi?id=125129
--- Comment #14 from [email protected] --- Comment 13's frame 1 is the same as comment 12's frame 4. #4 0x000000080eb786a1 in SwFrmDlg::PageCreated(unsigned short, SfxTabPage&) (this=0x80ada7860, nId=<optimized out>, rPage=...) at source/ui/frmdlg/frmdlg.cxx:245 case RID_SVXPAGE_AREA: { SfxItemSet aNew(*GetInputSetImpl()->GetPool(), SID_COLOR_TABLE, SID_BITMAP_LIST, SID_OFFER_IMPORT, SID_OFFER_IMPORT, 0, 0); aNew.Put(m_rSet); // add flag for direct graphic content selection aNew.Put(SfxBoolItem(SID_OFFER_IMPORT, true)); rPage.PageCreated(aNew); } break; But the same "Area" tab is also shown for the page and paragraph dialogs, yet doesn't crash. How do the page and paragraph ::PageCreated() methods differ? For the paragraph, main/sw/source/ui/chrdlg/pardlg.cxx: case RID_SVXPAGE_AREA: { SfxItemSet aNew(*aSet.GetPool(), SID_COLOR_TABLE, SID_BITMAP_LIST, SID_OFFER_IMPORT, SID_OFFER_IMPORT, 0, 0); aNew.Put(*GetInputSetImpl()); // add flag for direct graphic content selection aNew.Put(SfxBoolItem(SID_OFFER_IMPORT, true)); rPage.PageCreated(aNew); break; } For the page, main/sw/source/ui/fmtui/tmpdlg.cxx: case RID_SVXPAGE_AREA: { aSet.Put(GetStyleSheet().GetItemSet()); // add flag for direct graphic content selection aSet.Put(SfxBoolItem(SID_OFFER_IMPORT, true)); rPage.PageCreated(aSet); break; } It seemed to me that SfxItemSet was being constructed wrongly, but the paragraph constructs it the same way. Then I tried passing *GetInputSetImpl() to Put() instead of m_rSet, but it still crashed. Copying the SfxItemSet like the paragraph does didn't help either, even in combonation with the Put() change. Thus almost certainly the original SfxItemSet returned from GetInputSetImpl() doesn't contain a SID_COLOR_TABLE entry. How does SID_COLOR_TABLE arrive into SfxItemSet? The comments above page, paragraph and frame RID_SVXPAGE_AREA case statement, state: //UUUU inits for Area and Transparency TabPages // The selection attribute lists (XPropertyList derivates, e.g. XColorList for // the color table) need to be added as items (e.g. SvxColorTableItem) to make // these pages find the needed attributes for fill style suggestions. which is followed by this differing text: Frame: // These are set in preparation to trigger this dialog (FN_FORMAT_FRAME_DLG and // FN_DRAW_WRAP_DLG), but could also be directly added from the DrawModel. Paragraph: // These are added in SwDocStyleSheet::GetItemSet() for the SFX_STYLE_FAMILY_PARA on // demand, but could also be directly added from the DrawModel. Page: // These are added in SwDocStyleSheet::GetItemSet() for the SFX_STYLE_FAMILY_PARA on // demand, but could also be directly added from the DrawModel. Seems like FN_FORMAT_FRAME_DLG and FN_DRAW_WRAP_DLG need to be examined. -- You are receiving this mail because: You are the assignee for the issue.
