[Libreoffice-commits] core.git: include/svtools sfx2/source svtools/source svtools/uiconfig

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Mar 2 16:06:59 UTC 2019


 include/svtools/addresstemplate.hxx          |   53 +-
 sfx2/source/appl/appserv.cxx                 |    4 
 svtools/source/dialogs/addresstemplate.cxx   |  310 +++++----------
 svtools/source/uno/addrtempuno.cxx           |   15 
 svtools/uiconfig/ui/addresstemplatedialog.ui |  538 ++++++++++++++-------------
 5 files changed, 417 insertions(+), 503 deletions(-)

New commits:
commit c268527f731fc0764f34ac36c48fd1b6154be80c
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Mar 2 14:18:42 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat Mar 2 17:06:38 2019 +0100

    weld AddressBookSourceDialog
    
    Change-Id: I3e83c41db04268b7370fdb7370f5b630419c6d4e
    Reviewed-on: https://gerrit.libreoffice.org/68622
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/svtools/addresstemplate.hxx b/include/svtools/addresstemplate.hxx
index 90b2dd308d69..29c5bfa9f6a8 100644
--- a/include/svtools/addresstemplate.hxx
+++ b/include/svtools/addresstemplate.hxx
@@ -22,10 +22,7 @@
 
 #include <memory>
 #include <svtools/svtdllapi.h>
-#include <vcl/dialog.hxx>
-#include <vcl/combobox.hxx>
-#include <vcl/button.hxx>
-#include <vcl/scrbar.hxx>
+#include <vcl/weld.hxx>
 
 namespace com :: sun :: star :: container { class XNameAccess; }
 namespace com :: sun :: star :: sdbc { class XDataSource; }
