summaryrefslogtreecommitdiffstats
path: root/cui
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-03-18 10:05:42 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-03-18 10:32:13 +0000
commit10faccaec6bffac6eec7159c8897c21a1d1c6d66 (patch)
tree4d609da5bd95eac3055f1ea45bfe3c58f2b2b1bc /cui
parentUpdated core (diff)
downloadcore-10faccaec6bffac6eec7159c8897c21a1d1c6d66.tar.gz
core-10faccaec6bffac6eec7159c8897c21a1d1c6d66.zip
convert select multi paths dialogs to .ui
Change-Id: Iecb6dbee9e7af0600b8355db038ec597cab61d1a
Diffstat (limited to 'cui')
-rw-r--r--cui/UIConfig_cui.mk2
-rw-r--r--cui/source/dialogs/multipat.cxx342
-rw-r--r--cui/source/dialogs/multipat.hrc37
-rw-r--r--cui/source/dialogs/multipat.src78
-rw-r--r--cui/source/factory/dlgfact.cxx23
-rw-r--r--cui/source/factory/dlgfact.hxx13
-rw-r--r--cui/source/inc/cuires.hrc1
-rw-r--r--cui/source/inc/helpid.hrc1
-rw-r--r--cui/source/inc/multipat.hxx43
-rw-r--r--cui/source/options/optpath.cxx1
-rw-r--r--cui/uiconfig/ui/multipathdialog.ui212
-rw-r--r--cui/uiconfig/ui/selectpathdialog.ui191
12 files changed, 642 insertions, 302 deletions
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index c619d787e64e..7cea22555770 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 d22da3e773dd..eee728bb1cb3 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 fb57801446eb..000000000000
--- 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 f85bd93fc546..09b3718965a8 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 6cd97101988d..58f23550366e 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 510385c74465..ecde26d5e532 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 d253a0cb5959..ffad575ca114 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 88e78488145d..21538912b6d6 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 cae34bdf355d..788ecb5cf506 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 f965a745610f..788d08714e81 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 000000000000..41747912fdc7
--- /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 000000000000..326ea4fae877
--- /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>