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 @@ ...@@ -1118,9 +1118,17 @@
<value>1</value> <value>1</value>
</prop> </prop>
</node> </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"> <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>
<prop oor:name="Properties" oor:type="xs:int"> <prop oor:name="Properties" oor:type="xs:int">
<value>1</value> <value>1</value>
...@@ -1134,9 +1142,17 @@ ...@@ -1134,9 +1142,17 @@
<value>1</value> <value>1</value>
</prop> </prop>
</node> </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"> <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>
<prop oor:name="Properties" oor:type="xs:int"> <prop oor:name="Properties" oor:type="xs:int">
<value>1</value> <value>1</value>
......
...@@ -334,8 +334,8 @@ ...@@ -334,8 +334,8 @@
#define FN_TABLE_REP (FN_FORMAT + 99) /* TableRepresentation */ #define FN_TABLE_REP (FN_FORMAT + 99) /* TableRepresentation */
#define FN_CONVERT_TEXT_TABLE (FN_FORMAT + 100) /* convert text <-> table */ #define FN_CONVERT_TEXT_TABLE (FN_FORMAT + 100) /* convert text <-> table */
#define FN_TABLE_INSERT_ROW (FN_FORMAT + 101) /* */ #define FN_TABLE_INSERT_ROW_AFTER (FN_FORMAT + 101) /* */
#define FN_TABLE_INSERT_COL (FN_FORMAT + 102) /* */ #define FN_TABLE_INSERT_COL_AFTER (FN_FORMAT + 102) /* */
#define FN_TABLE_DELETE_ROW (FN_FORMAT + 103) /* */ #define FN_TABLE_DELETE_ROW (FN_FORMAT + 103) /* */
#define FN_TABLE_DELETE_COL (FN_FORMAT + 104) /* */ #define FN_TABLE_DELETE_COL (FN_FORMAT + 104) /* */
#define FN_TABLE_SPLIT_CELLS (FN_FORMAT + 105) /* */ #define FN_TABLE_SPLIT_CELLS (FN_FORMAT + 105) /* */
...@@ -343,6 +343,8 @@ ...@@ -343,6 +343,8 @@
#define FN_TABLE_SET_ROW_HEIGHT (FN_FORMAT + 107) /* */ #define FN_TABLE_SET_ROW_HEIGHT (FN_FORMAT + 107) /* */
#define FN_TABLE_SET_COL_WIDTH (FN_FORMAT + 108) /* */ #define FN_TABLE_SET_COL_WIDTH (FN_FORMAT + 108) /* */
#define FN_OPTIMIZE_TABLE (FN_FORMAT + 110) /* ToolBoxItem for optimizing tables */ #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_ROW (FN_FORMAT + 113) /* */
#define FN_TABLE_SELECT_COL (FN_FORMAT + 114) /* */ #define FN_TABLE_SELECT_COL (FN_FORMAT + 114) /* */
#define FN_TABLE_SELECT_ALL (FN_FORMAT + 115) /* */ #define FN_TABLE_SELECT_ALL (FN_FORMAT + 115) /* */
......
...@@ -141,7 +141,14 @@ interface BaseTextTable ...@@ -141,7 +141,14 @@ interface BaseTextTable
StateMethod = NoState ; 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 ; ExecMethod = Execute ;
StateMethod = NoState ; StateMethod = NoState ;
...@@ -155,7 +162,14 @@ interface BaseTextTable ...@@ -155,7 +162,14 @@ interface BaseTextTable
DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; 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 ; ExecMethod = Execute ;
StateMethod = GetState ; StateMethod = GetState ;
......
...@@ -3610,7 +3610,31 @@ SfxVoidItem InsertColumnDialog FN_TABLE_INSERT_COL_DLG ...@@ -3610,7 +3610,31 @@ SfxVoidItem InsertColumnDialog FN_TABLE_INSERT_COL_DLG
GroupId = GID_TABLE; 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: */ /* flags: */
...@@ -4356,7 +4380,31 @@ SfxVoidItem InsertRowDialog FN_TABLE_INSERT_ROW_DLG ...@@ -4356,7 +4380,31 @@ SfxVoidItem InsertRowDialog FN_TABLE_INSERT_ROW_DLG
GroupId = GID_TABLE; 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: */ /* flags: */
......
...@@ -259,8 +259,13 @@ ...@@ -259,8 +259,13 @@
{\ {\
MenuItem\ MenuItem\
{\ {\
Identifier = FN_TABLE_INSERT_ROW ; \ Identifier = FN_TABLE_INSERT_ROW_BEFORE ; \
Text [ en-US ] = "Row Below" ; \ Text [ en-US ] = "Rows Above" ; \
};\
MenuItem\
{\
Identifier = FN_TABLE_INSERT_ROW_AFTER ; \
Text [ en-US ] = "Rows Below" ; \
};\ };\
MenuItem\ MenuItem\
{\ {\
...@@ -271,8 +276,13 @@ ...@@ -271,8 +276,13 @@
SEPARATOR ; \ SEPARATOR ; \
MenuItem\ MenuItem\
{\ {\
Identifier = FN_TABLE_INSERT_COL ; \ Identifier = FN_TABLE_INSERT_COL_BEFORE ; \
Text [ en-US ] = "Column Right" ; \ Text [ en-US ] = "Columns Left" ; \
};\
MenuItem\
{\
Identifier = FN_TABLE_INSERT_COL_AFTER ; \
Text [ en-US ] = "Columns Right" ; \
};\ };\
MenuItem\ MenuItem\
{\ {\
......
...@@ -820,10 +820,13 @@ void SwTableShell::Execute(SfxRequest &rReq) ...@@ -820,10 +820,13 @@ void SwTableShell::Execute(SfxRequest &rReq)
OSL_ENSURE( false, "function may not be called now." ); OSL_ENSURE( false, "function may not be called now." );
break; break;
case FN_TABLE_INSERT_COL: case FN_TABLE_INSERT_COL_BEFORE:
case FN_TABLE_INSERT_ROW: 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; sal_uInt16 nCount = 0;
bool bAfter = true; bool bAfter = true;
if (pItem) if (pItem)
...@@ -855,7 +858,9 @@ void SwTableShell::Execute(SfxRequest &rReq) ...@@ -855,7 +858,9 @@ void SwTableShell::Execute(SfxRequest &rReq)
nCount = maxX - minX + 1; nCount = maxX - minX + 1;
else else
nCount = maxY - minY + 1; nCount = maxY - minY + 1;
} }
bAfter = rReq.GetSlot() == FN_TABLE_INSERT_COL_AFTER
|| rReq.GetSlot() == FN_TABLE_INSERT_ROW_AFTER;
} }
if( nCount ) if( nCount )
...@@ -914,7 +919,7 @@ void SwTableShell::Execute(SfxRequest &rReq) ...@@ -914,7 +919,7 @@ void SwTableShell::Execute(SfxRequest &rReq)
if( pDlg.get() && (pDlg->Execute() == 1) ) if( pDlg.get() && (pDlg->Execute() == 1) )
{ {
const sal_uInt16 nDispatchSlot = (nSlot == FN_TABLE_INSERT_COL_DLG) 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()) ); SfxUInt16Item aCountItem( nDispatchSlot, static_cast< sal_uInt16 >(pDlg->getInsertCount()) );
SfxBoolItem aAfter( FN_PARAM_INSERT_AFTER, !pDlg->isInsertBefore() ); SfxBoolItem aAfter( FN_PARAM_INSERT_AFTER, !pDlg->isInsertBefore() );
SfxViewFrame* pVFrame = GetView().GetViewFrame(); SfxViewFrame* pVFrame = GetView().GetViewFrame();
...@@ -1246,7 +1251,7 @@ void SwTableShell::GetState(SfxItemSet &rSet) ...@@ -1246,7 +1251,7 @@ void SwTableShell::GetState(SfxItemSet &rSet)
} }
break; break;
} }
case FN_TABLE_INSERT_ROW: case FN_TABLE_INSERT_ROW_AFTER:
case FN_TABLE_INSERT_ROW_DLG: case FN_TABLE_INSERT_ROW_DLG:
if ( rSh.IsInRepeatedHeadline() ) if ( rSh.IsInRepeatedHeadline() )
rSet.DisableItem( nSlot ); 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