diff options
| author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-07-31 09:15:14 +0200 | 
|---|---|---|
| committer | Caolán McNamara <caolanm@redhat.com> | 2015-08-17 12:25:09 +0000 | 
| commit | 9a9218a741260d452106de1a4d5786c87499776d (patch) | |
| tree | 809313c4e42fa165ac2f7b30b91f8e2453c638b5 | |
| parent | 5d6c8958b48a0d1a0968221249ad250d8ef568af (diff) | |
tdf#88986 sw: add missing XPropertyList pool items on TextFrame insertion
Regression from commit 6e61ecd09679a66060f932835622821d39e92f01 (Merge
back branch alg_writerframes to trunk, 2014-03-19), the problem was
while SwFrameShell::Execute() was modified to put the various pool items
related to fill types (colors, gradients, etc) to the item set of the
dialog, the same was missing in SwTextShell::ExecInsert(), so colors
were missing on inserting a new frame, but not when editing an existing
one.
Change-Id: Id009f914c1c3b6509e31a4887e32a00624678cf4
(cherry picked from commit 6c3ca675509101732d3d878d6ceb6226026cd9ac)
Reviewed-on: https://gerrit.libreoffice.org/17753
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
| -rw-r--r-- | sw/inc/drawdoc.hxx | 2 | ||||
| -rw-r--r-- | sw/source/core/draw/drawdoc.cxx | 8 | ||||
| -rw-r--r-- | sw/source/uibase/shells/frmsh.cxx | 6 | ||||
| -rw-r--r-- | sw/source/uibase/shells/textsh.cxx | 7 | 
4 files changed, 18 insertions, 5 deletions
| diff --git a/sw/inc/drawdoc.hxx b/sw/inc/drawdoc.hxx index 0e4ea36e5417..bad9c0ca41a1 100644 --- a/sw/inc/drawdoc.hxx +++ b/sw/inc/drawdoc.hxx @@ -35,6 +35,8 @@ public:      const SwDoc& GetDoc() const { return *m_pDoc; }            SwDoc& GetDoc()       { return *m_pDoc; } +    /// Put needed items for XPropertyList entries from the DrawModel. +    void PutAreaListItems(SfxItemSet& rSet) const;      virtual SdrPage* AllocPage(bool bMasterPage) SAL_OVERRIDE; diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx index 6c7a0b1cc228..efd0bb1f163d 100644 --- a/sw/source/core/draw/drawdoc.cxx +++ b/sw/source/core/draw/drawdoc.cxx @@ -151,4 +151,12 @@ uno::Reference< uno::XInterface > SwDrawModel::createUnoModel()      return xModel;  } +void SwDrawModel::PutAreaListItems(SfxItemSet& rSet) const +{ +    rSet.Put(SvxColorListItem(GetColorList(), SID_COLOR_TABLE)); +    rSet.Put(SvxGradientListItem(GetGradientList(), SID_GRADIENT_LIST)); +    rSet.Put(SvxHatchListItem(GetHatchList(), SID_HATCH_LIST)); +    rSet.Put(SvxBitmapListItem(GetBitmapList(), SID_BITMAP_LIST)); +} +  /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx index d42f0e98a2c8..4868fdfd58be 100644 --- a/sw/source/uibase/shells/frmsh.cxx +++ b/sw/source/uibase/shells/frmsh.cxx @@ -415,11 +415,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)                  //UUUU create needed items for XPropertyList entries from the DrawModel so that                  // the Area TabPage can access them                  const SwDrawModel* pDrawModel = rSh.GetView().GetDocShell()->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel(); - -                aSet.Put(SvxColorListItem(pDrawModel->GetColorList(), SID_COLOR_TABLE)); -                aSet.Put(SvxGradientListItem(pDrawModel->GetGradientList(), SID_GRADIENT_LIST)); -                aSet.Put(SvxHatchListItem(pDrawModel->GetHatchList(), SID_HATCH_LIST)); -                aSet.Put(SvxBitmapListItem(pDrawModel->GetBitmapList(), SID_BITMAP_LIST)); +                pDrawModel->PutAreaListItems(aSet);                  const SwViewOption* pVOpt = rSh.GetViewOptions();                  if(nSel & nsSelectionType::SEL_OLE) diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx index 2cf10fea72b8..6087187ea9e1 100644 --- a/sw/source/uibase/shells/textsh.cxx +++ b/sw/source/uibase/shells/textsh.cxx @@ -114,6 +114,8 @@ using namespace ::com::sun::star;  #include <table.hrc>  #include <frmui.hrc>  #include <unomid.h> +#include <IDocumentDrawModelAccess.hxx> +#include <drawdoc.hxx>  #include <boost/scoped_ptr.hpp>  SFX_IMPL_INTERFACE(SwTextShell, SwBaseShell) @@ -579,11 +581,16 @@ void SwTextShell::ExecInsert(SfxRequest &rReq)                  SID_ATTR_PAGE_SIZE,     SID_ATTR_PAGE_SIZE,                  FN_SET_FRM_NAME,        FN_SET_FRM_NAME,                  SID_HTML_MODE,          SID_HTML_MODE, +                SID_COLOR_TABLE,        SID_BITMAP_LIST,                  0              };              SfxItemSet aSet(GetPool(), aFrmAttrRange );              aSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(GetView().GetDocShell()))); + +            // For the Area tab page. +            GetShell().GetDoc()->getIDocumentDrawModelAccess().GetDrawModel()->PutAreaListItems(aSet); +              const SwRect &rPg = GetShell().GetAnyCurRect(RECT_PAGE);              SwFormatFrmSize aFrmSize(ATT_VAR_SIZE, rPg.Width(), rPg.Height());              aFrmSize.SetWhich(GetPool().GetWhich(SID_ATTR_PAGE_SIZE)); | 
