sc/source/ui/miscdlgs/dataproviderdlg.cxx | 56 ++++++++++-------------------- sc/uiconfig/scalc/ui/dataproviderdlg.ui | 14 +++++++ 2 files changed, 34 insertions(+), 36 deletions(-)
New commits: commit 048cc17da1102b001d756dbe49f7c4f3005ab31e Author: Olivier Hallot <olivier.hal...@libreoffice.org> AuthorDate: Thu Feb 13 23:00:50 2025 -0300 Commit: Olivier Hallot <olivier.hal...@libreoffice.org> CommitDate: Tue Feb 18 14:18:10 2025 +0100 tdf#126824 Make l10n for Data Provider transforms + Moved data provider transformation names to ui file + Adjust controller PS2: transform into static array. PS3: handle thru indexes to prevent issues with reordering Change-Id: I3be6fe4c466c4b041884f3808faea44c26efe021 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181657 Reviewed-by: Olivier Hallot <olivier.hal...@libreoffice.org> Tested-by: Jenkins diff --git a/sc/source/ui/miscdlgs/dataproviderdlg.cxx b/sc/source/ui/miscdlgs/dataproviderdlg.cxx index 114da63c897c..fd9b83aded94 100644 --- a/sc/source/ui/miscdlgs/dataproviderdlg.cxx +++ b/sc/source/ui/miscdlgs/dataproviderdlg.cxx @@ -76,27 +76,6 @@ ScDataTransformationBaseControl::~ScDataTransformationBaseControl() namespace { -struct MenuData -{ - const char* aTransformationName; - std::function<void(ScDataProviderDlg*)> maCallback; -}; - -MenuData aTransformationData[] = { - { "Delete Column", &ScDataProviderDlg::deleteColumn }, - { "Delete Row", &ScDataProviderDlg::deleteRowTransformation}, - { "Swap Rows", &ScDataProviderDlg::swapRowsTransformation}, - { "Split Column", &ScDataProviderDlg::splitColumn }, - { "Merge Columns", &ScDataProviderDlg::mergeColumns }, - { "Text Transformation", &ScDataProviderDlg::textTransformation }, - { "Sort Columns", &ScDataProviderDlg::sortTransformation }, - { "Aggregate Functions", &ScDataProviderDlg::aggregateFunction}, - { "Number Transformations", &ScDataProviderDlg::numberTransformation }, - { "Replace Null Transformations", &ScDataProviderDlg::replaceNullTransformation }, - { "Date & Time Transformations", &ScDataProviderDlg::dateTimeTransformation }, - { "Find Replace Transformation", &ScDataProviderDlg::findReplaceTransformation} -}; - class ScDeleteColumnTransformationControl : public ScDataTransformationBaseControl { private: @@ -802,11 +781,6 @@ ScDataProviderDlg::ScDataProviderDlg(weld::Window* pParent, std::shared_ptr<ScDo mxDBRanges->append_text(rNamedDB->GetName()); } - for (const auto& i : aTransformationData) - { - mxTransformationBox->append_text(OUString::createFromAscii(i.aTransformationName)); - } - pDBData = new ScDBData(u"data"_ustr, 0, 0, 0, mxDoc->MaxCol(), mxDoc->MaxRow()); bool bSuccess = mxDoc->GetDBCollection()->getNamedDBs().insert(std::unique_ptr<ScDBData>(pDBData)); SAL_WARN_IF(!bSuccess, "sc", "temporary warning"); @@ -861,16 +835,26 @@ IMPL_LINK_NOARG(ScDataProviderDlg, CancelQuitHdl, weld::Button&, void) IMPL_LINK_NOARG(ScDataProviderDlg, TransformationListHdl, weld::Button&, void) { - OUString transformation_string = mxTransformationBox->get_active_text(); - for (auto& i: aTransformationData) - { - if (transformation_string == OUString::createFromAscii(i.aTransformationName)) - { - i.maCallback(this); - maIdle.Start(); - return; - } - } + static std::function<void(ScDataProviderDlg*)> aTransformationOp[12]{ + &ScDataProviderDlg::deleteColumn, + &ScDataProviderDlg::deleteRowTransformation, + &ScDataProviderDlg::swapRowsTransformation, + &ScDataProviderDlg::splitColumn, + &ScDataProviderDlg::mergeColumns, + &ScDataProviderDlg::textTransformation, + &ScDataProviderDlg::sortTransformation, + &ScDataProviderDlg::aggregateFunction, + &ScDataProviderDlg::numberTransformation, + &ScDataProviderDlg::replaceNullTransformation, + &ScDataProviderDlg::dateTimeTransformation, + &ScDataProviderDlg::findReplaceTransformation + }; + OUString rId = mxTransformationBox->get_active_id(); + int nPos = mxTransformationBox->find_id(rId); + + aTransformationOp[nPos](this); + maIdle.Start(); + return; } IMPL_LINK_NOARG(ScDataProviderDlg, ProviderSelectHdl, weld::ComboBox&, void) diff --git a/sc/uiconfig/scalc/ui/dataproviderdlg.ui b/sc/uiconfig/scalc/ui/dataproviderdlg.ui index 1661562081d0..5c00a3001260 100644 --- a/sc/uiconfig/scalc/ui/dataproviderdlg.ui +++ b/sc/uiconfig/scalc/ui/dataproviderdlg.ui @@ -273,6 +273,20 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="hexpand">True</property> + <items> + <item id="0" translatable="yes" context="dataproviderdlg|transformation_list">Delete Column</item> + <item id="1" translatable="yes" context="dataproviderdlg|transformation_list">Delete Row</item> + <item id="2" translatable="yes" context="dataproviderdlg|transformation_list">Swap Rows</item> + <item id="3" translatable="yes" context="dataproviderdlg|transformation_list">Split Column</item> + <item id="4" translatable="yes" context="dataproviderdlg|transformation_list">Merge Columns</item> + <item id="5" translatable="yes" context="dataproviderdlg|transformation_list">Text Transformation</item> + <item id="6" translatable="yes" context="dataproviderdlg|transformation_list">Sort Columns</item> + <item id="7" translatable="yes" context="dataproviderdlg|transformation_list">Aggregate Functions</item> + <item id="8" translatable="yes" context="dataproviderdlg|transformation_list">Number Transformations</item> + <item id="9" translatable="yes" context="dataproviderdlg|transformation_list">Replace Null Transformations</item> + <item id="10" translatable="yes" context="dataproviderdlg|transformation_list">Date & Time Transformations</item> + <item id="11" translatable="yes" context="dataproviderdlg|transformation_list">Find Replace Transformation</item> + </items> </object> <packing> <property name="left-attach">0</property>