[Libreoffice-commits] core.git: 4 commits - accessibility/source cui/uiconfig dbaccess/AllLangResTarget_dbu.mk dbaccess/inc dbaccess/source dbaccess/uiconfig dbaccess/UIConfig_dbaccess.mk extras/source

Caolán McNamara caolanm at redhat.com
Thu Mar 13 09:24:39 PDT 2014


 accessibility/source/extended/accessiblelistboxentry.cxx |   29 
 cui/uiconfig/ui/galleryfilespage.ui                      |    2 
 dbaccess/AllLangResTarget_dbu.mk                         |    1 
 dbaccess/UIConfig_dbaccess.mk                            |    2 
 dbaccess/inc/dbaccess_helpid.hrc                         |   20 
 dbaccess/source/ui/control/RelationControl.cxx           |  170 ++---
 dbaccess/source/ui/dlg/RelationDlg.cxx                   |   94 +-
 dbaccess/source/ui/dlg/RelationDlg.src                   |  169 -----
 dbaccess/source/ui/inc/RelationControl.hxx               |   17 
 dbaccess/source/ui/inc/RelationDlg.hxx                   |   28 
 dbaccess/source/ui/inc/dbu_resource.hrc                  |    8 
 dbaccess/source/ui/querydesign/querydlg.cxx              |  126 +--
 dbaccess/source/ui/querydesign/querydlg.hrc              |   49 -
 dbaccess/source/ui/querydesign/querydlg.hxx              |   10 
 dbaccess/source/ui/querydesign/querydlg.src              |  133 ----
 dbaccess/uiconfig/ui/joindialog.ui                       |  366 +++++++++++
 dbaccess/uiconfig/ui/relationdialog.ui                   |  487 +++++++++++++++
 extras/source/glade/libreoffice-catalog.xml.in           |    6 
 18 files changed, 1086 insertions(+), 631 deletions(-)

New commits:
commit dca7bd06ca12d58e853a95ed1fc066f9da7d9e05
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Mar 13 15:41:48 2014 +0000

    convert relation dialog to .ui format
    
    Change-Id: I5c3fce06cbcd9ce46e85f66fb06369155d514efe

