[Libreoffice-commits] core.git: cui/source cui/uiconfig cui/UIConfig_cui.mk include/svx sw/source

Caolán McNamara caolanm at redhat.com
Tue Mar 18 03:32:38 PDT 2014


 cui/UIConfig_cui.mk                 |    2 
 cui/source/dialogs/multipat.cxx     |  342 +++++++++++++++++++-----------------
 cui/source/dialogs/multipat.hrc     |   37 ---
 cui/source/dialogs/multipat.src     |   78 --------
 cui/source/factory/dlgfact.cxx      |   23 ++
 cui/source/factory/dlgfact.hxx      |   13 +
 cui/source/inc/cuires.hrc           |    1 
 cui/source/inc/helpid.hrc           |    1 
 cui/source/inc/multipat.hxx         |   43 ++--
 cui/source/options/optpath.cxx      |    1 
 cui/uiconfig/ui/multipathdialog.ui  |  212 ++++++++++++++++++++++
 cui/uiconfig/ui/selectpathdialog.ui |  191 ++++++++++++++++++++
 include/svx/svxdlg.hxx              |    6 
 sw/source/ui/misc/glossary.cxx      |    2 
 14 files changed, 646 insertions(+), 306 deletions(-)

New commits:
commit 10faccaec6bffac6eec7159c8897c21a1d1c6d66
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Mar 18 10:05:42 2014 +0000

    convert select multi paths dialogs to .ui
    
    Change-Id: Iecb6dbee9e7af0600b8355db038ec597cab61d1a

diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index c619d78..7cea225 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -86,6 +86,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
 	cui/uiconfig/ui/messbox \
 	cui/uiconfig/ui/mosaicdialog \
 	cui/uiconfig/ui/movemenu \
+	cui/uiconfig/ui/multipathdialog \
 	cui/uiconfig/ui/namedialog \
 	cui/uiconfig/ui/newlibdialog \
 	cui/uiconfig/ui/newtabledialog \
@@ -158,6 +159,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
 	cui/uiconfig/ui/searchformatdialog \
 	cui/uiconfig/ui/securityoptionsdialog \
 	cui/uiconfig/ui/select_persona_dialog \
+	cui/uiconfig/ui/selectpathdialog \
 	cui/uiconfig/ui/shadowtabpage \
 	cui/uiconfig/ui/showcoldialog \
 	cui/uiconfig/ui/similaritysearchdialog \
diff --git a/cui/source/dialogs/multipat.cxx b/cui/source/dialogs/multipat.cxx
index d22da3e..eee728b 100644
--- a/cui/source/dialogs/multipat.cxx
+++ b/cui/source/dialogs/multipat.cxx
@@ -24,7 +24,6 @@
 #include "multipat.hxx"
 #include <dialmgr.hxx>
 
-#include "multipat.hrc"
 #include <cuires.hrc>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/string.hxx>
@@ -40,32 +39,33 @@ using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::ui::dialogs;
 using namespace ::com::sun::star::uno;
 
-// class SvxMultiPathDialog ----------------------------------------------
-
 IMPL_LINK_NOARG(SvxMultiPathDialog, SelectHdl_Impl)
 {
-    sal_uLong nCount = bIsRadioButtonMode ? aRadioLB.GetEntryCount() : aPathLB.GetEntryCount();
-    bool bIsSelected = bIsRadioButtonMode
-        ? aRadioLB.FirstSelected() != NULL
-        : aPathLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
+    sal_uLong nCount = m_pRadioLB->GetEntryCount();
+    bool bIsSelected = m_pRadioLB->FirstSelected() != NULL;
     bool bEnable = nCount > 1;
-    aDelBtn.Enable( bEnable && bIsSelected );
+    m_pDelBtn->Enable(bEnable && bIsSelected);
     return 0;
 }
 
-
+IMPL_LINK_NOARG(SvxPathSelectDialog, SelectHdl_Impl)
+{
+    sal_uLong nCount = m_pPathLB->GetEntryCount();
+    bool bIsSelected = m_pPathLB->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
+    bool bEnable = nCount > 1;
+    m_pDelBtn->Enable(bEnable && bIsSelected);
+    return 0;
+}
 
 IMPL_LINK( SvxMultiPathDialog, CheckHdl_Impl, svx::SvxRadioButtonListBox *, pBox )
 {
     SvTreeListEntry* pEntry =
-        pBox ? pBox->GetEntry( pBox->GetCurMousePoint() ) : aRadioLB.FirstSelected();
+        pBox ? pBox->GetEntry( pBox->GetCurMousePoint() ) : m_pRadioLB->FirstSelected();
     if ( pEntry )
-        aRadioLB.HandleEntryChecked( pEntry );
+        m_pRadioLB->HandleEntryChecked( pEntry );
     return 0;
 }
 
