diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2020-02-06 12:23:21 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-02-12 14:24:52 +0100 |
commit | da076834794a1fa00c51ffeb09ee3f724001dc89 (patch) | |
tree | 9c593378309aa49a6608f703dd18482eeb0ea4ee | |
parent | f15d67442972c5f69c71925a6bfa5aa1a39d54eb (diff) |
Allow boolean valued statechange messages for...
object align commands :
ObjectAlignLeft [SID_OBJECT_ALIGN_LEFT]
ObjectAlignRight [SID_OBJECT_ALIGN_RIGHT]
AlignCenter [SID_OBJECT_ALIGN_CENTER]
What is pending is to set correct align state items for Impress in
DrawViewShell::GetMenuStateSel(). For doing that we need to store
the object align state somewhere when we execute SID_OBJECT_ALIGN_*
in DrawViewShell::FuTemporary().
For Writer the align state information was already available in
frame-format-manager object.
Change-Id: I86fcf59cfc66af98097611277201ecaa3b8c22cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88077
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88452
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r-- | desktop/source/lib/init.cxx | 5 | ||||
-rw-r--r-- | sfx2/source/control/unoctitm.cxx | 5 | ||||
-rw-r--r-- | svx/sdi/svx.sdi | 12 | ||||
-rw-r--r-- | sw/source/uibase/shells/frmsh.cxx | 23 |
4 files changed, 37 insertions, 8 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 90989c45df96..34b6155975c5 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2655,7 +2655,10 @@ static void doc_iniUnoCommands () OUString(".uno:InsertSymbol"), OUString(".uno:EditRegion"), OUString(".uno:ThesaurusDialog"), - OUString(".uno:Orientation") + OUString(".uno:Orientation"), + OUString(".uno:ObjectAlignLeft"), + OUString(".uno:ObjectAlignRight"), + OUString(".uno:AlignCenter") }; util::URL aCommandURL; diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx index 28276ddf3df7..1eac0a9c7964 100644 --- a/sfx2/source/control/unoctitm.cxx +++ b/sfx2/source/control/unoctitm.cxx @@ -1006,7 +1006,10 @@ static void InterceptLOKStateChangeEvent(const SfxViewFrame* pViewFrame, const c aEvent.FeatureURL.Path == "AlignLeft" || aEvent.FeatureURL.Path == "AlignHorizontalCenter" || aEvent.FeatureURL.Path == "AlignRight" || - aEvent.FeatureURL.Path == "DocumentRepair") + aEvent.FeatureURL.Path == "DocumentRepair" || + aEvent.FeatureURL.Path == "ObjectAlignLeft" || + aEvent.FeatureURL.Path == "ObjectAlignRight" || + aEvent.FeatureURL.Path == "AlignCenter") { bool bTemp = false; aEvent.State >>= bTemp; diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi index 2567e08906b0..d8a8af6c71e6 100644 --- a/svx/sdi/svx.sdi +++ b/svx/sdi/svx.sdi @@ -106,10 +106,10 @@ SfxBoolItem Polygon SID_DRAW_POLYGON GroupId = SfxGroupId::Drawing; ] -SfxVoidItem AlignCenter SID_OBJECT_ALIGN_CENTER +SfxBoolItem AlignCenter SID_OBJECT_ALIGN_CENTER () [ - AutoUpdate = FALSE, + AutoUpdate = TRUE, FastCall = FALSE, ReadOnlyDoc = FALSE, Toggle = FALSE, @@ -142,10 +142,10 @@ SfxVoidItem AlignDown SID_OBJECT_ALIGN_DOWN ] -SfxVoidItem ObjectAlignLeft SID_OBJECT_ALIGN_LEFT +SfxBoolItem ObjectAlignLeft SID_OBJECT_ALIGN_LEFT () [ - AutoUpdate = FALSE, + AutoUpdate = TRUE, FastCall = FALSE, ReadOnlyDoc = FALSE, Toggle = FALSE, @@ -197,10 +197,10 @@ SfxVoidItem AlignMiddle SID_OBJECT_ALIGN_MIDDLE ] -SfxVoidItem ObjectAlignRight SID_OBJECT_ALIGN_RIGHT +SfxBoolItem ObjectAlignRight SID_OBJECT_ALIGN_RIGHT () [ - AutoUpdate = FALSE, + AutoUpdate = TRUE, FastCall = FALSE, ReadOnlyDoc = FALSE, Toggle = FALSE, diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx index 3f139e81f0cc..61ab59bfc00e 100644 --- a/sw/source/uibase/shells/frmsh.cxx +++ b/sw/source/uibase/shells/frmsh.cxx @@ -793,7 +793,30 @@ void SwFrameShell::GetState(SfxItemSet& rSet) bProtect || ((nWhich == FN_FRAME_ALIGN_HORZ_CENTER || nWhich == SID_OBJECT_ALIGN_CENTER) && bHtmlMode )) + { rSet.DisableItem( nWhich ); + } + else + { + sal_Int16 nHoriOrient = -1; + switch(nWhich) + { + case SID_OBJECT_ALIGN_LEFT: + nHoriOrient = text::HoriOrientation::LEFT; + break; + case SID_OBJECT_ALIGN_CENTER: + nHoriOrient = text::HoriOrientation::CENTER; + break; + case SID_OBJECT_ALIGN_RIGHT: + nHoriOrient = text::HoriOrientation::RIGHT; + break; + default: + break; + } + SwFormatHoriOrient aHOrient(aMgr.GetHoriOrient()); + if (nHoriOrient != -1) + rSet.Put(SfxBoolItem(nWhich, nHoriOrient == aHOrient.GetHoriOrient())); + } break; case FN_FRAME_ALIGN_VERT_ROW_TOP: case FN_FRAME_ALIGN_VERT_ROW_CENTER: |