tdf#79356 - Adding connector support for Calc.

Currently, the connector functionality in Calc is only available after copying such lines from Draw.
This patch adds connector functionality directly to Calc.

This functionality is available in:
1.  "Insert" -> "Shape" -> "Connectors" in Standart Toolbar (UI variants)
2.  "Insert" -> "Connectors" in Tabbed (UI variants)

Change-Id: Icae023bf123e867dbef152789d1a015ea0dfe52d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189266
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
This commit is contained in:
Irgaliev Amin
2025-08-19 10:22:28 +02:00
committed by Mike Kaganski
parent 9b8daf9015
commit 34e6b6a7c1
15 changed files with 300 additions and 12 deletions
@@ -708,6 +708,20 @@
<value>false</value>
</prop>
</node>
<node oor:name="private:resource/toolbar/connectorsbar" oor:op="replace">
<prop oor:name="Docked" oor:type="xs:boolean">
<value>false</value>
</prop>
<prop oor:name="UIName" oor:type="xs:string">
<value xml:lang="en-US">Connectors</value>
</prop>
<prop oor:name="Visible" oor:type="xs:boolean">
<value>false</value>
</prop>
<prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean">
<value>true</value>
</prop>
</node>
<node oor:name="private:resource/toolbar/arrowsbar" oor:op="replace">
<prop oor:name="Docked" oor:type="xs:boolean">
<value>false</value>
+1
View File
@@ -56,6 +56,7 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/scalc,\
sc/uiconfig/scalc/toolbar/calloutshapes \
sc/uiconfig/scalc/toolbar/classificationbar \
sc/uiconfig/scalc/toolbar/colorbar \
sc/uiconfig/scalc/toolbar/connectorsbar \
sc/uiconfig/scalc/toolbar/datastreams \
sc/uiconfig/scalc/toolbar/drawbar \
sc/uiconfig/scalc/toolbar/drawobjectbar \
+1
View File
@@ -90,6 +90,7 @@ interface TableDraw
SID_ATTRIBUTES_AREA [ ExecMethod = ExecDrawAttr; StateMethod = GetAttrFuncState; ]
SID_ATTRIBUTES_LINE [ ExecMethod = ExecDrawAttr; StateMethod = GetAttrFuncState; ]
SID_MEASURE_DLG [ ExecMethod = ExecDrawAttr; StateMethod = GetAttrFuncState; ]
SID_CONNECTION_DLG [ ExecMethod = ExecDrawAttr; StateMethod = GetAttrFuncState; ]
SID_ATTR_TRANSFORM [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; ]
// For the sidebar
+30
View File
@@ -125,6 +125,36 @@ interface BaseSelection
SID_DRAWTBX_CS_STAR [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_DRAW_CS_ID [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_DRAWTBX_CONNECTORS [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_TOOL_CONNECTOR [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_ARROW_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_ARROW_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_ARROWS [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CIRCLE_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CIRCLE_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CIRCLES [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE_ARROW_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE_ARROW_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE_ARROWS [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE_CIRCLE_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE_CIRCLE_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINE_CIRCLES [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE_ARROW_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE_ARROW_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE_ARROWS [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE_CIRCLE_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE_CIRCLE_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_CURVE_CIRCLES [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES_ARROW_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES_ARROW_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES_ARROWS [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES_CIRCLE_START [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES_CIRCLE_END [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_CONNECTOR_LINES_CIRCLES [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
SID_FM_CREATE_CONTROL [ ExecMethod = ExecDraw ; ]
SID_LINKS [ ExecMethod = ExecDrawIns; StateMethod = GetDrawInsState; ]
SID_DRAW_CHART [ ExecMethod = ExecDraw; StateMethod = GetDrawState; ]
+107
View File
@@ -151,6 +151,39 @@ void FuConstRectangle::Activate()
aObjKind = SdrObjKind::Caption;
break;
case SID_TOOL_CONNECTOR:
case SID_CONNECTOR_ARROWS:
case SID_CONNECTOR_ARROW_START:
case SID_CONNECTOR_ARROW_END:
case SID_CONNECTOR_CIRCLE_START:
case SID_CONNECTOR_CIRCLE_END:
case SID_CONNECTOR_CIRCLES:
case SID_CONNECTOR_LINE:
case SID_CONNECTOR_LINE_ARROW_START:
case SID_CONNECTOR_LINE_ARROW_END:
case SID_CONNECTOR_LINE_ARROWS:
case SID_CONNECTOR_LINE_CIRCLE_START:
case SID_CONNECTOR_LINE_CIRCLE_END:
case SID_CONNECTOR_LINE_CIRCLES:
case SID_CONNECTOR_CURVE:
case SID_CONNECTOR_CURVE_ARROW_START:
case SID_CONNECTOR_CURVE_ARROW_END:
case SID_CONNECTOR_CURVE_ARROWS:
case SID_CONNECTOR_CURVE_CIRCLE_START:
case SID_CONNECTOR_CURVE_CIRCLE_END:
case SID_CONNECTOR_CURVE_CIRCLES:
case SID_CONNECTOR_LINES:
case SID_CONNECTOR_LINES_ARROW_START:
case SID_CONNECTOR_LINES_ARROW_END:
case SID_CONNECTOR_LINES_ARROWS:
case SID_CONNECTOR_LINES_CIRCLE_START:
case SID_CONNECTOR_LINES_CIRCLE_END:
case SID_CONNECTOR_LINES_CIRCLES:
aNewPointer = PointerStyle::DrawConnect;
aObjKind = SdrObjKind::Edge;
pView->SetEditMode(SdrViewEditMode::Create);
break;
default:
aNewPointer = PointerStyle::Cross;
aObjKind = SdrObjKind::Rectangle;
@@ -172,6 +205,38 @@ void FuConstRectangle::SetLineEnds(SfxItemSet& rAttr, const SdrObject& rObj, sal
void FuConstRectangle::Deactivate()
{
sal_uInt16 nSlotId = aSfxRequest.GetSlot();
if( nSlotId == SID_TOOL_CONNECTOR ||
nSlotId == SID_CONNECTOR_ARROW_START ||
nSlotId == SID_CONNECTOR_ARROW_END ||
nSlotId == SID_CONNECTOR_ARROWS ||
nSlotId == SID_CONNECTOR_CIRCLE_START ||
nSlotId == SID_CONNECTOR_CIRCLE_END ||
nSlotId == SID_CONNECTOR_CIRCLES ||
nSlotId == SID_CONNECTOR_LINE ||
nSlotId == SID_CONNECTOR_LINE_ARROW_START ||
nSlotId == SID_CONNECTOR_LINE_ARROW_END ||
nSlotId == SID_CONNECTOR_LINE_ARROWS ||
nSlotId == SID_CONNECTOR_LINE_CIRCLE_START ||
nSlotId == SID_CONNECTOR_LINE_CIRCLE_END ||
nSlotId == SID_CONNECTOR_LINE_CIRCLES ||
nSlotId == SID_CONNECTOR_CURVE ||
nSlotId == SID_CONNECTOR_CURVE_ARROW_START ||
nSlotId == SID_CONNECTOR_CURVE_ARROW_END ||
nSlotId == SID_CONNECTOR_CURVE_ARROWS ||
nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END ||
nSlotId == SID_CONNECTOR_CURVE_CIRCLES ||
nSlotId == SID_CONNECTOR_LINES ||
nSlotId == SID_CONNECTOR_LINES_ARROW_START ||
nSlotId == SID_CONNECTOR_LINES_ARROW_END ||
nSlotId == SID_CONNECTOR_LINES_ARROWS ||
nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
nSlotId == SID_CONNECTOR_LINES_CIRCLE_END ||
nSlotId == SID_CONNECTOR_LINES_CIRCLES )
{
pView->SetEditMode(SdrViewEditMode::Edit);
}
FuConstruct::Deactivate();
rViewShell.SetActivePointer( aOldPointer );
}
@@ -263,6 +328,48 @@ rtl::Reference<SdrObject> FuConstRectangle::CreateDefaultObject(const sal_uInt16
break;
}
case SID_TOOL_CONNECTOR:
case SID_CONNECTOR_ARROW_START:
case SID_CONNECTOR_ARROW_END:
case SID_CONNECTOR_ARROWS:
case SID_CONNECTOR_CIRCLE_START:
case SID_CONNECTOR_CIRCLE_END:
case SID_CONNECTOR_CIRCLES:
case SID_CONNECTOR_LINE:
case SID_CONNECTOR_LINE_ARROW_START:
case SID_CONNECTOR_LINE_ARROW_END:
case SID_CONNECTOR_LINE_ARROWS:
case SID_CONNECTOR_LINE_CIRCLE_START:
case SID_CONNECTOR_LINE_CIRCLE_END:
case SID_CONNECTOR_LINE_CIRCLES:
case SID_CONNECTOR_CURVE:
case SID_CONNECTOR_CURVE_ARROW_START:
case SID_CONNECTOR_CURVE_ARROW_END:
case SID_CONNECTOR_CURVE_ARROWS:
case SID_CONNECTOR_CURVE_CIRCLE_START:
case SID_CONNECTOR_CURVE_CIRCLE_END:
case SID_CONNECTOR_CURVE_CIRCLES:
case SID_CONNECTOR_LINES:
case SID_CONNECTOR_LINES_ARROW_START:
case SID_CONNECTOR_LINES_ARROW_END:
case SID_CONNECTOR_LINES_ARROWS:
case SID_CONNECTOR_LINES_CIRCLE_START:
case SID_CONNECTOR_LINES_CIRCLE_END:
case SID_CONNECTOR_LINES_CIRCLES:
{
if( auto pEdgeObj = dynamic_cast< SdrEdgeObj *>( pObj.get() ) )
{
pEdgeObj->SetTailPoint(false, aStart);
pEdgeObj->SetTailPoint(true, aEnd);
}
else
{
OSL_FAIL("Object is NO connector object");
}
break;
}
default:
{
pObj->SetLogicRect(aRect);
+1
View File
@@ -136,6 +136,7 @@ bool FuDraw::MouseButtonDown(const MouseEvent& rMEvt)
bool FuDraw::MouseMove(const MouseEvent& rMEvt)
{
pView->GetSfxViewShell()->GetDrawView()->MouseMove(rMEvt, pWindow->GetOutDev());
// evaluate modifiers only if in a drawing layer action
// (don't interfere with keyboard shortcut handling)
if (pView->IsAction())
+56
View File
@@ -232,6 +232,34 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
case SID_DRAW_RECT:
case SID_DRAW_ELLIPSE:
case SID_DRAW_MEASURELINE:
case SID_TOOL_CONNECTOR:
case SID_CONNECTOR_ARROW_START:
case SID_CONNECTOR_ARROW_END:
case SID_CONNECTOR_ARROWS:
case SID_CONNECTOR_CIRCLE_START:
case SID_CONNECTOR_CIRCLE_END:
case SID_CONNECTOR_CIRCLES:
case SID_CONNECTOR_LINE:
case SID_CONNECTOR_LINE_ARROW_START:
case SID_CONNECTOR_LINE_ARROW_END:
case SID_CONNECTOR_LINE_ARROWS:
case SID_CONNECTOR_LINE_CIRCLE_START:
case SID_CONNECTOR_LINE_CIRCLE_END:
case SID_CONNECTOR_LINE_CIRCLES:
case SID_CONNECTOR_CURVE:
case SID_CONNECTOR_CURVE_ARROW_START:
case SID_CONNECTOR_CURVE_ARROW_END:
case SID_CONNECTOR_CURVE_ARROWS:
case SID_CONNECTOR_CURVE_CIRCLE_START:
case SID_CONNECTOR_CURVE_CIRCLE_END:
case SID_CONNECTOR_CURVE_CIRCLES:
case SID_CONNECTOR_LINES:
case SID_CONNECTOR_LINES_ARROW_START:
case SID_CONNECTOR_LINES_ARROW_END:
case SID_CONNECTOR_LINES_ARROWS:
case SID_CONNECTOR_LINES_CIRCLE_START:
case SID_CONNECTOR_LINES_CIRCLE_END:
case SID_CONNECTOR_LINES_CIRCLES:
pTabView->SetDrawFuncPtr(new FuConstRectangle(*this, pWin, pView, rModel, aNewReq));
bCreateDirectly = comphelper::LibreOfficeKit::isActive();
break;
@@ -431,6 +459,34 @@ void ScTabViewShell::GetDrawState(SfxItemSet &rSet)
case SID_DRAW_TEXT:
case SID_DRAW_TEXT_MARQUEE:
case SID_DRAW_CAPTION:
case SID_TOOL_CONNECTOR:
case SID_CONNECTOR_ARROW_START:
case SID_CONNECTOR_ARROW_END:
case SID_CONNECTOR_ARROWS:
case SID_CONNECTOR_CIRCLE_START:
case SID_CONNECTOR_CIRCLE_END:
case SID_CONNECTOR_CIRCLES:
case SID_CONNECTOR_LINE:
case SID_CONNECTOR_LINE_ARROW_START:
case SID_CONNECTOR_LINE_ARROW_END:
case SID_CONNECTOR_LINE_ARROWS:
case SID_CONNECTOR_LINE_CIRCLE_START:
case SID_CONNECTOR_LINE_CIRCLE_END:
case SID_CONNECTOR_LINE_CIRCLES:
case SID_CONNECTOR_CURVE:
case SID_CONNECTOR_CURVE_ARROW_START:
case SID_CONNECTOR_CURVE_ARROW_END:
case SID_CONNECTOR_CURVE_ARROWS:
case SID_CONNECTOR_CURVE_CIRCLE_START:
case SID_CONNECTOR_CURVE_CIRCLE_END:
case SID_CONNECTOR_CURVE_CIRCLES:
case SID_CONNECTOR_LINES:
case SID_CONNECTOR_LINES_ARROW_START:
case SID_CONNECTOR_LINES_ARROW_END:
case SID_CONNECTOR_LINES_ARROWS:
case SID_CONNECTOR_LINES_CIRCLE_START:
case SID_CONNECTOR_LINES_CIRCLE_END:
case SID_CONNECTOR_LINES_CIRCLES:
rSet.Put( SfxBoolItem( nWhich, nDrawSfxId == nWhich ) );
break;
+1
View File
@@ -243,6 +243,7 @@
<menu:menuitem menu:id=".uno:Polygon_Diagonal"/>
</menu:menupopup>
</menu:menu>
<menu:menuitem menu:id=".uno:ConnectorToolbox"/>
<menu:menuitem menu:id=".uno:BasicShapes"/>
<menu:menuitem menu:id=".uno:ArrowShapes"/>
<menu:menuitem menu:id=".uno:SymbolShapes"/>
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
<toolbar:toolbaritem xlink:href=".uno:ConnectorArrowEnd"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowEnd"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowEnd"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowEnd"/>
<toolbar:toolbarbreak/>
<toolbar:toolbaritem xlink:href=".uno:Connector"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLine"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurve"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLines"/>
<toolbar:toolbarbreak/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorArrows"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrows"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrows"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrows"/>
<toolbar:toolbarbreak/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:visible="false"/>
<toolbar:toolbarbreak/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:visible="false"/>
<toolbar:toolbarbreak/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:visible="false"/>
<toolbar:toolbarbreak/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:visible="false"/>
</toolbar:toolbar>
+1
View File
@@ -21,6 +21,7 @@
<toolbar:toolbaritem xlink:href=".uno:SelectObject"/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:Line"/>
<toolbar:toolbaritem xlink:href=".uno:ConnectorToolbox"/>
<toolbar:toolbaritem xlink:href=".uno:ArrowsToolbox"/>
<toolbar:toolbaritem xlink:href=".uno:LineToolbox"/>
<toolbar:toolbaritem xlink:href=".uno:Freeline" toolbar:visible="false"/>
+2 -12
View File
@@ -5402,19 +5402,9 @@
</packing>
</child>
<child>
<object class="GtkToolButton" id="Insert-Polygon_Unfilled1">
<object class="GtkToolButton" id="Insert-ConnectorToolbox">
<property name="visible">True</property>
<property name="action_name">.uno:Polygon_Unfilled</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="Insert-Bezier_Unfilled1">
<property name="visible">True</property>
<property name="action_name">.uno:Bezier_Unfilled</property>
<property name="action_name">.uno:ConnectorToolbox</property>
</object>
<packing>
<property name="expand">False</property>
@@ -5404,6 +5404,16 @@
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="Insert-ConnectorToolbox">
<property name="visible">True</property>
<property name="action_name">.uno:ConnectorToolbox</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="Insert-ArrowsToolbox">
<property name="visible">True</property>
@@ -6403,6 +6403,16 @@
<property name="homogeneous">False</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="Draw-ConnectorToolbox">
<property name="visible">True</property>
<property name="action_name">.uno:ConnectorToolbox</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="Draw-ArrowsToolbox">
<property name="visible">True</property>
@@ -7503,6 +7503,16 @@
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="ConnectorToolbox">
<property name="visible">True</property>
<property name="action_name">.uno:ConnectorToolbox</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="ArrowsToolbox">
<property name="visible">True</property>
@@ -1174,6 +1174,7 @@ gb_emscripten_fs_image_files += \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/sparkline.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/statusbar/statusbar.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/toolbar/alignmentbar.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/toolbar/connectorsbar.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/toolbar/arrowsbar.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/toolbar/arrowshapes.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/toolbar/basicshapes.xml \