-
-
 IMPL_LINK_NOARG(SvxMultiPathDialog, AddHdl_Impl)
 {
     Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
@@ -79,140 +79,166 @@ IMPL_LINK_NOARG(SvxMultiPathDialog, AddHdl_Impl)
         OUString sInsPath;
         ::utl::LocalFileHelper::ConvertURLToSystemPath( aURL, sInsPath );
 
-        if ( bIsRadioButtonMode )
+        sal_uLong nPos = m_pRadioLB->GetEntryPos( sInsPath, 1 );
+        if ( 0xffffffff == nPos ) //See svtools/source/contnr/svtabbx.cxx SvTabListBox::GetEntryPos
         {
-            sal_uLong nPos = aRadioLB.GetEntryPos( sInsPath, 1 );
-            if ( 0xffffffff == nPos ) //See svtools/source/contnr/svtabbx.cxx SvTabListBox::GetEntryPos
-            {
-                OUString sNewEntry( '\t' );
-                sNewEntry += sInsPath;
-                SvTreeListEntry* pEntry = aRadioLB.InsertEntry( sNewEntry );
-                OUString* pData = new OUString( aURL );
-                pEntry->SetUserData( pData );
-            }
-            else
-            {
-                OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) );
-                sMsg = sMsg.replaceFirst( "%1", sInsPath );
-                InfoBox( this, sMsg ).Execute();
-            }
+            OUString sNewEntry( '\t' );
+            sNewEntry += sInsPath;
+            SvTreeListEntry* pEntry = m_pRadioLB->InsertEntry( sNewEntry );
+            OUString* pData = new OUString( aURL );
+            pEntry->SetUserData( pData );
         }
         else
         {
-            if ( LISTBOX_ENTRY_NOTFOUND != aPathLB.GetEntryPos( sInsPath ) )
-            {
-                OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) );
-                sMsg = sMsg.replaceFirst( "%1", sInsPath );
-                InfoBox( this, sMsg ).Execute();
-            }
-            else
-            {
-                sal_uInt16 nPos = aPathLB.InsertEntry( sInsPath, LISTBOX_APPEND );
-                aPathLB.SetEntryData( nPos, new OUString( aURL ) );
-            }
+            OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) );
+            sMsg = sMsg.replaceFirst( "%1", sInsPath );
+            InfoBox( this, sMsg ).Execute();
         }
+
         SelectHdl_Impl( NULL );
     }
     return 0;
 }
 
-
-
-IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl)
+IMPL_LINK_NOARG(SvxPathSelectDialog, AddHdl_Impl)
 {
-    if ( bIsRadioButtonMode )
+    Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
+    Reference < XFolderPicker2 >  xFolderPicker = FolderPicker::create(xContext);
+
+    if ( xFolderPicker->execute() == ExecutableDialogResults::OK )
     {
-        SvTreeListEntry* pEntry = aRadioLB.FirstSelected();
-        delete (OUString*)pEntry->GetUserData();
-        bool bChecked = aRadioLB.GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED;
-        sal_uLong nPos = aRadioLB.GetEntryPos( pEntry );
-        aRadioLB.RemoveEntry( pEntry );
-        sal_uLong nCnt = aRadioLB.GetEntryCount();
-        if ( nCnt )
+        INetURLObject aPath( xFolderPicker->getDirectory() );
+        aPath.removeFinalSlash();
+        OUString aURL = aPath.GetMainURL( INetURLObject::NO_DECODE );
+        OUString sInsPath;
+        ::utl::LocalFileHelper::ConvertURLToSystemPath( aURL, sInsPath );
+
+        if ( LISTBOX_ENTRY_NOTFOUND != m_pPathLB->GetEntryPos( sInsPath ) )
         {
-            nCnt--;
-            if ( nPos > nCnt )
-                nPos = nCnt;
-            pEntry = aRadioLB.GetEntry( nPos );
-            if ( bChecked )
-            {
-                aRadioLB.SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
-                aRadioLB.HandleEntryChecked( pEntry );
-            }
-            else
-                aRadioLB.Select( pEntry );
+            OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) );
+            sMsg = sMsg.replaceFirst( "%1", sInsPath );
+            InfoBox( this, sMsg ).Execute();
         }
+        else
+        {
+            sal_uInt16 nPos = m_pPathLB->InsertEntry( sInsPath, LISTBOX_APPEND );
+            m_pPathLB->SetEntryData( nPos, new OUString( aURL ) );
+        }
+
+        SelectHdl_Impl( NULL );
     }
-    else
-    {
-        sal_uInt16 nPos = aPathLB.GetSelectEntryPos();
-        aPathLB.RemoveEntry( nPos );
-        sal_uInt16 nCnt = aPathLB.GetEntryCount();
+    return 0;
+}
 
-        if ( nCnt )
+IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl)
+{
+    SvTreeListEntry* pEntry = m_pRadioLB->FirstSelected();
+    delete (OUString*)pEntry->GetUserData();
+    bool bChecked = m_pRadioLB->GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED;
+    sal_uLong nPos = m_pRadioLB->GetEntryPos( pEntry );
+    m_pRadioLB->RemoveEntry( pEntry );
+    sal_uLong nCnt = m_pRadioLB->GetEntryCount();
+    if ( nCnt )
+    {
+        nCnt--;
+        if ( nPos > nCnt )
+            nPos = nCnt;
+        pEntry = m_pRadioLB->GetEntry( nPos );
+        if ( bChecked )
         {
-            nCnt--;
-
-            if ( nPos > nCnt )
-                nPos = nCnt;
-            aPathLB.SelectEntryPos( nPos );
+            m_pRadioLB->SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
+            m_pRadioLB->HandleEntryChecked( pEntry );
         }
+        else
+            m_pRadioLB->Select( pEntry );
     }
+
     SelectHdl_Impl( NULL );
     return 0;
 }
 
