summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Francis <dennis.francis@collabora.com>2020-02-06 12:23:21 +0530
committerAndras Timar <andras.timar@collabora.com>2020-02-12 14:24:52 +0100
commitda076834794a1fa00c51ffeb09ee3f724001dc89 (patch)
tree9c593378309aa49a6608f703dd18482eeb0ea4ee
parentf15d67442972c5f69c71925a6bfa5aa1a39d54eb (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.cxx5
-rw-r--r--sfx2/source/control/unoctitm.cxx5
-rw-r--r--svx/sdi/svx.sdi12
-rw-r--r--sw/source/uibase/shells/frmsh.cxx23
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: