Kaydet (Commit) 5f116966 authored tarafından giacco's avatar giacco Kaydeden (comit) jan iversen

tdf#87700 command to rotate 180 degrees

added command to rotate an image 180 degrees in Writer

Change-Id: I4a1e40f4c3475aceb24edd44691a74372f61b49a
Reviewed-on: https://gerrit.libreoffice.org/30074Reviewed-by: 's avatarJan Holesovsky <kendy@collabora.com>
Reviewed-by: 's avatarHeiko Tietze <tietze.heiko@googlemail.com>
Reviewed-by: 's avatarjan iversen <jani@documentfoundation.org>
Tested-by: 's avatarjan iversen <jani@documentfoundation.org>
üst 5c983bc2
......@@ -947,6 +947,8 @@
#define SID_ATTR_SPECIALCHAR ( SID_SVX_START + 1120 )
#define SID_ROTATE_GRAPHIC_LEFT ( SID_SVX_START + 1121 )
#define SID_ROTATE_GRAPHIC_RIGHT ( SID_SVX_START + 1122 )
#define SID_ROTATE_GRAPHIC_180 ( SID_SVX_START + 1123 )
// new slots for panels
#define SID_ATTR_FILL_TRANSPARENCE ( SID_SVX_START + 1124 )
......
......@@ -980,6 +980,14 @@
<value>1</value>
</prop>
</node>
<node oor:name=".uno:Rotate180" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Rotate 1~80°</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
<value>1</value>
</prop>
</node>
<node oor:name=".uno:NewHtmlDoc" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Create ~HTML Document</value>
......
......@@ -4395,7 +4395,22 @@ SfxVoidItem RotateLeft SID_ROTATE_GRAPHIC_LEFT
ToolBoxConfig = TRUE,
GroupId = GID_GRAPHIC;
]
SfxVoidItem Rotate180 SID_ROTATE_GRAPHIC_180
[
AutoUpdate = FALSE,
FastCall = FALSE,
ReadOnlyDoc = TRUE,
Toggle = FALSE,
Container = FALSE,
RecordAbsolute = FALSE,
RecordPerSet;
AccelConfig = TRUE,
MenuConfig = TRUE,
ToolBoxConfig = TRUE,
GroupId = GID_GRAPHIC;
]
SfxVoidItem RotateRight SID_ROTATE_GRAPHIC_RIGHT
[
......
......@@ -80,6 +80,13 @@ interface BaseTextGraphic
DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
]
SID_ROTATE_GRAPHIC_180
[
ExecMethod = ExecuteRotation ;
StateMethod = GetAttrStateForRotation ;
DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
]
SID_ROTATE_GRAPHIC_RIGHT
[
ExecMethod = ExecuteRotation ;
......
......@@ -849,6 +849,10 @@ void SwGrfShell::ExecuteRotation(SfxRequest &rReq)
{
aRotation = 2700;
}
else if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_180)
{
aRotation = 1800;
}
else
{
return;
......@@ -863,12 +867,23 @@ void SwGrfShell::ExecuteRotation(SfxRequest &rReq)
rShell.ReRead(OUString(), OUString(), const_cast<const Graphic*>(&aGraphic));
SwFlyFrameAttrMgr aManager(false, &rShell, rShell.IsFrameSelected() ? Frmmgr_Type::NONE : Frmmgr_Type::GRF);
const long nRotatedWidth = aManager.GetSize().Height();
const long nRotatedHeight = aManager.GetSize().Width();
long nRotatedWidth = 0;
long nRotatedHeight = 0;
if(rReq.GetSlot() == SID_ROTATE_GRAPHIC_180)
{
nRotatedWidth = aManager.GetSize().Width();
nRotatedHeight = aManager.GetSize().Height();
}
else
{
nRotatedWidth = aManager.GetSize().Height();
nRotatedHeight = aManager.GetSize().Width();
}
Size aSize(nRotatedWidth, nRotatedHeight);
aManager.SetSize(aSize);
aManager.UpdateFlyFrame();
SfxItemSet aSet( rShell.GetAttrPool(), RES_GRFATR_CROPGRF, RES_GRFATR_CROPGRF );
rShell.GetCurAttr( aSet );
SwCropGrf aCrop( static_cast<const SwCropGrf&>( aSet.Get(RES_GRFATR_CROPGRF) ) );
......@@ -888,6 +903,13 @@ void SwGrfShell::ExecuteRotation(SfxRequest &rReq)
aCrop.SetRight( aCropRectangle.Top() );
aCrop.SetBottom( aCropRectangle.Right() );
}
else if (rReq.GetSlot() == SID_ROTATE_GRAPHIC_180)
{
aCrop.SetLeft( aCropRectangle.Right() );
aCrop.SetTop( aCropRectangle.Bottom() );
aCrop.SetRight( aCropRectangle.Left() );
aCrop.SetBottom( aCropRectangle.Top() );
}
rShell.SetAttrItem(aCrop);
......@@ -911,6 +933,7 @@ void SwGrfShell::GetAttrStateForRotation(SfxItemSet &rSet)
{
case SID_ROTATE_GRAPHIC_LEFT:
case SID_ROTATE_GRAPHIC_RIGHT:
case SID_ROTATE_GRAPHIC_180:
if( rShell.GetGraphicType() == GraphicType::NONE )
{
bDisable = true;
......
......@@ -328,6 +328,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:GroupMenu">
......
......@@ -58,6 +58,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -30,6 +30,7 @@
<toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
<toolbar:toolbaritem xlink:href=".uno:RotateLeft" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:RotateRight" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Rotate180" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Crop" toolbar:helpid=""/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
......
......@@ -273,6 +273,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:GroupMenu">
......
......@@ -58,6 +58,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -327,6 +327,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:GroupMenu">
......
......@@ -58,6 +58,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -30,6 +30,7 @@
<toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
<toolbar:toolbaritem xlink:href=".uno:RotateLeft" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:RotateRight" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Rotate180" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Crop" toolbar:helpid=""/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
......
......@@ -329,6 +329,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:GroupMenu">
......
......@@ -58,6 +58,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -30,6 +30,7 @@
<toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
<toolbar:toolbaritem xlink:href=".uno:RotateLeft" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:RotateRight" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Rotate180" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Crop" toolbar:helpid=""/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
......
......@@ -547,6 +547,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:GroupMenu">
......
......@@ -58,6 +58,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -28,6 +28,7 @@
<toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
<toolbar:toolbaritem xlink:href=".uno:RotateLeft" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:RotateRight" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Rotate180" toolbar:helpid=""/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="10869"/>
<toolbar:toolbarseparator/>
......
......@@ -5358,6 +5358,32 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="sfxlo-NotebookbarToolBox" id="rotate2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
<child>
<object class="GtkToolButton" id="Rotate180">
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="is_important">True</property>
<property name="action_name">.uno:Rotate180</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
......
......@@ -329,6 +329,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:GroupMenu">
......
......@@ -58,6 +58,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:RotateLeft"/>
<menu:menuitem menu:id=".uno:RotateRight"/>
<menu:menuitem menu:id=".uno:Rotate180"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -30,6 +30,7 @@
<toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
<toolbar:toolbaritem xlink:href=".uno:RotateLeft" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:RotateRight" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Rotate180" toolbar:helpid=""/>
<toolbar:toolbaritem xlink:href=".uno:Crop" toolbar:helpid=""/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment