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,\
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 \
......
......@@ -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: */
/* -*- 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 @@
* 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." ;
......
......@@ -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)
......
......@@ -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);
......
......@@ -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)
......
......@@ -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"
......
......@@ -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
......
......@@ -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() )
......
<?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:
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;
......
......@@ -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() );
......
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