summaryrefslogtreecommitdiff
path: root/reportdesign/source/ui/dlg/Navigator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'reportdesign/source/ui/dlg/Navigator.cxx')
-rw-r--r--reportdesign/source/ui/dlg/Navigator.cxx46
1 files changed, 35 insertions, 11 deletions
diff --git a/reportdesign/source/ui/dlg/Navigator.cxx b/reportdesign/source/ui/dlg/Navigator.cxx
index e3dbfd459c99..d4cba5f0958a 100644
--- a/reportdesign/source/ui/dlg/Navigator.cxx
+++ b/reportdesign/source/ui/dlg/Navigator.cxx
@@ -261,6 +261,26 @@ void NavigatorTree::dispose()
SvTreeListBox::dispose();
}
+namespace
+{
+ sal_uInt16 mapIdent(const OString& rIdent)
+ {
+ if (rIdent == "sorting")
+ return SID_SORTINGANDGROUPING;
+ else if (rIdent == "page")
+ return SID_PAGEHEADERFOOTER;
+ else if (rIdent == "report")
+ return SID_REPORTHEADERFOOTER;
+ else if (rIdent == "function")
+ return SID_RPT_NEW_FUNCTION;
+ else if (rIdent == "properties")
+ return SID_SHOW_PROPERTYBROWSER;
+ else if (rIdent == "delete")
+ return SID_DELETE;
+ return 0;
+ }
+}
+
void NavigatorTree::Command( const CommandEvent& rEvt )
{
bool bHandled = false;
@@ -297,29 +317,33 @@ void NavigatorTree::Command( const CommandEvent& rEvt )
uno::Reference< report::XGroup> xGroup(pData->getContent(),uno::UNO_QUERY);
bool bDeleteAllowed = m_rController.isEditable() && (xGroup.is() ||
uno::Reference< report::XFunction>(pData->getContent(),uno::UNO_QUERY).is());
- ScopedVclPtrInstance<PopupMenu> aContextMenu( ModuleRes( RID_MENU_NAVIGATOR ) );
+
+ VclBuilder aBuilder(nullptr, VclBuilderContainer::getUIRootDir(), "modules/dbreport/ui/navigatormenu.ui", "");
+ VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
sal_uInt16 nCount = aContextMenu->GetItemCount();
for (sal_uInt16 i = 0; i < nCount; ++i)
{
if ( MenuItemType::SEPARATOR != aContextMenu->GetItemType(i))
{
- sal_uInt16 nId = aContextMenu->GetItemId(i);
+ sal_uInt16 nMId = aContextMenu->GetItemId(i);
+ sal_uInt16 nSId = mapIdent(aContextMenu->GetItemIdent(nMId));
- aContextMenu->CheckItem(nId,m_rController.isCommandChecked(nId));
- bool bEnabled = m_rController.isCommandEnabled(nId);
- if ( nId == SID_RPT_NEW_FUNCTION )
- aContextMenu->EnableItem(nId,m_rController.isEditable() && (xSupplier.is() || xFunctions.is()) );
+ aContextMenu->CheckItem(nMId, m_rController.isCommandChecked(nSId));
+ bool bEnabled = m_rController.isCommandEnabled(nSId);
+ if (nSId == SID_RPT_NEW_FUNCTION)
+ aContextMenu->EnableItem(nMId, m_rController.isEditable() && (xSupplier.is() || xFunctions.is()));
// special condition, check for function and group
- else if ( nId == SID_DELETE )
- aContextMenu->EnableItem(SID_DELETE,bDeleteAllowed);
+ else if (nSId == SID_DELETE)
+ aContextMenu->EnableItem(nMId, bDeleteAllowed);
else
- aContextMenu->EnableItem(nId,bEnabled);
+ aContextMenu->EnableItem(nMId, bEnabled);
}
}
- sal_uInt16 nId = aContextMenu->Execute(this, aWhere);
- if ( nId )
+
+ if (aContextMenu->Execute(this, aWhere))
{
+ sal_uInt16 nId = mapIdent(aContextMenu->GetCurItemIdent());
uno::Sequence< beans::PropertyValue> aArgs;
if ( nId == SID_RPT_NEW_FUNCTION )
{