include/svx/svdedtv.hxx | 5 + include/svx/svdstr.hrc | 4 include/svx/svxids.hrc | 2 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 10 ++ sd/sdi/_drvwsh.sdi | 10 ++ sd/source/ui/view/drviews2.cxx | 13 ++ sd/source/ui/view/drviewsj.cxx | 16 ++- sd/uiconfig/sdraw/menubar/menubar.xml | 3 svx/inc/globlmn_tmpl.hrc | 20 ++++ svx/sdi/svx.sdi | 47 ++++++++++ svx/source/svdraw/svdedtv2.cxx | 38 ++++++++ svx/source/svdraw/svdstr.src | 8 + vcl/headless/svpgdi.cxx | 2 13 files changed, 172 insertions(+), 6 deletions(-)
New commits: commit b51fe01f7c8853c353401001bdd417b9ed27fb87 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jun 25 15:10:37 2015 +0100 WaE: error: 'CAIRO_VERSION' is not defined Change-Id: I9e4f0d0af541226089a6295962a91ca09debb418 diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx index f5dbaf4..d29a956 100644 --- a/vcl/headless/svpgdi.cxx +++ b/vcl/headless/svpgdi.cxx @@ -141,7 +141,7 @@ bool SvpSalGraphics::drawAlphaRect(long nX, long nY, long nWidth, long nHeight, #if !ENABLE_CAIRO_CANVAS (void)nX; (void)nY; (void)nWidth; (void)nHeight; (void)nTransparency; return false; -#elif CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0) +#elif defined(CAIRO_VERSION) && defined(CAIRO_VERSION_ENCODE) && CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0) if (m_bUseLineColor || !m_bUseFillColor) return false; commit a0ded09c55f944f57201651032eed5dcf7e22e48 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jun 25 10:33:06 2015 +0100 implement equalize width and height for impress/draw Equalize width/height adjusts width/height of selected objects to the width/height of the last selected object. Change-Id: I7c222a6591112cb674322d310ebd87f04a9198bd diff --git a/include/svx/svdedtv.hxx b/include/svx/svdedtv.hxx index cdc2308..b109e0c 100644 --- a/include/svx/svdedtv.hxx +++ b/include/svx/svdedtv.hxx @@ -272,6 +272,11 @@ public: // for distribution dialog function void DistributeMarkedObjects(); + // for setting either the width or height of all selected + // objects to the width/height of the last selected object + // of the selection + void EqualizeMarkedObjects(bool bWidth); + // Decompose marked polypolygon objects into polygons. // Grouped objects are searched and decomposed, if all member objects are PathObjs. // bMakeLines=TRUE: all polygones are decomposed into single lines resp. bezier segments diff --git a/include/svx/svdstr.hrc b/include/svx/svdstr.hrc index 90ef697..36e8719 100644 --- a/include/svx/svdstr.hrc +++ b/include/svx/svdstr.hrc @@ -241,7 +241,9 @@ #define STR_EditMergeSubstractPoly (STR_EditBegin + 55) #define STR_EditMergeIntersectPoly (STR_EditBegin + 56) #define STR_DistributeMarkedObjects (STR_EditBegin + 57) -#define STR_EditEnd (STR_DistributeMarkedObjects) +#define STR_EqualizeWidthMarkedObjects (STR_EditBegin + 58) +#define STR_EqualizeHeightMarkedObjects (STR_EditBegin + 59) +#define STR_EditEnd (STR_EqualizeHeightMarkedObjects) #define STR_ExchangeBegin (STR_EditEnd+1) #define STR_ExchangePaste (STR_ExchangeBegin +0) diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc index 5b8efbc..67ee3da 100644 --- a/include/svx/svxids.hrc +++ b/include/svx/svxids.hrc @@ -113,6 +113,8 @@ #define SID_POLY_INTERSECT (SID_SFX_START + 681) #define SID_POLY_FORMEN (SID_SFX_START + 682) #define SID_DISTRIBUTE_DLG (SID_SFX_START + 683) +#define SID_EQUALIZEWIDTH (SID_SFX_START + 684) +#define SID_EQUALIZEHEIGHT (SID_SFX_START + 685) // Basic IDE-Id's diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 1c679bd..d221d56 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -3472,6 +3472,16 @@ <value xml:lang="en-US">~Subtract</value> </prop> </node> + <node oor:name=".uno:EqualizeWidth" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Equalize ~Width</value> + </prop> + </node> + <node oor:name=".uno:EqualizeHeight" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Equalize ~Height</value> + </prop> + </node> <node oor:name=".uno:SuperScript" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Superscript</value> diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi index 0b5469bf..6b2f17c 100644 --- a/sd/sdi/_drvwsh.sdi +++ b/sd/sdi/_drvwsh.sdi @@ -507,6 +507,16 @@ interface DrawView ExecMethod = FuTemporary ; StateMethod = GetMenuState ; ] + SID_EQUALIZEWIDTH // ole : no, status : ? + [ + ExecMethod = FuTemporary ; + StateMethod = GetMenuState ; + ] + SID_EQUALIZEHEIGHT // ole : no, status : ? + [ + ExecMethod = FuTemporary ; + StateMethod = GetMenuState ; + ] SID_CONNECT // ole : no, status : ? [ ExecMethod = FuTemporary ; diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index ffbb503..90c3d59 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -2272,6 +2272,19 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) } break; + case SID_EQUALIZEWIDTH: + case SID_EQUALIZEHEIGHT: + { + // End text edit to avoid conflicts + if(mpDrawView->IsTextEdit()) + mpDrawView->SdrEndTextEdit(); + + mpDrawView->EqualizeMarkedObjects(nSId == SID_EQUALIZEWIDTH); + Cancel(); + rReq.Done (); + } + break; + case SID_DISMANTLE: // BASIC { if ( mpDrawView->IsDismantlePossible(false) ) diff --git a/sd/source/ui/view/drviewsj.cxx b/sd/source/ui/view/drviewsj.cxx index 857601f..10a3f5a 100644 --- a/sd/source/ui/view/drviewsj.cxx +++ b/sd/source/ui/view/drviewsj.cxx @@ -284,13 +284,15 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) rSet.Put(SfxBoolItem(SID_OUTLINE_TEXT_AUTOFIT, bSet)); } - rSet.DisableItem( SID_GROUP ); - rSet.DisableItem( SID_COMBINE ); + rSet.DisableItem(SID_GROUP); + rSet.DisableItem(SID_COMBINE); rSet.DisableItem(SID_DISTRIBUTE_DLG); rSet.DisableItem(SID_POLY_MERGE); rSet.DisableItem(SID_POLY_SUBSTRACT); rSet.DisableItem(SID_POLY_INTERSECT); - rSet.DisableItem( SID_CONNECT ); + rSet.DisableItem(SID_EQUALIZEWIDTH); + rSet.DisableItem(SID_EQUALIZEHEIGHT); + rSet.DisableItem(SID_CONNECT); } // multi-selection else if( nMarkCount > 1 ) @@ -377,6 +379,8 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) rSet.DisableItem(SID_POLY_MERGE); rSet.DisableItem(SID_POLY_SUBSTRACT); rSet.DisableItem(SID_POLY_INTERSECT); + rSet.DisableItem(SID_EQUALIZEWIDTH); + rSet.DisableItem(SID_EQUALIZEHEIGHT); } if (b3dObj || @@ -438,10 +442,12 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) } if ( !mpDrawView->IsCombinePossible(false) ) { - rSet.DisableItem( SID_COMBINE ); + rSet.DisableItem(SID_COMBINE); rSet.DisableItem(SID_POLY_MERGE); rSet.DisableItem(SID_POLY_SUBSTRACT); rSet.DisableItem(SID_POLY_INTERSECT); + rSet.DisableItem(SID_EQUALIZEWIDTH); + rSet.DisableItem(SID_EQUALIZEHEIGHT); } if ( !mpDrawView->IsCombinePossible(true) ) { @@ -501,6 +507,8 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) rSet.DisableItem(SID_POLY_MERGE); rSet.DisableItem(SID_POLY_SUBSTRACT); rSet.DisableItem(SID_POLY_INTERSECT); + rSet.DisableItem(SID_EQUALIZEWIDTH); + rSet.DisableItem(SID_EQUALIZEHEIGHT); rSet.DisableItem( SID_CONNECT ); rSet.DisableItem( SID_ANIMATION_EFFECTS ); rSet.DisableItem( SID_MODIFY_FIELD ); diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml index f12287b..bc8cfee 100644 --- a/sd/uiconfig/sdraw/menubar/menubar.xml +++ b/sd/uiconfig/sdraw/menubar/menubar.xml @@ -346,6 +346,9 @@ <menu:menuitem menu:id=".uno:Merge"/> <menu:menuitem menu:id=".uno:Substract"/> <menu:menuitem menu:id=".uno:Intersect"/> + <menu:menuseparator/> + <menu:menuitem menu:id=".uno:EqualizeWidth"/> + <menu:menuitem menu:id=".uno:EqualizeHeight"/> </menu:menupopup> </menu:menu> <menu:menuseparator/> diff --git a/svx/inc/globlmn_tmpl.hrc b/svx/inc/globlmn_tmpl.hrc index 9d511c8..8d82489 100644 --- a/svx/inc/globlmn_tmpl.hrc +++ b/svx/inc/globlmn_tmpl.hrc @@ -306,6 +306,20 @@ Command = ".uno:Intersect" ; \ Text [ en-US ] = "I~ntersect" ; \ }; +#define ITEM_EQUALIZEWIDTH \ + MenuItem\ + {\ + Identifier = SID_EQUALIZEWIDTH ; \ + Command = ".uno:EqualizeWidth" ; \ + Text [ en-US ] = "Equalize ~Width" ; \ + }; +#define ITEM_EQUALIZEHEIGHT \ + MenuItem\ + {\ + Identifier = SID_EQUALIZEHEIGHT ; \ + Command = ".uno:EqualizeHeight" ; \ + Text [ en-US ] = "Equalize ~Height" ; \ + }; #define MNSUB_FORMEN \ MenuItem \ @@ -320,6 +334,12 @@ ITEM_POLY_MERGE \ ITEM_POLY_SUBSTRACT \ ITEM_POLY_INTERSECT \ + MenuItem \ + { \ + Separator = TRUE; \ + }; \ + ITEM_EQUALIZEWIDTH \ + ITEM_EQUALIZEHEIGHT \ };\ };\ }; diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi index 941f3e8..b301c58 100644 --- a/svx/sdi/svx.sdi +++ b/svx/sdi/svx.sdi @@ -11100,6 +11100,53 @@ SfxVoidItem Substract SID_POLY_SUBSTRACT GroupId = GID_MODIFY; ] +SfxVoidItem EqualizeWidth SID_EQUALIZEWIDTH +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = FALSE, + HasCoreId = FALSE, + HasDialog = FALSE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Synchron; + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_MODIFY; +] + +SfxVoidItem EqualizeHeight SID_EQUALIZEHEIGHT +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = FALSE, + HasCoreId = FALSE, + HasDialog = FALSE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Synchron; + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_MODIFY; +] SfxBoolItem SuperScript SID_SET_SUPER_SCRIPT diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx index 0a60082..ad7dd3f 100644 --- a/svx/source/svdraw/svdedtv2.cxx +++ b/svx/source/svdraw/svdedtv2.cxx @@ -1173,6 +1173,44 @@ void SdrEditView::MergeMarkedObjects(SdrMergeMode eMode) } } +void SdrEditView::EqualizeMarkedObjects(bool bWidth) +{ + const SdrMarkList& rMarkList = GetMarkedObjectList(); + size_t nMarked = rMarkList.GetMarkCount(); + + if (nMarked < 2) + return; + + SdrObject* pLastSelectedObj = rMarkList.GetMark(nMarked-1)->GetMarkedSdrObj(); + Size aLastRectSize(pLastSelectedObj->GetLogicRect().GetSize()); + + const bool bUndo = IsUndoEnabled(); + + if (bUndo) + BegUndo(); + + for (size_t a = 0; a < nMarked-1; ++a) + { + SdrMark* pM = rMarkList.GetMark(a); + SdrObject* pObj = pM->GetMarkedSdrObj(); + Rectangle aLogicRect(pObj->GetLogicRect()); + Size aLogicRectSize(aLogicRect.GetSize()); + if (bWidth) + aLogicRectSize.Width() = aLastRectSize.Width(); + else + aLogicRectSize.Height() = aLastRectSize.Height(); + aLogicRect.SetSize(aLogicRectSize); + pObj->SetLogicRect(aLogicRect); + } + + SetUndoComment( + ImpGetResStr(bWidth ? STR_EqualizeWidthMarkedObjects : STR_EqualizeHeightMarkedObjects), + rMarkList.GetMarkDescription()); + + if (bUndo) + EndUndo(); +} + void SdrEditView::CombineMarkedObjects(bool bNoPolyPoly) { // #105899# Start of Combine-Undo put to front, else ConvertMarkedToPolyObj would diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src index 364749a..6dc4420 100644 --- a/svx/source/svdraw/svdstr.src +++ b/svx/source/svdraw/svdstr.src @@ -823,6 +823,14 @@ String STR_DistributeMarkedObjects { Text [ en-US ] = "Distribute selected objects"; }; +String STR_EqualizeWidthMarkedObjects +{ + Text [ en-US ] = "Equalize Width %1"; +}; +String STR_EqualizeHeightMarkedObjects +{ + Text [ en-US ] = "Equalize Height %1"; +}; String STR_EditCombine_OnePoly { Text [ en-US ] = "Combine %1" ;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits