diff options
author | Philippe Jung <phil.jung@free.fr> | 2015-05-17 17:42:54 +0200 |
---|---|---|
committer | Yousuf Philips <philipz85@hotmail.com> | 2015-05-20 10:31:33 +0000 |
commit | 447783a97777b2053acd74d265af3ed2a6c5c93a (patch) | |
tree | ad1915b5842e4db9e3d22cd20f0e1c3b7bbcd089 | |
parent | f8b4c783c6269e108ade08cd9896b845e3b7ae3a (diff) |
tdf#90882 Writer: insert row/col before/after
From the contextual menu, it is now possible to insert rows or cols
before the current position.
Number of rows/cols inserted is based on current selection.
Change-Id: Ie1a718fbb1b8caf67716f9c8fad21f90d182ca79
Reviewed-on: https://gerrit.libreoffice.org/15773
Reviewed-by: Yousuf Philips <philipz85@hotmail.com>
Tested-by: Yousuf Philips <philipz85@hotmail.com>
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu | 24 | ||||
-rw-r--r-- | sw/inc/cmdid.h | 6 | ||||
-rw-r--r-- | sw/sdi/_tabsh.sdi | 18 | ||||
-rw-r--r-- | sw/sdi/swriter.sdi | 52 | ||||
-rw-r--r-- | sw/source/ui/app/mn.src | 18 | ||||
-rw-r--r-- | sw/source/uibase/shells/tabsh.cxx | 17 |
6 files changed, 115 insertions, 20 deletions
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu index 40ddf828cf97..87e92348329f 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu @@ -1118,9 +1118,17 @@ <value>1</value> </prop> </node> - <node oor:name=".uno:InsertRows" oor:op="replace"> + <node oor:name=".uno:InsertRowsBelow" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">Insert Row Below</value> + <value xml:lang="en-US">Insert Rows Below</value> + </prop> + <prop oor:name="Properties" oor:type="xs:int"> + <value>1</value> + </prop> + </node> + <node oor:name=".uno:InsertRowsAfter" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Insert Rows After</value> </prop> <prop oor:name="Properties" oor:type="xs:int"> <value>1</value> @@ -1134,9 +1142,17 @@ <value>1</value> </prop> </node> - <node oor:name=".uno:InsertColumns" oor:op="replace"> + <node oor:name=".uno:InsertColumnsBefore" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Insert Columns Left</value> + </prop> + <prop oor:name="Properties" oor:type="xs:int"> + <value>1</value> + </prop> + </node> + <node oor:name=".uno:InsertColumnsAfter" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">Insert Column Right</value> + <value xml:lang="en-US">Insert Columns Right</value> </prop> <prop oor:name="Properties" oor:type="xs:int"> <value>1</value> diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index dda4a381a20f..e07ca6fda4e0 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -334,8 +334,8 @@ #define FN_TABLE_REP (FN_FORMAT + 99) /* TableRepresentation */ #define FN_CONVERT_TEXT_TABLE (FN_FORMAT + 100) /* convert text <-> table */ -#define FN_TABLE_INSERT_ROW (FN_FORMAT + 101) /* */ -#define FN_TABLE_INSERT_COL (FN_FORMAT + 102) /* */ +#define FN_TABLE_INSERT_ROW_AFTER (FN_FORMAT + 101) /* */ +#define FN_TABLE_INSERT_COL_AFTER (FN_FORMAT + 102) /* */ #define FN_TABLE_DELETE_ROW (FN_FORMAT + 103) /* */ #define FN_TABLE_DELETE_COL (FN_FORMAT + 104) /* */ #define FN_TABLE_SPLIT_CELLS (FN_FORMAT + 105) /* */ @@ -343,6 +343,8 @@ #define FN_TABLE_SET_ROW_HEIGHT (FN_FORMAT + 107) /* */ #define FN_TABLE_SET_COL_WIDTH (FN_FORMAT + 108) /* */ #define FN_OPTIMIZE_TABLE (FN_FORMAT + 110) /* ToolBoxItem for optimizing tables */ +#define FN_TABLE_INSERT_ROW_BEFORE (FN_FORMAT + 111) /* */ +#define FN_TABLE_INSERT_COL_BEFORE (FN_FORMAT + 112) /* */ #define FN_TABLE_SELECT_ROW (FN_FORMAT + 113) /* */ #define FN_TABLE_SELECT_COL (FN_FORMAT + 114) /* */ #define FN_TABLE_SELECT_ALL (FN_FORMAT + 115) /* */ diff --git a/sw/sdi/_tabsh.sdi b/sw/sdi/_tabsh.sdi index c7405728b0f9..63792fe7b0e7 100644 --- a/sw/sdi/_tabsh.sdi +++ b/sw/sdi/_tabsh.sdi @@ -141,7 +141,14 @@ interface BaseTextTable StateMethod = NoState ; ] - FN_TABLE_INSERT_COL // status(final|play) + FN_TABLE_INSERT_COL_BEFORE // status(final|play) + [ + ExecMethod = Execute ; + StateMethod = NoState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] + + FN_TABLE_INSERT_COL_AFTER // status(final|play) [ ExecMethod = Execute ; StateMethod = NoState ; @@ -155,7 +162,14 @@ interface BaseTextTable DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] - FN_TABLE_INSERT_ROW // status(final|play) + FN_TABLE_INSERT_ROW_BEFORE // status(final|play) + [ + ExecMethod = Execute ; + StateMethod = GetState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] + + FN_TABLE_INSERT_ROW_AFTER // status(final|play) [ ExecMethod = Execute ; StateMethod = GetState ; diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index deea1c010e7e..c7d9dfdda9e3 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -3610,7 +3610,31 @@ SfxVoidItem InsertColumnDialog FN_TABLE_INSERT_COL_DLG GroupId = GID_TABLE; ] -SfxVoidItem InsertColumns FN_TABLE_INSERT_COL +SfxVoidItem InsertColumnsBefore FN_TABLE_INSERT_COL_BEFORE +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = TRUE, + HasCoreId = FALSE, + HasDialog = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Asynchron; + + /* config: */ + AccelConfig = FALSE, + MenuConfig = FALSE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_TABLE; +] + +SfxVoidItem InsertColumnsAfter FN_TABLE_INSERT_COL_AFTER () [ /* flags: */ @@ -4356,7 +4380,31 @@ SfxVoidItem InsertRowDialog FN_TABLE_INSERT_ROW_DLG GroupId = GID_TABLE; ] -SfxVoidItem InsertRows FN_TABLE_INSERT_ROW +SfxVoidItem InsertRowsBefore FN_TABLE_INSERT_ROW_BEFORE +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = TRUE, + HasCoreId = FALSE, + HasDialog = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Asynchron; + + /* config: */ + AccelConfig = FALSE, + MenuConfig = FALSE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_TABLE; +] + +SfxVoidItem InsertRowsAfter FN_TABLE_INSERT_ROW_AFTER () [ /* flags: */ diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src index e41eebdaa0cd..18ed7207f728 100644 --- a/sw/source/ui/app/mn.src +++ b/sw/source/ui/app/mn.src @@ -259,8 +259,13 @@ {\ MenuItem\ {\ - Identifier = FN_TABLE_INSERT_ROW ; \ - Text [ en-US ] = "Row Below" ; \ + Identifier = FN_TABLE_INSERT_ROW_BEFORE ; \ + Text [ en-US ] = "Rows Above" ; \ + };\ + MenuItem\ + {\ + Identifier = FN_TABLE_INSERT_ROW_AFTER ; \ + Text [ en-US ] = "Rows Below" ; \ };\ MenuItem\ {\ @@ -271,8 +276,13 @@ SEPARATOR ; \ MenuItem\ {\ - Identifier = FN_TABLE_INSERT_COL ; \ - Text [ en-US ] = "Column Right" ; \ + Identifier = FN_TABLE_INSERT_COL_BEFORE ; \ + Text [ en-US ] = "Columns Left" ; \ + };\ + MenuItem\ + {\ + Identifier = FN_TABLE_INSERT_COL_AFTER ; \ + Text [ en-US ] = "Columns Right" ; \ };\ MenuItem\ {\ diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx index 586261803f11..7f0028122917 100644 --- a/sw/source/uibase/shells/tabsh.cxx +++ b/sw/source/uibase/shells/tabsh.cxx @@ -820,10 +820,13 @@ void SwTableShell::Execute(SfxRequest &rReq) OSL_ENSURE( false, "function may not be called now." ); break; - case FN_TABLE_INSERT_COL: - case FN_TABLE_INSERT_ROW: + case FN_TABLE_INSERT_COL_BEFORE: + case FN_TABLE_INSERT_ROW_BEFORE: + case FN_TABLE_INSERT_COL_AFTER: + case FN_TABLE_INSERT_ROW_AFTER: { - bool bColumn = rReq.GetSlot() == FN_TABLE_INSERT_COL; + bool bColumn = rReq.GetSlot() == FN_TABLE_INSERT_COL_BEFORE + || rReq.GetSlot() == FN_TABLE_INSERT_COL_AFTER; sal_uInt16 nCount = 0; bool bAfter = true; if (pItem) @@ -855,7 +858,9 @@ void SwTableShell::Execute(SfxRequest &rReq) nCount = maxX - minX + 1; else nCount = maxY - minY + 1; - } + } + bAfter = rReq.GetSlot() == FN_TABLE_INSERT_COL_AFTER + || rReq.GetSlot() == FN_TABLE_INSERT_ROW_AFTER; } if( nCount ) @@ -914,7 +919,7 @@ void SwTableShell::Execute(SfxRequest &rReq) if( pDlg.get() && (pDlg->Execute() == 1) ) { const sal_uInt16 nDispatchSlot = (nSlot == FN_TABLE_INSERT_COL_DLG) - ? FN_TABLE_INSERT_COL : FN_TABLE_INSERT_ROW; + ? FN_TABLE_INSERT_COL_AFTER : FN_TABLE_INSERT_ROW_AFTER; SfxUInt16Item aCountItem( nDispatchSlot, static_cast< sal_uInt16 >(pDlg->getInsertCount()) ); SfxBoolItem aAfter( FN_PARAM_INSERT_AFTER, !pDlg->isInsertBefore() ); SfxViewFrame* pVFrame = GetView().GetViewFrame(); @@ -1246,7 +1251,7 @@ void SwTableShell::GetState(SfxItemSet &rSet) } break; } - case FN_TABLE_INSERT_ROW: + case FN_TABLE_INSERT_ROW_AFTER: case FN_TABLE_INSERT_ROW_DLG: if ( rSh.IsInRepeatedHeadline() ) rSet.DisableItem( nSlot ); |