tdf#103160 Add 'Add Submenu' button in Customize dialog
And remove the 'Add Submenu' entry from Modify split button
in Customize dialog
Change-Id: I6ac940f5f1f41ac1f962f66f458c7e14d702b2be
Reviewed-on: https://gerrit.libreoffice.org/30230
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Yousuf Philips <philipz85@hotmail.com>
Tested-by: Yousuf Philips <philipz85@hotmail.com>
Reviewed-by: Muhammet Kara <muhammet.kara@pardus.org.tr>
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index dcbe98f..6d08562 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -1754,6 +1754,7 @@ SvxConfigPage::SvxConfigPage(vcl::Window *pParent, const SfxItemSet& rSet)
get(m_pContentsLabel, "contentslabel");
get(m_pAddCommandsButton, "add");
get(m_pAddSeparatorButton, "addseparatorbtn");
get(m_pAddSubmenuButton, "addsubmenubtn");
get(m_pModifyCommandButton, "modify");
get(m_pDeleteCommandButton, "deletebtn");
get(m_pResetTopLevelButton, "resetbtn");
@@ -1773,7 +1774,7 @@ SvxConfigPage::SvxConfigPage(vcl::Window *pParent, const SfxItemSet& rSet)
// This button is applicable only for the toolbar config tab
m_pResetTopLevelButton->Enable( false );
m_pResetTopLevelButton->Hide();
//These radio buttons are applicable only for the toolbar config tab
// These radio buttons are applicable only for the toolbar config tab
m_pIconsOnlyRB->Enable( false );
m_pTextOnlyRB->Enable( false );
m_pIconsAndTextRB->Enable( false );
@@ -1781,6 +1782,9 @@ SvxConfigPage::SvxConfigPage(vcl::Window *pParent, const SfxItemSet& rSet)
m_pTextOnlyRB->Hide();
m_pIconsAndTextRB->Hide();
m_pToolbarStyleLabel->Hide();
// This button is applicable only for the Menus and Context Menus tabs
m_pAddSubmenuButton->Disable();
m_pAddSubmenuButton->Hide();
}
SvxConfigPage::~SvxConfigPage()
@@ -1804,6 +1808,7 @@ void SvxConfigPage::dispose()
m_pEntries.clear();
m_pAddCommandsButton.clear();
m_pAddSeparatorButton.clear();
m_pAddSubmenuButton.clear();
m_pModifyCommandButton.clear();
m_pDeleteCommandButton.clear();
m_pResetTopLevelButton.clear();
@@ -2443,6 +2448,9 @@ SvxMenuConfigPage::SvxMenuConfigPage(vcl::Window *pParent, const SfxItemSet& rSe
m_pContentsListBox->set_vexpand(true);
m_pContentsListBox->Show();
m_pAddSubmenuButton->Enable();
m_pAddSubmenuButton->Show();
m_pTopLevelListBox->SetSelectHdl(
LINK( this, SvxMenuConfigPage, SelectMenu ) );
@@ -2461,6 +2469,9 @@ SvxMenuConfigPage::SvxMenuConfigPage(vcl::Window *pParent, const SfxItemSet& rSe
m_pAddSeparatorButton->SetClickHdl (
LINK( this, SvxMenuConfigPage, AddSeparatorHdl ) );
m_pAddSubmenuButton->SetClickHdl (
LINK( this, SvxMenuConfigPage, AddSubmenuHdl ) );
m_pDeleteCommandButton->SetClickHdl (
LINK( this, SvxMenuConfigPage, DeleteCommandHdl ) );
@@ -2713,30 +2724,7 @@ IMPL_LINK( SvxMenuConfigPage, MenuSelectHdl, MenuButton *, pButton, void )
IMPL_LINK( SvxMenuConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
{
OString sIdent = pButton->GetCurItemIdent();
if (sIdent == "addsubmenu")
{
OUString aNewName;
OUString aDesc = CUI_RESSTR( RID_SVXSTR_SUBMENU_NAME );
VclPtrInstance< SvxNameDialog > pNameDialog( this, aNewName, aDesc );
pNameDialog->SetHelpId( HID_SVX_CONFIG_NAME_SUBMENU );
pNameDialog->SetText( CUI_RESSTR( RID_SVXSTR_ADD_SUBMENU ) );
if ( pNameDialog->Execute() == RET_OK ) {
pNameDialog->GetName(aNewName);
SvxConfigEntry* pNewEntryData =
new SvxConfigEntry( aNewName, aNewName, true );
pNewEntryData->SetUserDefined();
InsertEntry( pNewEntryData );
ReloadTopLevelListBox();
GetSaveInData()->SetModified();
}
}
else if (sIdent == "modrename")
if (sIdent == "modrename")
{
SvTreeListEntry* pActEntry = m_pContentsListBox->GetCurEntry();
SvxConfigEntry* pEntry =
@@ -2821,6 +2809,33 @@ IMPL_LINK_NOARG( SvxMenuConfigPage, AddSeparatorHdl, Button *, void )
}
}
IMPL_LINK_NOARG( SvxMenuConfigPage, AddSubmenuHdl, Button *, void )
{
OUString aNewName;
OUString aDesc = CUI_RESSTR( RID_SVXSTR_SUBMENU_NAME );
VclPtrInstance< SvxNameDialog > pNameDialog( this, aNewName, aDesc );
pNameDialog->SetHelpId( HID_SVX_CONFIG_NAME_SUBMENU );
pNameDialog->SetText( CUI_RESSTR( RID_SVXSTR_ADD_SUBMENU ) );
if ( pNameDialog->Execute() == RET_OK )
{
pNameDialog->GetName(aNewName);
SvxConfigEntry* pNewEntryData =
new SvxConfigEntry( aNewName, aNewName, true );
pNewEntryData->SetUserDefined();
InsertEntry( pNewEntryData );
ReloadTopLevelListBox();
GetSaveInData()->SetModified();
UpdateButtonStates();
}
}
IMPL_LINK_NOARG( SvxMenuConfigPage, DeleteCommandHdl, Button *, void )
{
DeleteSelectedContent();
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index 6ca5756..7ddd3ac 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -381,6 +381,7 @@ protected:
VclPtr<PushButton> m_pAddCommandsButton;
VclPtr<PushButton> m_pAddSeparatorButton;
VclPtr<PushButton> m_pAddSubmenuButton;
VclPtr<MenuButton> m_pModifyCommandButton;
VclPtr<PushButton> m_pDeleteCommandButton;
// Resets the top level toolbar to default settings
@@ -484,6 +485,7 @@ private:
DECL_LINK( EntrySelectHdl, MenuButton *, void );
DECL_LINK( AddCommandsHdl, Button *, void );
DECL_LINK( AddSeparatorHdl, Button *, void );
DECL_LINK( AddSubmenuHdl, Button *, void );
DECL_LINK( DeleteCommandHdl, Button *, void );
DECL_LINK( AddFunctionHdl, SvxScriptSelectorDialog&, void );
diff --git a/cui/uiconfig/ui/menuassignpage.ui b/cui/uiconfig/ui/menuassignpage.ui
index 193153d..e15ae5d 100644
--- a/cui/uiconfig/ui/menuassignpage.ui
+++ b/cui/uiconfig/ui/menuassignpage.ui
@@ -479,6 +479,20 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="addsubmenubtn">
<property name="label" translatable="yes">Add Submenu</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
@@ -569,6 +583,7 @@
<widget name="modify:modmenu"/>
<widget name="deletebtn"/>
<widget name="resetbtn"/>
<widget name="addsubmenubtn"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">
@@ -616,20 +631,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuItem" id="addsubmenu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Add Submenu...</property>
<property name="use_underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="menuitem4">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="modrename">
<property name="visible">True</property>
<property name="can_focus">False</property>