[Libreoffice-commits] core.git: 2 commits - framework/inc framework/source officecfg/registry sfx2/source vcl/source
Caolán McNamara
caolanm at redhat.com
Wed Jan 21 06:51:37 PST 2015
framework/inc/uielement/newmenucontroller.hxx | 9 +++------
framework/source/uielement/newmenucontroller.cxx | 13 ++++++-------
framework/source/uielement/popuptoolbarcontroller.cxx | 1 +
officecfg/registry/data/org/openoffice/Office/Common.xcu | 2 +-
sfx2/source/appl/shutdownicon.cxx | 7 ++-----
sfx2/source/dialog/backingwindow.cxx | 2 +-
vcl/source/window/window.cxx | 2 +-
7 files changed, 15 insertions(+), 21 deletions(-)
New commits:
commit b97d9a1238a82461e64717757a4527565f879ee2
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Jan 21 14:33:43 2015 +0000
slot:5500 -> .uno:NewDoc(FromTemplate)
try and strip out the slot:5500 magic/lunacy
Change-Id: I7236c83fba6cb8264f76aca90242775a3de58645
diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu
index 8895602..ffca153 100644
--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
@@ -342,7 +342,7 @@
</node>
<node oor:name="m14" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
- <value>slot:5500</value>
+ <value>.uno:NewDoc</value>
</prop>
<prop oor:name="Title">
<value xml:lang="en-US">Templates</value>
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index f6bca87..d4ef0bb 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -286,7 +286,7 @@ void ShutdownIcon::FromTemplate()
xFrame = ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >( xDesktop, UNO_QUERY );
URL aTargetURL;
- aTargetURL.Complete = "slot:5500";
+ aTargetURL.Complete = ".uno:NewDoc";
::com::sun::star::uno::Reference< util::XURLTransformer > xTrans( util::URLTransformer::create( ::comphelper::getProcessComponentContext() ) );
xTrans->parseStrict( aTargetURL );
@@ -294,10 +294,7 @@ void ShutdownIcon::FromTemplate()
::com::sun::star::uno::Reference < ::com::sun::star::frame::XDispatch > xDisp;
if ( xProv.is() )
{
- if (aTargetURL.Protocol == "slot:")
- xDisp = xProv->queryDispatch( aTargetURL, OUString(), 0 );
- else
- xDisp = xProv->queryDispatch( aTargetURL, OUString("_blank"), 0 );
+ xDisp = xProv->queryDispatch( aTargetURL, OUString("_self"), 0 );
}
if ( xDisp.is() )
{
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index ce33bae..e0074b5 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -67,7 +67,7 @@ const char IMPRESS_WIZARD_URL[] = "private:factory/simpress?slot=6686";
const char DRAW_URL[] = "private:factory/sdraw";
const char BASE_URL[] = "private:factory/sdatabase?Interactive";
const char MATH_URL[] = "private:factory/smath";
-const char TEMPLATE_URL[] = "slot:5500";
+const char TEMPLATE_URL[] = ".uno:NewDoc";
const char OPEN_URL[] = ".uno:Open";
const char SERVICENAME_CFGREADACCESS[] = "com.sun.star.configuration.ConfigurationAccess";
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index d63aaa0..cc49cab 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2413,7 +2413,7 @@ void Window::Show( bool bVisible, sal_uInt16 nFlags )
else if ( !ImplIsWindowOrChild( pSVData->mpIntroWindow ) )
{
// ... but the VCL splash is broken, and it needs this
- // (for ./soffice slot:5500)
+ // (for ./soffice .uno:NewDoc)
pSVData->mpIntroWindow->Hide();
}
commit 1dbc6d05ded0dc1df75f7b9ff779571c98800035
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Jan 21 12:41:39 2015 +0000
Resolves: fdo#87636 New button not clickable when Templates preselected
regression from
commit 57207cab004cb78c3fa6d9ed43cc4bf81f4e6981
Author: Ariel Constenla-Haile <arielch at apache.org>
Date: Tue May 28 10:01:32 2013 +0000
Add missing copy&paste of SfxAppToolBoxControl_Impl::Select
(cherry picked from commit 47204c74d9e52f54f6983af19b66af2a96b42e61)
Conflicts:
framework/inc/uielement/popuptoolbarcontroller.hxx
svtools/inc/svtools/toolboxcontroller.hxx
The menu shown in the ui is a copy of a menu. The original menu has UserData
set on it which contains the target for the command, but the copy doesn't, so
looking up the target always fails and ses the "_default" frame and not the
correct "_self" required for the template menu
Change-Id: Ic1887467bf15f081d27286bd284929c17a2b19ad
diff --git a/framework/inc/uielement/newmenucontroller.hxx b/framework/inc/uielement/newmenucontroller.hxx
index 4f1502a..ad802fa 100644
--- a/framework/inc/uielement/newmenucontroller.hxx
+++ b/framework/inc/uielement/newmenucontroller.hxx
@@ -37,6 +37,7 @@
#include <svtools/popupmenucontrollerbase.hxx>
#include <toolkit/awt/vclxmenu.hxx>
+#include <framework/menuconfiguration.hxx>
#include <cppuhelper/weak.hxx>
#include <rtl/ustring.hxx>
#include <vcl/accel.hxx>
@@ -80,13 +81,9 @@ namespace framework
private:
virtual void impl_setPopupMenu() SAL_OVERRIDE;
- struct AddInfo
- {
- OUString aTargetFrame;
- OUString aImageId;
- };
+ typedef MenuConfiguration::Attributes AddInfo;
- typedef std::unordered_map< int, AddInfo > AddInfoForId;
+ typedef std::unordered_map< int, std::unique_ptr<AddInfo> > AddInfoForId;
void fillPopupMenu( com::sun::star::uno::Reference< com::sun::star::awt::XPopupMenu >& rPopupMenu );
void retrieveShortcutsFromConfiguration( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XAcceleratorConfiguration >& rAccelCfg,
diff --git a/framework/source/uielement/newmenucontroller.cxx b/framework/source/uielement/newmenucontroller.cxx
index 3abad04..216c7a1 100644
--- a/framework/source/uielement/newmenucontroller.cxx
+++ b/framework/source/uielement/newmenucontroller.cxx
@@ -85,7 +85,7 @@ void NewMenuController::setMenuImages( PopupMenu* pPopupMenu, bool bSetImages )
AddInfoForId::const_iterator pInfo = m_aAddInfoForItem.find( nItemId );
if ( pInfo != m_aAddInfoForItem.end() )
- aImageId = pInfo->second.aImageId; // Retrieve image id for menu item
+ aImageId = pInfo->second->aImageId; // Retrieve image id for menu item
if ( !aImageId.isEmpty() )
{
@@ -336,7 +336,6 @@ void NewMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopup
*pVCLPopupMenu = *pSubMenu;
Image aImage;
- AddInfo aAddInfo;
// retrieve additional parameters from bookmark menu and
// store it in a unordered_map.
@@ -349,10 +348,10 @@ void NewMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopup
MenuConfiguration::Attributes* pBmkAttributes = reinterpret_cast<MenuConfiguration::Attributes *>(pSubMenu->GetUserValue( nItemId ));
if ( pBmkAttributes != 0 )
{
- aAddInfo.aTargetFrame = pBmkAttributes->aTargetFrame;
- aAddInfo.aImageId = pBmkAttributes->aImageId;
-
- m_aAddInfoForItem.insert( AddInfoForId::value_type( nItemId, aAddInfo ));
+ auto result = m_aAddInfoForItem.insert(
+ std::make_pair(nItemId, std::unique_ptr<AddInfo>(new AddInfo(*pBmkAttributes))));
+ MenuConfiguration::Attributes *pNewInfo = result.first->second.get();
+ pVCLPopupMenu->SetUserValue(nItemId, reinterpret_cast<sal_uIntPtr>(pNewInfo));
}
}
}
@@ -420,7 +419,7 @@ void SAL_CALL NewMenuController::itemSelected( const css::awt::MenuEvent& rEvent
OUString aTargetFrame( m_aTargetFrame );
AddInfoForId::const_iterator pItem = m_aAddInfoForItem.find( rEvent.MenuId );
if ( pItem != m_aAddInfoForItem.end() )
- aTargetFrame = pItem->second.aTargetFrame;
+ aTargetFrame = pItem->second->aTargetFrame;
xDispatch = xDispatchProvider->queryDispatch( aTargetURL, aTargetFrame, 0 );
}
diff --git a/framework/source/uielement/popuptoolbarcontroller.cxx b/framework/source/uielement/popuptoolbarcontroller.cxx
index fbb2808..e0e0ad9 100644
--- a/framework/source/uielement/popuptoolbarcontroller.cxx
+++ b/framework/source/uielement/popuptoolbarcontroller.cxx
@@ -438,6 +438,7 @@ throw ( css::uno::RuntimeException, std::exception )
SolarMutexGuard aSolarMutexGuard;
PopupMenu* pVCLPopupMenu = pTkPopupMenu ?
dynamic_cast< PopupMenu * >( pTkPopupMenu->GetMenu() ) : NULL;
+
if ( pVCLPopupMenu )
pMenuAttributes = reinterpret_cast< MenuConfiguration::Attributes* >(
pVCLPopupMenu->GetUserValue( pVCLPopupMenu->GetCurItemId() ) );
More information about the Libreoffice-commits
mailing list