[Libreoffice-commits] core.git: svtools/inc svtools/source svtools/uiconfig svtools/UI_svt.mk

Caolán McNamara caolanm at redhat.com
Mon Apr 8 03:59:01 PDT 2013


 svtools/UI_svt.mk                            |    1 
 svtools/inc/svtools/addresstemplate.hxx      |   20 
 svtools/inc/svtools/helpid.hrc               |    2 
 svtools/inc/svtools/svtools.hrc              |   38 +
 svtools/source/dialogs/addresstemplate.cxx   |  160 +++---
 svtools/source/dialogs/addresstemplate.hrc   |   52 --
 svtools/source/dialogs/addresstemplate.src   |  423 +++++-------------
 svtools/uiconfig/ui/addresstemplatedialog.ui |  622 +++++++++++++++++++++++++++
 8 files changed, 875 insertions(+), 443 deletions(-)

New commits:
commit fbb1f9776b18104886c18d01b85331742a5e9764
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Apr 5 15:25:10 2013 +0100

    convert address template dialog to .ui
    
    seeing as it's an obscure dialog I didn't invest time
    in moving all the entries into the .ui and rework
    the scrolling logic
    
    Change-Id: If1dccbf01901bf4f754e49d5b38baf2033316410

diff --git a/svtools/UI_svt.mk b/svtools/UI_svt.mk
index 54d72a7..2e5dc0a 100644
--- a/svtools/UI_svt.mk
+++ b/svtools/UI_svt.mk
@@ -10,6 +10,7 @@
 $(eval $(call gb_UI_UI,svt))
 
 $(eval $(call gb_UI_add_uifiles,svt,\
+	svtools/uiconfig/ui/addresstemplatedialog \
 	svtools/uiconfig/ui/graphicexport \
 	svtools/uiconfig/ui/placeedit \
 	svtools/uiconfig/ui/printersetupdialog \
diff --git a/svtools/inc/svtools/addresstemplate.hxx b/svtools/inc/svtools/addresstemplate.hxx
index d9b5148..d740623 100644
--- a/svtools/inc/svtools/addresstemplate.hxx
+++ b/svtools/inc/svtools/addresstemplate.hxx
@@ -22,10 +22,10 @@
 
 #include "svtools/svtdllapi.h"
 #include <vcl/dialog.hxx>
-#include <vcl/group.hxx>
 #include <vcl/fixed.hxx>
 #include <vcl/combobox.hxx>
 #include <vcl/button.hxx>
+#include <vcl/layout.hxx>
 #include <vcl/lstbox.hxx>
 #include <vcl/scrbar.hxx>
 #include <com/sun/star/container/XNameAccess.hpp>
@@ -47,20 +47,10 @@ namespace svt
     {
     protected:
         // Controls
-        FixedLine       m_aDatasourceFrame;
-        FixedText       m_aDatasourceLabel;
-        ComboBox        m_aDatasource;
-        PushButton      m_aAdministrateDatasources;
-        FixedText       m_aTableLabel;
-        ComboBox        m_aTable;
-
-        FixedText       m_aFieldsTitle;
-        Window          m_aFieldsFrame;
-
-        ScrollBar       m_aFieldScroller;
-        OKButton        m_aOK;
-        CancelButton    m_aCancel;
-        HelpButton      m_aHelp;
+        ComboBox*       m_pDatasource;
+        PushButton*     m_pAdministrateDatasources;
+        ComboBox*       m_pTable;
+        ScrollBar*      m_pFieldScroller;
 
         // string to display for "no selection"
         const String    m_sNoFieldSelection;
diff --git a/svtools/inc/svtools/helpid.hrc b/svtools/inc/svtools/helpid.hrc
index 990a923..0751c5b 100644
--- a/svtools/inc/svtools/helpid.hrc
+++ b/svtools/inc/svtools/helpid.hrc
@@ -59,8 +59,6 @@
 #define HID_TEMPLATEDLG_TB_DOCINFO                             "SVT_HID_TEMPLATEDLG_TB_DOCINFO"
 #define HID_TEMPLATEDLG_TB_PREVIEW                             "SVT_HID_TEMPLATEDLG_TB_PREVIEW"
 
-#define HID_ADDRTEMPL_FIELD_ASSIGNMENT                         "SVT_HID_ADDRTEMPL_FIELD_ASSIGNMENT"
-
 // Help ids for the filepicker dialogs
 #define HID_EXPLORERDLG_FILE                                   "SVT_HID_EXPLORERDLG_FILE"
 
diff --git a/svtools/inc/svtools/svtools.hrc b/svtools/inc/svtools/svtools.hrc
index 4afca73..ea04f46 100644
--- a/svtools/inc/svtools/svtools.hrc
+++ b/svtools/inc/svtools/svtools.hrc
@@ -216,6 +216,44 @@
 //manually in sync with STR_ARR_SVT_LANGUAGE_TABLE
 #define STR_ARR_SVT_LANGUAGE_TABLE_END      (STR_ARR_SVT_LANGUAGE_TABLE)
 
+#define STR_SVT_ADDRESSTEMPLATE_START       (STR_ARR_SVT_LANGUAGE_TABLE_END+1)
+#define STR_NO_FIELD_SELECTION              (STR_SVT_ADDRESSTEMPLATE_START+0)
+#define STR_FIELD_COMPANY                   (STR_SVT_ADDRESSTEMPLATE_START+1)
+#define STR_FIELD_DEPARTMENT                (STR_SVT_ADDRESSTEMPLATE_START+2)
+#define STR_FIELD_FIRSTNAME                 (STR_SVT_ADDRESSTEMPLATE_START+3)
+#define STR_FIELD_LASTNAME                  (STR_SVT_ADDRESSTEMPLATE_START+4)
+#define STR_FIELD_STREET                    (STR_SVT_ADDRESSTEMPLATE_START+5)
+#define STR_FIELD_COUNTRY                   (STR_SVT_ADDRESSTEMPLATE_START+6)
+#define STR_FIELD_ZIPCODE                   (STR_SVT_ADDRESSTEMPLATE_START+7)
+#define STR_FIELD_CITY                      (STR_SVT_ADDRESSTEMPLATE_START+8)
+#define STR_FIELD_TITLE                     (STR_SVT_ADDRESSTEMPLATE_START+9)
+#define STR_FIELD_POSITION                  (STR_SVT_ADDRESSTEMPLATE_START+10)
+#define STR_FIELD_ADDRFORM                  (STR_SVT_ADDRESSTEMPLATE_START+11)
+#define STR_FIELD_INITIALS                  (STR_SVT_ADDRESSTEMPLATE_START+12)
+#define STR_FIELD_SALUTATION                (STR_SVT_ADDRESSTEMPLATE_START+13)
+#define STR_FIELD_HOMETEL                   (STR_SVT_ADDRESSTEMPLATE_START+14)
+#define STR_FIELD_WORKTEL                   (STR_SVT_ADDRESSTEMPLATE_START+15)
+#define STR_FIELD_FAX                       (STR_SVT_ADDRESSTEMPLATE_START+16)
+#define STR_FIELD_EMAIL                     (STR_SVT_ADDRESSTEMPLATE_START+17)
+#define STR_FIELD_URL                       (STR_SVT_ADDRESSTEMPLATE_START+18)
+#define STR_FIELD_NOTE                      (STR_SVT_ADDRESSTEMPLATE_START+19)
+#define STR_FIELD_USER1                     (STR_SVT_ADDRESSTEMPLATE_START+20)
+#define STR_FIELD_USER2                     (STR_SVT_ADDRESSTEMPLATE_START+21)
+#define STR_FIELD_USER3                     (STR_SVT_ADDRESSTEMPLATE_START+22)
+#define STR_FIELD_USER4                     (STR_SVT_ADDRESSTEMPLATE_START+23)
+#define STR_FIELD_ID                        (STR_SVT_ADDRESSTEMPLATE_START+24)
+#define STR_FIELD_STATE                     (STR_SVT_ADDRESSTEMPLATE_START+25)
+#define STR_FIELD_OFFICETEL                 (STR_SVT_ADDRESSTEMPLATE_START+26)
+#define STR_FIELD_PAGER                     (STR_SVT_ADDRESSTEMPLATE_START+27)
+#define STR_FIELD_MOBILE                    (STR_SVT_ADDRESSTEMPLATE_START+28)
+#define STR_FIELD_TELOTHER                  (STR_SVT_ADDRESSTEMPLATE_START+29)
+#define STR_FIELD_CALENDAR                  (STR_SVT_ADDRESSTEMPLATE_START+30)
+#define STR_FIELD_INVITE                    (STR_SVT_ADDRESSTEMPLATE_START+31)
+#define STR_LOGICAL_FIELD_NAMES             (STR_SVT_ADDRESSTEMPLATE_START+32)
+#define STR_SVT_ADDRESSTEMPLATE_END         (STR_LOGICAL_FIELD_NAMES)
+
+
+
 //.............................................................................
 // dialogs
 
diff --git a/svtools/source/dialogs/addresstemplate.cxx b/svtools/source/dialogs/addresstemplate.cxx
index e15faf7..dc5887c 100644
--- a/svtools/source/dialogs/addresstemplate.cxx
+++ b/svtools/source/dialogs/addresstemplate.cxx
@@ -545,28 +545,14 @@ void AssignmentPersistentData::Commit()
     // ===================================================================
     // = AddressBookSourceDialog
     // ===================================================================
-#define INIT_FIELDS()   \
-         ModalDialog(_pParent, SvtResId( DLG_ADDRESSBOOKSOURCE ))\
-        ,m_aDatasourceFrame         (this, SvtResId(FL_DATASOURCEFRAME))\
-        ,m_aDatasourceLabel         (this, SvtResId(FT_DATASOURCE))\
-        ,m_aDatasource              (this, SvtResId(CB_DATASOURCE))\
-        ,m_aAdministrateDatasources (this, SvtResId(PB_ADMINISTATE_DATASOURCES))\
-        ,m_aTableLabel              (this, SvtResId(FT_TABLE))\
-        ,m_aTable                   (this, SvtResId(CB_TABLE))\
-        ,m_aFieldsTitle             (this, SvtResId(FT_FIELDS))\
-        ,m_aFieldsFrame             (this, SvtResId(CT_BORDER))\
-        ,m_aFieldScroller           (&m_aFieldsFrame, SvtResId(SB_FIELDSCROLLER))\
-        ,m_aOK                      (this, SvtResId(PB_OK))\
-        ,m_aCancel                  (this, SvtResId(PB_CANCEL))\
-        ,m_aHelp                    (this, SvtResId(PB_HELP))\
-        ,m_sNoFieldSelection(SVT_RESSTR(STR_NO_FIELD_SELECTION))\
-        ,m_xORB(_rxORB)
 
     // -------------------------------------------------------------------
     AddressBookSourceDialog::AddressBookSourceDialog(Window* _pParent,
             const Reference< XComponentContext >& _rxORB )
-        :INIT_FIELDS()
-        ,m_pImpl( new AddressBookSourceDialogData )
+        : ModalDialog(_pParent, "AddressTemplateDialog", "svt/ui/addresstemplatedialog.ui")
+        , m_sNoFieldSelection(SVT_RESSTR(STR_NO_FIELD_SELECTION))
+        , m_xORB(_rxORB)
+        , m_pImpl( new AddressBookSourceDialogData )
     {
         implConstruct();
     }
@@ -575,8 +561,10 @@ void AssignmentPersistentData::Commit()
     AddressBookSourceDialog::AddressBookSourceDialog( Window* _pParent, const Reference< XComponentContext >& _rxORB,
         const Reference< XDataSource >& _rxTransientDS, const OUString& _rDataSourceName,
         const OUString& _rTable, const Sequence< AliasProgrammaticPair >& _rMapping )
-        :INIT_FIELDS()
-        ,m_pImpl( new AddressBookSourceDialogData( _rxTransientDS, _rDataSourceName, _rTable, _rMapping ) )
+        : ModalDialog(_pParent, "AddressTemplateDialog", "svt/ui/addresstemplatedialog.ui")
+        , m_sNoFieldSelection(SVT_RESSTR(STR_NO_FIELD_SELECTION))
+        , m_xORB(_rxORB)
+        , m_pImpl( new AddressBookSourceDialogData( _rxTransientDS, _rDataSourceName, _rTable, _rMapping ) )
     {
         implConstruct();
     }
@@ -584,28 +572,25 @@ void AssignmentPersistentData::Commit()
     // -------------------------------------------------------------------
     void AddressBookSourceDialog::implConstruct()
     {
+        get(m_pDatasource, "datasource");
+        get(m_pAdministrateDatasources, "admin");
+        get(m_pTable, "datatable");
+        m_pFieldScroller = &get<VclScrolledWindow>("scrollwindow")->getVertScrollBar();
+
         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] = new FixedText(&m_aFieldsFrame, SvtResId((sal_uInt16)(FT_FIELD_BASE + row * 2 + column)));
+                m_pImpl->pFieldLabels[row * 2 + column] = get<FixedText>(OString("label") + OString::number(row * 2 + column));
                 // the listbox
-                m_pImpl->pFields[row * 2 + column] = new ListBox(&m_aFieldsFrame, SvtResId((sal_uInt16)(LB_FIELD_BASE + row * 2 + column)));
-                m_pImpl->pFields[row * 2 + column]->SetDropDownLineCount(15);
+                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]->SetHelpId(HID_ADDRTEMPL_FIELD_ASSIGNMENT);
+                m_pImpl->pFields[row * 2 + column]->SetHelpId("svt/ui/addresstemplatedialog/assign");
             }
         }
 
