Kaydet (Commit) 7d2ca8f2 authored tarafından Maxim Monastirsky's avatar Maxim Monastirsky

Remove the useless AddonMenu and AddonPopupMenu

Change-Id: I3022d609e813d90e52990b570aa471540c9e2c18
üst fb181490
......@@ -66,8 +66,6 @@ struct PopupControllerEntry
typedef std::unordered_map< OUString, PopupControllerEntry, OUStringHash > PopupControllerCache;
class AddonMenu;
class AddonPopupMenu;
class MenuBarManager:
public cppu::WeakImplHelper<
css::frame::XStatusListener,
......
......@@ -46,24 +46,6 @@ const sal_uInt16 SID_HELPMENU = (SID_SFX_START + 410);
namespace framework
{
AddonMenu::AddonMenu()
{
}
AddonMenu::~AddonMenu()
{
disposeOnce();
}
AddonPopupMenu::AddonPopupMenu() :
AddonMenu()
{
}
AddonPopupMenu::~AddonPopupMenu()
{
}
static OUString GetModuleIdentifier(const Reference<XComponentContext>& rContext,
const Reference< XFrame >& rFrame)
{
......@@ -86,31 +68,20 @@ bool AddonMenuManager::HasAddonMenuElements()
return AddonsOptions().HasAddonsMenu();
}
// Factory method to create different Add-On menu types
VclPtr<PopupMenu> AddonMenuManager::CreatePopupMenuType( MenuType eMenuType )
{
if ( eMenuType == ADDON_MENU )
return VclPtr<AddonMenu>::Create();
else if ( eMenuType == ADDON_POPUPMENU )
return VclPtr<AddonPopupMenu>::Create();
else
return nullptr;
}
// Create the Add-Ons menu
VclPtr<AddonMenu> AddonMenuManager::CreateAddonMenu( const Reference< XFrame >& rFrame,
const Reference< XComponentContext >& rContext )
VclPtr<PopupMenu> AddonMenuManager::CreateAddonMenu( const Reference< XFrame >& rFrame,
const Reference< XComponentContext >& rContext )
{
AddonsOptions aOptions;
VclPtr<AddonMenu> pAddonMenu;
VclPtr<PopupMenu> pAddonMenu;
sal_uInt16 nUniqueMenuId = ADDONMENU_ITEMID_START;
const Sequence< Sequence< PropertyValue > >& rAddonMenuEntries = aOptions.GetAddonsMenu();
if ( rAddonMenuEntries.getLength() > 0 )
{
pAddonMenu = static_cast<AddonMenu *>(AddonMenuManager::CreatePopupMenuType( ADDON_MENU ).get());
pAddonMenu = VclPtr<PopupMenu>::Create();
::rtl::OUString aModuleIdentifier = GetModuleIdentifier( rContext, rFrame );
AddonMenuManager::BuildMenu( pAddonMenu, ADDON_MENU, MENU_APPEND, nUniqueMenuId, rAddonMenuEntries, rFrame, aModuleIdentifier );
AddonMenuManager::BuildMenu( pAddonMenu, MENU_APPEND, nUniqueMenuId, rAddonMenuEntries, rFrame, aModuleIdentifier );
// Don't return an empty Add-On menu
if ( pAddonMenu->GetItemCount() == 0 )
......@@ -176,7 +147,7 @@ void AddonMenuManager::MergeAddonHelpMenu( const Reference< XFrame >& rFrame,
nInsSepAfterPos = nInsPos;
::rtl::OUString aModuleIdentifier = GetModuleIdentifier(rContext, rFrame);
AddonMenuManager::BuildMenu( pHelpMenu, ADDON_MENU, nInsPos, nUniqueMenuId, rAddonHelpMenuEntries, rFrame, aModuleIdentifier );
AddonMenuManager::BuildMenu( pHelpMenu, nInsPos, nUniqueMenuId, rAddonHelpMenuEntries, rFrame, aModuleIdentifier );
if ( pHelpMenu->GetItemCount() > nItemCount )
{
......@@ -228,13 +199,12 @@ void AddonMenuManager::MergeAddonPopupMenus( const Reference< XFrame >& rFrame,
AddonMenuManager::IsCorrectContext( aModuleIdentifier, aContext ))
{
sal_uInt16 nId = nUniqueMenuId++;
VclPtr<AddonPopupMenu> pAddonPopupMenu = static_cast<AddonPopupMenu *>(AddonMenuManager::CreatePopupMenuType( ADDON_POPUPMENU ).get());
VclPtrInstance<PopupMenu> pAddonPopupMenu;
AddonMenuManager::BuildMenu( pAddonPopupMenu, ADDON_MENU, MENU_APPEND, nUniqueMenuId, aAddonSubMenu, rFrame, aModuleIdentifier );
AddonMenuManager::BuildMenu( pAddonPopupMenu, MENU_APPEND, nUniqueMenuId, aAddonSubMenu, rFrame, aModuleIdentifier );
if ( pAddonPopupMenu->GetItemCount() > 0 )
{
pAddonPopupMenu->SetCommandURL( aURL );
pMergeMenuBar->InsertItem( nId, aTitle, MenuItemBits::NONE, OString(), nInsertPos++ );
pMergeMenuBar->SetPopupMenu( nId, pAddonPopupMenu );
......@@ -250,7 +220,6 @@ void AddonMenuManager::MergeAddonPopupMenus( const Reference< XFrame >& rFrame,
// Insert the menu and sub menu entries into pCurrentMenu with the aAddonMenuDefinition provided
void AddonMenuManager::BuildMenu( PopupMenu* pCurrentMenu,
MenuType nSubMenuType,
sal_uInt16 nInsPos,
sal_uInt16& nUniqueMenuId,
const Sequence< Sequence< PropertyValue > >& aAddonMenuDefinition,
......@@ -284,8 +253,8 @@ void AddonMenuManager::BuildMenu( PopupMenu* pCurrent
VclPtr<PopupMenu> pSubMenu;
if ( aAddonSubMenu.getLength() > 0 )
{
pSubMenu = AddonMenuManager::CreatePopupMenuType( nSubMenuType );
AddonMenuManager::BuildMenu( pSubMenu, nSubMenuType, MENU_APPEND, nUniqueMenuId, aAddonSubMenu, rFrame, rModuleIdentifier );
pSubMenu = VclPtr<PopupMenu>::Create();
AddonMenuManager::BuildMenu( pSubMenu, MENU_APPEND, nUniqueMenuId, aAddonSubMenu, rFrame, rModuleIdentifier );
// Don't create a menu item for an empty sub menu
if ( pSubMenu->GetItemCount() == 0 )
......
......@@ -1225,7 +1225,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF
AddonMenuManager::HasAddonMenuElements() )
{
// Create addon popup menu if there exist elements and this is the tools popup menu
VclPtr<AddonMenu> pSubMenu = AddonMenuManager::CreateAddonMenu(rFrame, m_xContext);
VclPtr<PopupMenu> pSubMenu = AddonMenuManager::CreateAddonMenu(rFrame, m_xContext);
if ( pSubMenu && ( pSubMenu->GetItemCount() > 0 ))
{
sal_uInt16 nCount = 0;
......
......@@ -34,51 +34,17 @@
namespace framework
{
class FWE_DLLPUBLIC AddonMenu : public PopupMenu
{
public:
AddonMenu();
virtual ~AddonMenu() override;
};
class AddonMenuManager;
class FWE_DLLPUBLIC AddonPopupMenu : public AddonMenu
{
public:
virtual ~AddonPopupMenu() override;
void SetCommandURL( const OUString& aCmdURL ) { m_aCommandURL = aCmdURL; }
private:
AddonPopupMenu();
OUString m_aCommandURL;
friend class AddonMenuManager;
friend class ::VclPtr<AddonPopupMenu>;
};
class FWE_DLLPUBLIC AddonMenuManager
{
public:
enum MenuType
{
ADDON_MENU,
ADDON_POPUPMENU
};
static bool HasAddonMenuElements();
// Check if the context string matches the provided xModel context
static bool IsCorrectContext(const OUString& rModuleIdentifier, const OUString& rContext);
// Factory method to create different Add-On menu types
static VclPtr<PopupMenu> CreatePopupMenuType( MenuType eMenuType );
// Create the Add-Ons menu
static VclPtr<AddonMenu> CreateAddonMenu( const css::uno::Reference< css::frame::XFrame >& rFrame,
const css::uno::Reference< css::uno::XComponentContext >& rContext );
static VclPtr<PopupMenu> CreateAddonMenu( const css::uno::Reference< css::frame::XFrame >& rFrame,
const css::uno::Reference< css::uno::XComponentContext >& rContext );
// Merge the Add-Ons help menu items into the given menu bar at a defined pos
static void MergeAddonHelpMenu( const css::uno::Reference< css::frame::XFrame >& rFrame,
......@@ -96,7 +62,6 @@ class FWE_DLLPUBLIC AddonMenuManager
// Build up the menu item and sub menu into the provided pCurrentMenu. The sub menus should be of type nSubMenuType.
static void BuildMenu( PopupMenu* pCurrentMenu,
MenuType nSubMenuType,
sal_uInt16 nInsPos,
sal_uInt16& nUniqueMenuId,
const css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > >& aAddonMenuDefinition,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment