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 /sw | |
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>
Diffstat (limited to 'sw')
-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 |
5 files changed, 95 insertions, 16 deletions
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 ); |