diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-03-15 20:44:50 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-03-16 09:27:36 +0000 |
commit | 86f504ee014d17172267f14742b8edd5789cbbc6 (patch) | |
tree | 6b6c78ac513e2169e9bceb7ffa99a16753a2eea5 /framework/source/uifactory | |
parent | 84aee1ae9d4e03054dfcf5f8a9f10ecd2b0496b8 (diff) |
Related: tdf#98637 make this a tractable problem
This is just too hard, it would all be much easier if the ActionGroup existed
right from the start of the entire process. So smuggle in to the ctor the
toplevel frame that the menubar will be inserted into so we can use its
ActionGroup from the start.
That would suggest that we could then just keep the hierarchy in sync as it is
created rather than finding opportune moments to update /generate it.
Change-Id: I550f94a994210423ab9cea1986e643056cb5bd29
Reviewed-on: https://gerrit.libreoffice.org/23287
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'framework/source/uifactory')
-rw-r--r-- | framework/source/uifactory/menubarfactory.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/framework/source/uifactory/menubarfactory.cxx b/framework/source/uifactory/menubarfactory.cxx index e9d9f79ce5ab..13025adcfff7 100644 --- a/framework/source/uifactory/menubarfactory.cxx +++ b/framework/source/uifactory/menubarfactory.cxx @@ -34,6 +34,7 @@ #include <rtl/ustrbuf.hxx> using namespace com::sun::star::uno; +using namespace com::sun::star::awt; using namespace com::sun::star::lang; using namespace com::sun::star::frame; using namespace com::sun::star::beans; @@ -74,6 +75,7 @@ void MenuBarFactory::CreateUIElement(const OUString& ResourceURL Reference< XUIConfigurationManager > xCfgMgr; Reference< XUIConfigurationManager > xConfigSource; Reference< XFrame > xFrame; + Reference< XWindow > xContainerWindow; OUString aResourceURL( ResourceURL ); bool bPersistent( true ); bool bExtraMode( false ); @@ -84,6 +86,8 @@ void MenuBarFactory::CreateUIElement(const OUString& ResourceURL Args[n].Value >>= xConfigSource; else if ( Args[n].Name == "Frame" ) Args[n].Value >>= xFrame; + else if ( Args[n].Name == "Container" ) + Args[n].Value >>= xContainerWindow; else if ( Args[n].Name == "ResourceURL" ) Args[n].Value >>= aResourceURL; else if ( Args[n].Name == "Persistent" ) @@ -129,7 +133,7 @@ void MenuBarFactory::CreateUIElement(const OUString& ResourceURL } PropertyValue aPropValue; - Sequence< Any > aPropSeq( _pExtraMode ? 5 : 4); + Sequence< Any > aPropSeq( _pExtraMode ? 6 : 5); aPropValue.Name = "Frame"; aPropValue.Value <<= xFrame; aPropSeq[0] <<= aPropValue; @@ -142,11 +146,14 @@ void MenuBarFactory::CreateUIElement(const OUString& ResourceURL aPropValue.Name = "Persistent"; aPropValue.Value <<= bPersistent; aPropSeq[3] <<= aPropValue; + aPropValue.Name = "Container"; + aPropValue.Value <<= xContainerWindow; + aPropSeq[4] <<= aPropValue; if ( _pExtraMode ) { aPropValue.Name = OUString::createFromAscii(_pExtraMode); aPropValue.Value <<= bExtraMode; - aPropSeq[4] <<= aPropValue; + aPropSeq[5] <<= aPropValue; } SolarMutexGuard aGuard; |