+IMPL_LINK_NOARG(SvxPathSelectDialog, DelHdl_Impl)
+{
+    sal_uInt16 nPos = m_pPathLB->GetSelectEntryPos();
+    m_pPathLB->RemoveEntry( nPos );
+    sal_uInt16 nCnt = m_pPathLB->GetEntryCount();
 
+    if ( nCnt )
+    {
+        nCnt--;
 
-SvxMultiPathDialog::SvxMultiPathDialog( Window* pParent ) :
-
-    ModalDialog( pParent, CUI_RES( RID_SVXDLG_MULTIPATH ) ),
+        if ( nPos > nCnt )
+            nPos = nCnt;
+        m_pPathLB->SelectEntryPos( nPos );
+    }
 
-    aPathFL     ( this, CUI_RES( FL_MULTIPATH) ),
-    aPathLB     ( this, CUI_RES( LB_MULTIPATH ) ),
-    m_aRadioLBContainer(this, CUI_RES(LB_RADIOBUTTON)),
-    aRadioLB(m_aRadioLBContainer, WB_BORDER),
-    aRadioFT    ( this, CUI_RES( FT_RADIOBUTTON ) ),
-    aAddBtn     ( this, CUI_RES( BTN_ADD_MULTIPATH ) ),
-    aDelBtn     ( this, CUI_RES( BTN_DEL_MULTIPATH ) ),
-    aOKBtn      ( this, CUI_RES( BTN_MULTIPATH_OK ) ),
-    aCancelBtn  ( this, CUI_RES( BTN_MULTIPATH_CANCEL ) ),
-    aHelpButton ( this, CUI_RES( BTN_MULTIPATH_HELP ) ),
-    bIsRadioButtonMode( false )
+    SelectHdl_Impl( NULL );
+    return 0;
+}
 
+SvxMultiPathDialog::SvxMultiPathDialog(Window* pParent)
+    : ModalDialog(pParent, "MultiPathDialog", "cui/ui/multipathdialog.ui")
 {
+    get(m_pAddBtn, "add");
+    get(m_pDelBtn, "delete");
+
+    SvSimpleTableContainer* pRadioLBContainer = get<SvSimpleTableContainer>("paths");
+    Size aSize(LogicToPixel(Size(195, 77), MAP_APPFONT));
+    pRadioLBContainer->set_width_request(aSize.Width());
+    pRadioLBContainer->set_height_request(aSize.Height());
+    m_pRadioLB = new svx::SvxRadioButtonListBox(*pRadioLBContainer, 0);
+
     static long aStaticTabs[]= { 2, 0, 12 };
-    aRadioLB.SvSimpleTable::SetTabs( aStaticTabs );
-    OUString sHeader( CUI_RES( STR_HEADER_PATHS ) );
-    aRadioLB.SetQuickHelpText( sHeader );
+    m_pRadioLB->SvSimpleTable::SetTabs( aStaticTabs );
+    OUString sHeader(get<FixedText>("pathlist")->GetText());
+    m_pRadioLB->SetQuickHelpText( sHeader );
     sHeader = "\t" + sHeader;
-    aRadioLB.InsertHeaderEntry( sHeader, HEADERBAR_APPEND, HIB_LEFT );
-
-    FreeResource();
+    m_pRadioLB->InsertHeaderEntry( sHeader, HEADERBAR_APPEND, HIB_LEFT );
 
-    aPathLB.SetSelectHdl( LINK( this, SvxMultiPathDialog, SelectHdl_Impl ) );
-    aRadioLB.SetSelectHdl( LINK( this, SvxMultiPathDialog, SelectHdl_Impl ) );
-    aRadioLB.SetCheckButtonHdl( LINK( this, SvxMultiPathDialog, CheckHdl_Impl ) );
-    aAddBtn.SetClickHdl( LINK( this, SvxMultiPathDialog, AddHdl_Impl ) );
-    aDelBtn.SetClickHdl( LINK( this, SvxMultiPathDialog, DelHdl_Impl ) );
+    m_pRadioLB->SetSelectHdl( LINK( this, SvxMultiPathDialog, SelectHdl_Impl ) );
+    m_pRadioLB->SetCheckButtonHdl( LINK( this, SvxMultiPathDialog, CheckHdl_Impl ) );
+    m_pAddBtn->SetClickHdl( LINK( this, SvxMultiPathDialog, AddHdl_Impl ) );
+    m_pDelBtn->SetClickHdl( LINK( this, SvxMultiPathDialog, DelHdl_Impl ) );
 
     SelectHdl_Impl( NULL );
 
-    aAddBtn.SetAccessibleRelationMemberOf(&aPathLB);
-    aDelBtn.SetAccessibleRelationMemberOf(&aPathLB);
+    m_pRadioLB->ShowTable();
+}
+
+SvxPathSelectDialog::SvxPathSelectDialog(Window* pParent)
+    : ModalDialog(pParent, "SelectPathDialog", "cui/ui/selectpathdialog.ui")
+{
+    get(m_pAddBtn, "add");
+    get(m_pDelBtn, "delete");
+    get(m_pPathLB, "paths");
+    Size aSize(LogicToPixel(Size(189, 80), MAP_APPFONT));
+    m_pPathLB->set_width_request(aSize.Width());
+    m_pPathLB->set_height_request(aSize.Height());
+
+    m_pPathLB->SetSelectHdl( LINK( this, SvxPathSelectDialog, SelectHdl_Impl ) );
+    m_pAddBtn->SetClickHdl( LINK( this, SvxPathSelectDialog, AddHdl_Impl ) );
+    m_pDelBtn->SetClickHdl( LINK( this, SvxPathSelectDialog, DelHdl_Impl ) );
+
+    SelectHdl_Impl( NULL );
 }
 
 SvxMultiPathDialog::~SvxMultiPathDialog()
 {
-    sal_uInt16 nPos = aPathLB.GetEntryCount();
-    while ( nPos-- )
-        delete (OUString*)aPathLB.GetEntryData(nPos);
-    nPos = (sal_uInt16)aRadioLB.GetEntryCount();
+    sal_uInt16 nPos = (sal_uInt16)m_pRadioLB->GetEntryCount();
     while ( nPos-- )
     {
-        SvTreeListEntry* pEntry = aRadioLB.GetEntry( nPos );
+        SvTreeListEntry* pEntry = m_pRadioLB->GetEntry( nPos );
         delete (OUString*)pEntry->GetUserData();
     }
+
+    delete m_pRadioLB;
+}
+
+SvxPathSelectDialog::~SvxPathSelectDialog()
+{
+    sal_uInt16 nPos = m_pPathLB->GetEntryCount();
+    while ( nPos-- )
+        delete (OUString*)m_pPathLB->GetEntryData(nPos);
 }
 
 OUString SvxMultiPathDialog::GetPath() const