@@ -38,15 +35,12 @@ namespace com :: sun :: star :: util { struct AliasProgrammaticPair; }
 
 namespace svt
 {
-
-
     // = AddressBookSourceDialog
-
     struct AddressBookSourceDialogData;
-    class SVT_DLLPUBLIC AddressBookSourceDialog final : public ModalDialog
+    class SVT_DLLPUBLIC AddressBookSourceDialog final : public weld::GenericDialogController
     {
     public:
-        AddressBookSourceDialog( vcl::Window* _pParent,
+        AddressBookSourceDialog(weld::Window* _pParent,
             const css::uno::Reference< css::uno::XComponentContext >& _rxORB );
 
         /** if you use this ctor, the dialog
@@ -68,7 +62,7 @@ namespace svt
                 the table name to display. It must refer to a valid table, relative to a connection
                 obtained from <arg>_rxTransientDS</arg>
         */
-        AddressBookSourceDialog( vcl::Window* _pParent,
+        AddressBookSourceDialog(weld::Window* _pParent,
             const css::uno::Reference< css::uno::XComponentContext >& _rxORB,
             const css::uno::Reference< css::sdbc::XDataSource >& _rxTransientDS,
             const OUString& _rDataSourceName,
@@ -77,7 +71,6 @@ namespace svt
         );
 
         virtual ~AddressBookSourceDialog() override;
-        virtual void dispose() override;
 
         // to be used if the object was constructed for editing a field mapping only
         void        getFieldMapping(
@@ -86,12 +79,9 @@ namespace svt
     private:
         void    implConstruct();
 
-        // Window overridables
-        virtual bool        PreNotify( NotifyEvent& _rNEvt ) override;
-
         // implementations
-        void    implScrollFields(sal_Int32 _nPos, bool _bAdjustFocus, bool _bAdjustScrollbar);
-        static void implSelectField(ListBox* _pBox, const OUString& _rText);
+        void    implScrollFields(sal_Int32 nPos, bool bAdjustFocus, bool bAdjustScrollbar);
+        static void implSelectField(weld::ComboBox* pBox, const OUString& rText);
 
         void    resetTables();
         void    resetFields();
@@ -102,21 +92,15 @@ namespace svt
         // initialize the dialog from the configuration data
         void    loadConfiguration();
 
-        DECL_LINK(OnFieldScroll, ScrollBar*, void);
-        DECL_LINK(OnFieldSelect, ListBox&, void);
-        DECL_LINK(OnAdministrateDatasources, Button*, void);
-        DECL_STATIC_LINK(AddressBookSourceDialog, OnComboGetFocus, Control&, void);
-        DECL_LINK(OnComboLoseFocus, Control&, void);
-        DECL_LINK(OnComboSelect, ComboBox&, void);
-        DECL_LINK(OnOkClicked, Button*, void);
+        DECL_LINK(OnFieldScroll, weld::ScrolledWindow&, void);
+        DECL_LINK(OnFieldSelect, weld::ComboBox&, void);
+        DECL_LINK(OnAdministrateDatasources, weld::Button&, void);
+        DECL_STATIC_LINK(AddressBookSourceDialog, OnComboGetFocus, weld::Widget&, void);
+        DECL_LINK(OnComboLoseFocus, weld::Widget&, void);
+        DECL_LINK(OnComboSelect, weld::ComboBox&, void);
+        DECL_LINK(OnOkClicked, weld::Button&, void);
         DECL_LINK(OnDelayedInitialize, void*, void);
 
-        // Controls
-        VclPtr<ComboBox>       m_pDatasource;
-        VclPtr<PushButton>     m_pAdministrateDatasources;
-        VclPtr<ComboBox>       m_pTable;
-        VclPtr<ScrollBar>      m_pFieldScroller;
-
         // string to display for "no selection"
         const OUString         m_sNoFieldSelection;
 
@@ -129,13 +113,18 @@ namespace svt
         css::uno::Reference< css::container::XNameAccess >
                                m_xCurrentDatasourceTables;
 
+        // Controls
+        std::unique_ptr<weld::ComboBox> m_xDatasource;
+        std::unique_ptr<weld::Button> m_xAdministrateDatasources;
+        std::unique_ptr<weld::ComboBox> m_xTable;
+        std::unique_ptr<weld::ScrolledWindow> m_xFieldScroller;
+        std::unique_ptr<weld::Button> m_xOKButton;
+        std::unique_ptr<weld::Widget> m_xGrid;
+
         std::unique_ptr<AddressBookSourceDialogData> m_pImpl;
     };
-
-
 }   // namespace svt
 
-
 #endif // INCLUDED_SVTOOLS_ADDRESSTEMPLATE_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index d08edda9b1b7..c972a4bfd301 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -666,8 +666,8 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
 
         case SID_TEMPLATE_ADDRESSBOKSOURCE:
         {
-            ScopedVclPtrInstance< svt::AddressBookSourceDialog > aDialog(GetTopWindow(), ::comphelper::getProcessComponentContext());
-            aDialog->Execute();
+            svt::AddressBookSourceDialog aDialog(rReq.GetFrameWeld(), ::comphelper::getProcessComponentContext());
+            aDialog.run();
             bDone = true;
             break;
         }
diff --git a/svtools/source/dialogs/addresstemplate.cxx b/svtools/source/dialogs/addresstemplate.cxx
index 74c200c29c92..56d90626f25b 100644
--- a/svtools/source/dialogs/addresstemplate.cxx
+++ b/svtools/source/dialogs/addresstemplate.cxx
@@ -79,10 +79,10 @@ namespace svt
 
     namespace
     {
-        OUString lcl_getSelectedDataSource( const ComboBox& _dataSourceCombo )
+        OUString lcl_getSelectedDataSource( const weld::ComboBox& dataSourceCombo )
         {
-            OUString selectedDataSource = _dataSourceCombo.GetText();
-            if ( _dataSourceCombo.GetEntryPos( selectedDataSource ) == LISTBOX_ENTRY_NOTFOUND )
+            OUString selectedDataSource = dataSourceCombo.get_active_text();
+            if (dataSourceCombo.find_text(selectedDataSource) == -1)
             {
                 // none of the pre-selected entries -> assume a path to a database document
                 OFileNotation aFileNotation( selectedDataSource, OFileNotation::N_SYSTEM );
@@ -425,8 +425,8 @@ void AssignmentPersistentData::ImplCommit()
 
     struct AddressBookSourceDialogData
     {
-        std::array<VclPtr<FixedText>, FIELD_PAIRS_VISIBLE*2> pFieldLabels;
-        std::array<VclPtr<ListBox>, FIELD_PAIRS_VISIBLE*2> pFields;
+        std::array<std::unique_ptr<weld::Label>, FIELD_PAIRS_VISIBLE*2> pFieldLabels;
+        std::array<std::unique_ptr<weld::ComboBox>, FIELD_PAIRS_VISIBLE*2> pFields;
 
         /// when working transient, we need the data source
         Reference< XDataSource >
@@ -479,13 +479,10 @@ void AssignmentPersistentData::ImplCommit()
         AddressBookSourceDialogData & operator= (const AddressBookSourceDialogData &) = delete;
     };
 
-
     // = AddressBookSourceDialog
-
-
-    AddressBookSourceDialog::AddressBookSourceDialog(vcl::Window* _pParent,
+    AddressBookSourceDialog::AddressBookSourceDialog(weld::Window* pParent,
             const Reference< XComponentContext >& _rxORB )
-        : ModalDialog(_pParent, "AddressTemplateDialog", "svt/ui/addresstemplatedialog.ui")
+        : GenericDialogController(pParent, "svt/ui/addresstemplatedialog.ui", "AddressTemplateDialog")
         , m_sNoFieldSelection(SvtResId(STR_NO_FIELD_SELECTION))
         , m_xORB(_rxORB)
         , m_pImpl( new AddressBookSourceDialogData )
@@ -493,11 +490,10 @@ void AssignmentPersistentData::ImplCommit()
         implConstruct();
     }
 
-
-    AddressBookSourceDialog::AddressBookSourceDialog( vcl::Window* _pParent, const Reference< XComponentContext >& _rxORB,
+    AddressBookSourceDialog::AddressBookSourceDialog(weld::Window* pParent, const Reference< XComponentContext >& _rxORB,
         const Reference< XDataSource >& _rxTransientDS, const OUString& _rDataSourceName,
         const OUString& _rTable, const Sequence< AliasProgrammaticPair >& _rMapping )
-        : ModalDialog(_pParent, "AddressTemplateDialog", "svt/ui/addresstemplatedialog.ui")
+        : GenericDialogController(pParent, "svt/ui/addresstemplatedialog.ui", "AddressTemplateDialog")
         , m_sNoFieldSelection(SvtResId(STR_NO_FIELD_SELECTION))
         , m_xORB(_rxORB)
         , m_pImpl( new AddressBookSourceDialogData( _rxTransientDS, _rDataSourceName, _rTable, _rMapping ) )
@@ -505,26 +501,26 @@ void AssignmentPersistentData::ImplCommit()
         implConstruct();
     }
 
-
     void AddressBookSourceDialog::implConstruct()
     {
-        get(m_pDatasource, "datasource");
-        get(m_pAdministrateDatasources, "admin");
-        get(m_pTable, "datatable");
-        VclScrolledWindow *pScrollWindow = get<VclScrolledWindow>("scrollwindow");
-        pScrollWindow->setUserManagedScrolling(true);
-        m_pFieldScroller = &pScrollWindow->getVertScrollBar();
+        m_xOKButton = m_xBuilder->weld_button("ok");
+        m_xDatasource = m_xBuilder->weld_combo_box("datasource");
+        m_xAdministrateDatasources = m_xBuilder->weld_button("admin");
+        m_xTable = m_xBuilder->weld_combo_box("datatable");
+        m_xFieldScroller = m_xBuilder->weld_scrolled_window("scrollwindow");
+        m_xFieldScroller->set_user_managed_scrolling();
+        m_xGrid = m_xBuilder->weld_widget("grid");
+        m_xFieldScroller->set_size_request(-1, m_xGrid->get_preferred_size().Height());
 
         for (sal_Int32 row=0; row<FIELD_PAIRS_VISIBLE; ++row)
         {
             for (sal_Int32 column=0; column<2; ++column)
             {
                 // the label
-                m_pImpl->pFieldLabels[row * 2 + column] = get<FixedText>(OString("label") + OString::number(row * 2 + column));
+                m_pImpl->pFieldLabels[row * 2 + column] = m_xBuilder->weld_label(OString("label") + OString::number(row * 2 + column));
                 // the listbox
-                m_pImpl->pFields[row * 2 + column] = get<ListBox>(OString("box") + OString::number(row * 2 + column));
-                m_pImpl->pFields[row * 2 + column]->SetSelectHdl(LINK(this, AddressBookSourceDialog, OnFieldSelect));
-
+                m_pImpl->pFields[row * 2 + column] = m_xBuilder->weld_combo_box(OString("box") + OString::number(row * 2 + column));
+                m_pImpl->pFields[row * 2 + column]->connect_changed(LINK(this, AddressBookSourceDialog, OnFieldSelect));
             }
         }
 
@@ -571,52 +567,51 @@ void AssignmentPersistentData::ImplCommit()
         m_pImpl->aFieldLabels.push_back( SvtResId( STR_FIELD_USER4));
 
         long nLabelWidth = 0;
-        long nListBoxWidth = m_pImpl->pFields[0]->approximate_char_width() * 20;
+        long nListBoxWidth = m_pImpl->pFields[0]->get_approximate_digit_width() * 18;
         for (auto const& fieldLabel : m_pImpl->aFieldLabels)
         {
-            nLabelWidth = std::max(nLabelWidth, FixedText::getTextDimensions(m_pImpl->pFieldLabels[0], fieldLabel, 0x7FFFFFFF).Width());
+            m_pImpl->pFieldLabels[0]->set_label(fieldLabel);
+            nLabelWidth = std::max(nLabelWidth, m_pImpl->pFieldLabels[0]->get_preferred_size().Width());
         }
         for (sal_Int32 row=0; row<FIELD_PAIRS_VISIBLE; ++row)
         {
             for (sal_Int32 column=0; column<2; ++column)
             {
-                m_pImpl->pFieldLabels[row * 2 + column]->set_width_request(nLabelWidth);
-                m_pImpl->pFields[row * 2 + column]->set_width_request(nListBoxWidth);
+                m_pImpl->pFieldLabels[row * 2 + column]->set_size_request(nLabelWidth, -1);
+                m_pImpl->pFields[row * 2 + column]->set_size_request(nListBoxWidth, -1);
             }
         }
 
-
         // force a even number of known fields
         m_pImpl->bOddFieldNumber = (m_pImpl->aFieldLabels.size() % 2) != 0;
         if (m_pImpl->bOddFieldNumber)
-            m_pImpl->aFieldLabels.emplace_back( );
+            m_pImpl->aFieldLabels.emplace_back();
 
         // limit the scrollbar range accordingly
         sal_Int32 nOverallFieldPairs = m_pImpl->aFieldLabels.size() / 2;
-        m_pFieldScroller->SetRange( Range(0, nOverallFieldPairs - FIELD_PAIRS_VISIBLE) );
-        m_pFieldScroller->SetLineSize(1);
-        m_pFieldScroller->SetPageSize(FIELD_PAIRS_VISIBLE);
+        m_xFieldScroller->vadjustment_configure(0, 0, nOverallFieldPairs,
+                                                1, FIELD_PAIRS_VISIBLE - 1, FIELD_PAIRS_VISIBLE);
 
         // reset the current field assignments
         m_pImpl->aFieldAssignments.resize(m_pImpl->aFieldLabels.size());
-            // (empty strings mean "no assignment")
+        // (empty strings mean "no assignment")
 
         // some knittings
-        m_pFieldScroller->SetScrollHdl(LINK(this, AddressBookSourceDialog, OnFieldScroll));
-        m_pAdministrateDatasources->SetClickHdl(LINK(this, AddressBookSourceDialog, OnAdministrateDatasources));
-        m_pDatasource->EnableAutocomplete(true);
-        m_pTable->EnableAutocomplete(true);
-        m_pTable->SetGetFocusHdl(LINK(this, AddressBookSourceDialog, OnComboGetFocus));
-        m_pDatasource->SetGetFocusHdl(LINK(this, AddressBookSourceDialog, OnComboGetFocus));
-        m_pTable->SetLoseFocusHdl(LINK(this, AddressBookSourceDialog, OnComboLoseFocus));
-        m_pDatasource->SetLoseFocusHdl(LINK(this, AddressBookSourceDialog, OnComboLoseFocus));
-        m_pTable->SetSelectHdl(LINK(this, AddressBookSourceDialog, OnComboSelect));
-        m_pDatasource->SetSelectHdl(LINK(this, AddressBookSourceDialog, OnComboSelect));
-        get<OKButton>("ok")->SetClickHdl(LINK(this, AddressBookSourceDialog, OnOkClicked));
+        m_xFieldScroller->connect_vadjustment_changed(LINK(this, AddressBookSourceDialog, OnFieldScroll));
+        m_xAdministrateDatasources->connect_clicked(LINK(this, AddressBookSourceDialog, OnAdministrateDatasources));
+        m_xDatasource->set_entry_completion(true);
+        m_xTable->set_entry_completion(true);
+        m_xTable->connect_focus_in(LINK(this, AddressBookSourceDialog, OnComboGetFocus));
+        m_xDatasource->connect_focus_in(LINK(this, AddressBookSourceDialog, OnComboGetFocus));
+        m_xTable->connect_focus_out(LINK(this, AddressBookSourceDialog, OnComboLoseFocus));
+        m_xDatasource->connect_focus_out(LINK(this, AddressBookSourceDialog, OnComboLoseFocus));
+        m_xTable->connect_changed(LINK(this, AddressBookSourceDialog, OnComboSelect));
+        m_xDatasource->connect_changed(LINK(this, AddressBookSourceDialog, OnComboSelect));
+        m_xOKButton->connect_clicked(LINK(this, AddressBookSourceDialog, OnOkClicked));
 
         // initialize the field controls
         resetFields();
-        m_pFieldScroller->SetThumbPos(0);
+        m_xFieldScroller->vadjustment_set_value(0);
         m_pImpl->nFieldScrollPos = -1;
         implScrollFields(0, false, false);
 
@@ -630,28 +625,17 @@ void AssignmentPersistentData::ImplCommit()
         for (sal_Int32 i = 0; i<nAdjustedTokenCount; ++i)
             m_pImpl->aLogicalFieldNames.push_back(sLogicalFieldNames.getToken(0, ';', nIdx));
 
-        PostUserEvent(LINK(this, AddressBookSourceDialog, OnDelayedInitialize), nullptr, true);
-            // so the dialog will at least show up before we do the loading of the
-            // configuration data and the (maybe time consuming) analysis of the data source/table to select
-
-        if ( m_pImpl->bWorkingPersistent )
-            return;
-
-        StyleSettings aSystemStyle = GetSettings().GetStyleSettings();
-        const ::Color& rNewColor = aSystemStyle.GetDialogColor();
+        Application::PostUserEvent(LINK(this, AddressBookSourceDialog, OnDelayedInitialize), nullptr, false);
 
-        m_pDatasource->SetReadOnly();
-        m_pDatasource->SetBackground( Wallpaper( rNewColor ) );
-        m_pDatasource->SetControlBackground( rNewColor );
+        // so the dialog will at least show up before we do the loading of the
+        // configuration data and the (maybe time consuming) analysis of the data source/table to select
 
-        m_pTable->SetReadOnly();
-        m_pTable->SetBackground( Wallpaper( rNewColor ) );
-        m_pTable->SetControlBackground( rNewColor );
+        if (m_pImpl->bWorkingPersistent)
+            return;
 
-        m_pAdministrateDatasources->Hide( );
+        m_xAdministrateDatasources->hide();
     }
 
-
     void AddressBookSourceDialog::getFieldMapping(Sequence< AliasProgrammaticPair >& _rMapping) const
     {
         _rMapping.realloc( m_pImpl->aLogicalFieldNames.size() );
@@ -671,7 +655,6 @@ void AssignmentPersistentData::ImplCommit()
         _rMapping.realloc( pPair - _rMapping.getArray() );
     }
 
-
     void AddressBookSourceDialog::loadConfiguration()
     {
         OUString sName = m_pImpl->pConfigData->getDatasourceName();
@@ -682,8 +665,8 @@ void AssignmentPersistentData::ImplCommit()
             sName = aFileNotation.get(OFileNotation::N_SYSTEM);
         }
 
-        m_pDatasource->SetText(sName);
-        m_pTable->SetText(m_pImpl->pConfigData->getCommand());
+        m_xDatasource->set_entry_text(sName);
+        m_xTable->set_entry_text(m_pImpl->pConfigData->getCommand());
         // we ignore the CommandType: only tables are supported
 
         // the logical names for the fields
@@ -698,23 +681,10 @@ void AssignmentPersistentData::ImplCommit()
         }
     }
 
-
     AddressBookSourceDialog::~AddressBookSourceDialog()
     {
-        disposeOnce();
     }
 
-    void AddressBookSourceDialog::dispose()
-    {
-        m_pImpl.reset();
-        m_pDatasource.clear();
-        m_pAdministrateDatasources.clear();
-        m_pTable.clear();
-        m_pFieldScroller.clear();
-        ModalDialog::dispose();
-    }
-
-
     void AddressBookSourceDialog::initializeDatasources()
     {
         if (!m_xDatabaseContext.is())
@@ -731,11 +701,11 @@ void AssignmentPersistentData::ImplCommit()
             if (!m_xDatabaseContext.is())
             {
                 const OUString sContextServiceName("com.sun.star.sdb.DatabaseContext");
-                ShowServiceNotAvailableError(GetFrameWeld(), sContextServiceName, false);
+                ShowServiceNotAvailableError(m_xDialog.get(), sContextServiceName, false);
                 return;
             }
         }
-        m_pDatasource->Clear();
+        m_xDatasource->clear();
 
         // fill the datasources listbox
         Sequence< OUString > aDatasourceNames;
@@ -750,46 +720,44 @@ void AssignmentPersistentData::ImplCommit()
         const OUString* pDatasourceNames = aDatasourceNames.getConstArray();
         const OUString* pEnd = pDatasourceNames + aDatasourceNames.getLength();
         for (; pDatasourceNames < pEnd; ++pDatasourceNames)
-            m_pDatasource->InsertEntry(*pDatasourceNames);
+            m_xDatasource->append_text(*pDatasourceNames);
     }
 
-
-    IMPL_LINK(AddressBookSourceDialog, OnFieldScroll, ScrollBar*, _pScrollBar, void)
+    IMPL_LINK(AddressBookSourceDialog, OnFieldScroll, weld::ScrolledWindow&, rScrollBar, void)
     {
-        implScrollFields( _pScrollBar->GetThumbPos(), true, true );
+        implScrollFields(rScrollBar.vadjustment_get_value(), true, true);
     }
 
-
     void AddressBookSourceDialog::resetTables()
     {
         if (!m_xDatabaseContext.is())
             return;
 
-        WaitObject aWaitCursor(this);
+        weld::WaitObject aWaitCursor(m_xDialog.get());
 
         // no matter what we do here, we handled the currently selected data source (no matter if successful or not)
-        m_pDatasource->SaveValue();
+        m_xDatasource->save_value();
 
         // create an interaction handler (may be needed for connecting)
         Reference< XInteractionHandler > xHandler;
         try
         {
             xHandler.set(
-                InteractionHandler::createWithParent(m_xORB, VCLUnoHelper::GetInterface(this)),
+                InteractionHandler::createWithParent(m_xORB, m_xDialog->GetXWindow()),
                 UNO_QUERY_THROW );
         }
         catch(const Exception&) { }
         if (!xHandler.is())
         {
             const OUString sInteractionHandlerServiceName("com.sun.star.task.InteractionHandler");
-            ShowServiceNotAvailableError(GetFrameWeld(), sInteractionHandlerServiceName, true);
+            ShowServiceNotAvailableError(m_xDialog.get(), sInteractionHandlerServiceName, true);
             return;
         }
 
         // the currently selected table
-        OUString sOldTable = m_pTable->GetText();
+        OUString sOldTable = m_xTable->get_active_text();
 
-        m_pTable->Clear();
+        m_xTable->clear();
 
         m_xCurrentDatasourceTables= nullptr;
 
@@ -801,7 +769,7 @@ void AssignmentPersistentData::ImplCommit()
             Reference< XCompletedConnection > xDS;
             if ( m_pImpl->bWorkingPersistent )
             {
-                OUString sSelectedDS = lcl_getSelectedDataSource(*m_pDatasource);
+                OUString sSelectedDS = lcl_getSelectedDataSource(*m_xDatasource);
 
                 // get the data source the user has chosen and let it build a connection
                 INetURLObject aURL( sSelectedDS );
@@ -852,7 +820,7 @@ void AssignmentPersistentData::ImplCommit()
         const OUString* pEnd = pTableNames + aTableNames.getLength();
         for (;pTableNames != pEnd; ++pTableNames)
         {
-            m_pTable->InsertEntry(*pTableNames);
+            m_xTable->append_text(*pTableNames);
             if (*pTableNames == sOldTable)
                 bKnowOldTable = true;
         }
@@ -860,20 +828,19 @@ void AssignmentPersistentData::ImplCommit()
         // set the old table, if the new data source knows a table with this name, too. Else reset the tables edit field.
         if (!bKnowOldTable)
             sOldTable.clear();
-        m_pTable->SetText(sOldTable);
+        m_xTable->set_entry_text(sOldTable);
 
         resetFields();
     }
 
-
     void AddressBookSourceDialog::resetFields()
     {
-        WaitObject aWaitCursor(this);
+        weld::WaitObject aWaitCursor(m_xDialog.get());
 
         // no matter what we do here, we handled the currently selected table (no matter if successful or not)
-        m_pDatasource->SaveValue();
+        m_xDatasource->save_value();
 
-        OUString sSelectedTable = m_pTable->GetText();
+        OUString sSelectedTable = m_xTable->get_active_text();
         Sequence< OUString > aColumnNames;
         try
         {
@@ -911,31 +878,31 @@ void AssignmentPersistentData::ImplCommit()
         OUString sSaveSelection;
         for (sal_Int32 i=0; i<FIELD_CONTROLS_VISIBLE; ++i, ++aInitialSelection)
         {
-            VclPtr<ListBox>& pListbox = m_pImpl->pFields[i];
-            sSaveSelection = pListbox->GetSelectedEntry();
+            weld::ComboBox* pListbox = m_pImpl->pFields[i].get();
+            sSaveSelection = pListbox->get_active_text();
 
-            pListbox->Clear();
+            pListbox->clear();
 
             // the one entry for "no selection"
-            pListbox->InsertEntry(m_sNoFieldSelection, 0);
+            pListbox->append_text(m_sNoFieldSelection);
             // as it's entry data, set the index of the list box in our array
-            pListbox->SetEntryData(0, reinterpret_cast<void*>(i));
+            pListbox->set_id(0, OUString::number(i));
 
             // the field names
             for (pColumnNames = aColumnNames.getConstArray(); pColumnNames != pEnd; ++pColumnNames)
-                pListbox->InsertEntry(*pColumnNames);
+                pListbox->append_text(*pColumnNames);
 
             if (!aInitialSelection->isEmpty() && (aColumnNameSet.end() != aColumnNameSet.find(*aInitialSelection)))
                 // we can select the entry as specified in our field assignment array
-                pListbox->SelectEntry(*aInitialSelection);
+                pListbox->set_active_text(*aInitialSelection);
             else
                 // try to restore the selection
                 if (aColumnNameSet.end() != aColumnNameSet.find(sSaveSelection))
                     // the old selection is a valid column name
-                    pListbox->SelectEntry(sSaveSelection);
+                    pListbox->set_active_text(sSaveSelection);
                 else
                     // select the <none> entry
-                    pListbox->SelectEntryPos(0);
+                    pListbox->set_active(0);
         }
 
         // adjust m_pImpl->aFieldAssignments
@@ -945,21 +912,20 @@ void AssignmentPersistentData::ImplCommit()
                     fieldAssignment.clear();
     }
 
-
-    IMPL_LINK(AddressBookSourceDialog, OnFieldSelect, ListBox&, _rListbox, void)
+    IMPL_LINK(AddressBookSourceDialog, OnFieldSelect, weld::ComboBox&, rListbox, void)
     {
         // the index of the affected list box in our array
-        sal_IntPtr nListBoxIndex = reinterpret_cast<sal_IntPtr>(_rListbox.GetEntryData(0));
+        sal_Int32 nListBoxIndex = rListbox.get_id(0).toInt32();
         DBG_ASSERT(nListBoxIndex >= 0 && nListBoxIndex < FIELD_CONTROLS_VISIBLE,
             "AddressBookSourceDialog::OnFieldScroll: invalid list box entry!");
 
         // update the array where we remember the field selections
-        if (0 == _rListbox.GetSelectedEntryPos())
+        if (0 == rListbox.get_active())
             // it's the "no field selection" entry
             m_pImpl->aFieldAssignments[m_pImpl->nFieldScrollPos * 2 + nListBoxIndex].clear();
         else
             // it's a regular field entry
-            m_pImpl->aFieldAssignments[m_pImpl->nFieldScrollPos * 2 + nListBoxIndex] = _rListbox.GetSelectedEntry();
+            m_pImpl->aFieldAssignments[m_pImpl->nFieldScrollPos * 2 + nListBoxIndex] = rListbox.get_active_text();
     }
 
 
@@ -992,20 +958,20 @@ void AssignmentPersistentData::ImplCommit()
         // loop
         for (sal_Int32 i=0; i<FIELD_PAIRS_VISIBLE; ++i)
         {
-            if ((*pLeftListControl)->HasChildPathFocus())
+            if ((*pLeftListControl)->has_focus())
             {
                 nOldFocusRow = i;
                 nOldFocusColumn = 0;
             }
-            else if ((*pRightListControl)->HasChildPathFocus())
+            else if ((*pRightListControl)->has_focus())
             {
                 nOldFocusRow = i;
                 nOldFocusColumn = 1;
             }
 
             // the new texts of the label controls
-            (*pLeftLabelControl)->SetText(*pLeftColumnLabel);
-            (*pRightLabelControl)->SetText(*pRightColumnLabel);
+            (*pLeftLabelControl)->set_label(*pLeftColumnLabel);
+            (*pRightLabelControl)->set_label(*pRightColumnLabel);
 
             // we may have to hide the controls in the right column, if we have no label text for it
             // (which means we have an odd number of fields, though we forced our internal arrays to
@@ -1014,11 +980,11 @@ void AssignmentPersistentData::ImplCommit()
             // an invisible left hand side column, too. But right now, the left hand side controls are always
             // visible)
             bool bHideRightColumn = pRightColumnLabel->isEmpty();
-            (*pRightLabelControl)->Show(!bHideRightColumn);
-            (*pRightListControl)->Show(!bHideRightColumn);
+            (*pRightLabelControl)->show(!bHideRightColumn);
+            (*pRightListControl)->show(!bHideRightColumn);
             // the new selections of the listboxes
-            implSelectField(*pLeftListControl, *pLeftAssignment);
-            implSelectField(*pRightListControl, *pRightAssignment);
+            implSelectField(pLeftListControl->get(), *pLeftAssignment);
+            implSelectField(pRightListControl->get(), *pRightAssignment);
 
             // the index of the last visible list box
             ++m_pImpl->nLastVisibleListIndex;   // the left hand side box is always visible
@@ -1050,27 +1016,25 @@ void AssignmentPersistentData::ImplCommit()
             nNewFocusRow = std::min(nNewFocusRow, sal_Int32(FIELD_PAIRS_VISIBLE - 1), ::std::less< sal_Int32 >());
             nNewFocusRow = std::max(nNewFocusRow, sal_Int32(0), ::std::less< sal_Int32 >());
             // set the new focus (in the same column)
-            m_pImpl->pFields[nNewFocusRow * 2 + nOldFocusColumn]->GrabFocus();
+            m_pImpl->pFields[nNewFocusRow * 2 + nOldFocusColumn]->grab_focus();
         }
 
         m_pImpl->nFieldScrollPos = _nPos;
 
         if (_bAdjustScrollbar)
-            m_pFieldScroller->SetThumbPos(m_pImpl->nFieldScrollPos);
+            m_xFieldScroller->vadjustment_set_value(m_pImpl->nFieldScrollPos);
     }
 
-
-    void AddressBookSourceDialog::implSelectField(ListBox* _pBox, const OUString& _rText)
+    void AddressBookSourceDialog::implSelectField(weld::ComboBox* pBox, const OUString& rText)
     {
-        if (!_rText.isEmpty())
+        if (!rText.isEmpty())
             // a valid field name
-            _pBox->SelectEntry(_rText);
+            pBox->set_active_text(rText);
         else
             // no selection for this item
-            _pBox->SelectEntryPos(0);
+            pBox->set_active(0);
     }
 
-
     IMPL_LINK_NOARG(AddressBookSourceDialog, OnDelayedInitialize, void*, void)
     {
         // load the initial data from the configuration
@@ -1080,46 +1044,41 @@ void AssignmentPersistentData::ImplCommit()
 
         if ( !m_pImpl->bWorkingPersistent )
             if ( m_pImpl->pFields[0] )
-                m_pImpl->pFields[0]->GrabFocus();
+                m_pImpl->pFields[0]->grab_focus();
     }
 
-
-    IMPL_LINK(AddressBookSourceDialog, OnComboSelect, ComboBox&, _rBox, void)
+    IMPL_LINK(AddressBookSourceDialog, OnComboSelect, weld::ComboBox&, rBox, void)
     {
-        if (&_rBox == m_pDatasource)
+        if (&rBox == m_xDatasource.get())
             resetTables();
         else
             resetFields();
     }
 
-
-    IMPL_STATIC_LINK(
-        AddressBookSourceDialog, OnComboGetFocus, Control&, _rBox, void)
+    IMPL_STATIC_LINK(AddressBookSourceDialog, OnComboGetFocus, weld::Widget&, rBox, void)
     {
-        static_cast<ComboBox&>(_rBox).SaveValue();
+        dynamic_cast<weld::ComboBox&>(rBox).save_value();
     }
 
-
-    IMPL_LINK(AddressBookSourceDialog, OnComboLoseFocus, Control&, rControl, void)
+    IMPL_LINK(AddressBookSourceDialog, OnComboLoseFocus, weld::Widget&, rControl, void)
     {
-        ComboBox* _pBox = static_cast<ComboBox*>(&rControl);
-        if ( _pBox->IsValueChangedFromSaved() )
+        weld::ComboBox& rBox = dynamic_cast<weld::ComboBox&>(rControl);
+        if (rBox.get_value_changed_from_saved())
         {
-            if (_pBox == m_pDatasource)
+            if (&rBox == m_xDatasource.get())
                 resetTables();
             else
                 resetFields();
         }
     }
 
-
-    IMPL_LINK_NOARG(AddressBookSourceDialog, OnOkClicked, Button*, void)
+    IMPL_LINK_NOARG(AddressBookSourceDialog, OnOkClicked, weld::Button&, void)
     {
-        OUString sSelectedDS = lcl_getSelectedDataSource(*m_pDatasource);
+        OUString sSelectedDS = lcl_getSelectedDataSource(*m_xDatasource);
         if ( m_pImpl->bWorkingPersistent )
         {
             m_pImpl->pConfigData->setDatasourceName(sSelectedDS);
-            m_pImpl->pConfigData->setCommand(m_pTable->GetText());
+            m_pImpl->pConfigData->setCommand(m_xTable->get_active_text());
         }
 
         // AddressBookSourceDialog::loadConfiguration: inconsistence between field names and field assignments!
@@ -1133,23 +1092,21 @@ void AssignmentPersistentData::ImplCommit()
             ++aAssignment;
         }
 
-
-        EndDialog(RET_OK);
+        m_xDialog->response(RET_OK);
     }
 
-
-    IMPL_LINK_NOARG(AddressBookSourceDialog, OnAdministrateDatasources, Button*, void)
+    IMPL_LINK_NOARG(AddressBookSourceDialog, OnAdministrateDatasources, weld::Button&, void)
     {
         // create the dialog object
         Reference< XExecutableDialog > xAdminDialog;
         try
         {
-            xAdminDialog = AddressBookSourcePilot::createWithParent( m_xORB, VCLUnoHelper::GetInterface(this) );
+            xAdminDialog = AddressBookSourcePilot::createWithParent(m_xORB, m_xDialog->GetXWindow());
         }
         catch(const Exception&) { }
         if (!xAdminDialog.is())
         {
-            ShowServiceNotAvailableError(GetFrameWeld(), "com.sun.star.ui.dialogs.AddressBookSourcePilot", true);
+            ShowServiceNotAvailableError(m_xDialog.get(), "com.sun.star.ui.dialogs.AddressBookSourcePilot", true);
             return;
         }
 
@@ -1170,7 +1127,7 @@ void AssignmentPersistentData::ImplCommit()
                         OFileNotation aFileNotation( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
                         sName = aFileNotation.get(OFileNotation::N_SYSTEM);
                     }
-                    m_pDatasource->InsertEntry(sName);
+                    m_xDatasource->append_text(sName);
                     m_pImpl->pConfigData.reset( new AssignmentPersistentData );
                     loadConfiguration();
                     resetTables();
@@ -1189,53 +1146,6 @@ void AssignmentPersistentData::ImplCommit()
 //      initializeDatasources();
     }
 
-    bool AddressBookSourceDialog::PreNotify( NotifyEvent& _rNEvt )
-    {
-        if (_rNEvt.GetType() == MouseNotifyEvent::KEYINPUT)
-        {
-            const KeyEvent* pKeyEvent = _rNEvt.GetKeyEvent();
-            sal_uInt16 nCode  = pKeyEvent->GetKeyCode().GetCode();
-            bool   bShift = pKeyEvent->GetKeyCode().IsShift();
-            bool   bCtrl  = pKeyEvent->GetKeyCode().IsMod1();
-            bool   bAlt =   pKeyEvent->GetKeyCode().IsMod2();
-
-            if (KEY_TAB == nCode)
-            {   // somebody pressed the tab key
-                if (!bAlt && !bCtrl && !bShift)
-                {   // it's really the only the key (no modifiers)
-                    if (m_pImpl->pFields[m_pImpl->nLastVisibleListIndex]->HasChildPathFocus())
-                        // the last of our visible list boxes has the focus
-                        if (m_pImpl->nFieldScrollPos < m_pFieldScroller->GetRangeMax())
-                        {   // we can still scroll down
-                            sal_Int32 nNextFocusList = m_pImpl->nLastVisibleListIndex + 1 - 2;
-                            // -> scroll down
-                            implScrollFields(m_pImpl->nFieldScrollPos + 1, false, true);
-                            // give the left control in the "next" line the focus
-                            m_pImpl->pFields[nNextFocusList]->GrabFocus();
-                            // return saying "have handled this"
-                            return true;
-                        }
-                }
-                else if (!bAlt && !bCtrl && bShift)
-                {   // it's shift-tab
-                    if (m_pImpl->pFields[0]->HasChildPathFocus())
-                        // our first list box has the focus
-                        if (m_pImpl->nFieldScrollPos > 0)
-                        {   // we can still scroll up
-                            // -> scroll up
-                            implScrollFields(m_pImpl->nFieldScrollPos - 1, false, true);
-                            // give the right control in the "previous" line the focus
-                            m_pImpl->pFields[0 - 1 + 2]->GrabFocus();
-                            // return saying "have handled this"
-                            return true;
-                        }
-                }
-            }
-        }
-
-        return ModalDialog::PreNotify(_rNEvt);
-    }
-
 }   // namespace svt
 
 
diff --git a/svtools/source/uno/addrtempuno.cxx b/svtools/source/uno/addrtempuno.cxx
index 27afba092bac..c6086c141954 100644
--- a/svtools/source/uno/addrtempuno.cxx
+++ b/svtools/source/uno/addrtempuno.cxx
@@ -26,7 +26,7 @@
 #include <com/sun/star/beans/PropertyAttribute.hpp>
 #include <com/sun/star/util/AliasProgrammaticPair.hpp>
 #include <com/sun/star/sdbc/XDataSource.hpp>
-#include <toolkit/helper/vclunohelper.hxx>
+#include <vcl/svapp.hxx>
 #include <rtl/ref.hxx>
 
 using namespace svt;
@@ -114,13 +114,11 @@ namespace {
         return xInfo;
     }
 
-
     ::cppu::IPropertyArrayHelper& OAddressBookSourceDialogUno::getInfoHelper()
     {
         return *getArrayHelper();
     }
 
-
     ::cppu::IPropertyArrayHelper* OAddressBookSourceDialogUno::createArrayHelper( ) const
     {
         Sequence< Property > aProps;
@@ -128,13 +126,12 @@ namespace {
         return new ::cppu::OPropertyArrayHelper(aProps);
     }
 
-
     void OAddressBookSourceDialogUno::executedDialog(sal_Int16 _nExecutionResult)
     {
         OGenericUnoDialog::executedDialog(_nExecutionResult);
 
         if ( _nExecutionResult && m_aDialog )
-            static_cast< AddressBookSourceDialog* >( m_aDialog.m_xVclDialog.get() )->getFieldMapping( m_aAliases );
+            static_cast<AddressBookSourceDialog*>(m_aDialog.m_xWeldDialog.get())->getFieldMapping(m_aAliases);
     }
 
     void SAL_CALL OAddressBookSourceDialogUno::initialize(const Sequence< Any >& rArguments)
@@ -199,16 +196,14 @@ namespace {
         OGenericUnoDialog::implInitialize( _rValue );
     }
 
-
     svt::OGenericUnoDialog::Dialog OAddressBookSourceDialogUno::createDialog(const css::uno::Reference<css::awt::XWindow>& rParent)
     {
-        auto _pParent = VCLUnoHelper::GetWindow(rParent);
+        weld::Window* pParent = Application::GetFrameWeld(rParent);
         if ( m_xDataSource.is() && !m_sTable.isEmpty() )
-            return svt::OGenericUnoDialog::Dialog(VclPtr<AddressBookSourceDialog>::Create(_pParent, m_aContext, m_xDataSource, m_sDataSourceName, m_sTable, m_aAliases));
+            return svt::OGenericUnoDialog::Dialog(std::make_unique<AddressBookSourceDialog>(pParent, m_aContext, m_xDataSource, m_sDataSourceName, m_sTable, m_aAliases));
         else
-            return svt::OGenericUnoDialog::Dialog(VclPtr<AddressBookSourceDialog>::Create(_pParent, m_aContext));
+            return svt::OGenericUnoDialog::Dialog(std::make_unique<AddressBookSourceDialog>(pParent, m_aContext));
     }
-
 }
 
 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
diff --git a/svtools/uiconfig/ui/addresstemplatedialog.ui b/svtools/uiconfig/ui/addresstemplatedialog.ui
index 0d5b2186f6be..5c140908d33c 100644
--- a/svtools/uiconfig/ui/addresstemplatedialog.ui
+++ b/svtools/uiconfig/ui/addresstemplatedialog.ui
@@ -1,13 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="svt">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkDialog" id="AddressTemplateDialog">
     <property name="can_focus">False</property>
-    <property name="resizable">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes" context="addresstemplatedialog|AddressTemplateDialog">Templates: Address Book Assignment</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="default_width">0</property>
+    <property name="default_height">0</property>
     <property name="type_hint">dialog</property>
+    <child>
+      <placeholder/>
+    </child>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
         <property name="can_focus">False</property>
@@ -100,10 +106,10 @@
                           <object class="GtkLabel" id="label33">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="xalign">1</property>
                             <property name="label" translatable="yes" context="addresstemplatedialog|label33">Data source:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">datasource</property>
+                            <property name="xalign">1</property>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
@@ -114,10 +120,10 @@
                           <object class="GtkLabel" id="label43">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="xalign">1</property>
                             <property name="label" translatable="yes" context="addresstemplatedialog|label43">Table:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">datatable</property>
+                            <property name="xalign">1</property>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
@@ -132,7 +138,8 @@
                             <property name="has_entry">True</property>
                             <child internal-child="entry">
                               <object class="GtkEntry" id="comboboxtext-entry">
-                                <property name="can_focus">False</property>
+                                <property name="can_focus">True</property>
+                                <property name="activates_default">True</property>
                               </object>
                             </child>
                           </object>
@@ -149,7 +156,8 @@
                             <property name="has_entry">True</property>
                             <child internal-child="entry">
                               <object class="GtkEntry" id="comboboxtext-entry1">
-                                <property name="can_focus">False</property>
+                                <property name="can_focus">True</property>
+                                <property name="activates_default">True</property>
                               </object>
                             </child>
                           </object>
@@ -214,6 +222,7 @@
                         <property name="can_focus">True</property>
                         <property name="hexpand">True</property>
                         <property name="vexpand">True</property>
+                        <property name="hscrollbar_policy">never</property>
                         <property name="vscrollbar_policy">always</property>
                         <property name="shadow_type">in</property>
                         <child>
@@ -221,167 +230,150 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <child>
-                              <object class="GtkGrid" id="grid4">
+                              <object class="GtkGrid" id="grid">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="hexpand">True</property>
-                                <property name="column_spacing">18</property>
-                                <property name="column_homogeneous">True</property>
                                 <child>
-                                  <object class="GtkGrid" id="grid5">
+                                  <object class="GtkGrid">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="hexpand">True</property>
-                                    <property name="vexpand">True</property>
-                                    <property name="row_spacing">6</property>
-                                    <property name="column_spacing">12</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label0">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box0</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box0">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</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="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box2</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label4">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box4</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label6">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box6</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label8">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box8</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">4</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box2">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box4">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box6">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">3</property>
-                                      </packing>
-                                    </child>
+                                    <property name="border_width">6</property>
+                                    <property name="column_spacing">18</property>
+                                    <property name="column_homogeneous">True</property>
                                     <child>
-                                      <object class="GtkComboBoxText" id="box8">
+                                      <object class="GtkGrid" id="grid5">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
                                         <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">4</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="left_attach">0</property>
-                                    <property name="top_attach">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkGrid" id="grid6">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="hexpand">True</property>
-                                    <property name="vexpand">True</property>
-                                    <property name="row_spacing">6</property>
-                                    <property name="column_spacing">12</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label1">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box1</property>
+                                        <property name="vexpand">True</property>
+                                        <property name="row_spacing">6</property>
+                                        <property name="column_spacing">12</property>
+                                        <child>
+                                          <object class="GtkLabel" id="label0">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box0</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box0">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</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">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box2</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">1</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label4">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box4</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label6">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box6</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label8">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box8</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">4</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box2">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">1</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box4">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box6">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box8">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">4</property>
+                                          </packing>
+                                        </child>
                                       </object>
                                       <packing>
                                         <property name="left_attach">0</property>
@@ -389,119 +381,147 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkComboBoxText" id="box1">
+                                      <object class="GtkGrid" id="grid6">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
                                         <property name="hexpand">True</property>
+                                        <property name="vexpand">True</property>
+                                        <property name="row_spacing">6</property>
+                                        <property name="column_spacing">12</property>
+                                        <child>
+                                          <object class="GtkLabel" id="label1">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box1</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box1">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label3">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box3</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">1</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label5">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box5</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label7">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box7</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label9">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label">label</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">box9</property>
+                                            <property name="xalign">1</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">0</property>
+                                            <property name="top_attach">4</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box3">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">1</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box5">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box7">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkComboBoxText" id="box9">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="hexpand">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="top_attach">4</property>
+                                          </packing>
+                                        </child>
                                       </object>
                                       <packing>
                                         <property name="left_attach">1</property>
                                         <property name="top_attach">0</property>
                                       </packing>
                                     </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label3">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box3</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label5">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box5</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label7">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box7</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label9">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="no">label</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">box9</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">0</property>
-                                        <property name="top_attach">4</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box3">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box5">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">2</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box7">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">3</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="box9">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="hexpand">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="top_attach">4</property>
-                                      </packing>
-                                    </child>
                                   </object>
                                   <packing>
-                                    <property name="left_attach">1</property>
+                                    <property name="left_attach">0</property>
                                     <property name="top_attach">0</property>
                                   </packing>
                                 </child>


More information about the Libreoffice-commits mailing list