summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorPhilippe Jung <phil.jung@free.fr>2015-05-17 17:42:54 +0200
committerYousuf Philips <philipz85@hotmail.com>2015-05-20 10:31:33 +0000
commit447783a97777b2053acd74d265af3ed2a6c5c93a (patch)
treead1915b5842e4db9e3d22cd20f0e1c3b7bbcd089 /sw
parentf8b4c783c6269e108ade08cd9896b845e3b7ae3a (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.h6
-rw-r--r--sw/sdi/_tabsh.sdi18
-rw-r--r--sw/sdi/swriter.sdi52
-rw-r--r--sw/source/ui/app/mn.src18
-rw-r--r--sw/source/uibase/shells/tabsh.cxx17
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 );