@@ -220,43 +246,45 @@ OUString SvxMultiPathDialog::GetPath() const
     OUString sNewPath;
     sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER;
 
-    if ( bIsRadioButtonMode )
+    OUString sWritable;
+    for ( sal_uInt16 i = 0; i < m_pRadioLB->GetEntryCount(); ++i )
     {
-        OUString sWritable;
-        for ( sal_uInt16 i = 0; i < aRadioLB.GetEntryCount(); ++i )
-        {
-            SvTreeListEntry* pEntry = aRadioLB.GetEntry(i);
-            if ( aRadioLB.GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED )
-                sWritable = *(OUString*)pEntry->GetUserData();
-            else
-            {
-                if ( !sNewPath.isEmpty() )
-                    sNewPath += OUString(cDelim);
-                sNewPath += *(OUString*)pEntry->GetUserData();
-            }
-        }
-        if ( !sNewPath.isEmpty() )
-            sNewPath += OUString(cDelim);
-        sNewPath += sWritable;
-    }
-    else
-    {
-        for ( sal_uInt16 i = 0; i < aPathLB.GetEntryCount(); ++i )
+        SvTreeListEntry* pEntry = m_pRadioLB->GetEntry(i);
+        if ( m_pRadioLB->GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED )
+            sWritable = *(OUString*)pEntry->GetUserData();
+        else
         {
             if ( !sNewPath.isEmpty() )
                 sNewPath += OUString(cDelim);
-            sNewPath += *(OUString*)aPathLB.GetEntryData(i);
+            sNewPath += *(OUString*)pEntry->GetUserData();
         }
     }
+    if ( !sNewPath.isEmpty() )
+        sNewPath += OUString(cDelim);
+    sNewPath += sWritable;
+
     return sNewPath;
 }
 
+OUString SvxPathSelectDialog::GetPath() const
+{
+    OUString sNewPath;
+    sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER;
 
+    for ( sal_uInt16 i = 0; i < m_pPathLB->GetEntryCount(); ++i )
+    {
+        if ( !sNewPath.isEmpty() )
+            sNewPath += OUString(cDelim);
+        sNewPath += *(OUString*)m_pPathLB->GetEntryData(i);
+    }
+
+    return sNewPath;
+}
 
 void SvxMultiPathDialog::SetPath( const OUString& rPath )
 {
     sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER;
-    sal_uInt16 nPos, nCount = comphelper::string::getTokenCount(rPath, cDelim);
+    sal_uInt16 nCount = comphelper::string::getTokenCount(rPath, cDelim);
 
     for ( sal_uInt16 i = 0; i < nCount; ++i )
     {
@@ -265,54 +293,46 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath )
         sal_Bool bIsSystemPath =
             ::utl::LocalFileHelper::ConvertURLToSystemPath( sPath, sSystemPath );
 
-        if ( bIsRadioButtonMode )
-        {
-            OUString sEntry( '\t' );
-            sEntry += (bIsSystemPath ? sSystemPath : OUString(sPath));
-            SvTreeListEntry* pEntry = aRadioLB.InsertEntry( sEntry );
-            OUString* pURL = new OUString( sPath );
-            pEntry->SetUserData( pURL );
-        }
-        else
-        {
-            if ( bIsSystemPath )
-                nPos = aPathLB.InsertEntry( sSystemPath, LISTBOX_APPEND );
-            else
-                nPos = aPathLB.InsertEntry( sPath, LISTBOX_APPEND );
-            aPathLB.SetEntryData( nPos, new OUString( sPath ) );
-        }
+        OUString sEntry( '\t' );
+        sEntry += (bIsSystemPath ? sSystemPath : OUString(sPath));
+        SvTreeListEntry* pEntry = m_pRadioLB->InsertEntry( sEntry );
+        OUString* pURL = new OUString( sPath );
+        pEntry->SetUserData( pURL );
     }
 