-        m_aFieldsFrame.SetStyle((m_aFieldsFrame.GetStyle() | WB_TABSTOP | WB_DIALOGCONTROL) & ~WB_NODIALOGCONTROL);
-
-        // correct the z-order
-        m_aFieldScroller.SetZOrder(m_pImpl->pFields[FIELD_CONTROLS_VISIBLE - 1], WINDOW_ZORDER_BEHIND);
-        m_aOK.SetZOrder(&m_aFieldsFrame, WINDOW_ZORDER_BEHIND);
-        m_aCancel.SetZOrder(&m_aOK, WINDOW_ZORDER_BEHIND);
-
         initializeDatasources();
 
         // for the moment, we have a hard coded list of all known fields.
@@ -648,39 +633,53 @@ void AssignmentPersistentData::Commit()
         m_pImpl->aFieldLabels.push_back( SVT_RESSTR( STR_FIELD_USER3));
         m_pImpl->aFieldLabels.push_back( SVT_RESSTR( STR_FIELD_USER4));
 
+        long nLabelWidth = 0;
+        long nListBoxWidth = m_pImpl->pFields[0]->approximate_char_width() * 20;
+        for (ConstStringArrayIterator aI = m_pImpl->aFieldLabels.begin(), aEnd = m_pImpl->aFieldLabels.end(); aI != aEnd; ++aI)
+        {
+            nLabelWidth = std::max(nLabelWidth, FixedText::getTextDimensions(m_pImpl->pFieldLabels[0], *aI, 0x7FFFFFFF).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);
+            }
+        }
+
+
         // force a even number of known fields
         m_pImpl->bOddFieldNumber = (m_pImpl->aFieldLabels.size() % 2) != 0;
         if (m_pImpl->bOddFieldNumber)
