Kaydet (Commit) 10faccae authored tarafından Caolán McNamara's avatar Caolán McNamara

convert select multi paths dialogs to .ui

Change-Id: Iecb6dbee9e7af0600b8355db038ec597cab61d1a
üst 734a7fe5
...@@ -86,6 +86,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\ ...@@ -86,6 +86,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/messbox \ cui/uiconfig/ui/messbox \
cui/uiconfig/ui/mosaicdialog \ cui/uiconfig/ui/mosaicdialog \
cui/uiconfig/ui/movemenu \ cui/uiconfig/ui/movemenu \
cui/uiconfig/ui/multipathdialog \
cui/uiconfig/ui/namedialog \ cui/uiconfig/ui/namedialog \
cui/uiconfig/ui/newlibdialog \ cui/uiconfig/ui/newlibdialog \
cui/uiconfig/ui/newtabledialog \ cui/uiconfig/ui/newtabledialog \
...@@ -158,6 +159,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\ ...@@ -158,6 +159,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/searchformatdialog \ cui/uiconfig/ui/searchformatdialog \
cui/uiconfig/ui/securityoptionsdialog \ cui/uiconfig/ui/securityoptionsdialog \
cui/uiconfig/ui/select_persona_dialog \ cui/uiconfig/ui/select_persona_dialog \
cui/uiconfig/ui/selectpathdialog \
cui/uiconfig/ui/shadowtabpage \ cui/uiconfig/ui/shadowtabpage \
cui/uiconfig/ui/showcoldialog \ cui/uiconfig/ui/showcoldialog \
cui/uiconfig/ui/similaritysearchdialog \ cui/uiconfig/ui/similaritysearchdialog \
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include "multipat.hxx" #include "multipat.hxx"
#include <dialmgr.hxx> #include <dialmgr.hxx>
#include "multipat.hrc"
#include <cuires.hrc> #include <cuires.hrc>
#include <comphelper/processfactory.hxx> #include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx> #include <comphelper/string.hxx>
...@@ -40,32 +39,33 @@ using namespace ::com::sun::star::lang; ...@@ -40,32 +39,33 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs; using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno; using namespace ::com::sun::star::uno;
// class SvxMultiPathDialog ----------------------------------------------
IMPL_LINK_NOARG(SvxMultiPathDialog, SelectHdl_Impl) IMPL_LINK_NOARG(SvxMultiPathDialog, SelectHdl_Impl)
{ {
sal_uLong nCount = bIsRadioButtonMode ? aRadioLB.GetEntryCount() : aPathLB.GetEntryCount(); sal_uLong nCount = m_pRadioLB->GetEntryCount();
bool bIsSelected = bIsRadioButtonMode bool bIsSelected = m_pRadioLB->FirstSelected() != NULL;
? aRadioLB.FirstSelected() != NULL
: aPathLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
bool bEnable = nCount > 1; bool bEnable = nCount > 1;
aDelBtn.Enable( bEnable && bIsSelected ); m_pDelBtn->Enable(bEnable && bIsSelected);
return 0; 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 ) IMPL_LINK( SvxMultiPathDialog, CheckHdl_Impl, svx::SvxRadioButtonListBox *, pBox )
{ {
SvTreeListEntry* pEntry = SvTreeListEntry* pEntry =
pBox ? pBox->GetEntry( pBox->GetCurMousePoint() ) : aRadioLB.FirstSelected(); pBox ? pBox->GetEntry( pBox->GetCurMousePoint() ) : m_pRadioLB->FirstSelected();
if ( pEntry ) if ( pEntry )
aRadioLB.HandleEntryChecked( pEntry ); m_pRadioLB->HandleEntryChecked( pEntry );
return 0; return 0;
} }
IMPL_LINK_NOARG(SvxMultiPathDialog, AddHdl_Impl) IMPL_LINK_NOARG(SvxMultiPathDialog, AddHdl_Impl)
{ {
Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
...@@ -79,140 +79,166 @@ IMPL_LINK_NOARG(SvxMultiPathDialog, AddHdl_Impl) ...@@ -79,140 +79,166 @@ IMPL_LINK_NOARG(SvxMultiPathDialog, AddHdl_Impl)
OUString sInsPath; OUString sInsPath;
::utl::LocalFileHelper::ConvertURLToSystemPath( aURL, 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 ); OUString sNewEntry( '\t' );
if ( 0xffffffff == nPos ) //See svtools/source/contnr/svtabbx.cxx SvTabListBox::GetEntryPos sNewEntry += sInsPath;
{ SvTreeListEntry* pEntry = m_pRadioLB->InsertEntry( sNewEntry );
OUString sNewEntry( '\t' ); OUString* pData = new OUString( aURL );
sNewEntry += sInsPath; pEntry->SetUserData( pData );
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();
}
} }
else else
{ {
if ( LISTBOX_ENTRY_NOTFOUND != aPathLB.GetEntryPos( sInsPath ) ) OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) );
{ sMsg = sMsg.replaceFirst( "%1", sInsPath );
OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) ); InfoBox( this, sMsg ).Execute();
sMsg = sMsg.replaceFirst( "%1", sInsPath );
InfoBox( this, sMsg ).Execute();
}
else
{
sal_uInt16 nPos = aPathLB.InsertEntry( sInsPath, LISTBOX_APPEND );
aPathLB.SetEntryData( nPos, new OUString( aURL ) );
}
} }
SelectHdl_Impl( NULL ); SelectHdl_Impl( NULL );
} }
return 0; return 0;
} }
IMPL_LINK_NOARG(SvxPathSelectDialog, AddHdl_Impl)
IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl)
{ {
if ( bIsRadioButtonMode ) Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
Reference < XFolderPicker2 > xFolderPicker = FolderPicker::create(xContext);
if ( xFolderPicker->execute() == ExecutableDialogResults::OK )
{ {
SvTreeListEntry* pEntry = aRadioLB.FirstSelected(); INetURLObject aPath( xFolderPicker->getDirectory() );
delete (OUString*)pEntry->GetUserData(); aPath.removeFinalSlash();
bool bChecked = aRadioLB.GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED; OUString aURL = aPath.GetMainURL( INetURLObject::NO_DECODE );
sal_uLong nPos = aRadioLB.GetEntryPos( pEntry ); OUString sInsPath;
aRadioLB.RemoveEntry( pEntry ); ::utl::LocalFileHelper::ConvertURLToSystemPath( aURL, sInsPath );
sal_uLong nCnt = aRadioLB.GetEntryCount();
if ( nCnt ) if ( LISTBOX_ENTRY_NOTFOUND != m_pPathLB->GetEntryPos( sInsPath ) )
{ {
nCnt--; OUString sMsg( CUI_RES( RID_MULTIPATH_DBL_ERR ) );
if ( nPos > nCnt ) sMsg = sMsg.replaceFirst( "%1", sInsPath );
nPos = nCnt; InfoBox( this, sMsg ).Execute();
pEntry = aRadioLB.GetEntry( nPos );
if ( bChecked )
{
aRadioLB.SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
aRadioLB.HandleEntryChecked( pEntry );
}
else
aRadioLB.Select( pEntry );
} }
else
{
sal_uInt16 nPos = m_pPathLB->InsertEntry( sInsPath, LISTBOX_APPEND );
m_pPathLB->SetEntryData( nPos, new OUString( aURL ) );
}
SelectHdl_Impl( NULL );
} }
else return 0;
{ }
sal_uInt16 nPos = aPathLB.GetSelectEntryPos();
aPathLB.RemoveEntry( nPos );
sal_uInt16 nCnt = aPathLB.GetEntryCount();
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--; m_pRadioLB->SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
m_pRadioLB->HandleEntryChecked( pEntry );
if ( nPos > nCnt )
nPos = nCnt;
aPathLB.SelectEntryPos( nPos );
} }
else
m_pRadioLB->Select( pEntry );
} }
SelectHdl_Impl( NULL ); SelectHdl_Impl( NULL );
return 0; 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 ) : if ( nPos > nCnt )
nPos = nCnt;
ModalDialog( pParent, CUI_RES( RID_SVXDLG_MULTIPATH ) ), m_pPathLB->SelectEntryPos( nPos );
}
aPathFL ( this, CUI_RES( FL_MULTIPATH) ), SelectHdl_Impl( NULL );
aPathLB ( this, CUI_RES( LB_MULTIPATH ) ), return 0;
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 )
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 }; static long aStaticTabs[]= { 2, 0, 12 };
aRadioLB.SvSimpleTable::SetTabs( aStaticTabs ); m_pRadioLB->SvSimpleTable::SetTabs( aStaticTabs );
OUString sHeader( CUI_RES( STR_HEADER_PATHS ) ); OUString sHeader(get<FixedText>("pathlist")->GetText());
aRadioLB.SetQuickHelpText( sHeader ); m_pRadioLB->SetQuickHelpText( sHeader );
sHeader = "\t" + sHeader; sHeader = "\t" + sHeader;
aRadioLB.InsertHeaderEntry( sHeader, HEADERBAR_APPEND, HIB_LEFT ); m_pRadioLB->InsertHeaderEntry( sHeader, HEADERBAR_APPEND, HIB_LEFT );
FreeResource();
aPathLB.SetSelectHdl( LINK( this, SvxMultiPathDialog, SelectHdl_Impl ) ); m_pRadioLB->SetSelectHdl( LINK( this, SvxMultiPathDialog, SelectHdl_Impl ) );
aRadioLB.SetSelectHdl( LINK( this, SvxMultiPathDialog, SelectHdl_Impl ) ); m_pRadioLB->SetCheckButtonHdl( LINK( this, SvxMultiPathDialog, CheckHdl_Impl ) );
aRadioLB.SetCheckButtonHdl( LINK( this, SvxMultiPathDialog, CheckHdl_Impl ) ); m_pAddBtn->SetClickHdl( LINK( this, SvxMultiPathDialog, AddHdl_Impl ) );
aAddBtn.SetClickHdl( LINK( this, SvxMultiPathDialog, AddHdl_Impl ) ); m_pDelBtn->SetClickHdl( LINK( this, SvxMultiPathDialog, DelHdl_Impl ) );
aDelBtn.SetClickHdl( LINK( this, SvxMultiPathDialog, DelHdl_Impl ) );
SelectHdl_Impl( NULL ); SelectHdl_Impl( NULL );
aAddBtn.SetAccessibleRelationMemberOf(&aPathLB); m_pRadioLB->ShowTable();
aDelBtn.SetAccessibleRelationMemberOf(&aPathLB); }
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() SvxMultiPathDialog::~SvxMultiPathDialog()
{ {
sal_uInt16 nPos = aPathLB.GetEntryCount(); sal_uInt16 nPos = (sal_uInt16)m_pRadioLB->GetEntryCount();
while ( nPos-- )
delete (OUString*)aPathLB.GetEntryData(nPos);
nPos = (sal_uInt16)aRadioLB.GetEntryCount();
while ( nPos-- ) while ( nPos-- )
{ {
SvTreeListEntry* pEntry = aRadioLB.GetEntry( nPos ); SvTreeListEntry* pEntry = m_pRadioLB->GetEntry( nPos );
delete (OUString*)pEntry->GetUserData(); 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 OUString SvxMultiPathDialog::GetPath() const
...@@ -220,43 +246,45 @@ OUString SvxMultiPathDialog::GetPath() const ...@@ -220,43 +246,45 @@ OUString SvxMultiPathDialog::GetPath() const
OUString sNewPath; OUString sNewPath;
sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER; sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER;
if ( bIsRadioButtonMode ) OUString sWritable;
for ( sal_uInt16 i = 0; i < m_pRadioLB->GetEntryCount(); ++i )
{ {
OUString sWritable; SvTreeListEntry* pEntry = m_pRadioLB->GetEntry(i);
for ( sal_uInt16 i = 0; i < aRadioLB.GetEntryCount(); ++i ) if ( m_pRadioLB->GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED )
{ sWritable = *(OUString*)pEntry->GetUserData();
SvTreeListEntry* pEntry = aRadioLB.GetEntry(i); else
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 )
{ {
if ( !sNewPath.isEmpty() ) if ( !sNewPath.isEmpty() )
sNewPath += OUString(cDelim); sNewPath += OUString(cDelim);
sNewPath += *(OUString*)aPathLB.GetEntryData(i); sNewPath += *(OUString*)pEntry->GetUserData();
} }
} }
if ( !sNewPath.isEmpty() )
sNewPath += OUString(cDelim);
sNewPath += sWritable;
return sNewPath; 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 ) void SvxMultiPathDialog::SetPath( const OUString& rPath )
{ {
sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER; 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 ) for ( sal_uInt16 i = 0; i < nCount; ++i )
{ {
...@@ -265,54 +293,46 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath ) ...@@ -265,54 +293,46 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath )
sal_Bool bIsSystemPath = sal_Bool bIsSystemPath =
::utl::LocalFileHelper::ConvertURLToSystemPath( sPath, sSystemPath ); ::utl::LocalFileHelper::ConvertURLToSystemPath( sPath, sSystemPath );
if ( bIsRadioButtonMode ) OUString sEntry( '\t' );
{ sEntry += (bIsSystemPath ? sSystemPath : OUString(sPath));
OUString sEntry( '\t' ); SvTreeListEntry* pEntry = m_pRadioLB->InsertEntry( sEntry );
sEntry += (bIsSystemPath ? sSystemPath : OUString(sPath)); OUString* pURL = new OUString( sPath );
SvTreeListEntry* pEntry = aRadioLB.InsertEntry( sEntry ); pEntry->SetUserData( pURL );
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 ) );
}
} }
if ( bIsRadioButtonMode && nCount > 0 ) if (nCount > 0)
{ {
SvTreeListEntry* pEntry = aRadioLB.GetEntry( nCount - 1 ); SvTreeListEntry* pEntry = m_pRadioLB->GetEntry( nCount - 1 );
if ( pEntry ) if ( pEntry )
{ {
aRadioLB.SetCheckButtonState( pEntry, SV_BUTTON_CHECKED ); m_pRadioLB->SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
aRadioLB.HandleEntryChecked( pEntry ); m_pRadioLB->HandleEntryChecked( pEntry );
} }
} }
SelectHdl_Impl( NULL ); 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(); for ( sal_uInt16 i = 0; i < nCount; ++i )
aPathLB.Hide(); {
OUString sPath = rPath.getToken( i, cDelim );
OUString sSystemPath;
sal_Bool bIsSystemPath =
::utl::LocalFileHelper::ConvertURLToSystemPath( sPath, sSystemPath );
aRadioLB.ShowTable(); if ( bIsSystemPath )
aRadioFT.Show(); 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(); SelectHdl_Impl( NULL );
long nDelta = aNewPos.Y() - aRadioLB.GetPosPixel().Y();
aNewPos.Y() -= nDelta;
aAddBtn.SetPosPixel( aNewPos );
aNewPos = aDelBtn.GetPosPixel();
aNewPos.Y() -= nDelta;
aDelBtn.SetPosPixel( aNewPos );
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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: */
...@@ -17,86 +17,8 @@ ...@@ -17,86 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/ */
#include "multipat.hrc"
#include "helpid.hrc"
#include <cuires.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 String RID_MULTIPATH_DBL_ERR
{ {
Text [ en-US ] = "The path %1 already exists." ; Text [ en-US ] = "The path %1 already exists." ;
......
...@@ -135,6 +135,7 @@ IMPL_ABSTDLG_BASE(AbstractSvxObjectTitleDescDialog_Impl); ...@@ -135,6 +135,7 @@ IMPL_ABSTDLG_BASE(AbstractSvxObjectTitleDescDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxMessDialog_Impl); IMPL_ABSTDLG_BASE(AbstractSvxMessDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl); IMPL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxPathSelectDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractSvxHpLinkDlg_Impl); IMPL_ABSTDLG_BASE(AbstractSvxHpLinkDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractFmSearchDialog_Impl); IMPL_ABSTDLG_BASE(AbstractFmSearchDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl); IMPL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl);
...@@ -796,12 +797,22 @@ void AbstractSvxMultiPathDialog_Impl::SetPath( const OUString& rPath ) ...@@ -796,12 +797,22 @@ void AbstractSvxMultiPathDialog_Impl::SetPath( const OUString& rPath )
pDlg->SetPath( 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 ); pDlg->SetText( rNewTitle );
} }
...@@ -1418,6 +1429,12 @@ AbstractSvxMultiPathDialog * AbstractDialogFactory_Impl::CreateSvxMultiPathDialo ...@@ -1418,6 +1429,12 @@ AbstractSvxMultiPathDialog * AbstractDialogFactory_Impl::CreateSvxMultiPathDialo
return new AbstractSvxMultiPathDialog_Impl( pDlg ); 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, AbstractSvxHpLinkDlg * AbstractDialogFactory_Impl::CreateSvxHpLinkDlg (Window* pParent,
SfxBindings* pBindings, SfxBindings* pBindings,
sal_uInt32 nResId) sal_uInt32 nResId)
......
...@@ -392,12 +392,20 @@ class AbstractSvxMessDialog_Impl :public AbstractSvxMessDialog ...@@ -392,12 +392,20 @@ class AbstractSvxMessDialog_Impl :public AbstractSvxMessDialog
}; };
class SvxMultiPathDialog; class SvxMultiPathDialog;
class AbstractSvxMultiPathDialog_Impl :public AbstractSvxMultiPathDialog class AbstractSvxMultiPathDialog_Impl : public AbstractSvxMultiPathDialog
{ {
DECL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl,SvxMultiPathDialog) DECL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl,SvxMultiPathDialog)
virtual OUString GetPath() const; virtual OUString GetPath() const;
virtual void SetPath( const OUString& rPath ); 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 ); virtual void SetTitle( const OUString& rNewTitle );
}; };
...@@ -626,6 +634,7 @@ public: ...@@ -626,6 +634,7 @@ public:
const OUString& rText, const OUString& rDesc, const OUString& rText, const OUString& rDesc,
Image* pImg = NULL ); Image* pImg = NULL );
virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(Window* pParent); virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(Window* pParent);
virtual AbstractSvxMultiPathDialog * CreateSvxPathSelectDialog(Window* pParent);
virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg (Window* pParent, virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg (Window* pParent,
SfxBindings* pBindings, SfxBindings* pBindings,
sal_uInt32 nResId); sal_uInt32 nResId);
......
...@@ -219,7 +219,6 @@ ...@@ -219,7 +219,6 @@
#define RID_SVXSTR_ICONCHOICEDLG_RESETBUT (RID_SVX_START + 580) #define RID_SVXSTR_ICONCHOICEDLG_RESETBUT (RID_SVX_START + 580)
// multi path dialog // multi path dialog
#define RID_SVXDLG_MULTIPATH (RID_SVX_START + 201)
#define RID_MULTIPATH_DBL_ERR (RID_SVX_START + 207) #define RID_MULTIPATH_DBL_ERR (RID_SVX_START + 207)
#define RID_SVXSTR_ARCHIVE_TITLE (RID_SVX_START + 484) #define RID_SVXSTR_ARCHIVE_TITLE (RID_SVX_START + 484)
#define RID_SVXSTR_ARCHIVE_HEADLINE (RID_SVX_START + 485) #define RID_SVXSTR_ARCHIVE_HEADLINE (RID_SVX_START + 485)
......
...@@ -179,7 +179,6 @@ ...@@ -179,7 +179,6 @@
#define HID_SEARCH_BTN_CLOSE "CUI_HID_SEARCH_BTN_CLOSE" #define HID_SEARCH_BTN_CLOSE "CUI_HID_SEARCH_BTN_CLOSE"
#define HID_DIALOG_HANGULHANJA "CUI_HID_DIALOG_HANGULHANJA" #define HID_DIALOG_HANGULHANJA "CUI_HID_DIALOG_HANGULHANJA"
#define HID_HANGULHANJA_EDIT_DLG "CUI_HID_HANGULHANJA_EDIT_DLG" #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 HID_TPHATCH_CTRL "CUI_HID_TPHATCH_CTRL"
#define UID_SEARCH_RECORDSTATUS "CUI_UID_SEARCH_RECORDSTATUS" #define UID_SEARCH_RECORDSTATUS "CUI_UID_SEARCH_RECORDSTATUS"
#define HID_TPCOLOR_RGB_1 "CUI_HID_TPCOLOR_RGB_1" #define HID_TPCOLOR_RGB_1 "CUI_HID_TPCOLOR_RGB_1"
......
...@@ -36,28 +36,17 @@ ...@@ -36,28 +36,17 @@
#define CLASSPATH_DELIMITER ';' #define CLASSPATH_DELIMITER ';'
#endif #endif
// class SvxMultiPathDialog ----------------------------------------------
class SvxMultiPathDialog : public ModalDialog class SvxMultiPathDialog : public ModalDialog
{ {
protected: private:
FixedLine aPathFL; svx::SvxRadioButtonListBox* m_pRadioLB;
ListBox aPathLB; PushButton* m_pAddBtn;
SvSimpleTableContainer m_aRadioLBContainer; PushButton* m_pDelBtn;
svx::SvxRadioButtonListBox aRadioLB;
FixedText aRadioFT;
PushButton aAddBtn;
PushButton aDelBtn;
OKButton aOKBtn;
CancelButton aCancelBtn;
HelpButton aHelpButton;
bool bIsRadioButtonMode;
DECL_LINK(AddHdl_Impl, void *); DECL_LINK(AddHdl_Impl, void *);
DECL_LINK(DelHdl_Impl, void *); DECL_LINK(DelHdl_Impl, void *);
DECL_LINK( SelectHdl_Impl, void * ); DECL_LINK(SelectHdl_Impl, void *);
DECL_LINK( CheckHdl_Impl, svx::SvxRadioButtonListBox * ); DECL_LINK(CheckHdl_Impl, svx::SvxRadioButtonListBox*);
public: public:
SvxMultiPathDialog(Window* pParent); SvxMultiPathDialog(Window* pParent);
...@@ -65,7 +54,25 @@ public: ...@@ -65,7 +54,25 @@ public:
OUString GetPath() const; OUString GetPath() const;
void SetPath( const OUString& rPath ); 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 #endif // INCLUDED_CUI_SOURCE_INC_MULTIPAT_HXX
......
...@@ -554,7 +554,6 @@ IMPL_LINK_NOARG(SvxPathTabPage, PathHdl_Impl) ...@@ -554,7 +554,6 @@ IMPL_LINK_NOARG(SvxPathTabPage, PathHdl_Impl)
AbstractSvxMultiPathDialog* pMultiDlg = AbstractSvxMultiPathDialog* pMultiDlg =
pFact->CreateSvxMultiPathDialog( this ); pFact->CreateSvxMultiPathDialog( this );
DBG_ASSERT( pMultiDlg, "Dialogdiet fail!" ); DBG_ASSERT( pMultiDlg, "Dialogdiet fail!" );
pMultiDlg->EnableRadioButtonMode();
OUString sPath( sUser ); OUString sPath( sUser );
if ( !sPath.isEmpty() ) if ( !sPath.isEmpty() )
......
<?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>
<?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>
...@@ -212,16 +212,15 @@ public: ...@@ -212,16 +212,15 @@ public:
virtual void SetButtonText( sal_uInt16 nBtnId, const OUString& rNewTxt ) = 0; virtual void SetButtonText( sal_uInt16 nBtnId, const OUString& rNewTxt ) = 0;
}; };
class AbstractSvxMultiPathDialog :public VclAbstractDialog class AbstractSvxMultiPathDialog : public VclAbstractDialog
{ {
public: public:
virtual OUString GetPath() const = 0; virtual OUString GetPath() const = 0;
virtual void SetPath( const OUString& rPath ) = 0; virtual void SetPath( const OUString& rPath ) = 0;
virtual void EnableRadioButtonMode() = 0;
virtual void SetTitle( const OUString& rNewTitle ) = 0; virtual void SetTitle( const OUString& rNewTitle ) = 0;
}; };
class AbstractSvxMultiFileDialog :public AbstractSvxMultiPathDialog class AbstractSvxMultiFileDialog : public AbstractSvxMultiPathDialog
{ {
public: public:
virtual OUString GetFiles() const = 0; virtual OUString GetFiles() const = 0;
...@@ -403,6 +402,7 @@ public: ...@@ -403,6 +402,7 @@ public:
Image* pImg = NULL ) = 0; Image* pImg = NULL ) = 0;
virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(Window* pParent) = 0 ; virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(Window* pParent) = 0 ;
virtual AbstractSvxMultiPathDialog * CreateSvxPathSelectDialog(Window* pParent) = 0 ;
virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg (Window* pParent, virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg (Window* pParent,
SfxBindings* pBindings, SfxBindings* pBindings,
sal_uInt32 nResId)=0; sal_uInt32 nResId)=0;
......
...@@ -1022,7 +1022,7 @@ IMPL_LINK( SwGlossaryDlg, PathHdl, Button *, pBtn ) ...@@ -1022,7 +1022,7 @@ IMPL_LINK( SwGlossaryDlg, PathHdl, Button *, pBtn )
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact) if(pFact)
{ {
boost::scoped_ptr<AbstractSvxMultiPathDialog> pDlg(pFact->CreateSvxMultiPathDialog( pBtn )); boost::scoped_ptr<AbstractSvxMultiPathDialog> pDlg(pFact->CreateSvxPathSelectDialog(pBtn));
OSL_ENSURE(pDlg, "Dialogdiet fail!"); OSL_ENSURE(pDlg, "Dialogdiet fail!");
SvtPathOptions aPathOpt; SvtPathOptions aPathOpt;
const OUString sGlosPath( aPathOpt.GetAutoTextPath() ); const OUString sGlosPath( aPathOpt.GetAutoTextPath() );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment