summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-02-14 10:38:00 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-02-14 22:04:26 +0100
commitc57dc7d41bd62f933cffab6131edb7252606382d (patch)
tree2fd6d8b1b0457986c02982dce7d0dfd3f7f66986
parent038634b63e997db80c09af3c6493364fa4431bcf (diff)
weld ScDPNumGroupDlg
Change-Id: I5f5861a1f39307133f4c87e4d5ca50ced24409ba Reviewed-on: https://gerrit.libreoffice.org/67813 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sc/inc/scabstdlg.hxx4
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.cxx14
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.hxx13
-rw-r--r--sc/source/ui/cctrl/editfield.cxx25
-rw-r--r--sc/source/ui/dbgui/dpgroupdlg.cxx111
-rw-r--r--sc/source/ui/inc/dpgroupdlg.hxx57
-rw-r--r--sc/source/ui/inc/editfield.hxx17
-rw-r--r--sc/source/ui/view/cellsh1.cxx2
-rw-r--r--sc/uiconfig/scalc/ui/groupbynumber.ui35
-rw-r--r--solenv/sanitizers/ui/modules/scalc.suppr1
10 files changed, 207 insertions, 72 deletions
diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx
index f272b1a31ced..f4e48b1e063b 100644
--- a/sc/inc/scabstdlg.hxx
+++ b/sc/inc/scabstdlg.hxx
@@ -482,8 +482,8 @@ public:
const ScPivotFuncData& rFuncData,
const ScDPNameVec& rDataFields ) = 0;
- virtual VclPtr<AbstractScDPNumGroupDlg> CreateScDPNumGroupDlg( vcl::Window* pParent,
- const ScDPNumGroupInfo& rInfo ) = 0;
+ virtual VclPtr<AbstractScDPNumGroupDlg> CreateScDPNumGroupDlg(weld::Window* pParent,
+ const ScDPNumGroupInfo& rInfo) = 0;
virtual VclPtr<AbstractScDPDateGroupDlg> CreateScDPDateGroupDlg( vcl::Window* pParent,
const ScDPNumGroupInfo& rInfo,
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index fa64f1848b80..3f24dc09439a 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -168,7 +168,12 @@ short AbstractScNamePasteDlg_Impl::Execute()
IMPL_ABSTDLG_BASE(AbstractScPivotFilterDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScDPFunctionDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScDPSubtotalDlg_Impl);
-IMPL_ABSTDLG_BASE(AbstractScDPNumGroupDlg_Impl);
+
+short AbstractScDPNumGroupDlg_Impl::Execute()
+{
+ return m_xDlg->run();
+}
+
IMPL_ABSTDLG_BASE(AbstractScDPDateGroupDlg_Impl);
short AbstractScDPShowDetailDlg_Impl::Execute()
@@ -614,7 +619,7 @@ void AbstractScDPSubtotalDlg_Impl::FillLabelData( ScDPLabelData& rLabelData ) co
ScDPNumGroupInfo AbstractScDPNumGroupDlg_Impl::GetGroupInfo() const
{
- return pDlg->GetGroupInfo();
+ return m_xDlg->GetGroupInfo();
}
ScDPNumGroupInfo AbstractScDPDateGroupDlg_Impl::GetGroupInfo() const
@@ -914,10 +919,9 @@ VclPtr<AbstractScDPSubtotalDlg> ScAbstractDialogFactory_Impl::CreateScDPSubtotal
return VclPtr<AbstractScDPSubtotalDlg_Impl>::Create( pDlg );
}
-VclPtr<AbstractScDPNumGroupDlg> ScAbstractDialogFactory_Impl::CreateScDPNumGroupDlg(
- vcl::Window* pParent, const ScDPNumGroupInfo& rInfo )
+VclPtr<AbstractScDPNumGroupDlg> ScAbstractDialogFactory_Impl::CreateScDPNumGroupDlg(weld::Window* pParent, const ScDPNumGroupInfo& rInfo)
{
- return VclPtr<AbstractScDPNumGroupDlg_Impl>::Create( VclPtr<ScDPNumGroupDlg>::Create( pParent, rInfo ) );
+ return VclPtr<AbstractScDPNumGroupDlg_Impl>::Create(new ScDPNumGroupDlg(pParent, rInfo));
}
VclPtr<AbstractScDPDateGroupDlg> ScAbstractDialogFactory_Impl::CreateScDPDateGroupDlg(
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx
index 1d1b8ce4fa2e..ddee8f8607ea 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -406,7 +406,14 @@ class AbstractScDPSubtotalDlg_Impl : public AbstractScDPSubtotalDlg
class AbstractScDPNumGroupDlg_Impl : public AbstractScDPNumGroupDlg
{
- DECL_ABSTDLG_BASE( AbstractScDPNumGroupDlg_Impl, ScDPNumGroupDlg )
+protected:
+ std::unique_ptr<ScDPNumGroupDlg> m_xDlg;
+public:
+ explicit AbstractScDPNumGroupDlg_Impl(ScDPNumGroupDlg* p)
+ : m_xDlg(p)
+ {
+ }
+ virtual short Execute() override;
virtual ScDPNumGroupInfo GetGroupInfo() const override;
};
@@ -649,8 +656,8 @@ public:
const ScPivotFuncData& rFuncData,
const ScDPNameVec& rDataFields ) override;
- virtual VclPtr<AbstractScDPNumGroupDlg> CreateScDPNumGroupDlg( vcl::Window* pParent,
- const ScDPNumGroupInfo& rInfo ) override;
+ virtual VclPtr<AbstractScDPNumGroupDlg> CreateScDPNumGroupDlg(weld::Window* pParent,
+ const ScDPNumGroupInfo& rInfo) override;
virtual VclPtr<AbstractScDPDateGroupDlg> CreateScDPDateGroupDlg( vcl::Window* pParent,
const ScDPNumGroupInfo& rInfo,
diff --git a/sc/source/ui/cctrl/editfield.cxx b/sc/source/ui/cctrl/editfield.cxx
index 6583e2b6fe0d..0f69edcab60d 100644
--- a/sc/source/ui/cctrl/editfield.cxx
+++ b/sc/source/ui/cctrl/editfield.cxx
@@ -67,4 +67,29 @@ void ScDoubleField::SetValue( double fValue, sal_Int32 nDecPlaces )
nDecPlaces, lclGetDecSep(), true/*bEraseTrailingDecZeros*/ ) );
}
+DoubleField::DoubleField(std::unique_ptr<weld::Entry> xEntry)
+ : m_xEntry(std::move(xEntry))
+{
+}
+
+bool DoubleField::GetValue( double& rfValue ) const
+{
+ OUString aStr(comphelper::string::strip(m_xEntry->get_text(), ' '));
+ bool bOk = !aStr.isEmpty();
+ if( bOk )
+ {
+ rtl_math_ConversionStatus eStatus;
+ sal_Int32 nEnd;
+ rfValue = ScGlobal::GetpLocaleData()->stringToDouble( aStr, true, &eStatus, &nEnd );
+ bOk = (eStatus == rtl_math_ConversionStatus_Ok) && (nEnd == aStr.getLength() );
+ }
+ return bOk;
+}
+
+void DoubleField::SetValue( double fValue, sal_Int32 nDecPlaces )
+{
+ m_xEntry->set_text( ::rtl::math::doubleToUString( fValue, rtl_math_StringFormat_G,
+ nDecPlaces, lclGetDecSep(), true/*bEraseTrailingDecZeros*/ ) );
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/dbgui/dpgroupdlg.cxx b/sc/source/ui/dbgui/dpgroupdlg.cxx
index 60522c0a8e28..f1e3f3f927ad 100644
--- a/sc/source/ui/dbgui/dpgroupdlg.cxx
+++ b/sc/source/ui/dbgui/dpgroupdlg.cxx
@@ -107,10 +107,62 @@ IMPL_LINK( ScDPGroupEditHelper, ClickHdl, Button*, pButton, void )
}
}
-ScDPNumGroupEditHelper::ScDPNumGroupEditHelper(
- RadioButton* pRbAuto, RadioButton* pRbMan, ScDoubleField* pEdValue ) :
- ScDPGroupEditHelper( pRbAuto, pRbMan, pEdValue ),
- mpEdValue( pEdValue )
+DPGroupEditHelper::DPGroupEditHelper(weld::RadioButton* pRbAuto, weld::RadioButton* pRbMan, weld::Entry* pEdValue)
+ : mpRbAuto(pRbAuto)
+ , mpRbMan(pRbMan)
+ , mpEdValue(pEdValue)
+{
+ mpRbAuto->connect_clicked( LINK( this, DPGroupEditHelper, ClickHdl ) );
+ mpRbMan->connect_clicked( LINK( this, DPGroupEditHelper, ClickHdl ) );
+}
+
+bool DPGroupEditHelper::IsAuto() const
+{
+ return mpRbAuto->get_active();
+}
+
+double DPGroupEditHelper::GetValue() const
+{
+ double fValue;
+ if( !ImplGetValue( fValue ) )
+ fValue = 0.0;
+ return fValue;
+}
+
+void DPGroupEditHelper::SetValue( bool bAuto, double fValue )
+{
+ if( bAuto )
+ {
+ mpRbAuto->set_active(true);
+ ClickHdl(*mpRbAuto);
+ }
+ else
+ {
+ mpRbMan->set_active(true);
+ ClickHdl(*mpRbMan);
+ }
+ ImplSetValue( fValue );
+}
+
+IMPL_LINK(DPGroupEditHelper, ClickHdl, weld::Button&, rButton, void)
+{
+ if (&rButton == mpRbAuto)
+ {
+ // disable edit field on clicking "automatic" radio button
+ mpEdValue->set_sensitive(false);
+ }
+ else if (&rButton == mpRbMan)
+ {
+ // enable and set focus to edit field on clicking "manual" radio button
+ mpEdValue->set_sensitive(true);
+ mpEdValue->grab_focus();
+ }
+}
+
+ScDPNumGroupEditHelper::ScDPNumGroupEditHelper(weld::RadioButton* pRbAuto,
+ weld::RadioButton* pRbMan, DoubleField* pEdValue)
+ : DPGroupEditHelper(pRbAuto, pRbMan, pEdValue->get_widget())
+ , mpEdValue(pEdValue)
{
}
@@ -145,51 +197,36 @@ void ScDPDateGroupEditHelper::ImplSetValue( double fValue )
mpEdValue->SetDate( aDate );
}
-ScDPNumGroupDlg::ScDPNumGroupDlg( vcl::Window* pParent, const ScDPNumGroupInfo& rInfo ) :
- ModalDialog ( pParent, "PivotTableGroupByNumber", "modules/scalc/ui/groupbynumber.ui" ),
- mpRbAutoStart ( get<RadioButton>("auto_start") ),
- mpRbManStart ( get<RadioButton>("manual_start") ),
- mpEdStart ( get<ScDoubleField> ("edit_start") ),
- mpRbAutoEnd ( get<RadioButton> ( "auto_end" ) ),
- mpRbManEnd ( get<RadioButton> ("manual_end") ),
- mpEdEnd ( get<ScDoubleField>( "edit_end") ),
- mpEdBy ( get<ScDoubleField> ("edit_by") ),
- maStartHelper ( mpRbAutoStart, mpRbManStart, mpEdStart ),
- maEndHelper ( mpRbAutoEnd, mpRbManEnd, mpEdEnd )
+ScDPNumGroupDlg::ScDPNumGroupDlg(weld::Window* pParent, const ScDPNumGroupInfo& rInfo)
+ : GenericDialogController(pParent, "modules/scalc/ui/groupbynumber.ui", "PivotTableGroupByNumber")
+ , mxRbAutoStart(m_xBuilder->weld_radio_button("auto_start"))
+ , mxRbManStart(m_xBuilder->weld_radio_button("manual_start"))
+ , mxEdStart(new DoubleField(m_xBuilder->weld_entry("edit_start")))
+ , mxRbAutoEnd(m_xBuilder->weld_radio_button("auto_end"))
+ , mxRbManEnd(m_xBuilder->weld_radio_button("manual_end"))
+ , mxEdEnd(new DoubleField(m_xBuilder->weld_entry("edit_end")))
+ , mxEdBy(new DoubleField(m_xBuilder->weld_entry("edit_by")))
+ , maStartHelper(mxRbAutoStart.get(), mxRbManStart.get(), mxEdStart.get())
+ , maEndHelper(mxRbAutoEnd.get(), mxRbManEnd.get(), mxEdEnd.get())
{
-
maStartHelper.SetValue( rInfo.mbAutoStart, rInfo.mfStart );
maEndHelper.SetValue( rInfo.mbAutoEnd, rInfo.mfEnd );
- mpEdBy->SetValue( (rInfo.mfStep <= 0.0) ? 1.0 : rInfo.mfStep );
+ mxEdBy->SetValue( (rInfo.mfStep <= 0.0) ? 1.0 : rInfo.mfStep );
/* Set the initial focus, currently it is somewhere after calling all the radio
button click handlers. Now the first enabled editable control is focused. */
- if( mpEdStart->IsEnabled() )
- mpEdStart->GrabFocus();
- else if( mpEdEnd->IsEnabled() )
- mpEdEnd->GrabFocus();
+ if (mxEdStart->get_sensitive())
+ mxEdStart->grab_focus();
+ else if (mxEdEnd->get_sensitive())
+ mxEdEnd->grab_focus();
else
- mpEdBy->GrabFocus();
+ mxEdBy->grab_focus();
}
ScDPNumGroupDlg::~ScDPNumGroupDlg()
{
- disposeOnce();
}
-void ScDPNumGroupDlg::dispose()
-{
- mpRbAutoStart.clear();
- mpRbManStart.clear();
- mpEdStart.clear();
- mpRbAutoEnd.clear();
- mpRbManEnd.clear();
- mpEdEnd.clear();
- mpEdBy.clear();
- ModalDialog::dispose();
-}
-
-
ScDPNumGroupInfo ScDPNumGroupDlg::GetGroupInfo() const
{
ScDPNumGroupInfo aInfo;
@@ -202,7 +239,7 @@ ScDPNumGroupInfo ScDPNumGroupDlg::GetGroupInfo() const
// TODO: error messages in OK event?
aInfo.mfStart = maStartHelper.GetValue();
aInfo.mfEnd = maEndHelper.GetValue();
- if( !mpEdBy->GetValue( aInfo.mfStep ) || (aInfo.mfStep <= 0.0) )
+ if( !mxEdBy->GetValue( aInfo.mfStep ) || (aInfo.mfStep <= 0.0) )
aInfo.mfStep = 1.0;
if( aInfo.mfEnd <= aInfo.mfStart )
aInfo.mfEnd = aInfo.mfStart + aInfo.mfStep;
diff --git a/sc/source/ui/inc/dpgroupdlg.hxx b/sc/source/ui/inc/dpgroupdlg.hxx
index 01737a65000b..00d5943dc643 100644
--- a/sc/source/ui/inc/dpgroupdlg.hxx
+++ b/sc/source/ui/inc/dpgroupdlg.hxx
@@ -23,6 +23,7 @@
#include <vcl/dialog.hxx>
#include <vcl/button.hxx>
#include <vcl/field.hxx>
+#include <vcl/weld.hxx>
#include <svx/checklbx.hxx>
#include "editfield.hxx"
#include <dpnumgroupinfo.hxx>
@@ -53,12 +54,39 @@ private:
VclPtr<Edit> mpEdValue;
};
-class ScDPNumGroupEditHelper : public ScDPGroupEditHelper
+class DPGroupEditHelper
+{
+public:
+ explicit DPGroupEditHelper(
+ weld::RadioButton* rRbAuto, weld::RadioButton* rRbMan,
+ weld::Entry* rEdValue );
+
+ bool IsAuto() const;
+ double GetValue() const;
+ void SetValue( bool bAuto, double fValue );
+
+protected:
+ ~DPGroupEditHelper() {}
+
+private:
+ virtual bool ImplGetValue( double& rfValue ) const = 0;
+ virtual void ImplSetValue( double fValue ) = 0;
+
+ DECL_LINK(ClickHdl, weld::Button&, void);
+
+private:
+ weld::RadioButton* mpRbAuto;
+ weld::RadioButton* mpRbMan;
+ weld::Entry* mpEdValue;
+};
+
+
+class ScDPNumGroupEditHelper : public DPGroupEditHelper
{
public:
explicit ScDPNumGroupEditHelper(
- RadioButton* pRbAuto, RadioButton* pRbMan,
- ScDoubleField* pEdValue );
+ weld::RadioButton* pRbAuto, weld::RadioButton* pRbMan,
+ DoubleField* pEdValue );
virtual ~ScDPNumGroupEditHelper() {}
private:
@@ -66,7 +94,7 @@ private:
virtual void ImplSetValue( double fValue ) override;
private:
- VclPtr<ScDoubleField> mpEdValue;
+ DoubleField* mpEdValue;
};
class ScDPDateGroupEditHelper : public ScDPGroupEditHelper
@@ -87,22 +115,21 @@ private:
Date const maNullDate;
};
-class ScDPNumGroupDlg : public ModalDialog
+class ScDPNumGroupDlg : public weld::GenericDialogController
{
public:
- explicit ScDPNumGroupDlg( vcl::Window* pParent, const ScDPNumGroupInfo& rInfo );
- virtual ~ScDPNumGroupDlg() override;
- virtual void dispose() override;
+ explicit ScDPNumGroupDlg(weld::Window* pParent, const ScDPNumGroupInfo& rInfo);
+ virtual ~ScDPNumGroupDlg() override;
ScDPNumGroupInfo GetGroupInfo() const;
private:
- VclPtr<RadioButton> mpRbAutoStart;
- VclPtr<RadioButton> mpRbManStart;
- VclPtr<ScDoubleField> mpEdStart;
- VclPtr<RadioButton> mpRbAutoEnd;
- VclPtr<RadioButton> mpRbManEnd;
- VclPtr<ScDoubleField> mpEdEnd;
- VclPtr<ScDoubleField> mpEdBy;
+ std::unique_ptr<weld::RadioButton> mxRbAutoStart;
+ std::unique_ptr<weld::RadioButton> mxRbManStart;
+ std::unique_ptr<DoubleField> mxEdStart;
+ std::unique_ptr<weld::RadioButton> mxRbAutoEnd;
+ std::unique_ptr<weld::RadioButton> mxRbManEnd;
+ std::unique_ptr<DoubleField> mxEdEnd;
+ std::unique_ptr<DoubleField> mxEdBy;
ScDPNumGroupEditHelper maStartHelper;
ScDPNumGroupEditHelper maEndHelper;
};
diff --git a/sc/source/ui/inc/editfield.hxx b/sc/source/ui/inc/editfield.hxx
index fa27d4710b16..4ab170ceacb0 100644
--- a/sc/source/ui/inc/editfield.hxx
+++ b/sc/source/ui/inc/editfield.hxx
@@ -21,6 +21,7 @@
#define INCLUDED_SC_SOURCE_UI_INC_EDITFIELD_HXX
#include <vcl/edit.hxx>
+#include <vcl/weld.hxx>
/** An edit control that contains a double precision floating-point value. */
class ScDoubleField : public Edit
@@ -33,6 +34,22 @@ public:
sal_Int32 nDecPlaces = 12 );
};
+class DoubleField
+{
+private:
+ std::unique_ptr<weld::Entry> m_xEntry;
+public:
+ explicit DoubleField(std::unique_ptr<weld::Entry> xEntry);
+
+ bool GetValue(double& rfValue) const;
+ void SetValue(double fValue, sal_Int32 nDecPlaces = 12);
+
+ weld::Entry* get_widget() { return m_xEntry.get(); }
+
+ void grab_focus() { m_xEntry->grab_focus(); }
+ bool get_sensitive() const { return m_xEntry->get_sensitive(); }
+};
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 0694c87e40e2..88e7b85cb428 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -1128,7 +1128,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
{
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
ScopedVclPtr<AbstractScDPNumGroupDlg> pDlg( pFact->CreateScDPNumGroupDlg(
- pTabViewShell->GetDialogParent(), aNumInfo ) );
+ pTabViewShell->GetFrameWeld(), aNumInfo ) );
if( pDlg->Execute() == RET_OK )
pTabViewShell->NumGroupDataPilot( pDlg->GetGroupInfo() );
}
diff --git a/sc/uiconfig/scalc/ui/groupbynumber.ui b/sc/uiconfig/scalc/ui/groupbynumber.ui
index ed6a95a75bbf..242919880a5c 100644
--- a/sc/uiconfig/scalc/ui/groupbynumber.ui
+++ b/sc/uiconfig/scalc/ui/groupbynumber.ui
@@ -1,14 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="sc">
<requires lib="gtk+" version="3.18"/>
- <requires lib="LibreOffice" version="1.0"/>
<object class="GtkDialog" id="PivotTableGroupByNumber">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="groupbynumber|PivotTableGroupByNumber">Grouping</property>
<property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
+ <child>
+ <placeholder/>
+ </child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
@@ -23,6 +28,7 @@
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
@@ -38,6 +44,7 @@
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="can_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
@@ -105,7 +112,6 @@
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
- <property name="group">manual_start</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -120,9 +126,11 @@
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
- <property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">auto_start</property>
+ <accessibility>
+ <relation type="label-for" target="edit_start"/>
+ </accessibility>
</object>
<packing>
<property name="left_attach">0</property>
@@ -130,10 +138,14 @@
</packing>
</child>
<child>
- <object class="scuilo-ScDoubleField" id="edit_start">
+ <object class="GtkEntry" id="edit_start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
+ <accessibility>
+ <relation type="labelled-by" target="manual_start"/>
+ </accessibility>
</object>
<packing>
<property name="left_attach">1</property>
@@ -194,7 +206,6 @@
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
- <property name="group">manual_end</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -209,9 +220,11 @@
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
- <property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">auto_end</property>
+ <accessibility>
+ <relation type="label-for" target="edit_end"/>
+ </accessibility>
</object>
<packing>
<property name="left_attach">0</property>
@@ -219,10 +232,13 @@
</packing>
</child>
<child>
- <object class="scuilo-ScDoubleField" id="edit_end">
+ <object class="GtkEntry" id="edit_end">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <accessibility>
+ <relation type="labelled-by" target="manual_end"/>
+ </accessibility>
</object>
<packing>
<property name="left_attach">1</property>
@@ -266,9 +282,10 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="scuilo-ScDoubleField" id="edit_by">
+ <object class="GtkEntry" id="edit_by">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="activates_default">True</property>
</object>
</child>
</object>
diff --git a/solenv/sanitizers/ui/modules/scalc.suppr b/solenv/sanitizers/ui/modules/scalc.suppr
index 3ce7f2635669..ffed06f1dca5 100644
--- a/solenv/sanitizers/ui/modules/scalc.suppr
+++ b/solenv/sanitizers/ui/modules/scalc.suppr
@@ -75,6 +75,7 @@ sc/uiconfig/scalc/ui/functionpanel.ui://GtkLabel[@id='funcdesc:border'] orphan-l
sc/uiconfig/scalc/ui/groupbydate.ui://GtkSpinButton[@id='start_date:yy:mm:dd'] no-labelled-by
sc/uiconfig/scalc/ui/groupbydate.ui://GtkSpinButton[@id='end_date:yy:mm:dd'] no-labelled-by
sc/uiconfig/scalc/ui/groupbydate.ui://GtkSpinButton[@id='days_value'] no-labelled-by
+sc/uiconfig/scalc/ui/groupbynumber.ui://GtkEntry[@id='edit_by'] no-labelled-by
sc/uiconfig/scalc/ui/headerfootercontent.ui://GtkLabel[@id='labelFT_H_CUSTOM'] orphan-label
sc/uiconfig/scalc/ui/headerfootercontent.ui://GtkLabel[@id='labelFT_F_CUSTOM'] orphan-label
sc/uiconfig/scalc/ui/headerfootercontent.ui://GtkLabel[@id='label2'] orphan-label