-            m_pImpl->aFieldLabels.push_back( String() );
+            m_pImpl->aFieldLabels.push_back( OUString() );
 
         // limit the scrollbar range accordingly
         sal_Int32 nOverallFieldPairs = m_pImpl->aFieldLabels.size() / 2;
-        m_aFieldScroller.SetRange( Range(0, nOverallFieldPairs - FIELD_PAIRS_VISIBLE) );
-        m_aFieldScroller.SetLineSize(1);
-        m_aFieldScroller.SetPageSize(FIELD_PAIRS_VISIBLE);
+        m_pFieldScroller->SetRange( Range(0, nOverallFieldPairs - FIELD_PAIRS_VISIBLE) );
+        m_pFieldScroller->SetLineSize(1);
+        m_pFieldScroller->SetPageSize(FIELD_PAIRS_VISIBLE);
 
         // reset the current field assignments
         m_pImpl->aFieldAssignments.resize(m_pImpl->aFieldLabels.size());
             // (empty strings mean "no assignment")
 
         // some knittings
-        m_aFieldScroller.SetScrollHdl(LINK(this, AddressBookSourceDialog, OnFieldScroll));
-        m_aAdministrateDatasources.SetClickHdl(LINK(this, AddressBookSourceDialog, OnAdministrateDatasources));
-        m_aDatasource.EnableAutocomplete(sal_True);
-        m_aTable.EnableAutocomplete(sal_True);
-        m_aTable.SetGetFocusHdl(LINK(this, AddressBookSourceDialog, OnComboGetFocus));
-        m_aDatasource.SetGetFocusHdl(LINK(this, AddressBookSourceDialog, OnComboGetFocus));
-        m_aTable.SetLoseFocusHdl(LINK(this, AddressBookSourceDialog, OnComboLoseFocus));
-        m_aDatasource.SetLoseFocusHdl(LINK(this, AddressBookSourceDialog, OnComboLoseFocus));
-        m_aTable.SetSelectHdl(LINK(this, AddressBookSourceDialog, OnComboSelect));
-        m_aDatasource.SetSelectHdl(LINK(this, AddressBookSourceDialog, OnComboSelect));
-        m_aOK.SetClickHdl(LINK(this, AddressBookSourceDialog, OnOkClicked));
-
-        m_aDatasource.SetDropDownLineCount(15);
+        m_pFieldScroller->SetScrollHdl(LINK(this, AddressBookSourceDialog, OnFieldScroll));
+        m_pAdministrateDatasources->SetClickHdl(LINK(this, AddressBookSourceDialog, OnAdministrateDatasources));
+        m_pDatasource->EnableAutocomplete(sal_True);
+        m_pTable->EnableAutocomplete(sal_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));
 
         // initialize the field controls
         resetFields();