-    if ( bIsRadioButtonMode && nCount > 0 )
+    if (nCount > 0)
     {
-        SvTreeListEntry* pEntry = aRadioLB.GetEntry( nCount - 1 );
+        SvTreeListEntry* pEntry = m_pRadioLB->GetEntry( nCount - 1 );
         if ( pEntry )
         {
-            aRadioLB.SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
-            aRadioLB.HandleEntryChecked( pEntry );
+            m_pRadioLB->SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
+            m_pRadioLB->HandleEntryChecked( pEntry );
         }
     }
 
     SelectHdl_Impl( NULL );
 }
 
-void SvxMultiPathDialog::EnableRadioButtonMode()
+void SvxPathSelectDialog::SetPath(const OUString& rPath)
 {
-    bIsRadioButtonMode = true;
+    sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER;
+    sal_uInt16 nPos, nCount = comphelper::string::getTokenCount(rPath, cDelim);
 
-    aPathFL.Hide();
-    aPathLB.Hide();
+    for ( sal_uInt16 i = 0; i < nCount; ++i )
+    {
+        OUString sPath = rPath.getToken( i, cDelim );
+        OUString sSystemPath;
+        sal_Bool bIsSystemPath =
+            ::utl::LocalFileHelper::ConvertURLToSystemPath( sPath, sSystemPath );
 
-    aRadioLB.ShowTable();
-    aRadioFT.Show();
+        if ( bIsSystemPath )
+            nPos = m_pPathLB->InsertEntry( sSystemPath, LISTBOX_APPEND );
+        else
+            nPos = m_pPathLB->InsertEntry( sPath, LISTBOX_APPEND );
+        m_pPathLB->SetEntryData( nPos, new OUString( sPath ) );
+    }
 
-    Point aNewPos = aAddBtn.GetPosPixel();
-    long nDelta = aNewPos.Y() - aRadioLB.GetPosPixel().Y();
-    aNewPos.Y() -= nDelta;
-    aAddBtn.SetPosPixel( aNewPos );
-    aNewPos = aDelBtn.GetPosPixel();
-    aNewPos.Y() -= nDelta;
-    aDelBtn.SetPosPixel( aNewPos );
+    SelectHdl_Impl( NULL );
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/multipat.hrc b/cui/source/dialogs/multipat.hrc
deleted file mode 100644
index fb57801..0000000
--- a/cui/source/dialogs/multipat.hrc
+++ /dev/null
@@ -1,37 +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 _SVX_MULTIPAT_HRC
-#define _SVX_MULTIPAT_HRC
-
-// defines ---------------------------------------------------------------
-
-#define FL_MULTIPATH            10
-#define LB_MULTIPATH            11
-#define LB_RADIOBUTTON          12
-#define FT_RADIOBUTTON          13
-#define BTN_ADD_MULTIPATH       14
-#define BTN_DEL_MULTIPATH       15
-#define BTN_MULTIPATH_OK        16
-#define BTN_MULTIPATH_CANCEL    17
-#define BTN_MULTIPATH_HELP      18
-#define STR_HEADER_PATHS        19
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/multipat.src b/cui/source/dialogs/multipat.src
index f85bd93..09b3718 100644
--- a/cui/source/dialogs/multipat.src
+++ b/cui/source/dialogs/multipat.src
@@ -17,86 +17,8 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "multipat.hrc"
-#include "helpid.hrc"
 #include <cuires.hrc>
 
-// RID_SVXDLG_MULTIPATH --------------------------------------------------
-
-ModalDialog RID_SVXDLG_MULTIPATH
-{
-    HelpId = HID_MULTIPATH ;
-    OutputSize = TRUE ;
-    Size = MAP_APPFONT ( 260 , 120 ) ;
-    Text [ en-US ] = "Select Paths" ;
-    Moveable = TRUE ;
-    Closeable = TRUE ;
-    FixedLine FL_MULTIPATH
-    {
-        Pos = MAP_APPFONT ( 6 , 3 ) ;
-        Size = MAP_APPFONT ( 248 , 8 ) ;
-        Text [ en-US ] = "Paths" ;
-    };
-    ListBox LB_MULTIPATH
-    {
-        HelpID = "cui:ListBox:RID_SVXDLG_MULTIPATH:LB_MULTIPATH";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 14 ) ;
-        Size = MAP_APPFONT ( 189 , 80 ) ;
-        AutoHScroll = TRUE ;
-    };
-    Control LB_RADIOBUTTON
-    {
-        HelpId = HID_OPTIONS_MULTIPATH_LIST ;
-        Hide = TRUE ;
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 6 , 6 ) ;
-        Size = MAP_APPFONT ( 195 , 77 ) ;
-    };
-    FixedText FT_RADIOBUTTON
-    {
-        Hide = TRUE ;
-        NoLabel = TRUE ;
-        Pos = MAP_APPFONT ( 6 , 86 );
-        Size = MAP_APPFONT ( 195 , 8 );
-        Text [ en-US ] = "Mark the default path for new files.";
-    };
-    PushButton BTN_ADD_MULTIPATH
-    {
-        HelpID = "cui:PushButton:RID_SVXDLG_MULTIPATH:BTN_ADD_MULTIPATH";
-        Pos = MAP_APPFONT ( 204 , 14 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        Text [ en-US ] = "~Add..." ;
-    };
-    PushButton BTN_DEL_MULTIPATH
-    {
-        HelpID = "cui:PushButton:RID_SVXDLG_MULTIPATH:BTN_DEL_MULTIPATH";
-        Pos = MAP_APPFONT ( 204 , 31 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        Text [ en-US ] = "~Delete" ;
-    };
-    OKButton BTN_MULTIPATH_OK
-    {
-        Pos = MAP_APPFONT ( 95 , 100 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        DefButton = TRUE;
-    };
-    CancelButton BTN_MULTIPATH_CANCEL
-    {
-        Pos = MAP_APPFONT ( 148 , 100 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-    };
-    HelpButton BTN_MULTIPATH_HELP
-    {
-        Pos = MAP_APPFONT (  204 , 100 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-    };
-    String STR_HEADER_PATHS
-    {
-        Text [ en-US ] = "Path list" ;
-    };
-};
-
 String RID_MULTIPATH_DBL_ERR
 {
     Text [ en-US ] = "The path %1 already exists." ;
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 6cd9710..58f2355 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -135,6 +135,7 @@ IMPL_ABSTDLG_BASE(AbstractSvxObjectTitleDescDialog_Impl);
 
 IMPL_ABSTDLG_BASE(AbstractSvxMessDialog_Impl);
 IMPL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl);
+IMPL_ABSTDLG_BASE(AbstractSvxPathSelectDialog_Impl);
 IMPL_ABSTDLG_BASE(AbstractSvxHpLinkDlg_Impl);
 IMPL_ABSTDLG_BASE(AbstractFmSearchDialog_Impl);
 IMPL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl);
@@ -796,12 +797,22 @@ void AbstractSvxMultiPathDialog_Impl::SetPath( const OUString& rPath )
     pDlg->SetPath( rPath );
 }
 
-void AbstractSvxMultiPathDialog_Impl::EnableRadioButtonMode()
+void AbstractSvxMultiPathDialog_Impl::SetTitle( const OUString& rNewTitle )
 {
-    pDlg->EnableRadioButtonMode();
+    pDlg->SetText( rNewTitle );
 }
 
-void AbstractSvxMultiPathDialog_Impl::SetTitle( const OUString& rNewTitle )
+OUString AbstractSvxPathSelectDialog_Impl::GetPath() const
+{
+    return pDlg->GetPath();
+}
+
+void AbstractSvxPathSelectDialog_Impl::SetPath( const OUString& rPath )
+{
+    pDlg->SetPath( rPath );
+}
+
+void AbstractSvxPathSelectDialog_Impl::SetTitle( const OUString& rNewTitle )
 {
     pDlg->SetText( rNewTitle );
 }
@@ -1418,6 +1429,12 @@ AbstractSvxMultiPathDialog * AbstractDialogFactory_Impl::CreateSvxMultiPathDialo
     return new AbstractSvxMultiPathDialog_Impl( pDlg );
 }
 
+AbstractSvxMultiPathDialog * AbstractDialogFactory_Impl::CreateSvxPathSelectDialog(Window* pParent)
+{
+    SvxPathSelectDialog* pDlg = new SvxPathSelectDialog(pParent);
+    return new AbstractSvxPathSelectDialog_Impl( pDlg );
+}
+
 AbstractSvxHpLinkDlg * AbstractDialogFactory_Impl::CreateSvxHpLinkDlg (Window* pParent,
                                             SfxBindings* pBindings,
                                             sal_uInt32 nResId)
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 510385c..ecde26d 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -392,12 +392,20 @@ class AbstractSvxMessDialog_Impl :public AbstractSvxMessDialog
 };
 
 class SvxMultiPathDialog;
