framework/source/uielement/newmenucontroller.cxx | 45 +---------------------- 1 file changed, 2 insertions(+), 43 deletions(-)
New commits: commit bdd217c1f23e0fb5f84542f1fb41036c3de538df Author: Maxim Monastirsky <momonas...@gmail.com> AuthorDate: Mon Jun 27 12:27:35 2022 +0300 Commit: Maxim Monastirsky <momonas...@gmail.com> CommitDate: Tue Jun 28 13:55:56 2022 +0200 NewMenuController: Use status update to determine the default factory This is a follow-up to 2446fdba3ec4a81d6e3b619a1d9e91b3c6dcbd54 ("tdf#134887 Rework last item handling in NewToolbarController"). We should better get the information on what is going to be executed from the entity that will actually execute it, instead of guessing on our own. This makes a difference for at least XML Form Document, where CTRL+N used to be shown next to the "XML Form Document" entry, although pressing that shortcut will open a regular writer doc. Change-Id: Ib9b58ea2fb83a6cfe9a603af6be97fb36a25ddc6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136554 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonas...@gmail.com> diff --git a/framework/source/uielement/newmenucontroller.cxx b/framework/source/uielement/newmenucontroller.cxx index d282509d93f5..14b59c263b85 100644 --- a/framework/source/uielement/newmenucontroller.cxx +++ b/framework/source/uielement/newmenucontroller.cxx @@ -40,7 +40,6 @@ #include <toolkit/awt/vclxmenu.hxx> #include <tools/urlobj.hxx> #include <unotools/dynamicmenuoptions.hxx> -#include <unotools/moduleoptions.hxx> #include <osl/mutex.hxx> #include <cppuhelper/supportsservice.hxx> @@ -111,7 +110,6 @@ void NewMenuController::determineAndSetNewDocAccel(const css::awt::KeyEvent& rKe { sal_uInt16 nCount(m_xPopupMenu->getItemCount()); sal_uInt16 nId( 0 ); - bool bFound( false ); OUString aCommand; if ( !m_aEmptyDocURL.isEmpty() ) @@ -127,34 +125,11 @@ void NewMenuController::determineAndSetNewDocAccel(const css::awt::KeyEvent& rKe if ( aCommand.startsWith( m_aEmptyDocURL ) ) { m_xPopupMenu->setAcceleratorKeyEvent(nId, rKeyCode); - bFound = true; break; } } } } - - if ( bFound ) - return; - - // Search for the default module name - OUString aDefaultModuleName( SvtModuleOptions().GetDefaultModuleName() ); - if ( aDefaultModuleName.isEmpty() ) - return; - - for ( sal_uInt16 i = 0; i < nCount; i++ ) - { - if (m_xPopupMenu->getItemType(i) != css::awt::MenuItemType_SEPARATOR) - { - nId = m_xPopupMenu->getItemId(i); - aCommand = m_xPopupMenu->getCommand(nId); - if ( aCommand.indexOf( aDefaultModuleName ) >= 0 ) - { - m_xPopupMenu->setAcceleratorKeyEvent(nId, rKeyCode); - break; - } - } - } } void NewMenuController::setAccelerators() @@ -372,8 +347,9 @@ void SAL_CALL NewMenuController::disposing( const EventObject& ) } // XStatusListener -void SAL_CALL NewMenuController::statusChanged( const FeatureStateEvent& ) +void SAL_CALL NewMenuController::statusChanged( const FeatureStateEvent& Event ) { + Event.State >>= m_aEmptyDocURL; } // XMenuListener @@ -452,23 +428,6 @@ void NewMenuController::impl_setPopupMenu() { m_aModuleIdentifier = xModuleManager->identify( m_xFrame ); m_bModuleIdentified = true; - - if ( !m_aModuleIdentifier.isEmpty() ) - { - Sequence< PropertyValue > aSeq; - - if ( xModuleManager->getByName( m_aModuleIdentifier ) >>= aSeq ) - { - for ( PropertyValue const & prop : std::as_const(aSeq) ) - { - if ( prop.Name == "ooSetupFactoryEmptyDocumentURL" ) - { - prop.Value >>= m_aEmptyDocURL; - break; - } - } - } - } } catch ( const RuntimeException& ) {