Kaydet (Commit) 447783a9 authored tarafından Philippe Jung's avatar Philippe Jung Kaydeden (comit) Yousuf Philips

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/15773Reviewed-by: 's avatarYousuf Philips <philipz85@hotmail.com>
Tested-by: 's avatarYousuf Philips <philipz85@hotmail.com>
üst f8b4c783
......@@ -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>
......
......@@ -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) /* */
......
......@@ -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 ;
......
......@@ -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: */
......
......@@ -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\
{\
......
......@@ -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 );
......
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