summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svtools/UI_svt.mk1
-rw-r--r--svtools/inc/svtools/addresstemplate.hxx20
-rw-r--r--svtools/inc/svtools/helpid.hrc2
-rw-r--r--svtools/inc/svtools/svtools.hrc38
-rw-r--r--svtools/source/dialogs/addresstemplate.cxx160
-rw-r--r--svtools/source/dialogs/addresstemplate.hrc52
-rw-r--r--svtools/source/dialogs/addresstemplate.src423
-rw-r--r--svtools/uiconfig/ui/addresstemplatedialog.ui622
8 files changed, 875 insertions, 443 deletions
diff --git a/svtools/UI_svt.mk b/svtools/UI_svt.mk
index 54d72a75665c..2e5dc0a89be0 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 d9b5148ae0ff..d7406235b9a6 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 990a9237fa68..0751c5b70cd7 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 4afca7358f2e..ea04f469df35 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 e15faf7ed2c7..dc5887ce6124 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 5c794d8fa7e7..f66061fa2800 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 963c31540c5c..cdefacbd064a 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 000000000000..02445962b3b7
--- /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>