-class AbstractSvxMultiPathDialog_Impl :public AbstractSvxMultiPathDialog
+class AbstractSvxMultiPathDialog_Impl : public AbstractSvxMultiPathDialog
 {
     DECL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl,SvxMultiPathDialog)
     virtual OUString        GetPath() const;
     virtual void            SetPath( const OUString& rPath );
-    virtual void            EnableRadioButtonMode();
+    virtual void            SetTitle( const OUString& rNewTitle );
+};
+
+class SvxPathSelectDialog;
+class AbstractSvxPathSelectDialog_Impl : public AbstractSvxMultiPathDialog
+{
+    DECL_ABSTDLG_BASE(AbstractSvxPathSelectDialog_Impl,SvxPathSelectDialog)
+    virtual OUString        GetPath() const;
+    virtual void            SetPath( const OUString& rPath );
     virtual void            SetTitle( const OUString& rNewTitle );
 };
 
@@ -626,6 +634,7 @@ public:
                                                 const OUString& rText, const OUString& rDesc,
                                                 Image* pImg = NULL );
     virtual AbstractSvxMultiPathDialog *    CreateSvxMultiPathDialog(Window* pParent);
+    virtual AbstractSvxMultiPathDialog *    CreateSvxPathSelectDialog(Window* pParent);
     virtual AbstractSvxHpLinkDlg *          CreateSvxHpLinkDlg (Window* pParent,
                                                 SfxBindings* pBindings,
                                                 sal_uInt32 nResId);