-        m_aFieldScroller.SetThumbPos(0);
+        m_pFieldScroller->SetThumbPos(0);
         m_pImpl->nFieldScrollPos = -1;
         implScrollFields(0, sal_False, sal_False);
 
@@ -697,22 +696,20 @@ void AssignmentPersistentData::Commit()
             // 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
 
-        FreeResource();
-
         if ( !m_pImpl->bWorkingPersistent )
         {
             StyleSettings aSystemStyle = GetSettings().GetStyleSettings();
             const ::Color& rNewColor = aSystemStyle.GetDialogColor();
 
-            m_aDatasource.SetReadOnly( sal_True );
-            m_aDatasource.SetBackground( Wallpaper( rNewColor ) );
-            m_aDatasource.SetControlBackground( rNewColor );
+            m_pDatasource->SetReadOnly( sal_True );
+            m_pDatasource->SetBackground( Wallpaper( rNewColor ) );
+            m_pDatasource->SetControlBackground( rNewColor );
 
-            m_aTable.SetReadOnly( sal_True );
-            m_aTable.SetBackground( Wallpaper( rNewColor ) );
-            m_aTable.SetControlBackground( rNewColor );
+            m_pTable->SetReadOnly( sal_True );
+            m_pTable->SetBackground( Wallpaper( rNewColor ) );
+            m_pTable->SetControlBackground( rNewColor );
 
-            m_aAdministrateDatasources.Hide( );
+            m_pAdministrateDatasources->Hide( );
         }
     }
 
@@ -752,8 +749,8 @@ void AssignmentPersistentData::Commit()
             sName = aFileNotation.get(OFileNotation::N_SYSTEM);
         }
 
-        m_aDatasource.SetText(sName);
-        m_aTable.SetText(m_pImpl->pConfigData->getCommand());
+        m_pDatasource->SetText(sName);
+        m_pTable->SetText(m_pImpl->pConfigData->getCommand());
         // we ignore the CommandType: only tables are supported
 
         // the logical names for the fields
@@ -772,13 +769,6 @@ void AssignmentPersistentData::Commit()
     // -------------------------------------------------------------------
     AddressBookSourceDialog::~AddressBookSourceDialog()
     {
-        sal_Int32 i;
-        for (i=0; i<FIELD_CONTROLS_VISIBLE; ++i)
-        {
-            delete m_pImpl->pFieldLabels[i];
-            delete m_pImpl->pFields[i];
-        }
-
         delete m_pImpl;
     }
 
@@ -803,7 +793,7 @@ void AssignmentPersistentData::Commit()
                 return;
             }
         }
-        m_aDatasource.Clear();
+        m_pDatasource->Clear();
 
         // fill the datasources listbox
         Sequence< OUString > aDatasourceNames;
@@ -818,7 +808,7 @@ void AssignmentPersistentData::Commit()
         const OUString* pDatasourceNames = aDatasourceNames.getConstArray();
         const OUString* pEnd = pDatasourceNames + aDatasourceNames.getLength();
         for (; pDatasourceNames < pEnd; ++pDatasourceNames)
-            m_aDatasource.InsertEntry(*pDatasourceNames);
+            m_pDatasource->InsertEntry(*pDatasourceNames);
     }
 
     // -------------------------------------------------------------------
@@ -837,7 +827,7 @@ void AssignmentPersistentData::Commit()
         WaitObject aWaitCursor(this);
 
         // no matter what we do here, we handled the currently selected data source (no matter if successful or not)
-        m_aDatasource.SaveValue();
+        m_pDatasource->SaveValue();
 
         // create an interaction handler (may be needed for connecting)
         Reference< XInteractionHandler > xHandler;
@@ -856,9 +846,9 @@ void AssignmentPersistentData::Commit()
         }
 
         // the currently selected table
-        OUString sOldTable = m_aTable.GetText();
+        OUString sOldTable = m_pTable->GetText();
 
-        m_aTable.Clear();
+        m_pTable->Clear();
 
         m_xCurrentDatasourceTables= NULL;
 
@@ -870,7 +860,7 @@ void AssignmentPersistentData::Commit()
             Reference< XCompletedConnection > xDS;
             if ( m_pImpl->bWorkingPersistent )
             {
-                String sSelectedDS = lcl_getSelectedDataSource(  m_aDatasource );
+                String sSelectedDS = lcl_getSelectedDataSource(*m_pDatasource);
 
                 // get the data source the user has chosen and let it build a connection
                 INetURLObject aURL( sSelectedDS );
@@ -921,7 +911,7 @@ void AssignmentPersistentData::Commit()
         const OUString* pEnd = pTableNames + aTableNames.getLength();
         for (;pTableNames != pEnd; ++pTableNames)
         {
-            m_aTable.InsertEntry(*pTableNames);
+            m_pTable->InsertEntry(*pTableNames);
             if (0 == pTableNames->compareTo(sOldTable))
                 bKnowOldTable = sal_True;
         }
@@ -929,7 +919,7 @@ void AssignmentPersistentData::Commit()
         // 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 = OUString();
-        m_aTable.SetText(sOldTable);
+        m_pTable->SetText(sOldTable);
 
         resetFields();
     }
