diff options
-rw-r--r-- | framework/source/uielement/recentfilesmenucontroller.cxx | 62 | ||||
-rw-r--r-- | sfx2/source/toolbox/tbxitem.cxx | 6 |
2 files changed, 45 insertions, 23 deletions
diff --git a/framework/source/uielement/recentfilesmenucontroller.cxx b/framework/source/uielement/recentfilesmenucontroller.cxx index a2c3432c77ca..61d2f0281b37 100644 --- a/framework/source/uielement/recentfilesmenucontroller.cxx +++ b/framework/source/uielement/recentfilesmenucontroller.cxx @@ -60,7 +60,8 @@ class RecentFilesMenuController : public svt::PopupMenuControllerBase using svt::PopupMenuControllerBase::disposing; public: - RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext ); + RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext, + const uno::Sequence< uno::Any >& args ); virtual ~RecentFilesMenuController(); // XServiceInfo @@ -115,12 +116,25 @@ private: std::vector< RecentFile > m_aRecentFilesItems; bool m_bDisabled : 1; + bool m_bShowRemote; }; -RecentFilesMenuController::RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext ) : +RecentFilesMenuController::RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext, + const uno::Sequence< uno::Any >& args ) : svt::PopupMenuControllerBase( xContext ), - m_bDisabled( false ) + m_bDisabled( false ), + m_bShowRemote( false ) { + css::beans::PropertyValue aPropValue; + for ( sal_Int32 i = 0; i < args.getLength(); ++i ) + { + args[i] >>= aPropValue; + if ( aPropValue.Name == "ShowRemote" ) + { + aPropValue.Value >>= m_bShowRemote; + break; + } + } } RecentFilesMenuController::~RecentFilesMenuController() @@ -227,26 +241,30 @@ void RecentFilesMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu > FWK_RESSTR(STR_CLEAR_RECENT_FILES_HELP) ); // Open remote menu entry - pVCLPopupMenu->InsertItem( sal_uInt16( nCount + 2 ), - FWK_RESSTR(STR_OPEN_REMOTE) ); - pVCLPopupMenu->SetItemCommand( sal_uInt16( nCount + 2 ), - OUString( CMD_OPEN_REMOTE ) ); + if ( m_bShowRemote ) + { + pVCLPopupMenu->InsertItem( sal_uInt16( nCount + 2 ), + FWK_RESSTR(STR_OPEN_REMOTE) ); + pVCLPopupMenu->SetItemCommand( sal_uInt16( nCount + 2 ), + OUString( CMD_OPEN_REMOTE ) ); + } } else { - // No recent documents => insert "no document" string - pVCLPopupMenu->InsertItem( 1, FWK_RESSTR(STR_NODOCUMENT) ); - // Do not disable it, otherwise the Toolbar controller and MenuButton - // will display SV_RESID_STRING_NOSELECTIONPOSSIBLE instead of STR_NODOCUMENT - pVCLPopupMenu->SetItemBits( 1, pVCLPopupMenu->GetItemBits( 1 ) | MenuItemBits::NOSELECT ); - - pVCLPopupMenu->InsertSeparator(); - - // Open remote menu entry - pVCLPopupMenu->InsertItem( sal_uInt16( 2 ), - FWK_RESSTR(STR_OPEN_REMOTE) ); - pVCLPopupMenu->SetItemCommand( sal_uInt16( 2 ), - OUString( CMD_OPEN_REMOTE ) ); + if ( m_bShowRemote ) + { + // Open remote menu entry + pVCLPopupMenu->InsertItem( 1, FWK_RESSTR(STR_OPEN_REMOTE) ); + pVCLPopupMenu->SetItemCommand( 1, CMD_OPEN_REMOTE ); + } + else + { + // No recent documents => insert "no document" string + pVCLPopupMenu->InsertItem( 1, FWK_RESSTR(STR_NODOCUMENT) ); + // Do not disable it, otherwise the Toolbar controller and MenuButton + // will display SV_RESID_STRING_NOSELECTIONPOSSIBLE instead of STR_NODOCUMENT + pVCLPopupMenu->SetItemBits( 1, pVCLPopupMenu->GetItemBits( 1 ) | MenuItemBits::NOSELECT ); + } } } } @@ -444,9 +462,9 @@ IMPL_STATIC_LINK( RecentFilesMenuController, ExecuteHdl_Impl, LoadRecentFile*, p extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL com_sun_star_comp_framework_RecentFilesMenuController_get_implementation( css::uno::XComponentContext *context, - css::uno::Sequence<css::uno::Any> const &) + css::uno::Sequence<css::uno::Any> const &args) { - return cppu::acquire(new RecentFilesMenuController(context)); + return cppu::acquire(new RecentFilesMenuController(context, args)); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx index ed53d9693ce6..29061001dc61 100644 --- a/sfx2/source/toolbox/tbxitem.cxx +++ b/sfx2/source/toolbox/tbxitem.cxx @@ -1153,6 +1153,10 @@ VclPtr<SfxPopupWindow> SfxRecentFilesToolBoxControl::CreatePopupWindow() aPropValue.Value <<= m_xFrame; aArgs[1] <<= aPropValue; + aPropValue.Name = "ShowRemote"; + aPropValue.Value <<= true; + aArgs[2] <<= aPropValue; + uno::Reference< frame::XPopupMenuController > xPopupController( m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext( "com.sun.star.comp.framework.RecentFilesMenuController", aArgs, m_xContext ), UNO_QUERY ); @@ -1191,7 +1195,7 @@ VclPtr<SfxPopupWindow> SfxSaveAsToolBoxControl::CreatePopupWindow() sal_uInt16 nItemId = GetId(); ::Rectangle aRect( rBox.GetItemRect( nItemId ) ); - Sequence< Any > aArgs( 2 ); + Sequence< Any > aArgs( 3 ); PropertyValue aPropValue; aPropValue.Name = "CommandURL"; |