diff --git a/cui/source/inc/cuires.hrc b/cui/source/inc/cuires.hrc
index d253a0c..ffad575 100644
--- a/cui/source/inc/cuires.hrc
+++ b/cui/source/inc/cuires.hrc
@@ -219,7 +219,6 @@
 #define RID_SVXSTR_ICONCHOICEDLG_RESETBUT   (RID_SVX_START + 580)
 
 // multi path dialog
-#define RID_SVXDLG_MULTIPATH                (RID_SVX_START + 201)
 #define RID_MULTIPATH_DBL_ERR               (RID_SVX_START + 207)
 #define RID_SVXSTR_ARCHIVE_TITLE            (RID_SVX_START + 484)
 #define RID_SVXSTR_ARCHIVE_HEADLINE         (RID_SVX_START + 485)
diff --git a/cui/source/inc/helpid.hrc b/cui/source/inc/helpid.hrc
index 88e7848..2153891 100644
--- a/cui/source/inc/helpid.hrc
+++ b/cui/source/inc/helpid.hrc
@@ -179,7 +179,6 @@
 #define HID_SEARCH_BTN_CLOSE "CUI_HID_SEARCH_BTN_CLOSE"
 #define HID_DIALOG_HANGULHANJA "CUI_HID_DIALOG_HANGULHANJA"
 #define HID_HANGULHANJA_EDIT_DLG "CUI_HID_HANGULHANJA_EDIT_DLG"
-#define HID_MULTIPATH "CUI_HID_MULTIPATH"
 #define HID_TPHATCH_CTRL "CUI_HID_TPHATCH_CTRL"
 #define UID_SEARCH_RECORDSTATUS "CUI_UID_SEARCH_RECORDSTATUS"
 #define HID_TPCOLOR_RGB_1 "CUI_HID_TPCOLOR_RGB_1"
diff --git a/cui/source/inc/multipat.hxx b/cui/source/inc/multipat.hxx
index cae34bd..788ecb5 100644
--- a/cui/source/inc/multipat.hxx
+++ b/cui/source/inc/multipat.hxx
@@ -36,28 +36,17 @@
 #define CLASSPATH_DELIMITER ';'
 #endif
 
-// class SvxMultiPathDialog ----------------------------------------------
-
 class SvxMultiPathDialog : public ModalDialog
 {
-protected:
-    FixedLine                   aPathFL;
-    ListBox                     aPathLB;
-    SvSimpleTableContainer m_aRadioLBContainer;
-    svx::SvxRadioButtonListBox  aRadioLB;
-    FixedText                   aRadioFT;
-    PushButton                  aAddBtn;
-    PushButton                  aDelBtn;
-    OKButton                    aOKBtn;
-    CancelButton                aCancelBtn;
-    HelpButton                  aHelpButton;
-
-    bool                        bIsRadioButtonMode;
+private:
+    svx::SvxRadioButtonListBox* m_pRadioLB;
+    PushButton*                 m_pAddBtn;
+    PushButton*                 m_pDelBtn;
 
     DECL_LINK(AddHdl_Impl, void *);
     DECL_LINK(DelHdl_Impl, void *);
-    DECL_LINK( SelectHdl_Impl, void * );
-    DECL_LINK( CheckHdl_Impl, svx::SvxRadioButtonListBox * );
+    DECL_LINK(SelectHdl_Impl, void *);
+    DECL_LINK(CheckHdl_Impl, svx::SvxRadioButtonListBox*);
 
 public:
     SvxMultiPathDialog(Window* pParent);
@@ -65,7 +54,25 @@ public:
 
     OUString        GetPath() const;
     void            SetPath( const OUString& rPath );
-    void            EnableRadioButtonMode();
+};
+
+class SvxPathSelectDialog : public ModalDialog
+{
+private:
+    ListBox*                    m_pPathLB;
+    PushButton*                 m_pAddBtn;
+    PushButton*                 m_pDelBtn;
+
+    DECL_LINK(AddHdl_Impl, void *);
+    DECL_LINK(DelHdl_Impl, void *);
+    DECL_LINK(SelectHdl_Impl, void *);
+
+public:
+    SvxPathSelectDialog(Window* pParent);
+    ~SvxPathSelectDialog();
+
+    OUString        GetPath() const;
+    void            SetPath( const OUString& rPath );
 };
 
 #endif // INCLUDED_CUI_SOURCE_INC_MULTIPAT_HXX
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx
index f965a74..788d087 100644
--- a/cui/source/options/optpath.cxx
+++ b/cui/source/options/optpath.cxx
@@ -554,7 +554,6 @@ IMPL_LINK_NOARG(SvxPathTabPage, PathHdl_Impl)
             AbstractSvxMultiPathDialog* pMultiDlg =
                 pFact->CreateSvxMultiPathDialog( this );
             DBG_ASSERT( pMultiDlg, "Dialogdiet fail!" );
