| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_cui.hxx" |
| |
| #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> |
| #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> |
| #include <com/sun/star/ui/dialogs/XFilePicker.hpp> |
| #include <com/sun/star/ui/dialogs/XFilterManager.hpp> |
| #include <com/sun/star/lang/XMultiServiceFactory.hpp> |
| #include <com/sun/star/lang/XInitialization.hpp> |
| #include <comphelper/processfactory.hxx> |
| #include <com/sun/star/embed/EmbedStates.hpp> |
| #include <com/sun/star/beans/XPropertySet.hpp> |
| #include <com/sun/star/beans/PropertyValue.hpp> |
| #include <com/sun/star/embed/XInsertObjectDialog.hpp> |
| #include <com/sun/star/ucb/CommandAbortedException.hpp> |
| #include <com/sun/star/task/XInteractionHandler.hpp> |
| |
| #include "insdlg.hxx" |
| #include <dialmgr.hxx> |
| #include <svtools/sores.hxx> |
| |
| #include <stdio.h> |
| #include <tools/urlobj.hxx> |
| #include <tools/debug.hxx> |
| #include <svl/urihelper.hxx> |
| #include <svtools/svmedit.hxx> |
| #include <vcl/button.hxx> |
| #include <vcl/fixed.hxx> |
| #include <vcl/group.hxx> |
| #include <vcl/lstbox.hxx> |
| #include <vcl/msgbox.hxx> |
| #include <vcl/svapp.hxx> |
| #include <sot/clsids.hxx> |
| #include <sfx2/frmdescr.hxx> |
| #include <sfx2/viewsh.hxx> |
| #include <sfx2/filedlghelper.hxx> |
| #include <svl/ownlist.hxx> |
| #include <comphelper/seqstream.hxx> |
| |
| #include "svuidlg.hrc" |
| |
| #include <osl/file.hxx> |
| |
| #include <com/sun/star/container/XHierarchicalNameAccess.hpp> |
| #include <com/sun/star/container/XNameAccess.hpp> |
| #include <unotools/processfactory.hxx> |
| |
| using namespace ::com::sun::star; |
| using namespace ::com::sun::star::lang; |
| using namespace ::com::sun::star::uno; |
| using namespace ::com::sun::star::container; |
| using namespace ::com::sun::star::ui::dialogs; |
| using ::rtl::OUString; |
| |
| #define _SVSTDARR_STRINGSDTOR |
| #include <svl/svstdarr.hxx> |
| |
| |
| static String impl_getSvtResString( sal_uInt32 nId ) |
| { |
| String aRet; |
| com::sun::star::lang::Locale aLocale = Application::GetSettings().GetUILocale(); |
| ResMgr* pMgr = ResMgr::CreateResMgr( "svt", aLocale ); |
| if( pMgr ) |
| { |
| aRet = String( ResId( nId, *pMgr ) ); |
| delete pMgr; |
| } |
| return aRet; |
| } |
| |
| sal_Bool InsertObjectDialog_Impl::IsCreateNew() const |
| { |
| return sal_False; |
| } |
| |
| uno::Reference< io::XInputStream > InsertObjectDialog_Impl::GetIconIfIconified( ::rtl::OUString* /*pGraphicMediaType*/ ) |
| { |
| return uno::Reference< io::XInputStream >(); |
| } |
| |
| InsertObjectDialog_Impl::InsertObjectDialog_Impl( Window * pParent, const ResId & rResId, const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStorage ) |
| : ModalDialog( pParent, rResId ) |
| , m_xStorage( xStorage ) |
| , aCnt( m_xStorage ) |
| { |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| IMPL_LINK_INLINE_START( SvInsertOleDlg, DoubleClickHdl, ListBox *, EMPTYARG ) |
| { |
| EndDialog( RET_OK ); |
| return 0; |
| } |
| IMPL_LINK_INLINE_END( SvInsertOleDlg, DoubleClickHdl, ListBox *, pListBox ) |
| |
| // ----------------------------------------------------------------------- |
| |
| IMPL_LINK( SvInsertOleDlg, BrowseHdl, PushButton *, EMPTYARG ) |
| { |
| Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); |
| if( xFactory.is() ) |
| { |
| Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY ); |
| DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); |
| |
| Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); |
| Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); |
| if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) |
| { |
| Sequence< Any > aServiceType( 1 ); |
| aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; |
| xInit->initialize( aServiceType ); |
| |
| // add filter |
| try |
| { |
| xFilterMgr->appendFilter( |
| OUString(), |
| OUString( RTL_CONSTASCII_USTRINGPARAM( "*.*" ) ) |
| ); |
| } |
| catch( IllegalArgumentException& ) |
| { |
| DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); |
| } |
| |
| if( xFilePicker->execute() == ExecutableDialogResults::OK ) |
| { |
| Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); |
| INetURLObject aObj( aPathSeq[0] ); |
| aEdFilepath.SetText( aObj.PathToFileName() ); |
| } |
| } |
| } |
| |
| return 0; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| IMPL_LINK( SvInsertOleDlg, RadioHdl, RadioButton *, EMPTYARG ) |
| { |
| if ( aRbNewObject.IsChecked() ) |
| { |
| aLbObjecttype.Show(); |
| aEdFilepath.Hide(); |
| aBtnFilepath.Hide(); |
| aCbFilelink.Hide(); |
| aGbObject.SetText( _aOldStr ); |
| } |
| else |
| { |
| aCbFilelink.Show(); |
| aLbObjecttype.Hide(); |
| aEdFilepath.Show(); |
| aBtnFilepath.Show(); |
| aCbFilelink.Show(); |
| aGbObject.SetText( aStrFile ); |
| } |
| return 0; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvInsertOleDlg::SelectDefault() |
| { |
| aLbObjecttype.SelectEntryPos( 0 ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| SvInsertOleDlg::SvInsertOleDlg |
| ( |
| Window* pParent, |
| const Reference < embed::XStorage >& xStorage, |
| const SvObjectServerList* pServers |
| ) |
| : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OLEOBJECT ), xStorage ), |
| aRbNewObject( this, CUI_RES( RB_NEW_OBJECT ) ), |
| aRbObjectFromfile( this, CUI_RES( RB_OBJECT_FROMFILE ) ), |
| aGbObject( this, CUI_RES( GB_OBJECT ) ), |
| aLbObjecttype( this, CUI_RES( LB_OBJECTTYPE ) ), |
| aEdFilepath( this, CUI_RES( ED_FILEPATH ) ), |
| aBtnFilepath( this, CUI_RES( BTN_FILEPATH ) ), |
| aCbFilelink( this, CUI_RES( CB_FILELINK ) ), |
| aOKButton1( this, CUI_RES( 1 ) ), |
| aCancelButton1( this, CUI_RES( 1 ) ), |
| aHelpButton1( this, CUI_RES( 1 ) ), |
| aStrFile( CUI_RES( STR_FILE ) ), |
| m_pServers( pServers ) |
| { |
| FreeResource(); |
| _aOldStr = aGbObject.GetText(); |
| aLbObjecttype.SetDoubleClickHdl( LINK( this, SvInsertOleDlg, DoubleClickHdl ) ); |
| aBtnFilepath.SetClickHdl( LINK( this, SvInsertOleDlg, BrowseHdl ) ); |
| Link aLink( LINK( this, SvInsertOleDlg, RadioHdl ) ); |
| aRbNewObject.SetClickHdl( aLink ); |
| aRbObjectFromfile.SetClickHdl( aLink ); |
| aRbNewObject.Check( sal_True ); |
| RadioHdl( NULL ); |
| aBtnFilepath.SetAccessibleRelationMemberOf(&aGbObject); |
| } |
| |
| short SvInsertOleDlg::Execute() |
| { |
| short nRet = RET_OK; |
| SvObjectServerList aObjS; |
| if ( !m_pServers ) |
| { |
| // if no list was provided, take the complete one |
| aObjS.FillInsertObjects(); |
| m_pServers = &aObjS; |
| } |
| |
| // fill listbox and select default |
| ListBox& rBox = GetObjectTypes(); |
| rBox.SetUpdateMode( sal_False ); |
| for ( sal_uLong i = 0; i < m_pServers->Count(); i++ ) |
| rBox.InsertEntry( (*m_pServers)[i].GetHumanName() ); |
| rBox.SetUpdateMode( sal_True ); |
| SelectDefault(); |
| ::rtl::OUString aName; |
| |
| DBG_ASSERT( m_xStorage.is(), "No storage!"); |
| if ( m_xStorage.is() && ( nRet = Dialog::Execute() ) == RET_OK ) |
| { |
| String aFileName; |
| sal_Bool bLink = sal_False; |
| sal_Bool bCreateNew = IsCreateNew(); |
| if ( bCreateNew ) |
| { |
| // create and insert new embedded object |
| String aServerName = rBox.GetSelectEntry(); |
| const SvObjectServer* pS = m_pServers->Get( aServerName ); |
| if ( pS ) |
| { |
| if( pS->GetClassName() == SvGlobalName( SO3_OUT_CLASSID ) ) |
| { |
| try |
| { |
| uno::Reference < embed::XInsertObjectDialog > xDialogCreator( |
| ::comphelper::getProcessServiceFactory()->createInstance( |
| ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.MSOLEObjectSystemCreator")) ), |
| uno::UNO_QUERY ); |
| |
| if ( xDialogCreator.is() ) |
| { |
| aName = aCnt.CreateUniqueObjectName(); |
| embed::InsertedObjectInfo aNewInf = xDialogCreator->createInstanceByDialog( |
| m_xStorage, |
| aName, |
| uno::Sequence < beans::PropertyValue >() ); |
| |
| OSL_ENSURE( aNewInf.Object.is(), "The object must be created or an exception must be thrown!" ); |
| m_xObj = aNewInf.Object; |
| for ( sal_Int32 nInd = 0; nInd < aNewInf.Options.getLength(); nInd++ ) |
| if ( aNewInf.Options[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Icon" ) ) ) ) |
| { |
| aNewInf.Options[nInd].Value >>= m_aIconMetaFile; |
| } |
| else if ( aNewInf.Options[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IconFormat" ) ) ) ) |
| { |
| datatransfer::DataFlavor aFlavor; |
| if ( aNewInf.Options[nInd].Value >>= aFlavor ) |
| m_aIconMediaType = aFlavor.MimeType; |
| } |
| |
| } |
| } |
| catch( ucb::CommandAbortedException& ) |
| { |
| // the user has pressed cancel |
| } |
| catch( uno::Exception& ) |
| { |
| // TODO: Error handling |
| } |
| } |
| else |
| { |
| // create object with desired ClassId |
| m_xObj = aCnt.CreateEmbeddedObject( pS->GetClassName().GetByteSequence(), aName ); |
| } |
| |
| if ( !m_xObj.is() ) |
| { |
| if( aFileName.Len() ) // from OLE Dialog |
| { |
| // Objekt konnte nicht aus Datei erzeugt werden |
| // global Resource from svtools (former so3 resource) |
| String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_FROM_FILE ) ); |
| aErr.SearchAndReplace( String( '%' ), aFileName ); |
| ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); |
| } |
| else |
| { |
| // Objekt konnte nicht erzeugt werden |
| // global Resource from svtools (former so3 resource) |
| String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE ) ); |
| aErr.SearchAndReplace( String( '%' ), aServerName ); |
| ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); |
| } |
| } |
| } |
| } |
| else |
| { |
| aFileName = GetFilePath(); |
| INetURLObject aURL; |
| aURL.SetSmartProtocol( INET_PROT_FILE ); |
| aURL.SetSmartURL( aFileName ); |
| aFileName = aURL.GetMainURL( INetURLObject::NO_DECODE ); |
| bLink = IsLinked(); |
| |
| if ( aFileName.Len() ) |
| { |
| // create MediaDescriptor for file to create object from |
| uno::Sequence < beans::PropertyValue > aMedium( 2 ); |
| aMedium[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) ); |
| aMedium[0].Value <<= ::rtl::OUString( aFileName ); |
| |
| uno::Reference< task::XInteractionHandler > xInteraction; |
| uno::Reference< lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory(); |
| if ( xFactory.is() ) |
| xInteraction = uno::Reference< task::XInteractionHandler >( |
| xFactory->createInstance( |
| DEFINE_CONST_UNICODE("com.sun.star.task.InteractionHandler") ), |
| uno::UNO_QUERY_THROW ); |
| |
| if ( xInteraction.is() ) |
| { |
| aMedium[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "InteractionHandler" ) ); |
| aMedium[1].Value <<= xInteraction; |
| } |
| else |
| { |
| OSL_ASSERT( "Can not get InteractionHandler!\n" ); |
| aMedium.realloc( 1 ); |
| } |
| |
| // create object from media descriptor |
| if ( bLink ) |
| m_xObj = aCnt.InsertEmbeddedLink( aMedium, aName ); |
| else |
| m_xObj = aCnt.InsertEmbeddedObject( aMedium, aName ); |
| } |
| |
| if ( !m_xObj.is() ) |
| { |
| // Objekt konnte nicht aus Datei erzeugt werden |
| // global Resource from svtools (former so3 resource) |
| String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_FROM_FILE ) ); |
| aErr.SearchAndReplace( String( '%' ), aFileName ); |
| ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); |
| } |
| } |
| } |
| |
| m_pServers = 0; |
| return nRet; |
| } |
| |
| uno::Reference< io::XInputStream > SvInsertOleDlg::GetIconIfIconified( ::rtl::OUString* pGraphicMediaType ) |
| { |
| if ( m_aIconMetaFile.getLength() ) |
| { |
| if ( pGraphicMediaType ) |
| *pGraphicMediaType = m_aIconMediaType; |
| |
| return uno::Reference< io::XInputStream >( new ::comphelper::SequenceInputStream( m_aIconMetaFile ) ); |
| } |
| |
| return uno::Reference< io::XInputStream >(); |
| } |
| |
| IMPL_LINK( SvInsertPlugInDialog, BrowseHdl, PushButton *, EMPTYARG ) |
| { |
| Sequence< OUString > aFilterNames, aFilterTypes; |
| void fillNetscapePluginFilters( Sequence< OUString >& rNames, Sequence< OUString >& rTypes ); |
| fillNetscapePluginFilters( aFilterNames, aFilterTypes ); |
| |
| Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); |
| if( xFactory.is() ) |
| { |
| Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY ); |
| DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); |
| |
| Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); |
| Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); |
| if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) |
| { |
| Sequence< Any > aServiceType( 1 ); |
| aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; |
| xInit->initialize( aServiceType ); |
| |
| // add the filters |
| try |
| { |
| const OUString* pNames = aFilterNames.getConstArray(); |
| const OUString* pTypes = aFilterTypes.getConstArray(); |
| for( int i = 0; i < aFilterNames.getLength(); i++ ) |
| xFilterMgr->appendFilter( pNames[i], pTypes[i] ); |
| } |
| catch( IllegalArgumentException& ) |
| { |
| DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); |
| } |
| |
| if( xFilePicker->execute() == ExecutableDialogResults::OK ) |
| { |
| Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); |
| INetURLObject aObj( aPathSeq[0] ); |
| aEdFileurl.SetText( aObj.PathToFileName() ); |
| } |
| } |
| } |
| |
| return 0; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SvInsertPlugInDialog::SvInsertPlugInDialog( Window* pParent, const uno::Reference < embed::XStorage >& xStorage ) |
| : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_PLUGIN ), xStorage ), |
| aGbFileurl( this, CUI_RES( GB_FILEURL ) ), |
| aEdFileurl( this, CUI_RES( ED_FILEURL ) ), |
| aBtnFileurl( this, CUI_RES( BTN_FILEURL ) ), |
| aGbPluginsOptions( this, CUI_RES( GB_PLUGINS_OPTIONS ) ), |
| aEdPluginsOptions( this, CUI_RES( ED_PLUGINS_OPTIONS ) ), |
| aOKButton1( this, CUI_RES( 1 ) ), |
| aCancelButton1( this, CUI_RES( 1 ) ), |
| aHelpButton1( this, CUI_RES( 1 ) ), |
| m_pURL(0) |
| { |
| FreeResource(); |
| aBtnFileurl.SetClickHdl( LINK( this, SvInsertPlugInDialog, BrowseHdl ) ); |
| } |
| |
| SvInsertPlugInDialog::~SvInsertPlugInDialog() |
| { |
| delete m_pURL; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| static void Plugin_ImplFillCommandSequence( const String& aCommands, uno::Sequence< beans::PropertyValue >& aCommandSequence ) |
| { |
| sal_uInt16 nEaten; |
| SvCommandList aLst; |
| aLst.AppendCommands( aCommands, &nEaten ); |
| |
| const sal_Int32 nCount = aLst.Count(); |
| aCommandSequence.realloc( nCount ); |
| for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ ) |
| { |
| const SvCommand& rCommand = aLst[ nIndex ]; |
| |
| aCommandSequence[nIndex].Name = rCommand.GetCommand(); |
| aCommandSequence[nIndex].Handle = -1; |
| aCommandSequence[nIndex].Value = makeAny( OUString( rCommand.GetArgument() ) ); |
| aCommandSequence[nIndex].State = beans::PropertyState_DIRECT_VALUE; |
| } |
| } |
| |
| short SvInsertPlugInDialog::Execute() |
| { |
| short nRet = RET_OK; |
| m_aCommands.Erase(); |
| DBG_ASSERT( m_xStorage.is(), "No storage!"); |
| if ( m_xStorage.is() && ( nRet = Dialog::Execute() ) == RET_OK ) |
| { |
| if ( !m_pURL ) |
| m_pURL = new INetURLObject(); |
| else |
| *m_pURL = INetURLObject(); |
| |
| m_aCommands = GetPlugInOptions(); |
| String aURL = GetPlugInFile(); |
| |
| // URL can be a valid and absolute URL or a system file name |
| m_pURL->SetSmartProtocol( INET_PROT_FILE ); |
| if ( !aURL.Len() || m_pURL->SetSmartURL( aURL ) ) |
| { |
| // create a plugin object |
| ::rtl::OUString aName; |
| SvGlobalName aClassId( SO3_PLUGIN_CLASSID ); |
| m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName ); |
| } |
| |
| if ( m_xObj.is() ) |
| { |
| // set properties from dialog |
| if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| |
| uno::Reference < beans::XPropertySet > xSet( m_xObj->getComponent(), uno::UNO_QUERY ); |
| if ( xSet.is() ) |
| { |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("PluginURL"), |
| makeAny( ::rtl::OUString( m_pURL->GetMainURL( INetURLObject::NO_DECODE ) ) ) ); |
| uno::Sequence< beans::PropertyValue > aCommandSequence; |
| Plugin_ImplFillCommandSequence( m_aCommands, aCommandSequence ); |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("PluginCommands"), makeAny( aCommandSequence ) ); |
| } |
| } |
| else |
| { |
| // PlugIn konnte nicht erzeugt werden |
| // global Resource from svtools (former so3 resource) |
| String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_PLUGIN ) ); |
| aErr.SearchAndReplace( String( '%' ), aURL ); |
| ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); |
| } |
| } |
| |
| return nRet; |
| } |
| |
| // class SvInsertAppletDlg ----------------------------------------------- |
| |
| IMPL_LINK( SvInsertAppletDialog, BrowseHdl, PushButton *, EMPTYARG ) |
| { |
| Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); |
| if( xFactory.is() ) |
| { |
| Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY ); |
| DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); |
| |
| Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); |
| Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); |
| if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) |
| { |
| Sequence< Any > aServiceType( 1 ); |
| aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; |
| xInit->initialize( aServiceType ); |
| |
| // add filter |
| try |
| { |
| xFilterMgr->appendFilter( |
| OUString( RTL_CONSTASCII_USTRINGPARAM( "Applet" ) ), |
| OUString( RTL_CONSTASCII_USTRINGPARAM( "*.class" ) ) |
| ); |
| } |
| catch( IllegalArgumentException& ) |
| { |
| DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); |
| } |
| |
| if( xFilePicker->execute() == ExecutableDialogResults::OK ) |
| { |
| Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); |
| |
| INetURLObject aObj( aPathSeq[0] ); |
| aEdClassfile.SetText( aObj.getName() ); |
| aObj.removeSegment(); |
| aEdClasslocation.SetText( aObj.PathToFileName() ); |
| } |
| } |
| } |
| |
| return 0; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| SvInsertAppletDialog::SvInsertAppletDialog( Window* pParent, const uno::Reference < embed::XStorage >& xStorage ) |
| : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_APPLET ), xStorage ), |
| aFtClassfile( this, CUI_RES( FT_CLASSFILE ) ), |
| aEdClassfile( this, CUI_RES( ED_CLASSFILE ) ), |
| aFtClasslocation( this, CUI_RES( FT_CLASSLOCATION ) ), |
| aEdClasslocation( this, CUI_RES( ED_CLASSLOCATION ) ), |
| aBtnClass( this, CUI_RES( BTN_CLASS ) ), |
| aGbClass( this, CUI_RES( GB_CLASS ) ), |
| aEdAppletOptions( this, CUI_RES( ED_APPLET_OPTIONS ) ), |
| aGbAppletOptions( this, CUI_RES( GB_APPLET_OPTIONS ) ), |
| aOKButton1( this, CUI_RES( 1 ) ), |
| aCancelButton1( this, CUI_RES( 1 ) ), |
| aHelpButton1( this, CUI_RES( 1 ) ), |
| m_pURL(0) |
| { |
| FreeResource(); |
| aBtnClass.SetClickHdl( LINK( this, SvInsertAppletDialog, BrowseHdl ) ); |
| } |
| |
| SvInsertAppletDialog::SvInsertAppletDialog( Window* pParent, const uno::Reference < embed::XEmbeddedObject >& xObj ) |
| : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_APPLET ), uno::Reference < embed::XStorage >() ), |
| aFtClassfile( this, CUI_RES( FT_CLASSFILE ) ), |
| aEdClassfile( this, CUI_RES( ED_CLASSFILE ) ), |
| aFtClasslocation( this, CUI_RES( FT_CLASSLOCATION ) ), |
| aEdClasslocation( this, CUI_RES( ED_CLASSLOCATION ) ), |
| aBtnClass( this, CUI_RES( BTN_CLASS ) ), |
| aGbClass( this, CUI_RES( GB_CLASS ) ), |
| aEdAppletOptions( this, CUI_RES( ED_APPLET_OPTIONS ) ), |
| aGbAppletOptions( this, CUI_RES( GB_APPLET_OPTIONS ) ), |
| aOKButton1( this, CUI_RES( 1 ) ), |
| aCancelButton1( this, CUI_RES( 1 ) ), |
| aHelpButton1( this, CUI_RES( 1 ) ), |
| m_pURL(0) |
| { |
| m_xObj = xObj; |
| FreeResource(); |
| aBtnClass.SetClickHdl( LINK( this, SvInsertAppletDialog, BrowseHdl ) ); |
| } |
| |
| |
| SvInsertAppletDialog::~SvInsertAppletDialog() |
| { |
| delete m_pURL; |
| } |
| |
| short SvInsertAppletDialog::Execute() |
| { |
| short nRet = RET_OK; |
| m_aClass.Erase(); |
| m_aCommands.Erase(); |
| |
| sal_Bool bOK = sal_False; |
| uno::Reference < beans::XPropertySet > xSet; |
| if ( m_xObj.is() ) |
| { |
| try |
| { |
| if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); |
| ::rtl::OUString aStr; |
| uno::Any aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("AppletCode") ); |
| if ( aAny >>= aStr ) |
| SetClass( aStr ); |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("AppletCodeBase") ); |
| if ( aAny >>= aStr ) |
| SetClassLocation( aStr ); |
| uno::Sequence< beans::PropertyValue > aCommands; |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("AppletCommands") ); |
| if ( aAny >>= aCommands ) |
| { |
| SvCommandList aList; |
| aList.FillFromSequence( aCommands ); |
| SetAppletOptions( aList.GetCommands() ); |
| } |
| |
| String aText( CUI_RES( STR_EDIT_APPLET ) ); |
| SetText( aText ); |
| bOK = sal_True; |
| } |
| catch ( uno::Exception& ) |
| { |
| DBG_ERROR( "No Applet!" ); |
| } |
| } |
| else |
| { |
| DBG_ASSERT( m_xStorage.is(), "No storage!"); |
| bOK = m_xStorage.is(); |
| } |
| |
| if ( bOK && ( nRet = Dialog::Execute() ) == RET_OK ) |
| { |
| if ( !m_xObj.is() ) |
| { |
| ::rtl::OUString aName; |
| SvGlobalName aClassId( SO3_APPLET_CLASSID ); |
| m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName ); |
| if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); |
| } |
| |
| if ( m_xObj.is() ) |
| { |
| try |
| { |
| sal_Bool bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE; |
| if ( bIPActive ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| |
| String aClassLocation = GetClassLocation(); |
| |
| // Hack, aFileName wird auch fuer Class benutzt |
| m_aClass = GetClass(); |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCode"), makeAny( ::rtl::OUString( m_aClass ) ) ); |
| |
| ::rtl::OUString tmp = aClassLocation; |
| ::osl::File::getFileURLFromSystemPath(tmp, tmp); |
| aClassLocation = tmp; |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCodeBase"), makeAny( tmp ) ); |
| m_aCommands = GetAppletOptions(); |
| |
| uno::Sequence< beans::PropertyValue > aCommandSequence; |
| Plugin_ImplFillCommandSequence( m_aCommands, aCommandSequence ); |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCommands"), makeAny( aCommandSequence ) ); |
| |
| if ( bIPActive ) |
| m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE ); |
| } |
| catch ( uno::Exception& ) |
| { |
| DBG_ERROR( "No Applet!" ); |
| } |
| } |
| } |
| |
| return nRet; |
| } |
| |
| SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog( Window *pParent, |
| const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStorage ) |
| : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_IFRAME ), xStorage ) |
| , aFTName ( this, CUI_RES( FT_FRAMENAME ) ) |
| , aEDName ( this, CUI_RES( ED_FRAMENAME ) ) |
| , aFTURL ( this, CUI_RES( FT_URL ) ) |
| , aEDURL ( this, CUI_RES( ED_URL ) ) |
| , aBTOpen ( this, CUI_RES(BT_FILEOPEN ) ) |
| |
| , aFLScrolling ( this, CUI_RES( GB_SCROLLING ) ) |
| , aRBScrollingOn ( this, CUI_RES( RB_SCROLLINGON ) ) |
| , aRBScrollingOff ( this, CUI_RES( RB_SCROLLINGOFF ) ) |
| , aRBScrollingAuto ( this, CUI_RES( RB_SCROLLINGAUTO ) ) |
| , aFLSepLeft( this, CUI_RES( FL_SEP_LEFT ) ) |
| , aFLFrameBorder( this, CUI_RES( GB_BORDER ) ) |
| , aRBFrameBorderOn ( this, CUI_RES( RB_FRMBORDER_ON ) ) |
| , aRBFrameBorderOff ( this, CUI_RES( RB_FRMBORDER_OFF ) ) |
| , aFLSepRight( this, CUI_RES( FL_SEP_RIGHT ) ) |
| , aFLMargin( this, CUI_RES( GB_MARGIN ) ) |
| , aFTMarginWidth ( this, CUI_RES( FT_MARGINWIDTH ) ) |
| , aNMMarginWidth ( this, CUI_RES( NM_MARGINWIDTH ) ) |
| , aCBMarginWidthDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) |
| , aFTMarginHeight ( this, CUI_RES( FT_MARGINHEIGHT ) ) |
| , aNMMarginHeight ( this, CUI_RES( NM_MARGINHEIGHT ) ) |
| , aCBMarginHeightDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) |
| , aOKButton1( this, CUI_RES( 1 ) ) |
| , aCancelButton1( this, CUI_RES( 1 ) ) |
| , aHelpButton1( this, CUI_RES( 1 ) ) |
| { |
| FreeResource(); |
| |
| aFLSepLeft.SetStyle(aFLSepLeft.GetStyle()|WB_VERT); |
| aFLSepRight.SetStyle(aFLSepRight.GetStyle()|WB_VERT); |
| |
| Link aLink( STATIC_LINK( this, SfxInsertFloatingFrameDialog, CheckHdl ) ); |
| aCBMarginWidthDefault.SetClickHdl( aLink ); |
| aCBMarginHeightDefault.SetClickHdl( aLink ); |
| |
| aCBMarginWidthDefault.Check(); |
| aCBMarginHeightDefault.Check(); |
| aRBScrollingAuto.Check(); |
| aRBFrameBorderOn.Check(); |
| |
| aBTOpen.SetClickHdl( STATIC_LINK( this, SfxInsertFloatingFrameDialog, OpenHdl ) ); |
| } |
| |
| SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog( Window *pParent, const uno::Reference < embed::XEmbeddedObject >& xObj ) |
| : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_IFRAME ), uno::Reference < embed::XStorage >() ) |
| , aFTName ( this, CUI_RES( FT_FRAMENAME ) ) |
| , aEDName ( this, CUI_RES( ED_FRAMENAME ) ) |
| , aFTURL ( this, CUI_RES( FT_URL ) ) |
| , aEDURL ( this, CUI_RES( ED_URL ) ) |
| , aBTOpen ( this, CUI_RES(BT_FILEOPEN ) ) |
| |
| , aFLScrolling ( this, CUI_RES( GB_SCROLLING ) ) |
| , aRBScrollingOn ( this, CUI_RES( RB_SCROLLINGON ) ) |
| , aRBScrollingOff ( this, CUI_RES( RB_SCROLLINGOFF ) ) |
| , aRBScrollingAuto ( this, CUI_RES( RB_SCROLLINGAUTO ) ) |
| |
| , aFLSepLeft( this, CUI_RES( FL_SEP_LEFT ) ) |
| , aFLFrameBorder( this, CUI_RES( GB_BORDER ) ) |
| , aRBFrameBorderOn ( this, CUI_RES( RB_FRMBORDER_ON ) ) |
| , aRBFrameBorderOff ( this, CUI_RES( RB_FRMBORDER_OFF ) ) |
| |
| , aFLSepRight( this, CUI_RES( FL_SEP_RIGHT ) ) |
| , aFLMargin( this, CUI_RES( GB_MARGIN ) ) |
| , aFTMarginWidth ( this, CUI_RES( FT_MARGINWIDTH ) ) |
| , aNMMarginWidth ( this, CUI_RES( NM_MARGINWIDTH ) ) |
| , aCBMarginWidthDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) |
| , aFTMarginHeight ( this, CUI_RES( FT_MARGINHEIGHT ) ) |
| , aNMMarginHeight ( this, CUI_RES( NM_MARGINHEIGHT ) ) |
| , aCBMarginHeightDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) |
| , aOKButton1( this, CUI_RES( 1 ) ) |
| , aCancelButton1( this, CUI_RES( 1 ) ) |
| , aHelpButton1( this, CUI_RES( 1 ) ) |
| { |
| FreeResource(); |
| |
| m_xObj = xObj; |
| |
| aFLSepLeft.SetStyle(aFLSepLeft.GetStyle()|WB_VERT); |
| aFLSepRight.SetStyle(aFLSepRight.GetStyle()|WB_VERT); |
| |
| Link aLink( STATIC_LINK( this, SfxInsertFloatingFrameDialog, CheckHdl ) ); |
| aCBMarginWidthDefault.SetClickHdl( aLink ); |
| aCBMarginHeightDefault.SetClickHdl( aLink ); |
| |
| aCBMarginWidthDefault.Check(); |
| aCBMarginHeightDefault.Check(); |
| aRBScrollingAuto.Check(); |
| aRBFrameBorderOn.Check(); |
| |
| aBTOpen.SetClickHdl( STATIC_LINK( this, SfxInsertFloatingFrameDialog, OpenHdl ) ); |
| } |
| |
| short SfxInsertFloatingFrameDialog::Execute() |
| { |
| short nRet = RET_OK; |
| sal_Bool bOK = sal_False; |
| uno::Reference < beans::XPropertySet > xSet; |
| if ( m_xObj.is() ) |
| { |
| try |
| { |
| if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); |
| ::rtl::OUString aStr; |
| uno::Any aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameURL") ); |
| if ( aAny >>= aStr ) |
| aEDURL.SetText( aStr ); |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameName") ); |
| if ( aAny >>= aStr ) |
| aEDName.SetText( aStr ); |
| |
| sal_Int32 nSize = SIZE_NOT_SET; |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginWidth") ); |
| aAny >>= nSize; |
| |
| if ( nSize == SIZE_NOT_SET ) |
| { |
| aCBMarginWidthDefault.Check( sal_True ); |
| aNMMarginWidth.SetText( String::CreateFromInt32( DEFAULT_MARGIN_WIDTH ) ); |
| aFTMarginWidth.Enable( sal_False ); |
| aNMMarginWidth.Enable( sal_False ); |
| } |
| else |
| aNMMarginWidth.SetText( String::CreateFromInt32( nSize ) ); |
| |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginHeight") ); |
| aAny >>= nSize; |
| |
| if ( nSize == SIZE_NOT_SET ) |
| { |
| aCBMarginHeightDefault.Check( sal_True ); |
| aNMMarginHeight.SetText( String::CreateFromInt32( DEFAULT_MARGIN_HEIGHT ) ); |
| aFTMarginHeight.Enable( sal_False ); |
| aNMMarginHeight.Enable( sal_False ); |
| } |
| else |
| aNMMarginHeight.SetText( String::CreateFromInt32( nSize ) ); |
| |
| sal_Bool bScrollOn = sal_False; |
| sal_Bool bScrollOff = sal_False; |
| sal_Bool bScrollAuto = sal_False; |
| |
| sal_Bool bSet = sal_False; |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoScroll") ); |
| aAny >>= bSet; |
| if ( !bSet ) |
| { |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsScrollingMode") ); |
| aAny >>= bSet; |
| bScrollOn = bSet; |
| bScrollOff = !bSet; |
| } |
| else |
| bScrollAuto = sal_True; |
| |
| aRBScrollingOn.Check( bScrollOn ); |
| aRBScrollingOff.Check( bScrollOff ); |
| aRBScrollingAuto.Check( bScrollAuto ); |
| |
| bSet = sal_False; |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoBorder") ); |
| aAny >>= bSet; |
| if ( !bSet ) |
| { |
| aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsBorder") ); |
| aAny >>= bSet; |
| aRBFrameBorderOn.Check( bSet ); |
| aRBFrameBorderOff.Check( !bSet ); |
| } |
| |
| SetUpdateMode( sal_True ); |
| bOK = sal_True; |
| } |
| catch ( uno::Exception& ) |
| { |
| DBG_ERROR( "No IFrame!" ); |
| } |
| } |
| else |
| { |
| DBG_ASSERT( m_xStorage.is(), "No storage!"); |
| bOK = m_xStorage.is(); |
| } |
| |
| if ( bOK && ( nRet = Dialog::Execute() ) == RET_OK ) |
| { |
| ::rtl::OUString aURL; |
| if ( aEDURL.GetText().Len() ) |
| { |
| // URL can be a valid and absolute URL or a system file name |
| INetURLObject aObj; |
| aObj.SetSmartProtocol( INET_PROT_FILE ); |
| if ( aObj.SetSmartURL( aEDURL.GetText() ) ) |
| aURL = aObj.GetMainURL( INetURLObject::NO_DECODE ); |
| } |
| |
| if ( !m_xObj.is() && aURL.getLength() ) |
| { |
| // create the object |
| ::rtl::OUString aName; |
| SvGlobalName aClassId( SO3_IFRAME_CLASSID ); |
| m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName ); |
| if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); |
| } |
| |
| if ( m_xObj.is() ) |
| { |
| try |
| { |
| sal_Bool bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE; |
| if ( bIPActive ) |
| m_xObj->changeState( embed::EmbedStates::RUNNING ); |
| |
| ::rtl::OUString aName = aEDName.GetText(); |
| ScrollingMode eScroll = ScrollingNo; |
| if ( aRBScrollingOn.IsChecked() ) |
| eScroll = ScrollingYes; |
| if ( aRBScrollingOff.IsChecked() ) |
| eScroll = ScrollingNo; |
| if ( aRBScrollingAuto.IsChecked() ) |
| eScroll = ScrollingAuto; |
| |
| sal_Bool bHasBorder = aRBFrameBorderOn.IsChecked(); |
| |
| long lMarginWidth; |
| if ( !aCBMarginWidthDefault.IsChecked() ) |
| lMarginWidth = (long) aNMMarginWidth.GetText().ToInt32(); |
| else |
| lMarginWidth = SIZE_NOT_SET; |
| |
| long lMarginHeight; |
| if ( !aCBMarginHeightDefault.IsChecked() ) |
| lMarginHeight = (long) aNMMarginHeight.GetText().ToInt32(); |
| else |
| lMarginHeight = SIZE_NOT_SET; |
| |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameURL"), makeAny( aURL ) ); |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameName"), makeAny( aName ) ); |
| |
| if ( eScroll == ScrollingAuto ) |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoScroll"), |
| makeAny( sal_True ) ); |
| else |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsScrollingMode"), |
| makeAny( (sal_Bool) ( eScroll == ScrollingYes) ) ); |
| |
| //if ( aFrmDescr.IsFrameBorderSet() ) |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsBorder"), |
| makeAny( bHasBorder ) ); |
| /*else |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoBorder"), |
| makeAny( sal_True ) );*/ |
| |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginWidth"), |
| makeAny( sal_Int32( lMarginWidth ) ) ); |
| |
| xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginHeight"), |
| makeAny( sal_Int32( lMarginHeight ) ) ); |
| |
| if ( bIPActive ) |
| m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE ); |
| } |
| catch ( uno::Exception& ) |
| { |
| DBG_ERROR( "No IFrame!" ); |
| } |
| } |
| } |
| |
| return nRet; |
| } |
| |
| //------------------------------------------------------------------------------ |
| |
| IMPL_STATIC_LINK( SfxInsertFloatingFrameDialog, CheckHdl, CheckBox*, pCB ) |
| { |
| if ( pCB == &pThis->aCBMarginWidthDefault ) |
| { |
| if ( pCB->IsChecked() ) |
| pThis->aNMMarginWidth.SetText( String::CreateFromInt32( DEFAULT_MARGIN_WIDTH ) ); |
| pThis->aFTMarginWidth.Enable( !pCB->IsChecked() ); |
| pThis->aNMMarginWidth.Enable( !pCB->IsChecked() ); |
| } |
| |
| if ( pCB == &pThis->aCBMarginHeightDefault ) |
| { |
| if ( pCB->IsChecked() ) |
| pThis->aNMMarginHeight.SetText( String::CreateFromInt32( DEFAULT_MARGIN_HEIGHT ) ); |
| pThis->aFTMarginHeight.Enable( !pCB->IsChecked() ); |
| pThis->aNMMarginHeight.Enable( !pCB->IsChecked() ); |
| } |
| |
| return 0L; |
| } |
| |
| //------------------------------------------------------------------------------ |
| |
| IMPL_STATIC_LINK( SfxInsertFloatingFrameDialog, OpenHdl, PushButton*, EMPTYARG ) |
| { |
| Window* pOldParent = Application::GetDefDialogParent(); |
| Application::SetDefDialogParent( pThis ); |
| |
| // create the file dialog |
| sfx2::FileDialogHelper aFileDlg( WB_OPEN | SFXWB_PASSWORD, String() ); |
| |
| // set the title |
| aFileDlg.SetTitle( OUString( String( CUI_RES( MD_INSERT_OBJECT_IFRAME ) ) ) ); |
| |
| // show the dialog |
| if ( aFileDlg.Execute() == ERRCODE_NONE ) |
| pThis->aEDURL.SetText( |
| INetURLObject( aFileDlg.GetPath() ).GetMainURL( INetURLObject::DECODE_WITH_CHARSET ) ); |
| |
| Application::SetDefDialogParent( pOldParent ); |
| return 0L; |
| } |
| |