diff --git a/dbaccess/AllLangResTarget_dbu.mk b/dbaccess/AllLangResTarget_dbu.mk
index 3103def..5e7448e 100644
--- a/dbaccess/AllLangResTarget_dbu.mk
+++ b/dbaccess/AllLangResTarget_dbu.mk
@@ -46,7 +46,6 @@ $(eval $(call gb_SrsTarget_add_files,dbaccess/dbu,\
     dbaccess/source/ui/dlg/directsql.src \
     dbaccess/source/ui/dlg/indexdialog.src \
     dbaccess/source/ui/dlg/paramdialog.src \
-    dbaccess/source/ui/dlg/RelationDlg.src \
     dbaccess/source/ui/dlg/sqlmessage.src \
     dbaccess/source/ui/dlg/textconnectionsettings.src \
     dbaccess/source/ui/dlg/UserAdmin.src \
diff --git a/dbaccess/UIConfig_dbaccess.mk b/dbaccess/UIConfig_dbaccess.mk
index e55e231..a90e161 100644
--- a/dbaccess/UIConfig_dbaccess.mk
+++ b/dbaccess/UIConfig_dbaccess.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \
     dbaccess/uiconfig/ui/joindialog \
     dbaccess/uiconfig/ui/queryfilterdialog \
     dbaccess/uiconfig/ui/querypropertiesdialog  \
+    dbaccess/uiconfig/ui/relationdialog \
     dbaccess/uiconfig/ui/rowheightdialog \
     dbaccess/uiconfig/ui/savedialog \
     dbaccess/uiconfig/ui/specialsettingspage \
diff --git a/dbaccess/inc/dbaccess_helpid.hrc b/dbaccess/inc/dbaccess_helpid.hrc
index 70058f4..5da3fac 100644
--- a/dbaccess/inc/dbaccess_helpid.hrc
+++ b/dbaccess/inc/dbaccess_helpid.hrc
@@ -211,22 +211,6 @@
 
 #define HID_QUERY_EDIT_JOINCONNECTION                     "DBACCESS_HID_QUERY_EDIT_JOINCONNECTION"
 
-#define HID_DLG_QRY_WINDOW_CONTROL                        "DBACCESS_HID_DLG_QRY_WINDOW_CONTROL"
-#define HID_DLG_QRY_LEFT_TABLE                            "DBACCESS_HID_DLG_QRY_LEFT_TABLE"
-#define HID_DLG_QRY_RIGHT_TABLE                           "DBACCESS_HID_DLG_QRY_RIGHT_TABLE"
-
-#define HID_DLG_REL_CASC_DEL                              "DBACCESS_HID_DLG_REL_CASC_DEL"
-#define HID_DLG_REL_NO_CASC_DEL                           "DBACCESS_HID_DLG_REL_NO_CASC_DEL"
-#define HID_DLG_REL_CASC_DEL_NULL                         "DBACCESS_HID_DLG_REL_CASC_DEL_NULL"
-#define HID_DLG_REL_CASC_DEL_DEFAULT                      "DBACCESS_HID_DLG_REL_CASC_DEL_DEFAULT"
-
-#define HID_DLG_REL_CASC_UPD                              "DBACCESS_HID_DLG_REL_CASC_UPD"
-#define HID_DLG_REL_NO_CASC_UPD                           "DBACCESS_HID_DLG_REL_NO_CASC_UPD"
-#define HID_DLG_REL_CASC_UPD_NULL                         "DBACCESS_HID_DLG_REL_CASC_UPD_NULL"
-#define HID_DLG_REL_CASC_UPD_DEFAULT                      "DBACCESS_HID_DLG_REL_CASC_UPD_DEFAULT"
-#define HID_BROWSER_SAVE_RECORD                           "DBACCESS_HID_BROWSER_SAVE_RECORD"
-#define HID_BROWSER_UNDO_RECORD                           "DBACCESS_HID_BROWSER_UNDO_RECORD"
-
 #define HID_DOCUMENT_CREATE_REPWIZ                        "DBACCESS_HID_DOCUMENT_CREATE_REPWIZ"
 #define HID_TAB_AUTOINCREMENTVALUE                        "DBACCESS_HID_TAB_AUTOINCREMENTVALUE"
 
diff --git a/dbaccess/source/ui/dlg/RelationDlg.cxx b/dbaccess/source/ui/dlg/RelationDlg.cxx
index e366666..a3baa4a 100644
--- a/dbaccess/source/ui/dlg/RelationDlg.cxx
+++ b/dbaccess/source/ui/dlg/RelationDlg.cxx
@@ -51,27 +51,21 @@ using namespace ::dbtools;
 ORelationDialog::ORelationDialog( OJoinTableView* pParent,
                                  const TTableConnectionData::value_type& pConnectionData,
                                  sal_Bool bAllowTableSelect )
-    :ModalDialog( pParent, ModuleRes(DLG_REL_PROPERTIES) )
-    ,m_pTableMap(pParent->GetTabWinMap())
-
-    ,aFL_CascUpd(           this, ModuleRes(FL_CASC_UPD) )
-    ,aRB_NoCascUpd(         this, ModuleRes(RB_NO_CASC_UPD) )
-    ,aRB_CascUpd(           this, ModuleRes(RB_CASC_UPD) )
-    ,aRB_CascUpdNull(       this, ModuleRes(RB_CASC_UPD_NULL) )
-    ,aRB_CascUpdDefault(    this, ModuleRes(RB_CASC_UPD_DEFAULT) )
-    ,aFL_CascDel(           this, ModuleRes(FL_CASC_DEL) )
-    ,aRB_NoCascDel(         this, ModuleRes(RB_NO_CASC_DEL) )
-    ,aRB_CascDel(           this, ModuleRes(RB_CASC_DEL) )
-    ,aRB_CascDelNull(       this, ModuleRes(RB_CASC_DEL_NULL) )
-    ,aRB_CascDelDefault(    this, ModuleRes(RB_CASC_DEL_DEFAULT) )
-
-    ,aPB_OK( this, ModuleRes( PB_OK ) )
-    ,aPB_CANCEL( this, ModuleRes( PB_CANCEL ) )
-    ,aPB_HELP( this, ModuleRes( PB_HELP ) )
-
-    ,m_pOrigConnData( pConnectionData )
-    ,m_bTriedOneUpdate(sal_False)
+    : ModalDialog(pParent, "RelationDialog",
+        "dbaccess/ui/relationdialog.ui")
+    , m_pTableMap(pParent->GetTabWinMap())
+    , m_pOrigConnData(pConnectionData)
+    , m_bTriedOneUpdate(false)
 {
+    get(m_pRB_NoCascUpd, "addaction");
+    get(m_pRB_CascUpd, "addcascade");
+    get(m_pRB_CascUpdNull, "addnull");
+    get(m_pRB_CascUpdDefault, "adddefault");
+    get(m_pRB_NoCascDel, "delaction");
+    get(m_pRB_CascDel, "delcascade");
+    get(m_pRB_CascDelNull, "delnull");
+    get(m_pRB_CascDelDefault, "deldefault");
+    get(m_pPB_OK, "ok");
 
     m_xConnection = pParent->getDesignView()->getController().getConnection();
 
@@ -80,21 +74,19 @@ ORelationDialog::ORelationDialog( OJoinTableView* pParent,
     m_pConnData->CopyFrom( *pConnectionData );
 
     Init(m_pConnData);
-    m_pTableControl.reset( new OTableListBoxControl(this, m_pTableMap, this) );
+    m_xTableControl.reset( new OTableListBoxControl(this, m_pTableMap, this) );
 
-    aPB_OK.SetClickHdl( LINK(this, ORelationDialog, OKClickHdl) );
+    m_pPB_OK->SetClickHdl( LINK(this, ORelationDialog, OKClickHdl) );
 
-    m_pTableControl->Init( m_pConnData );
+    m_xTableControl->Init( m_pConnData );
     if ( bAllowTableSelect )
-        m_pTableControl->fillListBoxes();
+        m_xTableControl->fillListBoxes();
     else
-        m_pTableControl->fillAndDisable(pConnectionData);
+        m_xTableControl->fillAndDisable(pConnectionData);
 
-    m_pTableControl->lateInit();
+    m_xTableControl->lateInit();
 
-    m_pTableControl->NotifyCellChange();
-
-    FreeResource();
+    m_xTableControl->NotifyCellChange();
 }
 
 void ORelationDialog::Init(const TTableConnectionData::value_type& _pConnectionData)
@@ -105,18 +97,18 @@ void ORelationDialog::Init(const TTableConnectionData::value_type& _pConnectionD
     {
     case KeyRule::NO_ACTION:
     case KeyRule::RESTRICT:
-        aRB_NoCascUpd.Check( true );
+        m_pRB_NoCascUpd->Check( true );
         break;
 
     case KeyRule::CASCADE:
-        aRB_CascUpd.Check( true );
+        m_pRB_CascUpd->Check( true );
         break;
 
     case KeyRule::SET_NULL:
-        aRB_CascUpdNull.Check( true );
+        m_pRB_CascUpdNull->Check( true );
         break;
     case KeyRule::SET_DEFAULT:
-        aRB_CascUpdDefault.Check( true );
+        m_pRB_CascUpdDefault->Check( true );
         break;
     }
 
@@ -125,18 +117,18 @@ void ORelationDialog::Init(const TTableConnectionData::value_type& _pConnectionD
     {
     case KeyRule::NO_ACTION:
     case KeyRule::RESTRICT:
-        aRB_NoCascDel.Check( true );
+        m_pRB_NoCascDel->Check( true );
         break;
 
     case KeyRule::CASCADE:
-        aRB_CascDel.Check( true );
+        m_pRB_CascDel->Check( true );
         break;
 
     case KeyRule::SET_NULL:
-        aRB_CascDelNull.Check( true );
+        m_pRB_CascDelNull->Check( true );
         break;
     case KeyRule::SET_DEFAULT:
-        aRB_CascDelDefault.Check( true );
+        m_pRB_CascDelDefault->Check( true );
         break;
     }
 }
@@ -151,13 +143,13 @@ IMPL_LINK( ORelationDialog, OKClickHdl, Button*, /*pButton*/ )
     sal_uInt16 nAttrib = 0;
 
     // Delete Rules
-    if( aRB_NoCascDel.IsChecked() )
+    if( m_pRB_NoCascDel->IsChecked() )
         nAttrib |= KeyRule::NO_ACTION;
-    if( aRB_CascDel.IsChecked() )
+    if( m_pRB_CascDel->IsChecked() )
         nAttrib |= KeyRule::CASCADE;
-    if( aRB_CascDelNull.IsChecked() )
+    if( m_pRB_CascDelNull->IsChecked() )
         nAttrib |= KeyRule::SET_NULL;
-    if( aRB_CascDelDefault.IsChecked() )
+    if( m_pRB_CascDelDefault->IsChecked() )
         nAttrib |= KeyRule::SET_DEFAULT;
 
     ORelationTableConnectionData* pConnData = static_cast<ORelationTableConnectionData*>(m_pConnData.get());
@@ -165,22 +157,22 @@ IMPL_LINK( ORelationDialog, OKClickHdl, Button*, /*pButton*/ )
 
     // Update Rules
     nAttrib = 0;
-    if( aRB_NoCascUpd.IsChecked() )
+    if( m_pRB_NoCascUpd->IsChecked() )
         nAttrib |= KeyRule::NO_ACTION;
-    if( aRB_CascUpd.IsChecked() )
+    if( m_pRB_CascUpd->IsChecked() )
         nAttrib |= KeyRule::CASCADE;
-    if( aRB_CascUpdNull.IsChecked() )
+    if( m_pRB_CascUpdNull->IsChecked() )
         nAttrib |= KeyRule::SET_NULL;
-    if( aRB_CascUpdDefault.IsChecked() )
+    if( m_pRB_CascUpdDefault->IsChecked() )
         nAttrib |= KeyRule::SET_DEFAULT;
     pConnData->SetUpdateRules( nAttrib );
 
-    m_pTableControl->SaveModified();
+    m_xTableControl->SaveModified();
 
     //// wenn die ComboBoxen fuer die Tabellenauswahl enabled sind (Constructor mit bAllowTableSelect==sal_True), dann muss ich in die
     //// Connection auch die Tabellennamen stecken
-    //m_pConnData->SetSourceWinName(m_pTableControl->getSourceWinName());
-    //m_pConnData->SetDestWinName(m_pTableControl->getDestWinName());
+    //m_pConnData->SetSourceWinName(m_xTableControl->getSourceWinName());
+    //m_pConnData->SetDestWinName(m_xTableControl->getDestWinName());
 
     // try to create the relation
     try
@@ -210,8 +202,8 @@ IMPL_LINK( ORelationDialog, OKClickHdl, Button*, /*pButton*/ )
 
     // try again
     Init(m_pConnData);
-    m_pTableControl->Init( m_pConnData );
-    m_pTableControl->lateInit();
+    m_xTableControl->Init( m_pConnData );
+    m_xTableControl->lateInit();
 
     return 0;
 }
@@ -232,7 +224,7 @@ TTableConnectionData::value_type ORelationDialog::getConnectionData() const
 
 void ORelationDialog::setValid(sal_Bool _bValid)
 {
-    aPB_OK.Enable(_bValid);
+    m_pPB_OK->Enable(_bValid);
 }
 
 void ORelationDialog::notifyConnectionChange()
diff --git a/dbaccess/source/ui/dlg/RelationDlg.src b/dbaccess/source/ui/dlg/RelationDlg.src
deleted file mode 100644
index 5da32dd..0000000
--- a/dbaccess/source/ui/dlg/RelationDlg.src
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "RelationDlg.hrc"
-#include "dbu_dlg.hrc"
-#include "dbaccess_helpid.hrc"
-
-ModalDialog DLG_REL_PROPERTIES
-{
-    HelpID = "dbaccess:ModalDialog:DLG_REL_PROPERTIES";
-    OutputSize = TRUE ;
-    SVLook = TRUE ;
-    Size = MAP_APPFONT ( 186 , 205 ) ;
-    Text [ en-US ] = "Relations" ;
-    Moveable = TRUE ;
-    Closeable = TRUE ;
-
-    Window WND_CONTROL
-    {
-        Pos = MAP_APPFONT( 0, 0 );
-        Size = MAP_APPFONT( 186, 113 );
-        DialogControl = TRUE;
-        HelpId        = HID_DLG_QRY_WINDOW_CONTROL ;
-
-        FixedLine FL_INVOLVED_TABLES
-        {
-            Pos = MAP_APPFONT ( 6 , 3 ) ;
-            Size = MAP_APPFONT ( 174 , 8 ) ;
-            Text [ en-US ] = "Tables involved";
-        };
-
-        ListBox LB_LEFT_TABLE
-        {
-            Border = TRUE;
-            Pos = MAP_APPFONT( 12, 14 );
-            Size = MAP_APPFONT( 78, 60 );
-            HelpId   = HID_DLG_QRY_LEFT_TABLE ;
-            DropDown = TRUE;
-            TabStop = TRUE;
-        };
-
-        ListBox LB_RIGHT_TABLE
-        {
-            Border = TRUE;
-            Pos = MAP_APPFONT( 96, 14 );
-            Size = MAP_APPFONT( 78, 60 );
-            HelpId   = HID_DLG_QRY_RIGHT_TABLE ;
-            DropDown = TRUE;
-            TabStop = TRUE;
-        };
-
-        FixedLine FL_INVOLVED_FIELDS
-        {
-            Pos = MAP_APPFONT ( 6 , 29 ) ;
-            Size = MAP_APPFONT ( 174 , 8 ) ;
-            Text [ en-US ] = "Fields involved";
-        };
-    };
-
-    FixedLine FL_CASC_UPD
-    {
-        Pos = MAP_APPFONT ( 6 , 114 ) ;
-        Size = MAP_APPFONT ( 84 , 8 ) ;
-        Text [ en-US ] = "Update options" ;
-    };
-    RadioButton RB_NO_CASC_UPD
-    {
-        Pos = MAP_APPFONT ( 12 , 125 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        TabStop = TRUE ;
-        HelpId  = HID_DLG_REL_NO_CASC_UPD;
-        Text [ en-US ] = "~No action" ;
-    };
-    RadioButton RB_CASC_UPD
-    {
-        Pos = MAP_APPFONT ( 12 , 139 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        HelpId  = HID_DLG_REL_CASC_UPD ;
-        Text [ en-US ] = "~Update cascade" ;
-    };
-    RadioButton RB_CASC_UPD_NULL
-    {
-        Pos = MAP_APPFONT ( 12 , 153 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        HelpId  = HID_DLG_REL_CASC_UPD_NULL ;
-        Text [ en-US ] = "~Set null" ;
-    };
-    RadioButton RB_CASC_UPD_DEFAULT
-    {
-        Pos = MAP_APPFONT ( 12 , 167 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        HelpId  = HID_DLG_REL_CASC_UPD_DEFAULT ;
-        Text [ en-US ] = "Set ~default" ;
-    };
-    FixedLine FL_CASC_DEL
-    {
-        Pos = MAP_APPFONT ( 96 , 114 ) ;
-        Size = MAP_APPFONT ( 84 , 8 ) ;
-        Text [ en-US ] = "Delete options" ;
-    };
-    RadioButton RB_NO_CASC_DEL
-    {
-        Pos = MAP_APPFONT ( 102 , 125 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        TabStop = TRUE ;
-        HelpId  = HID_DLG_REL_NO_CASC_DEL ;
-        Text [ en-US ] = "~No action" ;
-    };
-    RadioButton RB_CASC_DEL
-    {
-        Pos = MAP_APPFONT ( 102 , 139 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        HelpId  = HID_DLG_REL_CASC_DEL ;
-        Text [ en-US ] = "Delete ~cascade" ;
-    };
-    RadioButton RB_CASC_DEL_NULL
-    {
-        Pos = MAP_APPFONT ( 102 , 153 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        HelpId  = HID_DLG_REL_CASC_DEL_NULL ;
-        Text [ en-US ] = "~Set null" ;
-    };
-    RadioButton RB_CASC_DEL_DEFAULT
-    {
-        Pos = MAP_APPFONT ( 102 , 167 ) ;
-        Size = MAP_APPFONT ( 72 , 10 ) ;
-        HelpId  = HID_DLG_REL_CASC_DEL_DEFAULT ;
-        Text [ en-US ] = "Set ~default" ;
-    };
-
-    OKButton PB_OK
-    {
-        Pos = MAP_APPFONT ( 6 , 184 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-        DefButton = TRUE ;
-    };
-    CancelButton PB_CANCEL
-    {
-        Pos = MAP_APPFONT ( 59 , 184 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-    };
-    HelpButton PB_HELP
-    {
-        Pos = MAP_APPFONT ( 115 , 184 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-    };
-
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/RelationDlg.hxx b/dbaccess/source/ui/inc/RelationDlg.hxx
index 0c7decdb..ad84ecc 100644
--- a/dbaccess/source/ui/inc/RelationDlg.hxx
+++ b/dbaccess/source/ui/inc/RelationDlg.hxx
@@ -19,9 +19,9 @@
 #ifndef INCLUDED_DBACCESS_SOURCE_UI_INC_RELATIONDLG_HXX
 #define INCLUDED_DBACCESS_SOURCE_UI_INC_RELATIONDLG_HXX
 
-#include <vcl/dialog.hxx>
-
+#include <boost/scoped_ptr.hpp>
 #include <vcl/button.hxx>
+#include <vcl/dialog.hxx>
 #include <vcl/fixed.hxx>
 #include <vcl/msgbox.hxx>
 #include "JoinTableView.hxx"
@@ -36,23 +36,19 @@ namespace dbaui
                             ,public IRelationControlInterface
     {
         OModuleClient                           m_aModuleClient;
-        ::std::auto_ptr<OTableListBoxControl>   m_pTableControl;
+        boost::scoped_ptr<OTableListBoxControl> m_xTableControl;
         OJoinTableView::OTableWindowMap*        m_pTableMap;
 
-        FixedLine   aFL_CascUpd;
-        RadioButton aRB_NoCascUpd,
-                    aRB_CascUpd,
-                    aRB_CascUpdNull,
-                    aRB_CascUpdDefault;
-        FixedLine   aFL_CascDel;
-        RadioButton aRB_NoCascDel,
-                    aRB_CascDel,
-                    aRB_CascDelNull,
-                    aRB_CascDelDefault;
+        RadioButton* m_pRB_NoCascUpd;
+        RadioButton* m_pRB_CascUpd;
+        RadioButton* m_pRB_CascUpdNull;
+        RadioButton* m_pRB_CascUpdDefault;
+        RadioButton* m_pRB_NoCascDel;
+        RadioButton* m_pRB_CascDel;
+        RadioButton* m_pRB_CascDelNull;
+        RadioButton* m_pRB_CascDelDefault;
 
-        OKButton    aPB_OK;
-        CancelButton aPB_CANCEL;
-        HelpButton  aPB_HELP;
+        OKButton*   m_pPB_OK;
 
         TTableConnectionData::value_type                                        m_pConnData;
         TTableConnectionData::value_type                                        m_pOrigConnData;
diff --git a/dbaccess/source/ui/inc/dbu_resource.hrc b/dbaccess/source/ui/inc/dbu_resource.hrc
index 06362b0..a496afe 100644
--- a/dbaccess/source/ui/inc/dbu_resource.hrc
+++ b/dbaccess/source/ui/inc/dbu_resource.hrc
@@ -82,7 +82,7 @@
 #define DLG_JOIN_TABADD                 RID_DIALOG_START + 14
     // FREE
 #define WIZ_RTFCOPYTABLE                RID_DIALOG_START + 16
-#define DLG_REL_PROPERTIES              RID_DIALOG_START + 17
+    // FREE
     // FREE
 #define DLG_INDEXDESIGN                 RID_DIALOG_START + 19
     // FREE
@@ -280,10 +280,6 @@
 // various
 
 #define PB_FORMAT                       RID_MISC_START +  0
-#define LB_LEFT_TABLE                   RID_MISC_START +  2
-#define LB_RIGHT_TABLE                  RID_MISC_START +  3
-#define FL_INVOLVED_TABLES              RID_MISC_START +  5
-#define FL_INVOLVED_FIELDS              RID_MISC_START +  6
 
 #endif // _DBU_RESOURCE_HRC_
 
diff --git a/dbaccess/source/ui/querydesign/querydlg.cxx b/dbaccess/source/ui/querydesign/querydlg.cxx
index 909fe27..c6e90f2 100644
--- a/dbaccess/source/ui/querydesign/querydlg.cxx
+++ b/dbaccess/source/ui/querydesign/querydlg.cxx
@@ -19,7 +19,6 @@
 
 #include "querydlg.hxx"
 #include "dbu_qry.hrc"
-#include "querydlg.hrc"
 #include <tools/debug.hxx>
 #include <tools/diagnose_ex.h>
 #include "QTableConnectionData.hxx"
@@ -31,6 +30,12 @@
 #include <vcl/msgbox.hxx>
 #include <vcl/settings.hxx>
 
+#define ID_INNER_JOIN       1
+#define ID_LEFT_JOIN        2
+#define ID_RIGHT_JOIN       3
+#define ID_FULL_JOIN        4
+#define ID_CROSS_JOIN       5
+
 using namespace dbaui;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::container;
diff --git a/dbaccess/source/ui/querydesign/querydlg.hrc b/dbaccess/source/ui/querydesign/querydlg.hrc
deleted file mode 100644
index a30989f..0000000
--- a/dbaccess/source/ui/querydesign/querydlg.hrc
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef DBAUI_QUERYDLG_HRC
-#define DBAUI_QUERYDLG_HRC
-
-#include "RelationControl.hrc"
-
-#define FL_JOIN                 1
-#define FT_LISTBOXTITLE         2
-
-#define LB_JOINTYPE     1
-
-
-#define CB_NATURAL      1
-
-#define PB_OK           1
-#define PB_CANCEL       2
-#define PB_HELP         3
-#define ML_HELPTEXT     4
-
-#define WND_JOIN_CONTROL    1
-#define WND_CONTROL         2
-
-#define ID_INNER_JOIN       1
-#define ID_LEFT_JOIN        2
-#define ID_RIGHT_JOIN       3
-#define ID_FULL_JOIN        4
-#define ID_CROSS_JOIN       5
-
-#endif // DBAUI_QUERYDLG_HRC
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/querydlg.src b/dbaccess/source/ui/querydesign/querydlg.src
index 43d1189..81a5ee8 100644
--- a/dbaccess/source/ui/querydesign/querydlg.src
+++ b/dbaccess/source/ui/querydesign/querydlg.src
@@ -17,7 +17,6 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 #include "dbu_qry.hrc"
-#include "querydlg.hrc"
 #include "dbaccess_helpid.hrc"
 
 String STR_JOIN_TYPE_HINT
diff --git a/dbaccess/uiconfig/ui/relationdialog.ui b/dbaccess/uiconfig/ui/relationdialog.ui
new file mode 100644
index 0000000..511bdb9
--- /dev/null
+++ b/dbaccess/uiconfig/ui/relationdialog.ui
@@ -0,0 +1,487 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <!-- interface-requires LibreOffice 1.0 -->
+  <object class="GtkDialog" id="RelationDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Relations</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>
+                <property name="image_position">top</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="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="hexpand">True</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="hexpand">True</property>
+                        <property name="column_spacing">12</property>
+                        <property name="column_homogeneous">True</property>
+                        <child>
+                          <object class="GtkComboBoxText" id="table1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="table2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Tables involved</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </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="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="dbulo-ORelationControl" id="relations">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                        <child internal-child="selection">
+                          <object class="GtkTreeSelection" id="Relation Control-selection1"/>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Fields involved</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>
+            <child>
+              <object class="GtkGrid" id="grid3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkFrame" id="frame3">
+                    <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="alignment3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkGrid" id="grid5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <object class="GtkRadioButton" id="addaction">
+                                <property name="label" translatable="yes">_No action</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">addcascade</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="GtkRadioButton" id="addcascade">
+                                <property name="label" translatable="yes">_Update cascade</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">addnull</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="GtkRadioButton" id="addnull">
+                                <property name="label" translatable="yes">_Set null</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">adddefault</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="GtkRadioButton" id="adddefault">
+                                <property name="label" translatable="yes">Set _default</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">addaction</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>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Update options</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </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="frame4">
+                    <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="alignment4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkGrid" id="grid6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <object class="GtkRadioButton" id="delaction">
+                                <property name="label" translatable="yes">_No action</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</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="GtkRadioButton" id="delcascade">
+                                <property name="label" translatable="yes">Delete _cascade</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</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="GtkRadioButton" id="delnull">
+                                <property name="label" translatable="yes">_Set null</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</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="GtkRadioButton" id="deldefault">
+                                <property name="label" translatable="yes">Set _default</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</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>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Delete options</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </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>
+              </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>
+          </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>
+  <object class="GtkSizeGroup" id="sizegroup1">
+    <widgets>
+      <widget name="table1"/>
+      <widget name="label4"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup2">
+    <widgets>
+      <widget name="table2"/>
+    </widgets>
+  </object>
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+      <!-- column-name gint1 -->
+      <column type="gint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Inner join</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Left join</col>
+        <col id="1">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Right join</col>
+        <col id="1">3</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Full (outer) join</col>
+        <col id="1">4</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Cross join</col>
+        <col id="1">5</col>
+      </row>
+    </data>
+  </object>
+</interface>
commit 07579ec100b9c03f547ed7c3706659bc7d43ce36
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Mar 13 14:42:24 2014 +0000

    convert query join dialog to .ui format
    
    Change-Id: I1de2bb1d171e23a42834e20040ade92822901876

diff --git a/dbaccess/UIConfig_dbaccess.mk b/dbaccess/UIConfig_dbaccess.mk
index 9c46d80..e55e231 100644
--- a/dbaccess/UIConfig_dbaccess.mk
+++ b/dbaccess/UIConfig_dbaccess.mk
@@ -21,6 +21,7 @@ $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \
     dbaccess/uiconfig/ui/generalpagedialog \
     dbaccess/uiconfig/ui/generalpagewizard \
     dbaccess/uiconfig/ui/generatedvaluespage \
+    dbaccess/uiconfig/ui/joindialog \
     dbaccess/uiconfig/ui/queryfilterdialog \
     dbaccess/uiconfig/ui/querypropertiesdialog  \
     dbaccess/uiconfig/ui/rowheightdialog \
diff --git a/dbaccess/inc/dbaccess_helpid.hrc b/dbaccess/inc/dbaccess_helpid.hrc
index 31f9f29..70058f4 100644
--- a/dbaccess/inc/dbaccess_helpid.hrc
+++ b/dbaccess/inc/dbaccess_helpid.hrc
@@ -89,8 +89,6 @@
 
 
 #define HID_CTL_QRYDGNTAB                                 "DBACCESS_HID_CTL_QRYDGNTAB"
-#define HID_DLG_QRY_JOIN                                  "DBACCESS_HID_DLG_QRY_JOIN"
-#define HID_DLG_QRY_JOINTYPE                              "DBACCESS_HID_DLG_QRY_JOINTYPE"
 #define HID_DLG_QRY_HELPTEXT                              "DBACCESS_HID_DLG_QRY_HELPTEXT"
 
 #define HID_CTL_QRYDGNCRIT                                "DBACCESS_HID_CTL_QRYDGNCRIT"
@@ -158,7 +156,6 @@
 #define HID_TLB_RELATIONDESIGN                            "DBACCESS_HID_TLB_RELATIONDESIGN"
 #define HID_RELATIONDIALOG_LEFTFIELDCELL                  "DBACCESS_HID_RELATIONDIALOG_LEFTFIELDCELL"
 #define HID_RELATIONDIALOG_RIGHTFIELDCELL                 "DBACCESS_HID_RELATIONDIALOG_RIGHTFIELDCELL"
-#define HID_RELDLG_KEYFIELDS                              "DBACCESS_HID_RELDLG_KEYFIELDS"
 #define HID_BROWSER_RELATION_DESIGN                       "DBACCESS_HID_BROWSER_RELATION_DESIGN"
 #define HID_TABLE_DESIGN_NO_CONNECTION                    "DBACCESS_HID_TABLE_DESIGN_NO_CONNECTION"
 #define HID_DSADMIN_CREATEDATABASE                        "DBACCESS_HID_DSADMIN_CREATEDATABASE"
@@ -370,7 +367,6 @@
 #define HID_DLG_DATABASE_WIZARD                           "DBACCESS_HID_DLG_DATABASE_WIZARD"
 
 #define HID_EXTENSION_NOT_PRESENT_DLG                     "DBACCESS_HID_EXTENSION_NOT_PRESENT_DLG"
-#define HID_DLG_QRY_JOIN_CONTROL                          "DBACCESS_HID_DLG_QRY_JOIN_CONTROL"
 #define HID_MACRO_MIGRATION_BACKUP_LOCATION               "DBACCESS_HID_MACRO_MIGRATION_BACKUP_LOCATION"
 
 #endif // _DBA_DBACCESS_HELPID_HRC_
diff --git a/dbaccess/source/ui/control/RelationControl.cxx b/dbaccess/source/ui/control/RelationControl.cxx
index 510d381..15ccdfb 100644
--- a/dbaccess/source/ui/control/RelationControl.cxx
+++ b/dbaccess/source/ui/control/RelationControl.cxx
@@ -23,6 +23,7 @@
 #include <svtools/editbrowsebox.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <tools/diagnose_ex.h>
+#include <vcl/builder.hxx>
 #include "TableConnectionData.hxx"
 #include "TableConnection.hxx"
 #include "TableWindow.hxx"
@@ -78,7 +79,11 @@ namespace dbaui
         */
         sal_uInt16 getColumnIdent( sal_uInt16 _nColId ) const;
     public:
-        ORelationControl( OTableListBoxControl* pParent );
+        ORelationControl(Window *pParent);
+        void SetController(OTableListBoxControl* pController)
+        {
+            m_pBoxControl = pController;
+        }
         virtual ~ORelationControl();
 
         /** searches for a connection between these two tables
@@ -99,7 +104,7 @@ namespace dbaui
 
     protected:
         virtual void Resize();
-
+        virtual Size GetOptimalSize() const;
         virtual bool PreNotify(NotifyEvent& rNEvt );
 
         virtual sal_Bool IsTabAllowed(sal_Bool bForward) const;
@@ -123,15 +128,22 @@ namespace dbaui
     };
 
     // class ORelationControl
-    ORelationControl::ORelationControl( OTableListBoxControl* pParent )
-        : EditBrowseBox(pParent, EBBF_SMART_TAB_TRAVEL | EBBF_NOROWPICTURE, WB_TABSTOP | WB_BORDER | BROWSER_AUTOSIZE_LASTCOL)
-        , m_pBoxControl(pParent)
+    ORelationControl::ORelationControl(Window *pParent)
+        : EditBrowseBox(pParent,
+            EBBF_SMART_TAB_TRAVEL | EBBF_NOROWPICTURE,
+            WB_TABSTOP | WB_BORDER | BROWSER_AUTOSIZE_LASTCOL)
+        , m_pBoxControl(NULL)
         , m_nDataPos(0)
         , m_xSourceDef(NULL)
         , m_xDestDef(NULL)
     {
     }
 
+    extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeORelationControl(Window *pParent, VclBuilder::stringmap &)
+    {
+        return new ORelationControl(pParent);
+    }
+
     ORelationControl::~ORelationControl()
     {
     }
@@ -144,6 +156,7 @@ namespace dbaui
 
         m_pConnData->normalizeLines();
     }
+
     void ORelationControl::lateInit()
     {
         if ( !m_pConnData.get() )
@@ -174,10 +187,11 @@ namespace dbaui
 
         RowInserted(0, m_pConnData->GetConnLineDataList()->size() + 1, sal_True); // add one extra row
     }
+
     void ORelationControl::Resize()
     {
         EditBrowseBox::Resize();
-        long nOutputWidth = GetOutputSizePixel().Width();
+        long nOutputWidth = GetOutputSizePixel().Width() - 1;
         SetColumnWidth(1, (nOutputWidth / 2));
         SetColumnWidth(2, (nOutputWidth / 2));
     }
@@ -418,51 +432,45 @@ namespace dbaui
             ActivateCell();
         }
     }
+
     void ORelationControl::CellModified()
     {
         EditBrowseBox::CellModified();
         SaveModified();
-#if OSL_DEBUG_LEVEL > 0
-        OTableListBoxControl *parent = dynamic_cast<OTableListBoxControl*>(GetParent());
-#else
-        OTableListBoxControl *parent = static_cast<OTableListBoxControl*>(GetParent());
-#endif
-        assert(parent);
-        parent->NotifyCellChange();
+        assert(m_pBoxControl);
+        m_pBoxControl->NotifyCellChange();
     }
+
+    Size ORelationControl::GetOptimalSize() const
+    {
+        return LogicToPixel(Size(140, 80), MAP_APPFONT);
+    }
+
     // class OTableListBoxControl
+    OTableListBoxControl::OTableListBoxControl(VclBuilderContainer* _pParent,
+        const OJoinTableView::OTableWindowMap* _pTableMap,
+        IRelationControlInterface* _pParentDialog)
+        : m_pTableMap(_pTableMap)
+        , m_pParentDialog(_pParentDialog)
+    {
+        _pParent->get(m_pLeftTable, "table1");
+        _pParent->get(m_pRightTable, "table2");
 
-OTableListBoxControl::OTableListBoxControl(  Window* _pParent
-                                            ,const ResId& _rResId
-                                            ,const OJoinTableView::OTableWindowMap* _pTableMap
-                                            ,IRelationControlInterface* _pParentDialog)
-     : Window(_pParent,_rResId)
-     , m_aFL_InvolvedTables(    this, ResId(FL_INVOLVED_TABLES,*_rResId.GetResMgr()))
-     , m_lmbLeftTable(          this, ResId(LB_LEFT_TABLE,*_rResId.GetResMgr()))
-     , m_lmbRightTable(         this, ResId(LB_RIGHT_TABLE,*_rResId.GetResMgr()))
-     , m_aFL_InvolvedFields(    this, ResId(FL_INVOLVED_FIELDS,*_rResId.GetResMgr()))
-     , m_pTableMap(_pTableMap)
-     , m_pParentDialog(_pParentDialog)
-    {
-        m_pRC_Tables = new ORelationControl( this );
-        m_pRC_Tables->SetHelpId(HID_RELDLG_KEYFIELDS);
-        m_pRC_Tables->Init( );
-        m_pRC_Tables->SetZOrder(&m_lmbRightTable, WINDOW_ZORDER_BEHIND);
+        _pParent->get(m_pRC_Tables, "relations");
+        m_pRC_Tables->SetController(this);
+        m_pRC_Tables->Init();
 
         lateUIInit();
 
         Link aLink(LINK(this, OTableListBoxControl, OnTableChanged));
-        m_lmbLeftTable.SetSelectHdl(aLink);
-        m_lmbRightTable.SetSelectHdl(aLink);
-
-        FreeResource();
+        m_pLeftTable->SetSelectHdl(aLink);
+        m_pRightTable->SetSelectHdl(aLink);
     }
+
     OTableListBoxControl::~OTableListBoxControl()
     {
-        ORelationControl* pTemp = m_pRC_Tables;
-        m_pRC_Tables = NULL;
-        delete pTemp;
     }
+
     void OTableListBoxControl::fillListBoxes()
     {
         OSL_ENSURE( !m_pTableMap->empty(), "OTableListBoxControl::fillListBoxes: no table window!");
@@ -474,8 +482,8 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
         OJoinTableView::OTableWindowMap::const_iterator aEnd = m_pTableMap->end();
         for(;aIter != aEnd;++aIter)
         {
-            m_lmbLeftTable.InsertEntry(aIter->first);
-            m_lmbRightTable.InsertEntry(aIter->first);
+            m_pLeftTable->InsertEntry(aIter->first);
+            m_pRightTable->InsertEntry(aIter->first);
 
             if (!pInitialLeft)
             {
@@ -502,17 +510,18 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
 
         if ( m_pTableMap->size() > 2 )
         {
-            m_lmbLeftTable.RemoveEntry(m_strCurrentRight);
-            m_lmbRightTable.RemoveEntry(m_strCurrentLeft);
+            m_pLeftTable->RemoveEntry(m_strCurrentRight);
+            m_pRightTable->RemoveEntry(m_strCurrentLeft);
         }
 
         // Select the first one on the left side and on the right side,
         // select the second one
-        m_lmbLeftTable.SelectEntry(m_strCurrentLeft);
-        m_lmbRightTable.SelectEntry(m_strCurrentRight);
+        m_pLeftTable->SelectEntry(m_strCurrentLeft);
+        m_pRightTable->SelectEntry(m_strCurrentRight);
 
-        m_lmbLeftTable.GrabFocus();
+        m_pLeftTable->GrabFocus();
     }
+
     IMPL_LINK( OTableListBoxControl, OnTableChanged, ListBox*, pListBox )
     {
         OUString strSelected(pListBox->GetSelectEntry());
@@ -523,10 +532,10 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
         if ( m_pTableMap->size() == 2 )
         {
             ListBox* pOther;
-            if ( pListBox == &m_lmbLeftTable )
-                pOther = &m_lmbRightTable;
+            if (pListBox == m_pLeftTable)
+                pOther = m_pRightTable;
             else
-                pOther = &m_lmbLeftTable;
+                pOther = m_pLeftTable;
             pOther->SelectEntryPos(1 - pOther->GetSelectEntryPos());
 
             OJoinTableView::OTableWindowMap::const_iterator aIter = m_pTableMap->begin();
@@ -534,7 +543,7 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
             ++aIter;
             OTableWindow* pSecond = aIter->second;
 
-            if ( m_lmbLeftTable.GetSelectEntry() == pFirst->GetName() )
+            if ( m_pLeftTable->GetSelectEntry() == pFirst->GetName() )
             {
                 pLeft   = pFirst;
                 pRight  = pSecond;
@@ -554,33 +563,33 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
                 pLoop = aFind->second;
             OSL_ENSURE(pLoop != NULL, "ORelationDialog::OnTableChanged: invalid ListBox entry!");
                 // We need to find strSelect, because we filled the ListBoxes with the table names with which we compare now
-            if (pListBox == &m_lmbLeftTable)
+            if (pListBox == m_pLeftTable)
             {
                 // Insert the previously selected Entry on the left side on the right side
-                m_lmbRightTable.InsertEntry(m_strCurrentLeft);
+                m_pRightTable->InsertEntry(m_strCurrentLeft);
                 // Remove the currently selected Entry
-                m_lmbRightTable.RemoveEntry(strSelected);
+                m_pRightTable->RemoveEntry(strSelected);
                 m_strCurrentLeft    = strSelected;
 
                 pLeft = pLoop;
 
-                OJoinTableView::OTableWindowMap::const_iterator aIter = m_pTableMap->find(m_lmbRightTable.GetSelectEntry());
+                OJoinTableView::OTableWindowMap::const_iterator aIter = m_pTableMap->find(m_pRightTable->GetSelectEntry());
                 OSL_ENSURE( aIter != m_pTableMap->end(), "Invalid name");
                 if ( aIter != m_pTableMap->end() )
                     pRight = aIter->second;
 
-                m_lmbLeftTable.GrabFocus();
+                m_pLeftTable->GrabFocus();
             }
             else
             {
                 // Insert the previously selected Entry on the right side on the left side
-                m_lmbLeftTable.InsertEntry(m_strCurrentRight);
+                m_pLeftTable->InsertEntry(m_strCurrentRight);
                 // Remove the currently selected Entry
-                m_lmbLeftTable.RemoveEntry(strSelected);
+                m_pLeftTable->RemoveEntry(strSelected);
                 m_strCurrentRight = strSelected;
 
                 pRight = pLoop;
-                OJoinTableView::OTableWindowMap::const_iterator aIter = m_pTableMap->find(m_lmbLeftTable.GetSelectEntry());
+                OJoinTableView::OTableWindowMap::const_iterator aIter = m_pTableMap->find(m_pLeftTable->GetSelectEntry());
                 OSL_ENSURE( aIter != m_pTableMap->end(), "Invalid name");
                 if ( aIter != m_pTableMap->end() )
                     pLeft = aIter->second;
@@ -594,6 +603,7 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
         NotifyCellChange();
         return 0;
     }
+
     void OTableListBoxControl::NotifyCellChange()
     {
         // Enable/disable the OK button, depending on having a valid situation
@@ -633,62 +643,64 @@ OTableListBoxControl::OTableListBoxControl(  Window* _pParent
         m_pRC_Tables->ActivateCell();
         m_pRC_Tables->m_ops.clear();
     }
+
     void fillEntryAndDisable(ListBox& _rListBox,const OUString& _sEntry)
     {
         _rListBox.InsertEntry(_sEntry);
         _rListBox.SelectEntryPos(0);
         _rListBox.Disable();
     }
+
     void OTableListBoxControl::fillAndDisable(const TTableConnectionData::value_type& _pConnectionData)
     {
-        fillEntryAndDisable(m_lmbLeftTable,_pConnectionData->getReferencingTable()->GetWinName());
-        fillEntryAndDisable(m_lmbRightTable,_pConnectionData->getReferencedTable()->GetWinName());
+        fillEntryAndDisable(*m_pLeftTable, _pConnectionData->getReferencingTable()->GetWinName());
+        fillEntryAndDisable(*m_pRightTable, _pConnectionData->getReferencedTable()->GetWinName());
     }
+
     void OTableListBoxControl::Init(const TTableConnectionData::value_type& _pConnData)
     {
         m_pRC_Tables->Init(_pConnData);
     }
-    void OTableListBoxControl::lateUIInit(Window* _pTableSeparator)
-    {
-        const sal_Int32 nDiff = LogicToPixel( Point(0,6), MAP_APPFONT ).Y();
-        Point aDlgPoint = LogicToPixel( Point(12,43), MAP_APPFONT );
-        if ( _pTableSeparator )
-        {
-            _pTableSeparator->SetZOrder(&m_lmbRightTable, WINDOW_ZORDER_BEHIND);
-            m_pRC_Tables->SetZOrder(_pTableSeparator, WINDOW_ZORDER_BEHIND);
-            _pTableSeparator->SetPosPixel(Point(0,m_aFL_InvolvedFields.GetPosPixel().Y()));
-            const Size aSize = _pTableSeparator->GetSizePixel();
-            aDlgPoint.Y() = _pTableSeparator->GetPosPixel().Y() + aSize.Height();
-            m_aFL_InvolvedFields.SetPosPixel(Point(m_aFL_InvolvedFields.GetPosPixel().X(),aDlgPoint.Y()));
-            aDlgPoint.Y() += nDiff + m_aFL_InvolvedFields.GetSizePixel().Height();
-        }
-        // positing BrowseBox control
-        const Size aCurrentSize = GetSizePixel();
-        Size aDlgSize = LogicToPixel( Size(24,0), MAP_APPFONT );
-        aDlgSize.Width() = aCurrentSize.Width() - aDlgSize.Width();
-        aDlgSize.Height() = aCurrentSize.Height() - aDlgPoint.Y() - nDiff;
 
-        m_pRC_Tables->SetPosSizePixel( aDlgPoint, aDlgSize );
+    void OTableListBoxControl::lateUIInit()
+    {
         m_pRC_Tables->Show();
-
         lateInit();
     }
+
     void OTableListBoxControl::lateInit()
     {
         m_pRC_Tables->lateInit();
     }
+
+    void OTableListBoxControl::Disable()
+    {
+        m_pLeftTable->Disable();
+        m_pRightTable->Disable();
+        m_pRC_Tables->Disable();
+    }
+
+    void OTableListBoxControl::Invalidate()
+    {
+        m_pLeftTable->Invalidate();
+        m_pRightTable->Invalidate();
+        m_pRC_Tables->Invalidate();
+    }
+
     sal_Bool OTableListBoxControl::SaveModified()
     {
         return m_pRC_Tables->SaveModified();
     }
+
     TTableWindowData::value_type OTableListBoxControl::getReferencingTable()    const
     {
         return m_pRC_Tables->getData()->getReferencingTable();
     }
+
     void OTableListBoxControl::enableRelation(bool _bEnable)
     {
         if ( !_bEnable )
-            PostUserEvent(LINK(m_pRC_Tables, ORelationControl, AsynchDeactivate));
+            m_pRC_Tables->PostUserEvent(LINK(m_pRC_Tables, ORelationControl, AsynchDeactivate));
         m_pRC_Tables->Enable(_bEnable);
 
     }
diff --git a/dbaccess/source/ui/dlg/RelationDlg.cxx b/dbaccess/source/ui/dlg/RelationDlg.cxx
index e92081e..e366666 100644
--- a/dbaccess/source/ui/dlg/RelationDlg.cxx
+++ b/dbaccess/source/ui/dlg/RelationDlg.cxx
@@ -80,7 +80,7 @@ ORelationDialog::ORelationDialog( OJoinTableView* pParent,
     m_pConnData->CopyFrom( *pConnectionData );
 
     Init(m_pConnData);
-    m_pTableControl.reset( new OTableListBoxControl(this,ModuleRes(WND_CONTROL),m_pTableMap,this) );
+    m_pTableControl.reset( new OTableListBoxControl(this, m_pTableMap, this) );
 
     aPB_OK.SetClickHdl( LINK(this, ORelationDialog, OKClickHdl) );
 
diff --git a/dbaccess/source/ui/inc/RelationControl.hxx b/dbaccess/source/ui/inc/RelationControl.hxx
index 3a585e4..f37e577 100644
--- a/dbaccess/source/ui/inc/RelationControl.hxx
+++ b/dbaccess/source/ui/inc/RelationControl.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_DBACCESS_SOURCE_UI_INC_RELATIONCONTROL_HXX
 
 #include <vcl/fixed.hxx>
+#include <vcl/builder.hxx>
 #include <vcl/lstbox.hxx>
 #include "JoinTableView.hxx"
 
@@ -29,12 +30,10 @@ namespace dbaui
     class IRelationControlInterface;
     class ORelationControl;
 
-    class OTableListBoxControl  : public Window
+    class OTableListBoxControl
     {
-        FixedLine                               m_aFL_InvolvedTables;
-        ListBox                                 m_lmbLeftTable,
-                                                m_lmbRightTable;
-        FixedLine                               m_aFL_InvolvedFields;
+        ListBox*                                m_pLeftTable;
+        ListBox*                                m_pRightTable;
 
         ORelationControl*                       m_pRC_Tables;
         const OJoinTableView::OTableWindowMap*  m_pTableMap;
@@ -44,8 +43,7 @@ namespace dbaui
     private:
         DECL_LINK( OnTableChanged, ListBox* );
     public:
-        OTableListBoxControl(Window* _pParent,
-                             const ResId& _rResId,
+        OTableListBoxControl(VclBuilderContainer* _pParent,
                              const OJoinTableView::OTableWindowMap* _pTableMap,
                              IRelationControlInterface* _pParentDialog);
         virtual ~OTableListBoxControl();
@@ -75,9 +73,12 @@ namespace dbaui
                     the connection data which is used to init the control
         */
         void Init(const TTableConnectionData::value_type& _pConnData);
-        void lateUIInit(Window* _pTableSeparator = NULL);
+        void lateUIInit();
         void lateInit();
 
+        void Disable();
+        void Invalidate();
+
         sal_Bool SaveModified();
 
         TTableWindowData::value_type getReferencingTable()  const;
diff --git a/dbaccess/source/ui/inc/dbu_resource.hrc b/dbaccess/source/ui/inc/dbu_resource.hrc
index 37be9ab..06362b0 100644
--- a/dbaccess/source/ui/inc/dbu_resource.hrc
+++ b/dbaccess/source/ui/inc/dbu_resource.hrc
@@ -80,7 +80,7 @@
 #define DLG_PARAMETERS                  RID_DIALOG_START +  5
 
 #define DLG_JOIN_TABADD                 RID_DIALOG_START + 14
-#define DLG_QRY_JOIN                    RID_DIALOG_START + 15
+    // FREE
 #define WIZ_RTFCOPYTABLE                RID_DIALOG_START + 16
 #define DLG_REL_PROPERTIES              RID_DIALOG_START + 17
     // FREE
diff --git a/dbaccess/source/ui/querydesign/querydlg.cxx b/dbaccess/source/ui/querydesign/querydlg.cxx
index 085450e..909fe27 100644
--- a/dbaccess/source/ui/querydesign/querydlg.cxx
+++ b/dbaccess/source/ui/querydesign/querydlg.cxx
@@ -36,62 +36,32 @@ using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::sdbc;
 
-namespace dbaui
-{
-class OJoinControl  : public Window
-{
-public:
-    FixedLine               aFL_Join;
-    FixedText               aFT_Title;
-    ListBox                 aLB_JoinType;
-    CheckBox                m_aCBNatural;
-
-    OJoinControl(Window* _pParent,const ResId& _rResId);
-};
-
-OJoinControl::OJoinControl(Window* _pParent,const ResId& _rResId)
-    : Window(_pParent,_rResId)
-    ,aFL_Join( this, ResId( FL_JOIN,*_rResId.GetResMgr() ) )
-    ,aFT_Title( this, ResId(FT_LISTBOXTITLE,*_rResId.GetResMgr()) )
-    ,aLB_JoinType( this, ResId(LB_JOINTYPE,*_rResId.GetResMgr()) )
-    ,m_aCBNatural( this, ResId(CB_NATURAL,*_rResId.GetResMgr()) )
-{
-    FreeResource();
-}
-
-} // dbaui
-
 DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
                        const TTableConnectionData::value_type& _pData,
                        OJoinTableView::OTableWindowMap* _pTableMap,
                        const Reference< XConnection >& _xConnection,
                        sal_Bool _bAllowTableSelect)
-    :ModalDialog( pParent, ModuleRes(DLG_QRY_JOIN) )
-    ,aML_HelpText( this, ModuleRes(ML_HELPTEXT) )
-    ,aPB_OK( this, ModuleRes( PB_OK ) )
-    ,aPB_CANCEL( this, ModuleRes( PB_CANCEL ) )
-    ,aPB_HELP( this, ModuleRes( PB_HELP ) )
-    ,m_pJoinControl( NULL )
-    ,m_pTableControl( NULL )
-    ,m_pTableMap(_pTableMap)
-    ,m_pTableView(pParent)
-    ,eJoinType(static_cast<OQueryTableConnectionData*>(_pData.get())->GetJoinType())
-    ,m_pOrigConnData(_pData)
-    ,m_xConnection(_xConnection)
+    : ModalDialog( pParent, "JoinDialog", "dbaccess/ui/joindialog.ui" )
+    , m_pTableControl( NULL )
+    , m_pTableMap(_pTableMap)
+    , m_pTableView(pParent)
+    , eJoinType(static_cast<OQueryTableConnectionData*>(_pData.get())->GetJoinType())
+    , m_pOrigConnData(_pData)
+    , m_xConnection(_xConnection)
 {
+    get(m_pML_HelpText, "helptext");
+    get(m_pLB_JoinType, "type");
+    get(m_pCBNatural, "natural");
+    get(m_pPB_OK, "ok");
 
-    aML_HelpText.SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
+    m_pML_HelpText->SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
     // Connection kopieren
     m_pConnData.reset(_pData->NewInstance());
     m_pConnData->CopyFrom(*_pData);
 
-    m_pTableControl = new OTableListBoxControl(this,ModuleRes(WND_CONTROL),m_pTableMap,this);
+    m_pTableControl = new OTableListBoxControl(this, m_pTableMap, this);
 
-    m_pJoinControl = new OJoinControl(m_pTableControl,ModuleRes(WND_JOIN_CONTROL));
-
-    m_pJoinControl->Show();
-    m_pJoinControl->m_aCBNatural.Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
-    m_pTableControl->Show();
+    m_pCBNatural->Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
 
     if( _bAllowTableSelect )
     {
@@ -104,7 +74,7 @@ DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
         m_pTableControl->Init( m_pConnData );
     }
 
-    m_pTableControl->lateUIInit(m_pJoinControl);
+    m_pTableControl->lateUIInit();
 
     sal_Bool bSupportFullJoin = sal_False;
     Reference<XDatabaseMetaData> xMeta;
@@ -129,49 +99,46 @@ DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
 
     setJoinType(eJoinType);
 
-    aPB_OK.SetClickHdl( LINK(this, DlgQryJoin, OKClickHdl) );
+    m_pPB_OK->SetClickHdl( LINK(this, DlgQryJoin, OKClickHdl) );
 
-    m_pJoinControl->aLB_JoinType.SetSelectHdl(LINK(this,DlgQryJoin,LBChangeHdl));
-    m_pJoinControl->m_aCBNatural.SetToggleHdl(LINK(this,DlgQryJoin,NaturalToggleHdl));
+    m_pLB_JoinType->SetSelectHdl(LINK(this,DlgQryJoin,LBChangeHdl));
+    m_pCBNatural->SetToggleHdl(LINK(this,DlgQryJoin,NaturalToggleHdl));
 
     if ( static_cast<OQueryTableView*>(pParent)->getDesignView()->getController().isReadOnly() )
     {
-        m_pJoinControl->aLB_JoinType.Disable();
-        m_pJoinControl->m_aCBNatural.Disable();
+        m_pLB_JoinType->Disable();
+        m_pCBNatural->Disable();
         m_pTableControl->Disable();
     }
     else
     {
-        const sal_uInt16 nCount = m_pJoinControl->aLB_JoinType.GetEntryCount();
+        const sal_uInt16 nCount = m_pLB_JoinType->GetEntryCount();
         for (sal_uInt16 i = 0; i < nCount; ++i)
         {
-            const sal_IntPtr nJoinTyp = reinterpret_cast<sal_IntPtr>(m_pJoinControl->aLB_JoinType.GetEntryData(i));
+            const sal_IntPtr nJoinTyp = reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(i));
             if ( !bSupportFullJoin && nJoinTyp == ID_FULL_JOIN )
-                m_pJoinControl->aLB_JoinType.RemoveEntry(i);
+                m_pLB_JoinType->RemoveEntry(i);
             else if ( !bSupportOuterJoin && (nJoinTyp == ID_LEFT_JOIN || nJoinTyp == ID_RIGHT_JOIN) )
-                m_pJoinControl->aLB_JoinType.RemoveEntry(i);
+                m_pLB_JoinType->RemoveEntry(i);
         }
 
         m_pTableControl->NotifyCellChange();
         m_pTableControl->enableRelation(!static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural() && eJoinType != CROSS_JOIN );
     }
-
-    FreeResource();
 }
 
 DlgQryJoin::~DlgQryJoin()
 {
-    delete m_pJoinControl;
     delete m_pTableControl;
 }
 
 IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
 {
-    if (m_pJoinControl->aLB_JoinType.GetSelectEntryPos() == m_pJoinControl->aLB_JoinType.GetSavedValue() )
+    if (m_pLB_JoinType->GetSelectEntryPos() == m_pLB_JoinType->GetSavedValue() )
         return 1;
 
-    m_pJoinControl->aLB_JoinType.SaveValue();
-    aML_HelpText.SetText(OUString());
+    m_pLB_JoinType->SaveValue();
+    m_pML_HelpText->SetText(OUString());
 
     m_pTableControl->enableRelation(true);
 
@@ -179,8 +146,8 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
     OUString sSecondWinName   = m_pConnData->getReferencedTable()->GetWinName();
     const EJoinType eOldJoinType = eJoinType;
     sal_uInt16 nResId = 0;
-    const sal_uInt16 nPos = m_pJoinControl->aLB_JoinType.GetSelectEntryPos();
-    const sal_IntPtr nJoinType = reinterpret_cast<sal_IntPtr>(m_pJoinControl->aLB_JoinType.GetEntryData(nPos));
+    const sal_uInt16 nPos = m_pLB_JoinType->GetSelectEntryPos();
+    const sal_IntPtr nJoinType = reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(nPos));
     sal_Bool bAddHint = sal_True;
     switch ( nJoinType )
     {
@@ -214,16 +181,16 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
 
                 m_pConnData->ResetConnLines();
                 m_pTableControl->lateInit();
-                m_pJoinControl->m_aCBNatural.Check(false);
+                m_pCBNatural->Check(false);
                 m_pTableControl->enableRelation(false);
                 OUString sEmpty;
                 m_pConnData->AppendConnLine(sEmpty,sEmpty);
-                aPB_OK.Enable(true);
+                m_pPB_OK->Enable(true);
             }
             break;
     }
 
-    m_pJoinControl->m_aCBNatural.Enable(eJoinType != CROSS_JOIN);
+    m_pCBNatural->Enable(eJoinType != CROSS_JOIN);
 
     if ( eJoinType != eOldJoinType && eOldJoinType == CROSS_JOIN )
     {
@@ -232,7 +199,7 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
     if ( eJoinType != CROSS_JOIN )
     {
         m_pTableControl->NotifyCellChange();
-        NaturalToggleHdl(&m_pJoinControl->m_aCBNatural);
+        NaturalToggleHdl(m_pCBNatural);
     }
 
     m_pTableControl->Invalidate();
@@ -249,7 +216,7 @@ IMPL_LINK( DlgQryJoin, LBChangeHdl, ListBox*, /*pListBox*/ )
         sHelpText += ModuleRes( STR_JOIN_TYPE_HINT );
     }
 
-    aML_HelpText.SetText( sHelpText );
+    m_pML_HelpText->SetText( sHelpText );
     return 1;
 }
 
@@ -265,7 +232,7 @@ IMPL_LINK( DlgQryJoin, OKClickHdl, Button*, /*pButton*/ )
 
 IMPL_LINK( DlgQryJoin, NaturalToggleHdl, CheckBox*, /*pButton*/ )
 {
-    sal_Bool bChecked = m_pJoinControl->m_aCBNatural.IsChecked();
+    sal_Bool bChecked = m_pCBNatural->IsChecked();
     static_cast<OQueryTableConnectionData*>(m_pConnData.get())->setNatural(bChecked);
     m_pTableControl->enableRelation(!bChecked);
     if ( bChecked )
@@ -301,20 +268,20 @@ TTableConnectionData::value_type DlgQryJoin::getConnectionData() const
 
 void DlgQryJoin::setValid(sal_Bool _bValid)
 {
-    aPB_OK.Enable(_bValid || eJoinType == CROSS_JOIN );
+    m_pPB_OK->Enable(_bValid || eJoinType == CROSS_JOIN );
 }
 
 void DlgQryJoin::notifyConnectionChange( )
 {
     setJoinType( static_cast<OQueryTableConnectionData*>(m_pConnData.get())->GetJoinType() );
-    m_pJoinControl->m_aCBNatural.Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
-    NaturalToggleHdl(&m_pJoinControl->m_aCBNatural);
+    m_pCBNatural->Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
+    NaturalToggleHdl(m_pCBNatural);
 }
 
 void DlgQryJoin::setJoinType(EJoinType _eNewJoinType)
 {
     eJoinType = _eNewJoinType;
-    m_pJoinControl->m_aCBNatural.Enable(eJoinType != CROSS_JOIN);
+    m_pCBNatural->Enable(eJoinType != CROSS_JOIN);
 
     sal_IntPtr nJoinType = 0;
     switch ( eJoinType )
@@ -337,17 +304,17 @@ void DlgQryJoin::setJoinType(EJoinType _eNewJoinType)
             break;
     }
 
-    const sal_uInt16 nCount = m_pJoinControl->aLB_JoinType.GetEntryCount();
+    const sal_uInt16 nCount = m_pLB_JoinType->GetEntryCount();
     for (sal_uInt16 i = 0; i < nCount; ++i)
     {
-        if ( nJoinType == reinterpret_cast<sal_IntPtr>(m_pJoinControl->aLB_JoinType.GetEntryData(i)) )
+        if ( nJoinType == reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(i)) )
         {
-            m_pJoinControl->aLB_JoinType.SelectEntryPos(i);
+            m_pLB_JoinType->SelectEntryPos(i);
             break;
         }
     }
 
-    LBChangeHdl(&m_pJoinControl->aLB_JoinType);
+    LBChangeHdl(m_pLB_JoinType);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/querydlg.hxx b/dbaccess/source/ui/querydesign/querydlg.hxx
index eadd1b3..8891c81 100644
--- a/dbaccess/source/ui/querydesign/querydlg.hxx
+++ b/dbaccess/source/ui/querydesign/querydlg.hxx
@@ -35,17 +35,15 @@ namespace dbaui
 {
     class OTableListBoxControl;
     class OQueryTableView;
-    class OJoinControl;
     class DlgQryJoin :  public ModalDialog
                         ,public IRelationControlInterface
     {
     protected:
-        FixedText               aML_HelpText;
-        OKButton                aPB_OK;
-        CancelButton            aPB_CANCEL;
-        HelpButton              aPB_HELP;
+        FixedText*              m_pML_HelpText;
+        OKButton*               m_pPB_OK;
+        ListBox*                m_pLB_JoinType;
+        CheckBox*               m_pCBNatural;
 
-        OJoinControl*                       m_pJoinControl;
         OTableListBoxControl*               m_pTableControl;
         OJoinTableView::OTableWindowMap*    m_pTableMap;
         OQueryTableView*                    m_pTableView;
diff --git a/dbaccess/source/ui/querydesign/querydlg.src b/dbaccess/source/ui/querydesign/querydlg.src
index 5540cb9..43d1189 100644
--- a/dbaccess/source/ui/querydesign/querydlg.src
+++ b/dbaccess/source/ui/querydesign/querydlg.src
@@ -20,138 +20,6 @@
 #include "querydlg.hrc"
 #include "dbaccess_helpid.hrc"
 
-ModalDialog DLG_QRY_JOIN
-{
-    OutputSize = TRUE ;
-    SVLook = TRUE ;
-    HelpId = HID_DLG_QRY_JOIN ;
-    Size = MAP_APPFONT ( 265, 219 ) ;
-
-    Moveable = TRUE ;
-    Closeable = TRUE ;
-
-    Window WND_JOIN_CONTROL
-    {
-        Pos = MAP_APPFONT( 0, 0 );
-        Size = MAP_APPFONT( 203, 44 );
-        DialogControl = TRUE;
-        HelpId        = HID_DLG_QRY_JOIN_CONTROL ;
-        FixedLine FL_JOIN
-        {
-            Pos = MAP_APPFONT ( 6 , 3 ) ;
-            Size = MAP_APPFONT ( 191 , 8 ) ;
-            Text [ en-US ] = "Options";
-        };
-
-        FixedText FT_LISTBOXTITLE
-        {
-            Pos = MAP_APPFONT ( 12 , 16 ) ;
-            Size = MAP_APPFONT ( 89 , 8 ) ;
-
-            Text [ en-US ] = "~Type";
-        };
-
-        ListBox LB_JOINTYPE
-        {
-            Pos             = MAP_APPFONT ( 101 , 15 ) ;
-            Size            = MAP_APPFONT ( 90 , 60 ) ;
-            HelpId          = HID_DLG_QRY_JOINTYPE ;
-
-            DropDown        = TRUE;
-            DDExtraWidth    = TRUE;
-            StringList [ en-US ] =
-            {
-                < "Inner join"          ; ID_INNER_JOIN;    > ;
-                < "Left join"           ; ID_LEFT_JOIN;     > ;
-                < "Right join"          ; ID_RIGHT_JOIN;    > ;
-                < "Full (outer) join"   ; ID_FULL_JOIN;     > ;
-                < "Cross join"          ; ID_CROSS_JOIN;    > ;
-            };
-        };
-        CheckBox CB_NATURAL
-        {
-            HelpID = "dbaccess:CheckBox:DLG_QRY_JOIN:CB_NATURAL";
-            Pos = MAP_APPFONT ( 101 , 31 ) ;
-            Size = MAP_APPFONT ( 89 , 8 ) ;
-
-            Text [ en-US ] = "Natural";
-        };
-    };
-
-    Window WND_CONTROL
-    {
-        Pos = MAP_APPFONT( 0, 0 );
-        Size = MAP_APPFONT( 203, 153 );
-        DialogControl = TRUE;
-        HelpId        = HID_DLG_QRY_WINDOW_CONTROL ;
-
-        FixedLine FL_INVOLVED_TABLES
-        {
-            Pos = MAP_APPFONT ( 6 , 3 ) ;
-            Size = MAP_APPFONT ( 191 , 8 ) ;
-            Text [ en-US ] = "Tables involved";
-        };
-
-        ListBox LB_LEFT_TABLE
-        {
-            Border = TRUE;
-            Pos = MAP_APPFONT( 12, 14 );
-            Size = MAP_APPFONT( 87, 60 );
-            HelpId        = HID_DLG_QRY_LEFT_TABLE ;
-            DropDown = TRUE;
-            TabStop = TRUE;
-        };
-
-        ListBox LB_RIGHT_TABLE
-        {
-            Border = TRUE;
-            Pos = MAP_APPFONT( 104, 14 );
-            Size = MAP_APPFONT( 87, 60 );
-            HelpId        = HID_DLG_QRY_RIGHT_TABLE ;
-            DropDown = TRUE;
-            TabStop = TRUE;
-        };
-
-        FixedLine FL_INVOLVED_FIELDS
-        {
-            Pos = MAP_APPFONT ( 6 , 29 ) ;
-            Size = MAP_APPFONT ( 191 , 8 ) ;
-            Text [ en-US ] = "Fields involved";
-        };
-    };
-
-    FixedText ML_HELPTEXT
-    {
-        Pos             = MAP_APPFONT ( 12 , 159 ) ;
-        Size            = MAP_APPFONT ( 179 , 49 ) ;
-        UniqueId        = HID_DLG_QRY_HELPTEXT ;
-        SVLook          = TRUE;
-        WordBreak       = TRUE;
-    };
-
-    OKButton PB_OK
-    {
-        Pos = MAP_APPFONT ( 206 , 6 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-        DefButton = TRUE ;
-    };
-    CancelButton PB_CANCEL
-    {
-        Pos = MAP_APPFONT ( 206 , 23 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-    };
-    HelpButton PB_HELP
-    {
-        Pos = MAP_APPFONT ( 206 , 43 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-    };
-
-    Text [ en-US ] = "Join Properties";
-};
-
 String STR_JOIN_TYPE_HINT
 {
     Text [ en-US ] = "Please note that some databases may not support this join type.";
diff --git a/dbaccess/uiconfig/ui/joindialog.ui b/dbaccess/uiconfig/ui/joindialog.ui
new file mode 100644
index 0000000..650fc44
--- /dev/null
+++ b/dbaccess/uiconfig/ui/joindialog.ui
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <!-- interface-requires LibreOffice 1.0 -->
+  <object class="GtkDialog" id="JoinDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Join Properties</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>
+                <property name="image_position">top</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="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="hexpand">True</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="hexpand">True</property>
+                        <property name="column_spacing">12</property>
+                        <property name="column_homogeneous">True</property>
+                        <child>
+                          <object class="GtkComboBoxText" id="table1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="table2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Tables involved</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </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="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="GtkGrid" id="grid4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="helptext">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="wrap">True</property>
+                            <property name="max_width_chars">48</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="dbulo-ORelationControl" id="relations">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="vexpand">True</property>
+                            <child internal-child="selection">
+                              <object class="GtkTreeSelection" id="Relation Control-selection1"/>
+                            </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>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Fields involved</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </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="GtkFrame" id="frame5">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment5">
+                    <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="grid7">
+                        <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="label5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Type</property>
+                            <property name="use_underline">True</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="GtkComboBox" id="type">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="model">liststore1</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="GtkCheckButton" id="natural">
+                            <property name="label" translatable="yes">Natural</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</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>
+                          <placeholder/>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Options</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>
+  <object class="GtkSizeGroup" id="sizegroup1">
+    <widgets>
+      <widget name="table1"/>
+      <widget name="label5"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup2">
+    <widgets>
+      <widget name="table2"/>
+      <widget name="type"/>
+    </widgets>
+  </object>
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+      <!-- column-name gint1 -->
+      <column type="gint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Inner join</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Left join</col>
+        <col id="1">2</col>
+      </row>
+      <row>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list