-            pMultiDlg->EnableRadioButtonMode();
 
             OUString sPath( sUser );
             if ( !sPath.isEmpty() )
diff --git a/cui/uiconfig/ui/multipathdialog.ui b/cui/uiconfig/ui/multipathdialog.ui
new file mode 100644
index 0000000..4174791
--- /dev/null
+++ b/cui/uiconfig/ui/multipathdialog.ui
@@ -0,0 +1,212 @@
+<?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="MultiPathDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Select Paths</property>
+    <property name="type_hint">normal</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="ok">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="cancel">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="help">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="frame1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <child>
+              <object class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
+                <child>
+                  <object class="GtkGrid" id="grid1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">12</property>
+                    <child>
+                      <object class="GtkButtonBox" id="buttonbox1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <property name="spacing">6</property>
+                        <property name="layout_style">start</property>
+                        <child>
+                          <object class="GtkButton" id="add">
+                            <property name="label" translatable="yes">_Add...</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="delete">
+                            <property name="label">gtk-delete</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>
+                      </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="GtkGrid" id="grid2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="svtlo-SvSimpleTableContainer" id="paths">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="vexpand">True</property>
+                            <property name="search_column">0</property>
+                            <child internal-child="selection">
+                              <object class="GtkTreeSelection" id="Simple Table Container-selection"/>
+                            </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="GtkLabel" id="pathlist">
+                            <property name="can_focus">False</property>
+                            <property name="no_show_all">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Path list</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>
+                      </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="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Mark the default path for new files</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">ok</action-widget>
+      <action-widget response="0">cancel</action-widget>
+      <action-widget response="0">help</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/cui/uiconfig/ui/selectpathdialog.ui b/cui/uiconfig/ui/selectpathdialog.ui
new file mode 100644
index 0000000..326ea4f
--- /dev/null
+++ b/cui/uiconfig/ui/selectpathdialog.ui
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <object class="GtkDialog" id="SelectPathDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Select Paths</property>
+    <property name="type_hint">normal</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="ok">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="cancel">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="help">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="frame1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <child>
+              <object class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
+                <child>
+                  <object class="GtkGrid" id="grid1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">12</property>
+                    <child>
+                      <object class="GtkButtonBox" id="buttonbox1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <property name="spacing">6</property>
+                        <property name="layout_style">start</property>
+                        <child>
+                          <object class="GtkButton" id="add">
+                            <property name="label" translatable="yes">_Add...</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="delete">
+                            <property name="label">gtk-delete</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>
+                      </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="GtkScrolledWindow" id="scrolledwindow2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkTreeView" id="paths:border">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="vexpand">True</property>
+                            <child internal-child="selection">
+                              <object class="GtkTreeSelection" id="treeview-selection"/>
+                            </child>
+                          </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>
+                  </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">Paths</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">ok</action-widget>
+      <action-widget response="0">cancel</action-widget>
+      <action-widget response="0">help</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index dbbc3d2..bc788df 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -212,16 +212,15 @@ public:
     virtual void    SetButtonText( sal_uInt16 nBtnId, const OUString& rNewTxt ) = 0;
 };
 
-class AbstractSvxMultiPathDialog :public VclAbstractDialog
+class AbstractSvxMultiPathDialog : public VclAbstractDialog
 {
 public:
     virtual OUString        GetPath() const = 0;
     virtual void            SetPath( const OUString& rPath ) = 0;
-    virtual void            EnableRadioButtonMode() = 0;
     virtual void            SetTitle( const OUString& rNewTitle ) = 0;
 };
 
-class AbstractSvxMultiFileDialog :public AbstractSvxMultiPathDialog
+class AbstractSvxMultiFileDialog : public AbstractSvxMultiPathDialog
 {
 public:
     virtual OUString GetFiles() const = 0;
@@ -403,6 +402,7 @@ public:
                                             Image* pImg = NULL ) = 0;
 
     virtual AbstractSvxMultiPathDialog *    CreateSvxMultiPathDialog(Window* pParent) = 0 ;
+    virtual AbstractSvxMultiPathDialog *    CreateSvxPathSelectDialog(Window* pParent) = 0 ;
     virtual AbstractSvxHpLinkDlg *  CreateSvxHpLinkDlg (Window* pParent,
                                             SfxBindings* pBindings,
                                             sal_uInt32 nResId)=0;
diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx
index 7b063d1..bcae7a5 100644
--- a/sw/source/ui/misc/glossary.cxx
+++ b/sw/source/ui/misc/glossary.cxx
@@ -1022,7 +1022,7 @@ IMPL_LINK( SwGlossaryDlg, PathHdl, Button *, pBtn )
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
     if(pFact)
     {
-        boost::scoped_ptr<AbstractSvxMultiPathDialog> pDlg(pFact->CreateSvxMultiPathDialog( pBtn ));
+        boost::scoped_ptr<AbstractSvxMultiPathDialog> pDlg(pFact->CreateSvxPathSelectDialog(pBtn));
         OSL_ENSURE(pDlg, "Dialogdiet fail!");
         SvtPathOptions aPathOpt;
         const OUString sGlosPath( aPathOpt.GetAutoTextPath() );


More information about the Libreoffice-commits mailing list