include/svtools/RemoteFilesDialog.hxx | 10 +-- sfx2/source/appl/appuno.cxx | 2 sfx2/source/doc/guisaveas.cxx | 16 ++++ sfx2/source/doc/objserv.cxx | 4 - svtools/source/dialogs/RemoteFilesDialog.cxx | 87 +++++++++++++++++---------- svtools/uiconfig/ui/remotefilesdialog.ui | 1 6 files changed, 81 insertions(+), 39 deletions(-)
New commits: commit c4ac7f6770e0fe985021c1e8bcf62ec98c611bb0 Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 13:13:09 2015 +0200 Default focus on filename field after selecting service Change-Id: I1c1d2855925b3d04b18a0401156b0a8c6e38d8dd diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx index 129dcee..05f1ac9 100644 --- a/svtools/source/dialogs/RemoteFilesDialog.cxx +++ b/svtools/source/dialogs/RemoteFilesDialog.cxx @@ -592,6 +592,8 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectServiceHdl ) pRoot->SetUserData( static_cast< void* >( sData ) ); m_pTreeView->Expand( pRoot ); + + m_pName_ed->GrabFocus(); } } commit db06396db314c969f5d918326d0864c9477d13b1 Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 13:03:35 2015 +0200 RemoteFilesDialog: enable controls in one place Change-Id: I21aab300a71c96308bc335ea4ac641f02ec2a4fc diff --git a/include/svtools/RemoteFilesDialog.hxx b/include/svtools/RemoteFilesDialog.hxx index 8bd9361..44fce0c 100644 --- a/include/svtools/RemoteFilesDialog.hxx +++ b/include/svtools/RemoteFilesDialog.hxx @@ -121,6 +121,7 @@ private: SvtRemoteDlgType m_eType; bool m_bMultiselection; bool m_bIsUpdated; + bool m_bIsConnected; Image m_aFolderImage; OUString m_sPath; @@ -152,6 +153,8 @@ private: FileViewResult OpenURL( OUString sURL ); + void EnableControls(); + DECL_LINK ( AddServiceHdl, void * ); DECL_LINK ( SelectServiceHdl, void * ); DECL_LINK_TYPED ( EditServiceMenuHdl, MenuButton *, void ); diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx index 069973b..129dcee 100644 --- a/svtools/source/dialogs/RemoteFilesDialog.cxx +++ b/svtools/source/dialogs/RemoteFilesDialog.cxx @@ -250,6 +250,7 @@ RemoteFilesDialog::RemoteFilesDialog( vcl::Window* pParent, WinBits nBits ) m_eType = ( nBits & WB_PATH ) ? REMOTEDLG_TYPE_PATHDLG : REMOTEDLG_TYPE_FILEDLG; m_bMultiselection = ( nBits & SFXWB_MULTISELECTION ) ? true : false; m_bIsUpdated = false; + m_bIsConnected = false; m_nCurrentFilter = LISTBOX_ENTRY_NOTFOUND; m_pFilter_lb->Enable( false ); @@ -442,8 +443,8 @@ void RemoteFilesDialog::FillServicesListbox() if( m_pServices_lb->GetEntryCount() > 0 ) m_pServices_lb->SelectEntryPos( 0 ); - else - m_pServices_lb->Enable( false ); + + EnableControls(); } int RemoteFilesDialog::GetSelectedServicePos() @@ -502,18 +503,42 @@ FileViewResult RemoteFilesDialog::OpenURL( OUString sURL ) { m_pPath->SetURL( sURL ); m_pTreeView->SetTreePath( sURL ); - m_pFilter_lb->Enable( true ); - m_pName_ed->Enable( true ); - m_pContainer->Enable( true ); - if( !m_pName_ed->GetText().isEmpty() ) - m_pOk_btn->Enable( true ); + m_bIsConnected = true; + EnableControls(); } } return eResult; } +void RemoteFilesDialog::EnableControls() +{ + if( m_pServices_lb->GetEntryCount() > 0 ) + m_pServices_lb->Enable( true ); + else + m_pServices_lb->Enable( false ); + + if( m_bIsConnected ) + { + m_pFilter_lb->Enable( true ); + m_pName_ed->Enable( true ); + m_pContainer->Enable( true ); + + if( !m_pName_ed->GetText().isEmpty() ) + m_pOk_btn->Enable( true ); + else + m_pOk_btn->Enable( false ); + } + else + { + m_pFilter_lb->Enable( false ); + m_pName_ed->Enable( false ); + m_pContainer->Enable( false ); + m_pOk_btn->Enable( false ); + } +} + IMPL_LINK_NOARG ( RemoteFilesDialog, AddServiceHdl ) { ScopedVclPtrInstance< PlaceEditDialog > aDlg( this ); @@ -525,7 +550,6 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, AddServiceHdl ) { ServicePtr newService = aDlg->GetPlace(); m_aServices.push_back( newService ); - m_pServices_lb->Enable( true ); OUString sPrefix = lcl_GetServiceType( newService ); @@ -536,6 +560,8 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, AddServiceHdl ) m_pServices_lb->SelectEntryPos( m_pServices_lb->GetEntryCount() - 1 ); m_bIsUpdated = true; + + EnableControls(); break; } case RET_CANCEL : @@ -625,12 +651,13 @@ IMPL_LINK_TYPED ( RemoteFilesDialog, EditServiceMenuHdl, MenuButton *, pButton, else { m_pServices_lb->SetNoSelection(); - m_pServices_lb->Enable( false ); } m_bIsUpdated = true; } } + + EnableControls(); } IMPL_LINK_NOARG ( RemoteFilesDialog, DoubleClickHdl ) @@ -664,16 +691,15 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl ) m_sPath = pData->maURL; m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) ); - - m_pOk_btn->Enable( true ); } else { - m_pOk_btn->Enable( false ); m_sPath = ""; m_pName_ed->SetText( "" ); } + EnableControls(); + return 1; } @@ -686,11 +712,7 @@ IMPL_LINK_NOARG( RemoteFilesDialog, FileNameGetFocusHdl ) IMPL_LINK_NOARG( RemoteFilesDialog, FileNameModifyHdl ) { m_pFileView->SetNoSelection(); - - if( !m_pName_ed->GetText().isEmpty() ) - m_pOk_btn->Enable( true ); - else - m_pOk_btn->Enable( false ); + EnableControls(); return 1; } commit 2be9fcb3b2efaa8d34181846301850b447add7ba Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 12:36:35 2015 +0200 RemoteFilesDialog: enable OK button when file name isn't empty Change-Id: Idf84d4d46a72c3fb339e28c1f3923cd2f0f3c12d diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx index 574acc5..069973b 100644 --- a/svtools/source/dialogs/RemoteFilesDialog.cxx +++ b/svtools/source/dialogs/RemoteFilesDialog.cxx @@ -505,6 +505,9 @@ FileViewResult RemoteFilesDialog::OpenURL( OUString sURL ) m_pFilter_lb->Enable( true ); m_pName_ed->Enable( true ); m_pContainer->Enable( true ); + + if( !m_pName_ed->GetText().isEmpty() ) + m_pOk_btn->Enable( true ); } } commit c505d27f7055f811f7748e08b0c95e7b71dd0264 Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 12:25:13 2015 +0200 RemoteFilesDialog: set default filename in the save mode Change-Id: I4739c101ac6b57e5c17e912515b1c8bccce33b68 diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx index 704f287..574acc5 100644 --- a/svtools/source/dialogs/RemoteFilesDialog.cxx +++ b/svtools/source/dialogs/RemoteFilesDialog.cxx @@ -845,6 +845,14 @@ const OUString& RemoteFilesDialog::GetStandardDir() const void RemoteFilesDialog::SetPath( const OUString& rNewURL ) { m_sPath = rNewURL; + + if( m_eMode == REMOTEDLG_MODE_SAVE ) + { + INetURLObject aUrl( m_sPath ); + OUString sFileName = aUrl.GetLastName( INetURLObject::DECODE_WITH_CHARSET ); + + m_pName_ed->SetText( sFileName ); + } } void RemoteFilesDialog::AddFilterGroup( commit ebb0d1e15f254607145488520b49a0cddb73a0c3 Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 12:07:26 2015 +0200 RemoteFilesDialog: handled save button Change-Id: Iec9129eac618d21370b8e5ecb331eb9518ecf082 diff --git a/include/svtools/RemoteFilesDialog.hxx b/include/svtools/RemoteFilesDialog.hxx index 1e9afcb..8bd9361 100644 --- a/include/svtools/RemoteFilesDialog.hxx +++ b/include/svtools/RemoteFilesDialog.hxx @@ -110,8 +110,8 @@ public: virtual bool getShowState(); - virtual Control* getControl( sal_Int16 _nControlId, bool _bLabelControl = false ) const SAL_OVERRIDE; - virtual void enableControl( sal_Int16 _nControlId, bool _bEnable ); + virtual Control* getControl( sal_Int16 nControlId, bool bLabelControl = false ) const SAL_OVERRIDE; + virtual void enableControl( sal_Int16 nControlId, bool bEnable ); virtual OUString getCurFilter( ) const; private: @@ -130,8 +130,7 @@ private: ::com::sun::star::uno::Sequence< OUString > m_aBlackList; ::svt::IFilePickerListener* m_pFileNotifier; - VclPtr< PushButton > m_pOpen_btn; - VclPtr< PushButton > m_pSave_btn; + VclPtr< PushButton > m_pOk_btn; VclPtr< CancelButton > m_pCancel_btn; VclPtr< MenuButton > m_pAddService_btn; VclPtr< ListBox > m_pServices_lb; diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx index 03c7bcf..704f287 100644 --- a/svtools/source/dialogs/RemoteFilesDialog.cxx +++ b/svtools/source/dialogs/RemoteFilesDialog.cxx @@ -240,8 +240,6 @@ RemoteFilesDialog::RemoteFilesDialog( vcl::Window* pParent, WinBits nBits ) , m_pFileView( NULL ) , m_pContainer( NULL ) { - get( m_pOpen_btn, "open" ); - get( m_pSave_btn, "save" ); get( m_pCancel_btn, "cancel" ); get( m_pAddService_btn, "add_service_btn" ); get( m_pServices_lb, "services_lb" ); @@ -254,23 +252,18 @@ RemoteFilesDialog::RemoteFilesDialog( vcl::Window* pParent, WinBits nBits ) m_bIsUpdated = false; m_nCurrentFilter = LISTBOX_ENTRY_NOTFOUND; - m_pOpen_btn->Enable( false ); - m_pSave_btn->Enable( false ); m_pFilter_lb->Enable( false ); m_pName_ed->Enable( false ); if( m_eMode == REMOTEDLG_MODE_OPEN ) - { - m_pSave_btn->Hide(); - m_pOpen_btn->Show(); - } + get( m_pOk_btn, "open" ); else - { - m_pSave_btn->Show(); - m_pOpen_btn->Hide(); - } + get( m_pOk_btn, "save" ); + + m_pOk_btn->Show(); + m_pOk_btn->Enable( false ); - m_pOpen_btn->SetClickHdl( LINK( this, RemoteFilesDialog, OkHdl ) ); + m_pOk_btn->SetClickHdl( LINK( this, RemoteFilesDialog, OkHdl ) ); m_pPath = VclPtr<Breadcrumb>::Create( get< vcl::Window >( "breadcrumb_container" ) ); m_pPath->set_hexpand( true ); @@ -365,8 +358,7 @@ void RemoteFilesDialog::dispose() m_pContainer.disposeAndClear(); m_pPath.disposeAndClear(); - m_pOpen_btn.clear(); - m_pSave_btn.clear(); + m_pOk_btn.clear(); m_pCancel_btn.clear(); m_pAddService_btn.clear(); m_pServices_lb.clear(); @@ -670,11 +662,11 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl ) m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) ); - m_pOpen_btn->Enable( true ); + m_pOk_btn->Enable( true ); } else { - m_pOpen_btn->Enable( false ); + m_pOk_btn->Enable( false ); m_sPath = ""; m_pName_ed->SetText( "" ); } @@ -693,9 +685,9 @@ IMPL_LINK_NOARG( RemoteFilesDialog, FileNameModifyHdl ) m_pFileView->SetNoSelection(); if( !m_pName_ed->GetText().isEmpty() ) - m_pOpen_btn->Enable( true ); + m_pOk_btn->Enable( true ); else - m_pOpen_btn->Enable( false ); + m_pOk_btn->Enable( false ); return 1; } diff --git a/svtools/uiconfig/ui/remotefilesdialog.ui b/svtools/uiconfig/ui/remotefilesdialog.ui index f4a591f..0ba817b 100644 --- a/svtools/uiconfig/ui/remotefilesdialog.ui +++ b/svtools/uiconfig/ui/remotefilesdialog.ui @@ -35,7 +35,6 @@ <child> <object class="GtkButton" id="open"> <property name="label">gtk-open</property> - <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">True</property> commit 7e178f97187e5041cfc422ef2df1fb348acc31af Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 10:53:30 2015 +0200 removed warning: 'Unknown item detected' Change-Id: I36b2faca9205aba870aa993214d0c062ae4f83d9 diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx index 29e0892..27abb60 100644 --- a/sfx2/source/appl/appuno.cxx +++ b/sfx2/source/appl/appuno.cxx @@ -922,7 +922,7 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, uno::Sequence<b if ( nSlotId == SID_OPENURL ) nSlotId = SID_OPENDOC; - if ( nSlotId == SID_SAVEASURL ) + if ( nSlotId == SID_SAVEASURL || nSlotId == SID_SAVEASREMOTE ) nSlotId = SID_SAVEASDOC; // find number of properties to avoid permanent reallocations in the sequence commit ed4392d317100a6e9e00572c7ba16f184ba20c2f Author: Szymon KÅos <eszka...@gmail.com> Date: Thu Jul 9 10:43:26 2015 +0200 SaveAsRemote: corresponding dialog type Change-Id: I5face9064bafc3c99b9a7af7809bd40a105b11bd diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx index a9b8296..b0e31ab 100644 --- a/sfx2/source/doc/guisaveas.cxx +++ b/sfx2/source/doc/guisaveas.cxx @@ -547,6 +547,9 @@ uno::Sequence< beans::PropertyValue > ModelData_Impl::GetDocServiceAnyFilter( Sf uno::Sequence< beans::PropertyValue > ModelData_Impl::GetPreselectedFilter_Impl( sal_Int8 nStoreMode ) { + if ( nStoreMode == SAVEASREMOTE_REQUESTED ) + nStoreMode = SAVEAS_REQUESTED; + uno::Sequence< beans::PropertyValue > aFilterProps; SfxFilterFlags nMust = getMustFlags( nStoreMode ); @@ -885,6 +888,9 @@ bool ModelData_Impl::OutputFileDialog( sal_Int8 nStoreMode, const OUString& rStandardDir, const ::com::sun::star::uno::Sequence< OUString >& rBlackList) { + if ( nStoreMode == SAVEASREMOTE_REQUESTED ) + nStoreMode = SAVEAS_REQUESTED; + bool bUseFilterOptions = false; ::comphelper::SequenceAsHashMap::const_iterator aOverwriteIter = @@ -1399,7 +1405,15 @@ bool SfxStoringHelper::GUIStoreModel( uno::Reference< frame::XModel > xModel, bool bSetStandardName = false; // can be set only for SaveAs // parse the slot name + bool bRemote = false; sal_Int8 nStoreMode = getStoreModeFromSlotName( aSlotName ); + + if ( nStoreMode == SAVEASREMOTE_REQUESTED ) + { + nStoreMode = SAVEAS_REQUESTED; + bRemote = true; + } + sal_Int8 nStatusSave = STATUS_NO_ACTION; ::comphelper::SequenceAsHashMap::const_iterator aSaveACopyIter = @@ -1554,7 +1568,7 @@ bool SfxStoringHelper::GUIStoreModel( uno::Reference< frame::XModel > xModel, { sal_Int16 nDialog = SFX2_IMPL_DIALOG_CONFIG; - if( nStoreMode == SAVEASREMOTE_REQUESTED ) + if( bRemote ) { nDialog = SFX2_IMPL_DIALOG_REMOTE; } diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index 4c442b1..be08ce6 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -561,7 +561,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) { SfxErrorContext aEc( ERRCTX_SFX_SAVEASDOC, GetTitle() ); // ??? - if ( nId == SID_SAVEASDOC ) + if ( nId == SID_SAVEASDOC || nId == SID_SAVEASREMOTE ) { // in case of plugin mode the SaveAs operation means SaveTo SFX_ITEMSET_ARG( GetMedium()->GetItemSet(), pViewOnlyItem, SfxBoolItem, SID_VIEWONLY, false ); @@ -726,7 +726,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) nErrorCode = ( lErr != ERRCODE_IO_ABORT ) && ( nErrorCode == ERRCODE_NONE ) ? nErrorCode : lErr; } - if ( nId == SID_SAVEASDOC && nErrorCode == ERRCODE_NONE ) + if ( ( nId == SID_SAVEASDOC || nId == SID_SAVEASREMOTE ) && nErrorCode == ERRCODE_NONE ) { SfxBoolItem const * saveTo = static_cast<SfxBoolItem const *>( rReq.GetArg(SID_SAVETO, false, TYPE(SfxBoolItem)));
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits