summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortushar <tusharrai282@gmail.com>2021-06-09 01:56:48 +0530
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2021-07-03 20:51:04 +0200
commit7b4169c9d54c6e90e860141a6ced51464cf102d8 (patch)
treef68c5f205153a31f45c6a6cfb5736227b2c0469b
parentf5ff7a967b09a715c56630aff92cfb636e7c232b (diff)
Implement Interface for Data Providers.
Change-Id: I83ec43511d4fd9a91d7ec34e2281f80b19b4d562 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116870 Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r--sc/UIConfig_scalc.mk1
-rw-r--r--sc/source/ui/inc/dataproviderdlg.hxx39
-rw-r--r--sc/source/ui/miscdlgs/dataproviderdlg.cxx310
-rw-r--r--sc/source/ui/miscdlgs/datatableview.cxx2
-rw-r--r--sc/uiconfig/scalc/ui/aggregatefunctionentry.ui184
-rw-r--r--sc/uiconfig/scalc/ui/dataproviderdlg.ui412
-rw-r--r--sc/uiconfig/scalc/ui/dataproviderentry.ui108
-rw-r--r--sc/uiconfig/scalc/ui/datetimetransformationentry.ui212
-rw-r--r--sc/uiconfig/scalc/ui/deletecolumnentry.ui123
-rw-r--r--sc/uiconfig/scalc/ui/mergecolumnentry.ui159
-rw-r--r--sc/uiconfig/scalc/ui/numbertransformationentry.ui202
-rw-r--r--sc/uiconfig/scalc/ui/replacenulltransformationentry.ui171
-rw-r--r--sc/uiconfig/scalc/ui/sorttransformationentry.ui144
-rw-r--r--sc/uiconfig/scalc/ui/splitcolumnentry.ui160
-rw-r--r--sc/uiconfig/scalc/ui/texttransformationentry.ui165
-rw-r--r--solenv/sanitizers/ui/modules/scalc.suppr23
16 files changed, 1041 insertions, 1374 deletions
diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk
index 3d11cfdbf18c..705aee221cbf 100644
--- a/sc/UIConfig_scalc.mk
+++ b/sc/UIConfig_scalc.mk
@@ -113,7 +113,6 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
sc/uiconfig/scalc/ui/dataformfragment \
sc/uiconfig/scalc/ui/datastreams \
sc/uiconfig/scalc/ui/dataproviderdlg \
- sc/uiconfig/scalc/ui/dataproviderentry \
sc/uiconfig/scalc/ui/definedatabaserangedialog \
sc/uiconfig/scalc/ui/definename \
sc/uiconfig/scalc/ui/deletecells \
diff --git a/sc/source/ui/inc/dataproviderdlg.hxx b/sc/source/ui/inc/dataproviderdlg.hxx
index d056fa386006..582df71e5c22 100644
--- a/sc/source/ui/inc/dataproviderdlg.hxx
+++ b/sc/source/ui/inc/dataproviderdlg.hxx
@@ -9,6 +9,8 @@
#pragma once
+#include <datamapper.hxx>
+
#include <sal/config.h>
#include <com/sun/star/awt/XWindow.hpp>
@@ -18,7 +20,6 @@
#include <memory>
class ScDocument;
-class ScDataProviderBaseControl;
class ScDataTransformationBaseControl;
class ScDBData;
@@ -26,15 +27,25 @@ class ScDataProviderDlg : public weld::GenericDialogController
{
private:
std::shared_ptr<ScDocument> mxDoc;
- std::unique_ptr<weld::Menu> mxStartMenu;
- std::unique_ptr<weld::Menu> mxColumnMenu;
std::unique_ptr<weld::Container> mxBox;
css::uno::Reference<css::awt::XWindow> m_xTableParent;
VclPtr<ScDataTableView> mxTable;
- std::unique_ptr<weld::ScrolledWindow> mxScroll;
std::unique_ptr<weld::Container> mxList;
- std::unique_ptr<ScDataProviderBaseControl> mxDataProviderCtrl;
std::unique_ptr<weld::ComboBox> mxDBRanges;
+ std::unique_ptr<weld::Button> mxOKBtn;
+ std::unique_ptr<weld::Button> mxCancelBtn;
+ std::unique_ptr<weld::Button> mxAddTransformationBtn;
+ std::unique_ptr<weld::ScrolledWindow> mxScroll;
+ std::unique_ptr<weld::Container> mxTransformationList;
+ std::unique_ptr<weld::ComboBox> mxTransformationBox;
+ std::unique_ptr<weld::ComboBox> mxProviderList;
+ std::unique_ptr<weld::Entry> mxEditURL;
+ std::unique_ptr<weld::Entry> mxEditID;
+ std::unique_ptr<weld::Button> mxApplyBtn;
+ std::unique_ptr<weld::Button> mxBrowseBtn;
+
+ OUString msApplyTooltip;
+ OUString msAddTransformationToolTip;
std::vector<std::unique_ptr<ScDataTransformationBaseControl>> maControls;
@@ -43,12 +54,18 @@ private:
sal_uInt32 mnIndex;
ScDBData* pDBData;
- void InitMenu();
-
DECL_LINK(StartMenuHdl, const OString&, void);
- DECL_LINK(ColumnMenuHdl, const OString&, void);
- DECL_LINK(ImportHdl, ScDataProviderBaseControl*, void);
+ DECL_LINK(ColumnMenuHdl, const weld::ComboBox&, void);
DECL_LINK(ScrollToEnd, Timer*, void);
+ DECL_LINK(ApplyQuitHdl, weld::Button&, void);
+ DECL_LINK(CancelQuitHdl, weld::Button&, void);
+ DECL_LINK(TransformationListHdl, weld::Button&, void);
+ DECL_LINK(ProviderSelectHdl, weld::ComboBox&, void);
+ DECL_LINK(TransformationSelectHdl, weld::ComboBox&, void);
+ DECL_LINK(IDEditHdl, weld::Entry&, void);
+ DECL_LINK(URLEditHdl, weld::Entry&, void);
+ DECL_LINK(ApplyBtnHdl, weld::Button&, void);
+ DECL_LINK(BrowseBtnHdl, weld::Button&, void);
public:
ScDataProviderDlg(weld::Window* pWindow, std::shared_ptr<ScDocument> pDoc,
@@ -68,6 +85,10 @@ public:
void deletefromList(sal_uInt32 nIndex);
void replaceNullTransformation();
void dateTimeTransformation();
+ void updateApplyBtn(bool bValidConfig);
+ void isValid();
+
+ sc::ExternalDataSource getDataSource(ScDocument* pDoc);
void import(ScDocument& rDoc, bool bInternal = false);
};
diff --git a/sc/source/ui/miscdlgs/dataproviderdlg.cxx b/sc/source/ui/miscdlgs/dataproviderdlg.cxx
index d41c3842488c..757ea7634778 100644
--- a/sc/source/ui/miscdlgs/dataproviderdlg.cxx
+++ b/sc/source/ui/miscdlgs/dataproviderdlg.cxx
@@ -17,116 +17,12 @@
#include <comphelper/string.hxx>
#include <sal/log.hxx>
+#include <sfx2/filedlghelper.hxx>
#include <unotools/charclass.hxx>
#include <vcl/svapp.hxx>
#include <utility>
-class ScDataProviderBaseControl
-{
- std::unique_ptr<weld::Builder> mxBuilder;
- std::unique_ptr<weld::Container> mxGrid;
- std::unique_ptr<weld::ComboBox> mxProviderList;
- std::unique_ptr<weld::Entry> mxEditURL;
- std::unique_ptr<weld::Entry> mxEditID;
- std::unique_ptr<weld::Button> mxApplyBtn;
-
- OUString msApplyTooltip;
-
- Link<ScDataProviderBaseControl*, void> maImportCallback;
-
- DECL_LINK(ProviderSelectHdl, weld::ComboBox&, void);
- DECL_LINK(IDEditHdl, weld::Entry&, void);
- DECL_LINK(URLEditHdl, weld::Entry&, void);
- DECL_LINK(ApplyBtnHdl, weld::Button&, void);
-
- void updateApplyBtn(bool bValidConfig);
-
-public:
- ScDataProviderBaseControl(weld::Container* pParent, const Link<ScDataProviderBaseControl*, void>& rImportCallback);
-
- void isValid();
-
- sc::ExternalDataSource getDataSource(ScDocument* pDoc);
-};
-
-ScDataProviderBaseControl::ScDataProviderBaseControl(weld::Container* pParent,
- const Link<ScDataProviderBaseControl*, void>& rImportCallback)
- : mxBuilder(Application::CreateBuilder(pParent, "modules/scalc/ui/dataproviderentry.ui"))
- , mxGrid(mxBuilder->weld_container("grid"))
- , mxProviderList(mxBuilder->weld_combo_box("provider_lst"))
- , mxEditURL(mxBuilder->weld_entry("ed_url"))
- , mxEditID(mxBuilder->weld_entry("ed_id"))
- , mxApplyBtn(mxBuilder->weld_button("apply"))
- , maImportCallback(rImportCallback)
-{
- auto aDataProvider = sc::DataProviderFactory::getDataProviders();
- for (const auto& rDataProvider : aDataProvider)
- {
- mxProviderList->append_text(rDataProvider);
- }
-
- mxProviderList->connect_changed(LINK(this, ScDataProviderBaseControl, ProviderSelectHdl));
- mxEditID->connect_changed(LINK(this, ScDataProviderBaseControl, IDEditHdl));
- mxEditURL->connect_changed(LINK(this, ScDataProviderBaseControl, URLEditHdl));
-
- msApplyTooltip = mxApplyBtn->get_tooltip_text();
- mxApplyBtn->connect_clicked(LINK(this, ScDataProviderBaseControl, ApplyBtnHdl));
- isValid();
-}
-
-void ScDataProviderBaseControl::isValid()
-{
- bool bValid = !mxProviderList->get_active_text().isEmpty();
- bValid &= !mxEditURL->get_text().isEmpty();
- updateApplyBtn(bValid);
-}
-
-sc::ExternalDataSource ScDataProviderBaseControl::getDataSource(ScDocument* pDoc)
-{
- OUString aURL = mxEditURL->get_text();
- OUString aProvider = mxProviderList->get_active_text();
- sc::ExternalDataSource aSource(aURL, aProvider, pDoc);
-
- OUString aID = mxEditID->get_text();
- aSource.setID(aID);
- return aSource;
-}
-
-void ScDataProviderBaseControl::updateApplyBtn(bool bValidConfig)
-{
- if (!bValidConfig)
- {
- mxApplyBtn->set_sensitive(false);
- mxApplyBtn->set_tooltip_text(OUString());
- return;
- }
-
- mxApplyBtn->set_sensitive(true);
- mxApplyBtn->set_tooltip_text(msApplyTooltip);
-}
-
-IMPL_LINK_NOARG(ScDataProviderBaseControl, ProviderSelectHdl, weld::ComboBox&, void)
-{
- isValid();
-}
-
-IMPL_LINK_NOARG(ScDataProviderBaseControl, IDEditHdl, weld::Entry&, void)
-{
- isValid();
-}
-
-IMPL_LINK_NOARG(ScDataProviderBaseControl, URLEditHdl, weld::Entry&, void)
-{
- isValid();
-}
-
-IMPL_LINK_NOARG(ScDataProviderBaseControl, ApplyBtnHdl, weld::Button&, void)
-{
- updateApplyBtn(true);
- maImportCallback.Call(this);
-}
-
class ScDataTransformationBaseControl
{
protected:
@@ -162,26 +58,20 @@ namespace {
struct MenuData
{
- int nMenuID;
- const char* aMenuName;
+ const char* aTransformationName;
std::function<void(ScDataProviderDlg*)> maCallback;
};
-MenuData aStartData[] = {
- { 0, "Apply & Quit", &ScDataProviderDlg::applyAndQuit },
- { 1, "Cancel & Quit", &ScDataProviderDlg::cancelAndQuit }
-};
-
-MenuData aColumnData[] = {
- { 0, "Delete Column", &ScDataProviderDlg::deleteColumn },
- { 1, "Split Column", &ScDataProviderDlg::splitColumn },
- { 2, "Merge Columns", &ScDataProviderDlg::mergeColumns },
- { 3, "Text Transformation", &ScDataProviderDlg::textTransformation },
- { 4, "Sort Columns", &ScDataProviderDlg::sortTransformation },
- { 5, "Aggregate Functions", &ScDataProviderDlg::aggregateFunction},
- { 6, "Number Transformations", &ScDataProviderDlg::numberTransformation },
- { 7, "Replace Null Transformations", &ScDataProviderDlg::replaceNullTransformation },
- { 8, "Date & Time Transformations", &ScDataProviderDlg::dateTimeTransformation }
+MenuData aTransformationData[] = {
+ { "Delete Column", &ScDataProviderDlg::deleteColumn },
+ { "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 }
};
class ScDeleteColumnTransformationControl : public ScDataTransformationBaseControl
@@ -235,7 +125,7 @@ class ScSplitColumnTransformationControl : public ScDataTransformationBaseContro
{
private:
std::unique_ptr<weld::Entry> mxSeparator;
- std::unique_ptr<weld::SpinButton> mxNumColumns;
+ std::unique_ptr<weld::Entry> mxNumColumns;
std::unique_ptr<weld::Button> mxDelete;
SCCOL mnCol;
std::function<void(sal_uInt32&)> maDeleteTransformation;
@@ -252,7 +142,7 @@ ScSplitColumnTransformationControl::ScSplitColumnTransformationControl(
std::function<void(sal_uInt32&)> aDeleteTransformation)
: ScDataTransformationBaseControl(pParent, "modules/scalc/ui/splitcolumnentry.ui", nIndex)
, mxSeparator(mxBuilder->weld_entry("ed_separator"))
- , mxNumColumns(mxBuilder->weld_spin_button("num_cols"))
+ , mxNumColumns(mxBuilder->weld_entry("num_cols"))
, mxDelete(mxBuilder->weld_button("ed_delete"))
, mnCol(nCol)
, maDeleteTransformation(std::move(aDeleteTransformation))
@@ -330,7 +220,7 @@ std::shared_ptr<sc::DataTransformation> ScMergeColumnTransformationControl::getT
class ScSortTransformationControl : public ScDataTransformationBaseControl
{
private:
- std::unique_ptr<weld::CheckButton> mxAscending;
+ std::unique_ptr<weld::ComboBox> mxType;
std::unique_ptr<weld::Entry> mxEdColumns;
std::unique_ptr<weld::Button> mxDelete;
std::function<void(sal_uInt32&)> maDeleteTransformation;
@@ -346,7 +236,7 @@ public:
ScSortTransformationControl::ScSortTransformationControl(
const ScDocument* pDoc, weld::Container* pParent, sal_uInt32 nIndex, std::function<void(sal_uInt32&)> aDeleteTransformation)
: ScDataTransformationBaseControl(pParent, "modules/scalc/ui/sorttransformationentry.ui", nIndex)
- , mxAscending(mxBuilder->weld_check_button("ed_ascending"))
+ , mxType(mxBuilder->weld_combo_box("ed_ascending"))
, mxEdColumns(mxBuilder->weld_entry("ed_columns"))
, mxDelete(mxBuilder->weld_button("ed_delete"))
, maDeleteTransformation(std::move(aDeleteTransformation))
@@ -358,7 +248,7 @@ ScSortTransformationControl::ScSortTransformationControl(
std::shared_ptr<sc::DataTransformation> ScSortTransformationControl::getTransformation()
{
OUString aColStr = mxEdColumns->get_text();
- bool aIsAscending = mxAscending->get_active();
+ bool aIsAscending = mxType->get_active();
SCCOL aColumn = 0;
sal_Int32 nCol = aColStr.toInt32();
if (nCol > 0 && nCol <= mpDoc->MaxCol())
@@ -729,15 +619,21 @@ ScDataProviderDlg::ScDataProviderDlg(weld::Window* pParent, std::shared_ptr<ScDo
const ScDocument* pDocument)
: GenericDialogController(pParent, "modules/scalc/ui/dataproviderdlg.ui", "dataproviderdlg")
, mxDoc(std::move(pDoc))
- , mxStartMenu(m_xBuilder->weld_menu("start"))
- , mxColumnMenu(m_xBuilder->weld_menu("column"))
, mxBox(m_xBuilder->weld_container("data_table"))
, m_xTableParent(mxBox->CreateChildFrame())
, mxTable(VclPtr<ScDataTableView>::Create(m_xTableParent))
- , mxScroll(m_xBuilder->weld_scrolled_window("scroll"))
- , mxList(m_xBuilder->weld_container("operation_ctrl"))
- , mxDataProviderCtrl(new ScDataProviderBaseControl(mxList.get(), LINK(this, ScDataProviderDlg, ImportHdl)))
, mxDBRanges(m_xBuilder->weld_combo_box("select_db_range"))
+ , mxOKBtn(m_xBuilder->weld_button("okay"))
+ , mxCancelBtn(m_xBuilder->weld_button("cancel"))
+ , mxAddTransformationBtn(m_xBuilder->weld_button("add_transformation"))
+ , mxScroll(m_xBuilder->weld_scrolled_window("scroll"))
+ , mxTransformationList(m_xBuilder->weld_container("transformation_ctrl"))
+ , mxTransformationBox(m_xBuilder->weld_combo_box("transformation_box"))
+ , mxProviderList(m_xBuilder->weld_combo_box("provider_lst"))
+ , mxEditURL(m_xBuilder->weld_entry("ed_url"))
+ , mxEditID(m_xBuilder->weld_entry("ed_id"))
+ , mxApplyBtn(m_xBuilder->weld_button("apply"))
+ , mxBrowseBtn(m_xBuilder->weld_button("browse"))
, mnIndex(0)
{
Size aPrefSize = mxTable->GetOptimalSize();
@@ -752,11 +648,36 @@ 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("data", 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");
- InitMenu();
+ auto aDataProvider = sc::DataProviderFactory::getDataProviders();
+ for (const auto& rDataProvider : aDataProvider)
+ {
+ mxProviderList->append_text(rDataProvider);
+ }
+
+ mxOKBtn->connect_clicked(LINK(this, ScDataProviderDlg, ApplyQuitHdl));
+ mxCancelBtn->connect_clicked(LINK(this, ScDataProviderDlg, CancelQuitHdl));
+ mxAddTransformationBtn->connect_clicked(LINK(this, ScDataProviderDlg, TransformationListHdl));
+ mxApplyBtn->connect_clicked(LINK(this, ScDataProviderDlg, ApplyBtnHdl));
+ mxBrowseBtn->connect_clicked(LINK(this, ScDataProviderDlg, BrowseBtnHdl));
+ mxTransformationBox->connect_changed(LINK(this, ScDataProviderDlg, TransformationSelectHdl));
+ mxProviderList->connect_changed(LINK(this, ScDataProviderDlg, ProviderSelectHdl));
+ mxEditID->connect_changed(LINK(this, ScDataProviderDlg, IDEditHdl));
+ mxEditURL->connect_changed(LINK(this, ScDataProviderDlg, URLEditHdl));
+
+ msApplyTooltip = mxApplyBtn->get_tooltip_text();
+ msAddTransformationToolTip = mxAddTransformationBtn->get_tooltip_text();
+ mxAddTransformationBtn->set_sensitive(false);
+ mxAddTransformationBtn->set_tooltip_text(OUString());
+ isValid();
maIdle.SetPriority( TaskPriority::LOWEST );
maIdle.SetInvokeHandler( LINK( this, ScDataProviderDlg, ScrollToEnd) );
@@ -769,72 +690,107 @@ ScDataProviderDlg::~ScDataProviderDlg()
m_xTableParent.clear();
}
-void ScDataProviderDlg::InitMenu()
+IMPL_LINK_NOARG(ScDataProviderDlg, ScrollToEnd, Timer*, void)
{
- for (const auto& itrStartData : aStartData)
- mxStartMenu->append(OUString::number(itrStartData.nMenuID), OUString::createFromAscii(itrStartData.aMenuName));
- mxStartMenu->connect_activate(LINK(this, ScDataProviderDlg, StartMenuHdl));
-
- for (const auto& itrColumnData : aColumnData)
- mxColumnMenu->append(OUString::number(itrColumnData.nMenuID), OUString::createFromAscii(itrColumnData.aMenuName));
- mxColumnMenu->connect_activate(LINK(this, ScDataProviderDlg, ColumnMenuHdl));
+ mxScroll->vadjustment_set_value(mxScroll->vadjustment_get_upper());
}
-IMPL_LINK(ScDataProviderDlg, StartMenuHdl, const OString&, rIdent, void)
+IMPL_LINK_NOARG(ScDataProviderDlg, ApplyQuitHdl, weld::Button&, void)
{
- auto nId = rIdent.toInt32();
- for (auto& i: aStartData)
- {
- if (i.nMenuID == nId)
- {
- i.maCallback(this);
- return;
- }
- }
+ m_xDialog->response(RET_OK);
}
-IMPL_LINK_NOARG(ScDataProviderDlg, ScrollToEnd, Timer*, void)
+IMPL_LINK_NOARG(ScDataProviderDlg, CancelQuitHdl, weld::Button&, void)
{
- mxScroll->vadjustment_set_value(mxScroll->vadjustment_get_upper());
+ m_xDialog->response(RET_CANCEL);
}
-IMPL_LINK(ScDataProviderDlg, ColumnMenuHdl, const OString&, rIdent, void)
+IMPL_LINK_NOARG(ScDataProviderDlg, TransformationListHdl, weld::Button&, void)
{
- auto nId = rIdent.toInt32();
- for (auto& i: aColumnData)
+ OUString transformation_string = mxTransformationBox->get_active_text();
+ for (auto& i: aTransformationData)
{
- if (i.nMenuID == nId)
+ if (transformation_string == OUString::createFromAscii(i.aTransformationName))
{
i.maCallback(this);
- // scroll to bottom when something added to the list
maIdle.Start();
return;
}
}
}
-IMPL_LINK(ScDataProviderDlg, ImportHdl, ScDataProviderBaseControl*, pCtrl, void)
+IMPL_LINK_NOARG(ScDataProviderDlg, ProviderSelectHdl, weld::ComboBox&, void)
{
- if (pCtrl == mxDataProviderCtrl.get())
- {
- import(*mxDoc, true);
- }
+ isValid();
}
-void ScDataProviderDlg::applyAndQuit()
+IMPL_LINK_NOARG(ScDataProviderDlg, IDEditHdl, weld::Entry&, void)
{
- m_xDialog->response(RET_OK);
+ isValid();
}
-void ScDataProviderDlg::cancelAndQuit()
+IMPL_LINK_NOARG(ScDataProviderDlg, URLEditHdl, weld::Entry&, void)
{
- m_xDialog->response(RET_CANCEL);
+ isValid();
+}
+
+IMPL_LINK_NOARG(ScDataProviderDlg, ApplyBtnHdl, weld::Button&, void)
+{
+ updateApplyBtn(true);
+ import(*mxDoc, true);
+}
+
+IMPL_LINK_NOARG(ScDataProviderDlg, BrowseBtnHdl, weld::Button&, void)
+{
+ sfx2::FileDialogHelper aFileDialog(0, FileDialogFlags::NONE, m_xDialog.get());
+ if (aFileDialog.Execute() != ERRCODE_NONE)
+ return;
+
+ mxEditURL->set_text(aFileDialog.GetPath());
+ isValid();
+}
+
+IMPL_LINK_NOARG(ScDataProviderDlg, TransformationSelectHdl, weld::ComboBox&, void)
+{
+ mxAddTransformationBtn->set_sensitive(true);
+ mxAddTransformationBtn->set_tooltip_text(msAddTransformationToolTip);
+}
+
+sc::ExternalDataSource ScDataProviderDlg::getDataSource(ScDocument* pDoc)
+{
+ OUString aURL = mxEditURL->get_text();
+ OUString aProvider = mxProviderList->get_active_text();
+ sc::ExternalDataSource aSource(aURL, aProvider, pDoc);
+
+ OUString aID = mxEditID->get_text();
+ aSource.setID(aID);
+ return aSource;
+}
+
+void ScDataProviderDlg::isValid()
+{
+ bool bValid = !mxProviderList->get_active_text().isEmpty();
+ bValid &= !mxEditURL->get_text().isEmpty();
+ updateApplyBtn(bValid);
+}
+
+void ScDataProviderDlg::updateApplyBtn(bool bValidConfig)
+{
+ if (!bValidConfig)
+ {
+ mxApplyBtn->set_sensitive(false);
+ mxApplyBtn->set_tooltip_text(OUString());
+ return;
+ }
+
+ mxApplyBtn->set_sensitive(true);
+ mxApplyBtn->set_tooltip_text(msApplyTooltip);
}
void ScDataProviderDlg::deleteColumn()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScDeleteColumnTransformationControl>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScDeleteColumnTransformationControl>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::splitColumn()
@@ -843,7 +799,7 @@ void ScDataProviderDlg::splitColumn()
SCCOL nEndCol = -1;
mxTable->getColRange(nStartCol, nEndCol);
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScSplitColumnTransformationControl>(mxList.get(), nStartCol, mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScSplitColumnTransformationControl>(mxTransformationList.get(), nStartCol, mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::mergeColumns()
@@ -852,43 +808,43 @@ void ScDataProviderDlg::mergeColumns()
SCCOL nEndCol = -1;
mxTable->getColRange(nStartCol, nEndCol);
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScMergeColumnTransformationControl>(mxDoc.get(), mxList.get(), nStartCol, nEndCol, mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScMergeColumnTransformationControl>(mxDoc.get(), mxTransformationList.get(), nStartCol, nEndCol, mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::textTransformation()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScColumnTextTransformation>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScColumnTextTransformation>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::sortTransformation()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScSortTransformationControl>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScSortTransformationControl>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::aggregateFunction()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScAggregateFunction>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScAggregateFunction>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::numberTransformation()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScNumberTransformation>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScNumberTransformation>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::replaceNullTransformation()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScReplaceNullTransformation>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScReplaceNullTransformation>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
void ScDataProviderDlg::dateTimeTransformation()
{
std::function<void(sal_uInt32&)> adeleteTransformation = std::bind(&ScDataProviderDlg::deletefromList,this, std::placeholders::_1);
- maControls.emplace_back(std::make_unique<ScDateTimeTransformation>(mxDoc.get(), mxList.get(), mnIndex++, adeleteTransformation));
+ maControls.emplace_back(std::make_unique<ScDateTimeTransformation>(mxDoc.get(), mxTransformationList.get(), mnIndex++, adeleteTransformation));
}
namespace {
@@ -905,7 +861,7 @@ bool hasDBName(const OUString& rName, ScDBCollection* pDBCollection)
void ScDataProviderDlg::import(ScDocument& rDoc, bool bInternal)
{
- sc::ExternalDataSource aSource = mxDataProviderCtrl->getDataSource(&rDoc);
+ sc::ExternalDataSource aSource = getDataSource(&rDoc);
for (size_t i = 0; i < maControls.size(); ++i)
{
diff --git a/sc/source/ui/miscdlgs/datatableview.cxx b/sc/source/ui/miscdlgs/datatableview.cxx
index 3c88ac65b290..da0dd2dd2e5b 100644
--- a/sc/source/ui/miscdlgs/datatableview.cxx
+++ b/sc/source/ui/miscdlgs/datatableview.cxx
@@ -295,7 +295,7 @@ void ScDataTableView::Paint(vcl::RenderContext& rRenderContext, const tools::Rec
Size ScDataTableView::GetOptimalSize() const
{
- return Size(600, 400);
+ return Size(450, 400);
}
void ScDataTableView::getColRange(SCCOL& rStartCol, SCCOL& rEndCol) const
diff --git a/sc/uiconfig/scalc/ui/aggregatefunctionentry.ui b/sc/uiconfig/scalc/ui/aggregatefunctionentry.ui
index ec84d30920a3..2b6e31e13824 100644
--- a/sc/uiconfig/scalc/ui/aggregatefunctionentry.ui
+++ b/sc/uiconfig/scalc/ui/aggregatefunctionentry.ui
@@ -1,134 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="aggregatefunctionentry|name">Aggregate Functions</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="aggregatefunctionentry|type">Type:</property>
- <accessibility>
- <relation type="label-for" target="ed_lst"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="aggregatefunctionentry|columns">Columns:</property>
- <accessibility>
- <relation type="label-for" target="ed_columns"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="ed_lst">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="active">0</property>
- <property name="active_id">0</property>
- <items>
- <item id="0" translatable="yes" context="aggregatefunctionentry|sum">Sum</item>
- <item id="1" translatable="yes" context="aggregatefunctionentry|average">Average</item>
- <item id="2" translatable="yes" context="aggregatefunctionentry|min">Minimum Value</item>
- <item id="3" translatable="yes" context="aggregatefunctionentry|max">Maximum Value</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label1"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="aggregatefunctionentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="aggregatefunctionentry|name">Aggregate Functions</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_lst</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="ed_lst">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="active">0</property>
+ <property name="active-id">0</property>
+ <items>
+ <item id="0" translatable="yes" context="aggregatefunctionentry|sum">Sum</item>
+ <item id="1" translatable="yes" context="aggregatefunctionentry|average">Average</item>
+ <item id="2" translatable="yes" context="aggregatefunctionentry|min">Minimum Value</item>
+ <item id="3" translatable="yes" context="aggregatefunctionentry|max">Maximum Value</item>
+ </items>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="aggregatefunctionentry/cols">Columns</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="aggregatefunctionentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/dataproviderdlg.ui b/sc/uiconfig/scalc/ui/dataproviderdlg.ui
index b7f2d79aa7d0..f37cba462e37 100644
--- a/sc/uiconfig/scalc/ui/dataproviderdlg.ui
+++ b/sc/uiconfig/scalc/ui/dataproviderdlg.ui
@@ -1,137 +1,208 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="dataproviderdlg">
<property name="can_focus">False</property>
<property name="modal">True</property>
<property name="type_hint">dialog</property>
- <child>
+ <child type="titlebar">
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <property name="spacing">2</property>
+ <property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="can_focus">False</property>
+ <property name="margin_end">6</property>
+ <property name="margin_bottom">6</property>
<property name="layout_style">end</property>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkMenuBar" id="menubar">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkMenuItem">
+ <object class="GtkButton" id="okay">
+ <property name="label" translatable="yes" context="dataproviderdlg/okaybtn">Okay</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">_Start</property>
- <property name="use_underline">True</property>
- <child type="submenu">
- <object class="GtkMenu" id="start">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <object class="GtkMenuItem">
+ <object class="GtkButton" id="cancel">
+ <property name="label" translatable="yes" context="dataproviderdlg/cancelbtn">Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">_Column</property>
- <property name="use_underline">True</property>
- <child type="submenu">
- <object class="GtkMenu" id="column">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <object class="GtkBox">
+ <object class="GtkPaned">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="spacing">12</property>
+ <property name="can_focus">True</property>
+ <property name="wide_handle">True</property>
<child>
- <object class="GtkBox" id="data_table">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox">
+ <object class="GtkBox" id="bxSourceTransform">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <property name="spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <object class="GtkFrame" id="frmSource">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="column_spacing">6</property>
+ <property name="margin_start">6</property>
+ <property name="margin_top">6</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkLabel" id="label2">
+ <object class="GtkGrid" id="gdSource">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" context="dataproviderdlg|db_name">Database Range: </property>
- <accessibility>
- <relation type="label-for" target="select_db_range"/>
- </accessibility>
+ <property name="margin_start">12</property>
+ <property name="margin_end">12</property>
+ <property name="margin_top">6</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dataproviderdlg|db_name">Database Range:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">select_db_range</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="select_db_range">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dataproviderdlg/provider">Data Provider:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">provider_lst</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="provider_lst">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dataproviderdlg/url">URL:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">ed_url</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_url">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="browse">
+ <property name="label" translatable="yes" context="dataproviderdlg/browse_btn">Browse</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dataproviderdlg/id">Id / Xpath:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">ed_id</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_id">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
- <child>
- <object class="GtkComboBoxText" id="select_db_range">
+ <child type="label">
+ <object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
+ <property name="label" translatable="yes" context="dataproviderdlg/lbSource">Source</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
<packing>
@@ -141,43 +212,92 @@
</packing>
</child>
<child>
- <object class="GtkScrolledWindow" id="scroll">
+ <object class="GtkFrame" id="frmTransformation">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">6</property>
+ <property name="margin_top">6</property>
+ <property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkGrid" id="select_transformation">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="vexpand">True</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">12</property>
+ <property name="margin_top">6</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkButton" id="add_transformation">
+ <property name="label" translatable="yes" context="dataproviderdlg/transformation_add">Add</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dataproviderdlg/AddTransformation_tooltip">Add Transformations</property>
+ <property name="halign">end</property>
+ <property name="margin_end">12</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
<child>
- <object class="GtkBox">
+ <object class="GtkComboBoxText" id="transformation_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scroll">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="orientation">vertical</property>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkBox" id="operation_ctrl">
+ <object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
<child>
- <placeholder/>
+ <object class="GtkBox" id="transformation_ctrl">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">2</property>
+ </packing>
</child>
</object>
</child>
+ <child type="label">
+ <object class="GtkLabel" id="label_transformation">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dataproviderdlg/transformation">Transformations</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -187,16 +307,90 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frmPreview">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkBox" id="data_table">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_end">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="apply">
+ <property name="label" translatable="yes" context="dataproviderdlg/apply">Apply</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes" context="dataproviderdlg/apply_tooltiptext">Apply Changes</property>
+ <property name="halign">end</property>
+ <property name="margin_end">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <accessibility>
+ <relation type="labelled-by" target="label_preview"/>
+ </accessibility>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label_preview">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="dataproviderdlg/preview">Preview</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ <accessibility>
+ <relation type="label-for" target="box2"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/dataproviderentry.ui b/sc/uiconfig/scalc/ui/dataproviderentry.ui
deleted file mode 100644
index 3f1f66c1b640..000000000000
--- a/sc/uiconfig/scalc/ui/dataproviderentry.ui
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
-<interface domain="sc">
- <requires lib="gtk+" version="3.20"/>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">sc/res/xml_element.png</property>
- </object>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkComboBoxText" id="provider_lst">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_url">
- <property name="visible">True</property>
- <property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_id">
- <property name="visible">True</property>
- <property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="dataproviderentry|url">URL:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="dataproviderentry|id">ID:</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="dataproviderentry|provider">Data Provider:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="apply">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="dataproviderentry|apply">Apply Changes</property>
- <property name="image">image1</property>
- <property name="relief">none</property>
- <property name="always_show_image">True</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
-</interface>
diff --git a/sc/uiconfig/scalc/ui/datetimetransformationentry.ui b/sc/uiconfig/scalc/ui/datetimetransformationentry.ui
index a2ffe32d3cd6..8ca3b9e7fb9d 100644
--- a/sc/uiconfig/scalc/ui/datetimetransformationentry.ui
+++ b/sc/uiconfig/scalc/ui/datetimetransformationentry.ui
@@ -1,148 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="datetimetransformationentry|name">Date Time Transformations</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="datetimetransformationentry|type">Type:</property>
- <accessibility>
- <relation type="label-for" target="ed_lst"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="datetimetransformationentry|columns">Columns:</property>
- <accessibility>
- <relation type="label-for" target="ed_columns"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="ed_lst">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="active">0</property>
- <property name="active_id">0</property>
- <items>
- <item id="0" translatable="yes" context="datetimetransformationentry|datestring">Date String</item>
- <item id="1" translatable="yes" context="datetimetransformationentry|year">Year</item>
- <item id="2" translatable="yes" context="datetimetransformationentry|startofyear">Start of Year</item>
- <item id="3" translatable="yes" context="datetimetransformationentry|endofyear">End of Year</item>
- <item id="4" translatable="yes" context="datetimetransformationentry|month">Month</item>
- <item id="5" translatable="yes" context="datetimetransformationentry|monthname">Month Name</item>
- <item id="6" translatable="yes" context="datetimetransformationentry|startofmonth">Start of Month</item>
- <item id="7" translatable="yes" context="datetimetransformationentry|endofmonth">End of Month</item>
- <item id="8" translatable="yes" context="datetimetransformationentry|day">Day</item>
- <item id="9" translatable="yes" context="datetimetransformationentry|dayofweek">Day of Week</item>
- <item id="10" translatable="yes" context="datetimetransformationentry|dayofyear">Day of Year</item>
- <item id="11" translatable="yes" context="datetimetransformationentry|quarter">Quarter</item>
- <item id="12" translatable="yes" context="datetimetransformationentry|startofquarter">Start of Quarter</item>
- <item id="12" translatable="yes" context="datetimetransformationentry|endofquarter">End of Quarter</item>
- <item id="12" translatable="yes" context="datetimetransformationentry|hour">Hour</item>
- <item id="12" translatable="yes" context="datetimetransformationentry|minute">Minute</item>
- <item id="12" translatable="yes" context="datetimetransformationentry|second">Second</item>
- <item id="12" translatable="yes" context="datetimetransformationentry|time">Time</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label1"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="datetimetransformationentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="datetimetransformationentry|name">Date Time Transformations</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_lst</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="ed_lst">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="active">0</property>
+ <property name="active-id">0</property>
+ <items>
+ <item id="0" translatable="yes" context="datetimetransformationentry|datestring">Date String</item>
+ <item id="1" translatable="yes" context="datetimetransformationentry|year">Year</item>
+ <item id="2" translatable="yes" context="datetimetransformationentry|startofyear">Start of Year</item>
+ <item id="3" translatable="yes" context="datetimetransformationentry|endofyear">End of Year</item>
+ <item id="4" translatable="yes" context="datetimetransformationentry|month">Month</item>
+ <item id="5" translatable="yes" context="datetimetransformationentry|monthname">Month Name</item>
+ <item id="6" translatable="yes" context="datetimetransformationentry|startofmonth">Start of Month</item>
+ <item id="7" translatable="yes" context="datetimetransformationentry|endofmonth">End of Month</item>
+ <item id="8" translatable="yes" context="datetimetransformationentry|day">Day</item>
+ <item id="9" translatable="yes" context="datetimetransformationentry|dayofweek">Day of Week</item>
+ <item id="10" translatable="yes" context="datetimetransformationentry|dayofyear">Day of Year</item>
+ <item id="11" translatable="yes" context="datetimetransformationentry|quarter">Quarter</item>
+ <item id="12" translatable="yes" context="datetimetransformationentry|startofquarter">Start of Quarter</item>
+ <item id="12" translatable="yes" context="datetimetransformationentry|endofquarter">End of Quarter</item>
+ <item id="12" translatable="yes" context="datetimetransformationentry|hour">Hour</item>
+ <item id="12" translatable="yes" context="datetimetransformationentry|minute">Minute</item>
+ <item id="12" translatable="yes" context="datetimetransformationentry|second">Second</item>
+ <item id="12" translatable="yes" context="datetimetransformationentry|time">Time</item>
+ </items>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="datetimetransformationentry/cols">Columns</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="datetimetransformationentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/deletecolumnentry.ui b/sc/uiconfig/scalc/ui/deletecolumnentry.ui
index 76dc45f09665..db951e2d766d 100644
--- a/sc/uiconfig/scalc/ui/deletecolumnentry.ui
+++ b/sc/uiconfig/scalc/ui/deletecolumnentry.ui
@@ -1,93 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="deletecolumnentry|name">Delete Columns Action</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="deletecolumnentry|separator">Columns (List of ';' separated columns)</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="deletecolumnentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="deletecolumnentry|name">Delete Columns</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_columns</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="deletecolumnentry/cols">Cols(; Separated)</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="deletecolumnentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/mergecolumnentry.ui b/sc/uiconfig/scalc/ui/mergecolumnentry.ui
index fda44065de69..41ce05894067 100644
--- a/sc/uiconfig/scalc/ui/mergecolumnentry.ui
+++ b/sc/uiconfig/scalc/ui/mergecolumnentry.ui
@@ -1,115 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="mergecolumnentry|name">Merge Column Action</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="mergecolumnentry|separator">Separator:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_separator">
- <property name="visible">True</property>
- <property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="mergecolumnentry|columns">Columns:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="mergecolumnentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="mergecolumnentry|name">Merge Column Action</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_separator</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_separator">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="mergecolumnentry/separator">Separator</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="mergecolumnentry/cols">Columns</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="mergecolumnentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/numbertransformationentry.ui b/sc/uiconfig/scalc/ui/numbertransformationentry.ui
index 9271e0edb9b4..35cd42a7afb1 100644
--- a/sc/uiconfig/scalc/ui/numbertransformationentry.ui
+++ b/sc/uiconfig/scalc/ui/numbertransformationentry.ui
@@ -1,143 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="numbertransformationentry|name">Number Transformations</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="numbertransformationentry|type">Type:</property>
- <accessibility>
- <relation type="label-for" target="ed_lst"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="numbertransformationentry|columns">Columns:</property>
- <accessibility>
- <relation type="label-for" target="ed_columns"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="ed_lst">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="active">0</property>
- <property name="active_id">0</property>
- <items>
- <item id="0" translatable="yes" context="numbertransformationentry|sign">Sign</item>
- <item id="1" translatable="yes" context="numbertransformationentry|round">Round</item>
- <item id="2" translatable="yes" context="numbertransformationentry|roundup">Round Up</item>
- <item id="3" translatable="yes" context="numbertransformationentry|rounddown">Round Down</item>
- <item id="4" translatable="yes" context="numbertransformationentry|absolute">Absolute Value</item>
- <item id="5" translatable="yes" context="numbertransformationentry|loge">Log with base e</item>
- <item id="6" translatable="yes" context="numbertransformationentry|log10">Log with base 10</item>
- <item id="7" translatable="yes" context="numbertransformationentry|cube">Cube</item>
- <item id="8" translatable="yes" context="numbertransformationentry|square">Square</item>
- <item id="9" translatable="yes" context="numbertransformationentry|squareroot">Square Root</item>
- <item id="10" translatable="yes" context="numbertransformationentry|exponent">Exponent</item>
- <item id="11" translatable="yes" context="numbertransformationentry|iseven">Is Even</item>
- <item id="12" translatable="yes" context="numbertransformationentry|isodd">Is Odd</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label1"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="numbertransformationentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="numbertransformationentry|name">Number Transformations</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_lst</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="ed_lst">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="active">0</property>
+ <property name="active-id">0</property>
+ <items>
+ <item id="0" translatable="yes" context="numbertransformationentry|sign">Sign</item>
+ <item id="1" translatable="yes" context="numbertransformationentry|round">Round</item>
+ <item id="2" translatable="yes" context="numbertransformationentry|roundup">Round Up</item>
+ <item id="3" translatable="yes" context="numbertransformationentry|rounddown">Round Down</item>
+ <item id="4" translatable="yes" context="numbertransformationentry|absolute">Absolute Value</item>
+ <item id="5" translatable="yes" context="numbertransformationentry|loge">Log with base e</item>
+ <item id="6" translatable="yes" context="numbertransformationentry|log10">Log with base 10</item>
+ <item id="7" translatable="yes" context="numbertransformationentry|cube">Cube</item>
+ <item id="8" translatable="yes" context="numbertransformationentry|square">Square</item>
+ <item id="9" translatable="yes" context="numbertransformationentry|squareroot">Square Root</item>
+ <item id="10" translatable="yes" context="numbertransformationentry|exponent">Exponent</item>
+ <item id="11" translatable="yes" context="numbertransformationentry|iseven">Is Even</item>
+ <item id="12" translatable="yes" context="numbertransformationentry|isodd">Is Odd</item>
+ </items>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="numbertransformationentry/cols">Columns</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="numbertransformationentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/replacenulltransformationentry.ui b/sc/uiconfig/scalc/ui/replacenulltransformationentry.ui
index 0fefc01249da..babd68f4ffe3 100644
--- a/sc/uiconfig/scalc/ui/replacenulltransformationentry.ui
+++ b/sc/uiconfig/scalc/ui/replacenulltransformationentry.ui
@@ -1,127 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="replacenulltransformationentry|name">Replace Null Transformation</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="replacenulltransformationentry|type">Replace with</property>
- <accessibility>
- <relation type="label-for" target="ed_str"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="replacenulltransformationentry|columns">Columns:</property>
- <accessibility>
- <relation type="label-for" target="ed_columns"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_str">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label1"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="replacenulltransformationentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="replacenulltransformationentry|name">Replace Null Transformation</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_str</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_str">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="replacenulltransformationentry/replace">Replace with</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="replacenulltransformationentry/cols">Columns</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="replacenulltransformationentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/sorttransformationentry.ui b/sc/uiconfig/scalc/ui/sorttransformationentry.ui
index cdd48d32e35f..4a5347677c23 100644
--- a/sc/uiconfig/scalc/ui/sorttransformationentry.ui
+++ b/sc/uiconfig/scalc/ui/sorttransformationentry.ui
@@ -1,115 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
+ <property name="margin_end">6</property>
<property name="border_width">6</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="sorttransformationentry|name">Sort Transformation</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkCheckButton" id="ed_ascending">
- <property name="label" translatable="yes" context="sorttransformationentry|type">Ascending Order</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">False</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="sorttransformationentry|column">Column:</property>
- <accessibility>
- <relation type="label-for" target="ed_columns"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label1"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="sorttransformationentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="sorttransformationentry|name">Sort Transformation</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">ed_ascending</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width_chars">10</property>
+ <property name="truncate_multiline">True</property>
+ <property name="placeholder_text" translatable="yes" context="sorttransformationentry/cols">Column</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="sorttransformationentry|delete">Delete</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">end</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="ed_ascending">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="active">0</property>
+ <property name="active_id">1</property>
+ <items>
+ <item id="0" translatable="yes" context="sorttransformationentry|order_descending">Descending Order</item>
+ <item id="1" translatable="yes" context="sorttransformationentry|order_ascending">Ascending Order</item>
+ </items>
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="top_attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/splitcolumnentry.ui b/sc/uiconfig/scalc/ui/splitcolumnentry.ui
index dd7b299c44e1..0e10e56bf270 100644
--- a/sc/uiconfig/scalc/ui/splitcolumnentry.ui
+++ b/sc/uiconfig/scalc/ui/splitcolumnentry.ui
@@ -1,117 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">6</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="splitcolumnentry|name">Split Column Action</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="splitcolumnentry|separator">Separator:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="splitcolumnentry|max_num_columns">Maximum Number of Columns</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_separator">
- <property name="visible">True</property>
- <property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="num_cols">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="numeric">True</property>
- <property name="truncate-multiline">True</property>
- <property name="value">-1</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="splitcolumnentry|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="splitcolumnentry|name">Split Column</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ed_separator</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_separator">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="splitcolumnentry/separator">Separator</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="num_cols">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">10</property>
+ <property name="placeholder-text" translatable="yes" context="splitcolumnentry/cols">Column</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="splitcolumnentry|delete">Delete</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
diff --git a/sc/uiconfig/scalc/ui/texttransformationentry.ui b/sc/uiconfig/scalc/ui/texttransformationentry.ui
index 7807ad7aca79..4c9fe473596c 100644
--- a/sc/uiconfig/scalc/ui/texttransformationentry.ui
+++ b/sc/uiconfig/scalc/ui/texttransformationentry.ui
@@ -1,134 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
+ <property name="margin_end">6</property>
<property name="border_width">6</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
- <object class="GtkBox">
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="texttransformationentry|name">Text Transformation</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid_details">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="texttransformationentry|type">Type:</property>
- <accessibility>
- <relation type="label-for" target="ed_lst"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="texttransformationentry|columns">Columns:</property>
- <accessibility>
- <relation type="label-for" target="ed_columns"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ed_columns">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="ed_lst">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="active">0</property>
- <property name="active_id">0</property>
- <items>
- <item id="0" translatable="yes" context="texttransformation_type|tolower">To Lower</item>
- <item id="1" translatable="yes" context="texttransformation_type|toupper">To Upper</item>
- <item id="2" translatable="yes" context="texttransformation_type|capitalize">Capitalize</item>
- <item id="3" translatable="yes" context="texttransformation_type|trim">Trim</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label1"/>
- </accessibility>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ed_delete">
- <property name="label" translatable="yes" context="texttransformation_type|delete">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="texttransformationentry|name">Text Transformation</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">ed_lst</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
+ <property name="width">3</property>
</packing>
</child>
<child>
- <object class="GtkSeparator">
+ <object class="GtkComboBoxText" id="ed_lst">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="active">0</property>
+ <property name="active_id">0</property>
+ <items>
+ <item id="0" translatable="yes" context="texttransformation_type|tolower">To Lower</item>
+ <item id="1" translatable="yes" context="texttransformation_type|toupper">To Upper</item>
+ <item id="2" translatable="yes" context="texttransformation_type|capitalize">Capitalize</item>
+ <item id="3" translatable="yes" context="texttransformation_type|trim">Trim</item>
+ </items>
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="ed_columns">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width_chars">10</property>
+ <property name="truncate_multiline">True</property>
+ <property name="placeholder_text" translatable="yes" context="texttransformationentry/cols">Columns</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ed_delete">
+ <property name="label" translatable="yes" context="texttransformation_type|delete">Delete</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">end</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
</packing>
</child>
</object>
diff --git a/solenv/sanitizers/ui/modules/scalc.suppr b/solenv/sanitizers/ui/modules/scalc.suppr
index ffb7182eaf9d..db516f1ecb33 100644
--- a/solenv/sanitizers/ui/modules/scalc.suppr
+++ b/solenv/sanitizers/ui/modules/scalc.suppr
@@ -1,6 +1,5 @@
sc/uiconfig/scalc/ui/advancedfilterdialog.ui://GtkLabel[@id='dbarealabel'] orphan-label
sc/uiconfig/scalc/ui/advancedfilterdialog.ui://GtkLabel[@id='dbarea'] orphan-label
-sc/uiconfig/scalc/ui/aggregatefunctionentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
sc/uiconfig/scalc/ui/cellprotectionpage.ui://GtkLabel[@id='label1'] orphan-label
sc/uiconfig/scalc/ui/cellprotectionpage.ui://GtkLabel[@id='label4'] orphan-label
sc/uiconfig/scalc/ui/conditionalentry.ui://GtkLabel[@id='number'] orphan-label
@@ -41,19 +40,10 @@ sc/uiconfig/scalc/ui/dataform.ui://GtkLabel[@id='label'] orphan-label
sc/uiconfig/scalc/ui/datastreams.ui://GtkLabel[@id='label6'] orphan-label
sc/uiconfig/scalc/ui/datastreams.ui://GtkEntry[@id='range'] no-labelled-by
sc/uiconfig/scalc/ui/datastreams.ui://GtkEntry[@id='limit'] no-labelled-by
-sc/uiconfig/scalc/ui/dataproviderentry.ui://GtkComboBoxText[@id='provider_lst'] no-labelled-by
-sc/uiconfig/scalc/ui/dataproviderentry.ui://GtkEntry[@id='ed_url'] no-labelled-by
-sc/uiconfig/scalc/ui/dataproviderentry.ui://GtkEntry[@id='ed_id'] no-labelled-by
-sc/uiconfig/scalc/ui/dataproviderentry.ui:GtkGrid[@id='grid']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/dataproviderentry.ui:GtkGrid[@id='grid']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/dataproviderentry.ui:GtkGrid[@id='grid']/GtkLabel orphan-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkLabel[@id='Source'] orphan-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkLabel[@id='Operations'] orphan-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkLabel[@id='invalid'] orphan-label
sc/uiconfig/scalc/ui/definename.ui://GtkLabel[@id='label'] orphan-label
-sc/uiconfig/scalc/ui/deletecolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/deletecolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkGrid[@id='grid_details']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/deletecolumnentry.ui://GtkEntry[@id='ed_columns'] no-labelled-by
sc/uiconfig/scalc/ui/doubledialog.ui://GtkEntry[@id='value'] no-labelled-by
sc/uiconfig/scalc/ui/externaldata.ui://GtkLabel[@id='secondsft'] orphan-label
sc/uiconfig/scalc/ui/fourieranalysisdialog.ui://GtkLabel[@id='error-message'] orphan-label
@@ -86,11 +76,6 @@ sc/uiconfig/scalc/ui/mergecellsdialog.ui://GtkLabel[@id='label'] orphan-label
sc/uiconfig/scalc/ui/mergecellsdialog.ui://GtkImage[@id='imMergeFirstCell'] no-labelled-by
sc/uiconfig/scalc/ui/mergecellsdialog.ui://GtkImage[@id='imMergeKeepHidden'] no-labelled-by
sc/uiconfig/scalc/ui/mergecellsdialog.ui://GtkImage[@id='imMergeEmptyHidden'] no-labelled-by
-sc/uiconfig/scalc/ui/mergecolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/mergecolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkGrid[@id='grid_details']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/mergecolumnentry.ui://GtkEntry[@id='ed_separator'] no-labelled-by
-sc/uiconfig/scalc/ui/mergecolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkGrid[@id='grid_details']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/mergecolumnentry.ui://GtkEntry[@id='ed_columns'] no-labelled-by
sc/uiconfig/scalc/ui/movecopysheet.ui://GtkEntry[@id='newName'] no-labelled-by
sc/uiconfig/scalc/ui/movecopysheet.ui://GtkLabel[@id='newNameWarn'] orphan-label
sc/uiconfig/scalc/ui/movecopysheet.ui://GtkLabel[@id='warnunused'] orphan-label
@@ -100,7 +85,6 @@ sc/uiconfig/scalc/ui/movingaveragedialog.ui://GtkLabel[@id='interval-label'] orp
sc/uiconfig/scalc/ui/movingaveragedialog.ui://GtkSpinButton[@id='interval-spin'] no-labelled-by
sc/uiconfig/scalc/ui/nosolutiondialog.ui://GtkLabel[@id='label1'] orphan-label
sc/uiconfig/scalc/ui/nosolutiondialog.ui://GtkLabel[@id='error'] orphan-label
-sc/uiconfig/scalc/ui/numbertransformationentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
sc/uiconfig/scalc/ui/passfragment.ui://GtkButton[@id='button'] button-no-label
sc/uiconfig/scalc/ui/pivotfielddialog.ui://GtkLabel[@id='label2'] orphan-label
sc/uiconfig/scalc/ui/pivotfielddialog.ui://GtkLabel[@id='name'] orphan-label
@@ -126,7 +110,6 @@ sc/uiconfig/scalc/ui/protectsheetdlg.ui://GtkLabel[@id='delete-rows'] orphan-lab
sc/uiconfig/scalc/ui/regressiondialog.ui://GtkLabel[@id='error-message'] orphan-label
sc/uiconfig/scalc/ui/retypepassdialog.ui://GtkLabel[@id='descLabel'] orphan-label
sc/uiconfig/scalc/ui/retypepassdialog.ui://GtkLabel[@id='docStatusLabel'] orphan-label
-sc/uiconfig/scalc/ui/sorttransformationentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkComboBoxText[@id='connect1'] missing-label-for
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkComboBoxText[@id='connect2'] missing-label-for
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkComboBoxText[@id='field1'] missing-label-for
@@ -159,17 +142,11 @@ sc/uiconfig/scalc/ui/solversuccessdialog.ui://GtkLabel[@id='label2'] orphan-labe
sc/uiconfig/scalc/ui/solversuccessdialog.ui://GtkLabel[@id='result'] orphan-label
sc/uiconfig/scalc/ui/sortwarning.ui://GtkLabel[@id='sorttext'] orphan-label
sc/uiconfig/scalc/ui/sortwarning.ui://GtkLabel[@id='sorttip'] orphan-label
-sc/uiconfig/scalc/ui/splitcolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/splitcolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkGrid[@id='grid_details']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/splitcolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkGrid[@id='grid_details']/GtkLabel orphan-label
-sc/uiconfig/scalc/ui/splitcolumnentry.ui://GtkEntry[@id='ed_separator'] no-labelled-by
-sc/uiconfig/scalc/ui/splitcolumnentry.ui://GtkSpinButton[@id='num_cols'] no-labelled-by
sc/uiconfig/scalc/ui/statisticsinfopage.ui://GtkLabel[@id='nopages'] orphan-label
sc/uiconfig/scalc/ui/statisticsinfopage.ui://GtkLabel[@id='nocells'] orphan-label
sc/uiconfig/scalc/ui/statisticsinfopage.ui://GtkLabel[@id='nosheets'] orphan-label
sc/uiconfig/scalc/ui/statisticsinfopage.ui://GtkLabel[@id='noformula'] orphan-label
sc/uiconfig/scalc/ui/textimportcsv.ui://GtkLabel[@id='textalttitle'] orphan-label
-sc/uiconfig/scalc/ui/texttransformationentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
sc/uiconfig/scalc/ui/validationcriteriapage.ui://GtkLabel[@id='hintft'] orphan-label
sc/uiconfig/scalc/ui/xmlsourcedialog.ui://GtkLabel[@id='sourcefile'] orphan-label
sc/uiconfig/scalc/ui/xmlsourcedialog.ui://GtkTreeView[@id='tree'] no-labelled-by