@@ -940,9 +930,9 @@ void AssignmentPersistentData::Commit()
         WaitObject aWaitCursor(this);
 
         // no matter what we do here, we handled the currently selected table (no matter if successful or not)
-        m_aDatasource.SaveValue();
+        m_pDatasource->SaveValue();
 
-        String sSelectedTable = m_aTable.GetText();
+        String sSelectedTable = m_pTable->GetText();
         Sequence< OUString > aColumnNames;
         try
         {
@@ -959,7 +949,7 @@ void AssignmentPersistentData::Commit()
                     aColumnNames = xColumns->getElementNames();
             }
         }
-        catch(Exception&)
+        catch (const Exception&)
         {
             OSL_FAIL("AddressBookSourceDialog::resetFields: could not retrieve the table columns!");
         }
@@ -1128,7 +1118,7 @@ void AssignmentPersistentData::Commit()
         m_pImpl->nFieldScrollPos = _nPos;
 
         if (_bAdjustScrollbar)
-            m_aFieldScroller.SetThumbPos(m_pImpl->nFieldScrollPos);
+            m_pFieldScroller->SetThumbPos(m_pImpl->nFieldScrollPos);
     }
 
     // -------------------------------------------------------------------
@@ -1160,7 +1150,7 @@ void AssignmentPersistentData::Commit()
     // -------------------------------------------------------------------
     IMPL_LINK(AddressBookSourceDialog, OnComboSelect, ComboBox*, _pBox)
     {
-        if (_pBox == &m_aDatasource)
+        if (_pBox == m_pDatasource)
             resetTables();
         else
             resetFields();
@@ -1179,7 +1169,7 @@ void AssignmentPersistentData::Commit()
     {
         if (_pBox->GetSavedValue() != _pBox->GetText())
         {
-            if (_pBox == &m_aDatasource)
+            if (_pBox == m_pDatasource)
                 resetTables();
             else
                 resetFields();
@@ -1190,11 +1180,11 @@ void AssignmentPersistentData::Commit()
     // -------------------------------------------------------------------
     IMPL_LINK_NOARG(AddressBookSourceDialog, OnOkClicked)
     {
-        String sSelectedDS = lcl_getSelectedDataSource(  m_aDatasource );
+        String sSelectedDS = lcl_getSelectedDataSource(*m_pDatasource);
         if ( m_pImpl->bWorkingPersistent )
         {
             m_pImpl->pConfigData->setDatasourceName(sSelectedDS);
-            m_pImpl->pConfigData->setCommand(m_aTable.GetText());
+            m_pImpl->pConfigData->setCommand(m_pTable->GetText());
         }
 
         // set the field assignments
@@ -1244,7 +1234,7 @@ void AssignmentPersistentData::Commit()
                         OFileNotation aFileNotation( aURL.GetMainURL( INetURLObject::NO_DECODE ) );
                         sName = aFileNotation.get(OFileNotation::N_SYSTEM);
                     }
-                    m_aDatasource.InsertEntry(sName);
+                    m_pDatasource->InsertEntry(sName);
                     delete m_pImpl->pConfigData;
                     m_pImpl->pConfigData = new AssignmentPersistentData();
                     loadConfiguration();
@@ -1285,7 +1275,7 @@ void AssignmentPersistentData::Commit()
                     {   // 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_aFieldScroller.GetRangeMax())
+                            if (m_pImpl->nFieldScrollPos < m_pFieldScroller->GetRangeMax())
                             {   // we can still scroll down
                                 sal_Int32 nNextFocusList = m_pImpl->nLastVisibleListIndex + 1 - 2;
                                 // -> scroll down
diff --git a/svtools/source/dialogs/addresstemplate.hrc b/svtools/source/dialogs/addresstemplate.hrc
index 5c794d8..f66061f 100644
--- a/svtools/source/dialogs/addresstemplate.hrc
+++ b/svtools/source/dialogs/addresstemplate.hrc
@@ -24,58 +24,6 @@
 #define FIELD_PAIRS_VISIBLE         5
 #define FIELD_CONTROLS_VISIBLE      2 * FIELD_PAIRS_VISIBLE
 
-#define FL_DATASOURCEFRAME          1
-#define FT_DATASOURCE               2
-#define CB_DATASOURCE               3
-#define CT_BORDER                   1
-#define PB_ADMINISTATE_DATASOURCES  4
-#define FT_TABLE                    5
-#define CB_TABLE                    6
-#define FT_FIELDS                   7
-#define SB_FIELDSCROLLER            8
-#define PB_OK                       9
-#define PB_CANCEL                   10
-#define PB_HELP                     11
-
-#define FT_FIELD_BASE               50
-#define LB_FIELD_BASE               50
-
-#define STR_NO_FIELD_SELECTION      1
-#define STR_FIELD_COMPANY           2
-#define STR_FIELD_DEPARTMENT        3
-#define STR_FIELD_FIRSTNAME         4
-#define STR_FIELD_LASTNAME          5
-#define STR_FIELD_STREET            6
-#define STR_FIELD_COUNTRY           7
-#define STR_FIELD_ZIPCODE           8
-#define STR_FIELD_CITY              9
-#define STR_FIELD_TITLE             10
-#define STR_FIELD_POSITION          11
-#define STR_FIELD_ADDRFORM          12
-#define STR_FIELD_INITIALS          13
-#define STR_FIELD_SALUTATION        14
-#define STR_FIELD_HOMETEL           15
-#define STR_FIELD_WORKTEL           16
-#define STR_FIELD_FAX               17
-#define STR_FIELD_EMAIL             18
-#define STR_FIELD_URL               19
-#define STR_FIELD_NOTE              20
-#define STR_FIELD_USER1             21
-#define STR_FIELD_USER2             22
-#define STR_FIELD_USER3             23
-#define STR_FIELD_USER4             24
-#define STR_FIELD_ID                25
-#define STR_FIELD_STATE             26
-#define STR_FIELD_OFFICETEL         27
-#define STR_FIELD_PAGER             28
-#define STR_FIELD_MOBILE            29
-#define STR_FIELD_TELOTHER          30
-#define STR_FIELD_CALENDAR          31
-#define STR_FIELD_INVITE            32
-
-#define STR_LOGICAL_FIELD_NAMES     33
-
-
 #endif // _SVT_ADDRESSTEMPLATE_HRC_
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/source/dialogs/addresstemplate.src b/svtools/source/dialogs/addresstemplate.src
index 963c315..cdefacb 100644
--- a/svtools/source/dialogs/addresstemplate.src
+++ b/svtools/source/dialogs/addresstemplate.src
@@ -19,298 +19,143 @@
 
 #include <svtools/svtools.hrc>
 #include "addresstemplate.hrc"
-#include <svtools/controldims.hrc>
 
-#define FIELD_ROW_HEIGHT    17
-
-ModalDialog DLG_ADDRESSBOOKSOURCE
-{
-    HelpID = "svtools:ModalDialog:DLG_ADDRESSBOOKSOURCE";
-    SVLook = TRUE ;
-    OutputSize = TRUE ;
-    Size = MAP_APPFONT ( 300 , 88 + FIELD_ROW_HEIGHT * FIELD_PAIRS_VISIBLE ) ;
-    Hide = TRUE ;
-    Moveable = TRUE ;
-    Text [ en-US ] = "Templates: Address Book Assignment";
-
-    FixedLine FL_DATASOURCEFRAME
-    {
-        Text [ en-US ] = "Address Book Source";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 6 , 2 ) ;
-        Size = MAP_APPFONT ( 288 , RSC_CD_FIXEDLINE_HEIGHT ) ;
-    };
-    FixedText FT_DATASOURCE
-    {
-        Text [ en-US ] = "Data source";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 15 ) ;
-        Size = MAP_APPFONT ( 90 , 10 ) ;
-
-        Group = TRUE;
-    };
-    ComboBox CB_DATASOURCE
-    {
-        HelpID = "svtools:ComboBox:DLG_ADDRESSBOOKSOURCE:CB_DATASOURCE";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 105, 13 ) ;
-        Size = MAP_APPFONT ( 96, 55 ) ;
-
-        DropDown = TRUE;
-        TabStop = TRUE;
-    };
-    PushButton PB_ADMINISTATE_DATASOURCES
-    {
-        HelpID = "svtools:PushButton:DLG_ADDRESSBOOKSOURCE:PB_ADMINISTATE_DATASOURCES";
-        Text [ en-US ] = "~Address Data Source...";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 204, 13 ) ;
-        Size = MAP_APPFONT ( 90, 14 ) ;
-        TabStop = TRUE;
-    };
-    FixedText FT_TABLE
-    {
-        Text [ en-US ] = "Table";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 32 ) ;
-        Size = MAP_APPFONT ( 90 , 10 ) ;
-
-        Group = TRUE;
-    };
-    ComboBox CB_TABLE
-    {
-        HelpID = "svtools:ComboBox:DLG_ADDRESSBOOKSOURCE:CB_TABLE";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 105, 30 ) ;
-        Size = MAP_APPFONT ( 96, 55 ) ;
-
-        DropDown = TRUE;
-        TabStop = TRUE;
-    };
-    FixedText FT_FIELDS
-    {
-        Text [ en-US ] = "Field assignment";
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 6, 30 + RSC_CD_DROPDOWN_HEIGHT + RSC_SP_CTRL_Y  ) ;
-        Size = MAP_APPFONT ( 248 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    Window CT_BORDER
-    {
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 6, 30 + RSC_CD_DROPDOWN_HEIGHT + RSC_SP_CTRL_Y + RSC_CD_FIXEDTEXT_HEIGHT + RSC_SP_CTRL_DESC_Y ) ;
-        Size = MAP_APPFONT ( 288 , 5 + FIELD_ROW_HEIGHT * FIELD_PAIRS_VISIBLE ) ;
-    };
-
-#define DECLARE_FIELD( row, column )    \
-        FixedText FT_FIELD_BASE + row * 2 + column  \
-        {   \
-            SVLook = TRUE ; \
-            Pos = MAP_APPFONT ( 3 + column * 134, RSC_SP_CTRL_GROUP_Y + 2 + row * FIELD_ROW_HEIGHT ) ;   \
-            Size = MAP_APPFONT ( 79 , 10 ) ; \
-            Group = TRUE;   \
-        };  \
-        ListBox LB_FIELD_BASE + row * 2 + column    \
-        {   \
-            SVLook = TRUE;  \
-            Pos = MAP_APPFONT ( 89 + column * 134, RSC_SP_CTRL_GROUP_Y + row * FIELD_ROW_HEIGHT ) ;  \
-            Size = MAP_APPFONT ( 42 , 14 ) ;    \
-            Border = TRUE;  \
-            DropDown = TRUE;    \
-            TabStop = TRUE;  \
-        }
-
-#if FIELD_PAIRS_VISIBLE > 0
-    DECLARE_FIELD( 0, 0 );
-    DECLARE_FIELD( 0, 1 );
-#endif
-#if FIELD_PAIRS_VISIBLE > 1
-    DECLARE_FIELD( 1, 0 );
-    DECLARE_FIELD( 1, 1 );
-#endif
-#if FIELD_PAIRS_VISIBLE > 2
-    DECLARE_FIELD( 3, 0 );
-    DECLARE_FIELD( 3, 1 );
-#endif
-#if FIELD_PAIRS_VISIBLE > 3
-    DECLARE_FIELD( 2, 0 );
-    DECLARE_FIELD( 2, 1 );
-#endif
-#if FIELD_PAIRS_VISIBLE > 4
-    DECLARE_FIELD( 4, 0 );
-    DECLARE_FIELD( 4, 1 );
-#endif
-#if FIELD_PAIRS_VISIBLE > 5
-    DECLARE_FIELD( 5, 0 );
-    DECLARE_FIELD( 5, 1 );
-#endif
-
-    ScrollBar SB_FIELDSCROLLER
-    {
-        SVLook = TRUE;
-        Pos = MAP_APPFONT ( 275, RSC_SP_CTRL_GROUP_Y ) ;
-        Size = MAP_APPFONT ( 8 , 16 - RSC_SP_CTRL_GROUP_Y + FIELD_ROW_HEIGHT * (FIELD_PAIRS_VISIBLE - 1) ) ;
-    };
-
-    OKButton PB_OK
-    {
-        SVLook = TRUE;
-        DefButton = TRUE;
-        Pos = MAP_APPFONT ( 137, 70 + FIELD_ROW_HEIGHT * FIELD_PAIRS_VISIBLE ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-    };
-
-    CancelButton PB_CANCEL
-    {
-        SVLook = TRUE;
-        Pos = MAP_APPFONT ( 190, 70 + FIELD_ROW_HEIGHT * FIELD_PAIRS_VISIBLE ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-    };
-
-    HelpButton PB_HELP
-    {
-        SVLook = TRUE;
-        Pos = MAP_APPFONT ( 244, 70 + FIELD_ROW_HEIGHT * FIELD_PAIRS_VISIBLE ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-    };
-
-    String STR_LOGICAL_FIELD_NAMES
-    {
-        Text = "FirstName;LastName;Company;Department;Street;Zip;City;State;Country;PhonePriv;PhoneComp;PhoneOffice;PhoneCell;PhoneOther;Pager;Fax;EMail;URL;Title;Position;Code;AddrForm;AddrFormMail;Id;CalendarURL;InviteParticipant;Note;Altfield1;Altfield2;Altfield3;Altfield4";
-        // no need to translate this
-        // the items in this string have to be in the same order as the STR_FIELD_* strings are added to the
-        // field label list of the dialog
-    };
-
-    String STR_NO_FIELD_SELECTION
-    {
-        Text [ en-US ] = "<none>";
-        };
+String STR_LOGICAL_FIELD_NAMES
+{
+    Text = "FirstName;LastName;Company;Department;Street;Zip;City;State;Country;PhonePriv;PhoneComp;PhoneOffice;PhoneCell;PhoneOther;Pager;Fax;EMail;URL;Title;Position;Code;AddrForm;AddrFormMail;Id;CalendarURL;InviteParticipant;Note;Altfield1;Altfield2;Altfield3;Altfield4";
+    // no need to translate this
+    // the items in this string have to be in the same order as the STR_FIELD_* strings are added to the
+    // field label list of the dialog
+};
 
-    String STR_FIELD_COMPANY
-    {
-        Text [ en-US ] = "Company";
-        };
-    String STR_FIELD_DEPARTMENT
-    {
-        Text [ en-US ] = "Department";
-        };
-    String STR_FIELD_FIRSTNAME
-    {
-        Text [ en-US ] = "First name";
-        };
-    String STR_FIELD_LASTNAME
-    {
-        Text [ en-US ] = "Last name";
-        };
-    String STR_FIELD_STREET
-    {
-        Text [ en-US ] = "Street";
-        };
-    String STR_FIELD_COUNTRY
-    {
-        Text [ en-US ] = "Country";
-        };
-    String STR_FIELD_ZIPCODE
-    {
-        Text [ en-US ] = "ZIP Code";
-        };
-    String STR_FIELD_CITY
-    {
-        Text [ en-US ] = "City";
-        };
-    String STR_FIELD_TITLE
-    {
-        Text [ en-US ] = "Title";
-        };
-    String STR_FIELD_POSITION
-    {
-        Text [ en-US ] = "Position";
-        };
-    String STR_FIELD_ADDRFORM
-    {
-        Text [ en-US ] = "Addr. Form";
-        };
-    String STR_FIELD_INITIALS
-    {
-        Text [ en-US ] = "Initials";
-        };
-    String STR_FIELD_SALUTATION
-    {
-        Text [ en-US ] = "Complimentary close";
-        };
-    String STR_FIELD_HOMETEL
-    {
-        Text [ en-US ] = "Tel: Home";
-        };
-    String STR_FIELD_WORKTEL
-    {
-        Text [ en-US ] = "Tel: Work";
-        };
-    String STR_FIELD_FAX
-    {
-        Text [ en-US ] = "FAX";
-        };
-    String STR_FIELD_EMAIL
-    {
-        Text [ en-US ] = "E-mail";
-        };
-    String STR_FIELD_URL
-    {
-        Text [ en-US ] = "URL";
-        };
-    String STR_FIELD_NOTE
-    {
-        Text [ en-US ] = "Note";
-        };
-    String STR_FIELD_USER1
-    {
-        Text [ en-US ] = "User 1";
-        };
-    String STR_FIELD_USER2
-    {
-        Text [ en-US ] = "User 2";
-        };
-    String STR_FIELD_USER3
-    {
-        Text [ en-US ] = "User 3";
-        };
-    String STR_FIELD_USER4
-    {
-        Text [ en-US ] = "User 4";
-        };
+String STR_NO_FIELD_SELECTION
+{
+    Text [ en-US ] = "<none>";
+};
 
-    String STR_FIELD_ID
-    {
-        Text [ en-US ] = "ID";
-        };
-    String STR_FIELD_STATE
-    {
-        Text [ en-US ] = "State";
-        };
-    String STR_FIELD_OFFICETEL
-    {
-        Text [ en-US ] = "Tel: Office";
-        };
-    String STR_FIELD_PAGER
-    {
-        Text [ en-US ] = "Pager";
-        };
-    String STR_FIELD_MOBILE
-    {
-        Text [ en-US ] = "Mobile";
-        };
-    String STR_FIELD_TELOTHER
-    {
-        Text [ en-US ] = "Tel: Other";
-        };
-    String STR_FIELD_CALENDAR
-    {
-        Text [ en-US ] = "Calendar";
-        };
-    String STR_FIELD_INVITE
-    {
-        Text [ en-US ] = "Invite";
-        };
+String STR_FIELD_COMPANY
+{
+    Text [ en-US ] = "Company";
+};
+String STR_FIELD_DEPARTMENT
+{
+    Text [ en-US ] = "Department";
+};
+String STR_FIELD_FIRSTNAME
+{
+    Text [ en-US ] = "First name";
+};
+String STR_FIELD_LASTNAME
+{
+    Text [ en-US ] = "Last name";
+};
+String STR_FIELD_STREET
+{
+    Text [ en-US ] = "Street";
+};
+String STR_FIELD_COUNTRY
+{
+    Text [ en-US ] = "Country";
+};
+String STR_FIELD_ZIPCODE
+{
+    Text [ en-US ] = "ZIP Code";
+};
+String STR_FIELD_CITY
+{
+    Text [ en-US ] = "City";
+};
+String STR_FIELD_TITLE
+{
+    Text [ en-US ] = "Title";
+};
+String STR_FIELD_POSITION
+{
+    Text [ en-US ] = "Position";
+};
+String STR_FIELD_ADDRFORM
+{
+    Text [ en-US ] = "Addr. Form";
+};
+String STR_FIELD_INITIALS
+{
+    Text [ en-US ] = "Initials";
+};
+String STR_FIELD_SALUTATION
+{
+    Text [ en-US ] = "Complimentary close";
+};
+String STR_FIELD_HOMETEL
+{
+    Text [ en-US ] = "Tel: Home";
+};
+String STR_FIELD_WORKTEL
+{
+    Text [ en-US ] = "Tel: Work";
+};
+String STR_FIELD_FAX
+{
+    Text [ en-US ] = "FAX";
+};
+String STR_FIELD_EMAIL
+{
+    Text [ en-US ] = "E-mail";
+};
+String STR_FIELD_URL
+{
+    Text [ en-US ] = "URL";
+};
+String STR_FIELD_NOTE
+{
+    Text [ en-US ] = "Note";
+};
+String STR_FIELD_USER1
+{
+    Text [ en-US ] = "User 1";
+};
+String STR_FIELD_USER2
+{
+    Text [ en-US ] = "User 2";
+};
+String STR_FIELD_USER3
+{
+    Text [ en-US ] = "User 3";
+};
+String STR_FIELD_USER4
+{
+    Text [ en-US ] = "User 4";
+};
+String STR_FIELD_ID
+{
+    Text [ en-US ] = "ID";
+};
+String STR_FIELD_STATE
+{
+    Text [ en-US ] = "State";
+};
+String STR_FIELD_OFFICETEL
+{
+    Text [ en-US ] = "Tel: Office";
+};
+String STR_FIELD_PAGER
+{
+    Text [ en-US ] = "Pager";
+};
+String STR_FIELD_MOBILE
+{
+    Text [ en-US ] = "Mobile";
+};
+String STR_FIELD_TELOTHER
+{
+    Text [ en-US ] = "Tel: Other";
+};
+String STR_FIELD_CALENDAR
+{
+    Text [ en-US ] = "Calendar";
+};
+String STR_FIELD_INVITE
+{
+    Text [ en-US ] = "Invite";
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/uiconfig/ui/addresstemplatedialog.ui b/svtools/uiconfig/ui/addresstemplatedialog.ui
new file mode 100644
index 0000000..0244596
--- /dev/null
+++ b/svtools/uiconfig/ui/addresstemplatedialog.ui
@@ -0,0 +1,622 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkDialog" id="AddressTemplateDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="resizable">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="ok">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="cancel">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="help">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkGrid" id="grid1">
+            <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">12</property>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="top_padding">6</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkGrid" id="grid2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="row_spacing">6</property>
+                        <property name="column_spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="label33">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Data source</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">datasource</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label43">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Table</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">datatable</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="datasource">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="has_entry">True</property>
+                            <property name="entry_text_column">0</property>
+                            <property name="id_column">1</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxtext-entry">
+                                <property name="can_focus">False</property>
+                                <property name="invisible_char">●</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="datatable">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="has_entry">True</property>
+                            <property name="entry_text_column">0</property>
+                            <property name="id_column">1</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxtext-entry1">
+                                <property name="can_focus">False</property>
+                                <property name="invisible_char">●</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="admin">
+                            <property name="label" translatable="yes">_Address Data Source...</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label100">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Address Book Source</property>
+                    <attributes>
+                      <attribute name="weight" value="semibold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="top_padding">6</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrollwindow">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                        <property name="vscrollbar_policy">always</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkGrid" id="grid4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="column_spacing">24</property>
+                            <property name="column_homogeneous">True</property>
+                            <child>
+                              <object class="GtkGrid" id="grid5">
+                                <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">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">0</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label2">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label4">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label6">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label8">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="width">1</property>
+                                    <property name="height">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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">2</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">3</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">4</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</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">0</property>
+                                    <property name="label">label</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="mnemonic_widget">box1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">0</property>
+                                    <property name="top_attach">0</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">0</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label3">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label5">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label7">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label9">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">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>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="width">1</property>
+                                    <property name="height">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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">2</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">3</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</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>
+                                    <property name="entry_text_column">0</property>
+                                    <property name="id_column">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="top_attach">4</property>
+                                    <property name="width">1</property>
+                                    <property name="height">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label23">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Field Assignment</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">ok</action-widget>
+      <action-widget response="0">cancel</action-widget>
+      <action-widget response="0">help</action-widget>
+    </action-widgets>
+  </object>
+</interface>


More information about the Libreoffice-commits mailing list