[Libreoffice-commits] core.git: 2 commits - cui/source cui/uiconfig
Maxim Monastirsky
momonasmon at gmail.com
Wed Nov 11 05:44:52 PST 2015
cui/source/customize/cfg.cxx | 238 ++++++++++++++++++++++++++++++++++---
cui/source/customize/cfg.src | 5
cui/source/inc/cfg.hxx | 50 ++++++-
cui/source/inc/cuires.hrc | 1
cui/uiconfig/ui/customizedialog.ui | 22 ++-
5 files changed, 288 insertions(+), 28 deletions(-)
New commits:
commit c65e00d908a2dcf47d3ff925d09e336d9b0939f7
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date: Sat Nov 7 22:01:20 2015 +0200
tdf#93837 Make customization actually work
Change-Id: I004c9ad3a7d389228b9bb532a1b2c5d6294f7e42
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index ba0829f..9491228 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -775,6 +775,25 @@ bool showKeyConfigTabPage( const css::uno::Reference< css::frame::XFrame >& xFra
&& sModuleId != "com.sun.star.frame.StartModule";
}
+bool EntrySort( SvxConfigEntry* a, SvxConfigEntry* b )
+{
+ return a->GetName().compareTo( b->GetName() ) < 0;
+}
+
+bool SvxConfigEntryModified( SvxConfigEntry* pEntry )
+{
+ SvxEntries* pEntries = pEntry->GetEntries();
+ if ( !pEntries )
+ return false;
+
+ for ( const auto& entry : *pEntries )
+ {
+ if ( entry->IsModified() || SvxConfigEntryModified( entry ) )
+ return true;
+ }
+ return false;
+}
+
}
/******************************************************************************
@@ -1071,7 +1090,7 @@ MenuSaveInData::SetEntries( SvxEntries* pNewEntries )
pRootEntry->SetEntries( pNewEntries );
}
-bool MenuSaveInData::LoadSubMenus(
+bool SaveInData::LoadSubMenus(
const uno::Reference< container::XIndexAccess >& xMenuSettings,
const OUString& rBaseTitle,
SvxConfigEntry* pParentData )
@@ -1111,7 +1130,7 @@ bool MenuSaveInData::LoadSubMenus(
// If custom label not set retrieve it from the command
// to info service
- if ( aLabel.equals( OUString() ) )
+ if ( aLabel.isEmpty() )
{
uno::Sequence< beans::PropertyValue > aPropSeq;
if ( a >>= aPropSeq )
@@ -1257,7 +1276,7 @@ void MenuSaveInData::Apply(
}
}
-void MenuSaveInData::ApplyMenu(
+void SaveInData::ApplyMenu(
uno::Reference< container::XIndexContainer >& rMenuBar,
uno::Reference< lang::XSingleComponentFactory >& rFactory,
SvxConfigEntry* pMenuData )
@@ -1282,13 +1301,14 @@ void MenuSaveInData::ApplyMenu(
sal_Int32 nIndex = aPropValueSeq.getLength();
aPropValueSeq.realloc( nIndex + 1 );
- aPropValueSeq[nIndex].Name = m_aDescriptorContainer;
+ aPropValueSeq[nIndex].Name = ITEM_DESCRIPTOR_CONTAINER;
aPropValueSeq[nIndex].Value <<= xSubMenuBar;
rMenuBar->insertByIndex(
rMenuBar->getCount(), uno::makeAny( aPropValueSeq ));
ApplyMenu( xSubMenuBar, rFactory, pEntry );
+ pEntry->SetModified( false );
}
else if ( pEntry->IsSeparator() )
{
@@ -1303,6 +1323,7 @@ void MenuSaveInData::ApplyMenu(
rMenuBar->getCount(), uno::makeAny( aPropValueSeq ));
}
}
+ pMenuData->SetModified( false );
}
void
@@ -1324,6 +1345,177 @@ MenuSaveInData::Reset()
}
}
+ContextMenuSaveInData::ContextMenuSaveInData(
+ const css::uno::Reference< css::ui::XUIConfigurationManager >& xCfgMgr,
+ const css::uno::Reference< css::ui::XUIConfigurationManager >& xParentCfgMgr,
+ const OUString& aModuleId, bool bIsDocConfig )
+ : SaveInData( xCfgMgr, xParentCfgMgr, aModuleId, bIsDocConfig )
+{
+}
+
+ContextMenuSaveInData::~ContextMenuSaveInData()
+{
+}
+
+SvxEntries* ContextMenuSaveInData::GetEntries()
+{
+ if ( !m_pRootEntry )
+ {
+ typedef std::unordered_map< OUString, bool, OUStringHash, std::equal_to< OUString > > MenuInfo;
+ MenuInfo aMenuInfo;
+
+ m_pRootEntry.reset( new SvxConfigEntry( "ContextMenus", OUString(), true ) );
+ css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aElementsInfo;
+ try
+ {
+ aElementsInfo = GetConfigManager()->getUIElementsInfo( css::ui::UIElementType::POPUPMENU );
+ }
+ catch ( const css::lang::IllegalArgumentException& )
+ {}
+
+ for ( const auto& aElement : aElementsInfo )
+ {
+ OUString aUrl;
+ for ( const auto& aElementProp : aElement )
+ {
+ if ( aElementProp.Name == ITEM_DESCRIPTOR_RESOURCEURL )
+ aElementProp.Value >>= aUrl;
+ }
+
+ css::uno::Reference< css::container::XIndexAccess > xPopupMenu;
+ try
+ {
+ xPopupMenu = GetConfigManager()->getSettings( aUrl, sal_False );
+ }
+ catch ( const css::uno::Exception& )
+ {}
+
+ if ( xPopupMenu.is() )
+ {
+ OUString aMenuName = aUrl.copy( aUrl.lastIndexOf( '/' ) + 1 );
+
+ // insert into std::unordered_map to filter duplicates from the parent
+ aMenuInfo.insert( MenuInfo::value_type( aMenuName, true ) );
+
+ SvxConfigEntry* pEntry = new SvxConfigEntry( aMenuName, aUrl, true );
+ pEntry->SetMain();
+ m_pRootEntry->GetEntries()->push_back( pEntry );
+ LoadSubMenus( xPopupMenu, aMenuName, pEntry );
+ }
+ }
+
+ // Retrieve also the parent menus, to make it possible to configure module menus and save them into the document.
+ css::uno::Reference< css::ui::XUIConfigurationManager > xParentCfgMgr = GetParentConfigManager();
+ css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aParentElementsInfo;
+ try
+ {
+ if ( xParentCfgMgr.is() )
+ aParentElementsInfo = xParentCfgMgr->getUIElementsInfo( css::ui::UIElementType::POPUPMENU );
+ }
+ catch ( const css::lang::IllegalArgumentException& )
+ {}
+
+ for ( const auto& aElement : aParentElementsInfo )
+ {
+ OUString aUrl, aMenuName;
+ for ( const auto& aElementProp : aElement )
+ {
+ if ( aElementProp.Name == ITEM_DESCRIPTOR_RESOURCEURL )
+ {
+ aElementProp.Value >>= aUrl;
+ aMenuName = aUrl.copy( aUrl.lastIndexOf( '/' ) + 1 );
+ }
+ }
+
+ css::uno::Reference< css::container::XIndexAccess > xPopupMenu;
+ try
+ {
+ if ( aMenuInfo.find( aMenuName ) == aMenuInfo.end() )
+ xPopupMenu = xParentCfgMgr->getSettings( aUrl, sal_False );
+ }
+ catch ( const css::uno::Exception& )
+ {}
+
+ if ( xPopupMenu.is() )
+ {
+ SvxConfigEntry* pEntry = new SvxConfigEntry( aMenuName, aUrl, true, true );
+ pEntry->SetMain();
+ m_pRootEntry->GetEntries()->push_back( pEntry );
+ LoadSubMenus( xPopupMenu, aMenuName, pEntry );
+ }
+ }
+ std::sort( m_pRootEntry->GetEntries()->begin(), m_pRootEntry->GetEntries()->end(), EntrySort );
+ }
+ return m_pRootEntry->GetEntries();
+}
+
+void ContextMenuSaveInData::SetEntries( SvxEntries* pNewEntries )
+{
+ delete m_pRootEntry->GetEntries();
+ m_pRootEntry->SetEntries( pNewEntries );
+}
+
+bool ContextMenuSaveInData::HasURL( const OUString& rURL )
+{
+ SvxEntries* pEntries = GetEntries();
+ for ( const auto& pEntry : *pEntries )
+ if ( pEntry->GetCommand() == rURL )
+ return true;
+
+ return false;
+}
+
+bool ContextMenuSaveInData::HasSettings()
+{
+ return m_pRootEntry && m_pRootEntry->GetEntries()->size();
+}
+
+bool ContextMenuSaveInData::Apply()
+{
+ if ( !IsModified() )
+ return false;
+
+ SvxEntries* pEntries = GetEntries();
+ for ( const auto& pEntry : *pEntries )
+ {
+ if ( pEntry->IsModified() || SvxConfigEntryModified( pEntry ) )
+ {
+ css::uno::Reference< css::container::XIndexContainer > xIndexContainer( GetConfigManager()->createSettings(), css::uno::UNO_QUERY );
+ css::uno::Reference< css::lang::XSingleComponentFactory > xFactory( xIndexContainer, css::uno::UNO_QUERY );
+ ApplyMenu( xIndexContainer, xFactory, pEntry );
+
+ OUString aUrl = pEntry->GetCommand();
+ try
+ {
+ if ( GetConfigManager()->hasSettings( aUrl ) )
+ GetConfigManager()->replaceSettings( aUrl, xIndexContainer );
+ else
+ GetConfigManager()->insertSettings( aUrl, xIndexContainer );
+ }
+ catch ( const css::uno::Exception& )
+ {}
+ }
+ }
+ SetModified( false );
+ return PersistChanges( GetConfigManager() );
+}
+
+void ContextMenuSaveInData::Reset()
+{
+ SvxEntries* pEntries = GetEntries();
+ for ( const auto& pEntry : *pEntries )
+ {
+ try
+ {
+ GetConfigManager()->removeSettings( pEntry->GetCommand() );
+ }
+ catch ( const css::uno::Exception& )
+ {}
+ }
+ PersistChanges( GetConfigManager() );
+ m_pRootEntry.reset();
+}
+
class PopupPainter : public SvLBoxString
{
public:
@@ -2069,6 +2261,7 @@ SvTreeListEntry* SvxConfigPage::InsertEntry(
m_pContentsListBox->MakeVisible( pNewEntry );
GetSaveInData()->SetModified();
+ GetTopLevelSelection()->SetModified();
}
return pNewEntry;
@@ -2196,6 +2389,7 @@ bool SvxConfigPage::MoveEntryData(
pEntries->insert( ++iter, pSourceData );
GetSaveInData()->SetModified();
+ GetTopLevelSelection()->SetModified();
return true;
}
@@ -2381,6 +2575,7 @@ bool SvxMenuConfigPage::DeleteSelectedContent()
delete pMenuEntry;
GetSaveInData()->SetModified();
+ pMenu->SetModified();
return true;
}
@@ -2589,8 +2784,10 @@ SaveInData* SvxMenuConfigPage::CreateSaveInData(
const OUString& aModuleId,
bool bDocConfig )
{
- return static_cast< SaveInData* >(
- new MenuSaveInData( xCfgMgr, xParentCfgMgr, aModuleId, bDocConfig ));
+ if ( !m_bIsMenuBar )
+ return static_cast< SaveInData* >( new ContextMenuSaveInData( xCfgMgr, xParentCfgMgr, aModuleId, bDocConfig ) );
+
+ return static_cast< SaveInData* >( new MenuSaveInData( xCfgMgr, xParentCfgMgr, aModuleId, bDocConfig ) );
}
SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
@@ -2804,6 +3001,7 @@ SvxConfigEntry::SvxConfigEntry( const OUString& rDisplayName,
, bIsUserDefined( false )
, bIsMain( false )
, bIsParentData( bParentData )
+ , bIsModified( false )
, bIsVisible( true )
, nStyle( 0 )
, mpEntries( nullptr )
@@ -3668,11 +3866,6 @@ OUString ToolbarSaveInData::GetSystemUIName( const OUString& rResourceURL )
return result;
}
-bool EntrySort( SvxConfigEntry* a, SvxConfigEntry* b )
-{
- return a->GetName().compareTo( b->GetName() ) < 0;
-}
-
SvxEntries* ToolbarSaveInData::GetEntries()
{
typedef std::unordered_map<OUString, bool,
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index b4cbaa0..9066bad 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -95,6 +95,17 @@ private:
static css::uno::Reference
< css::ui::XImageManager >* xDefaultImgMgr;
+protected:
+
+ void ApplyMenu(
+ css::uno::Reference< css::container::XIndexContainer >& rMenuBar,
+ css::uno::Reference< css::lang::XSingleComponentFactory >& rFactory,
+ SvxConfigEntry *pMenuData = nullptr );
+
+ bool LoadSubMenus(
+ const css::uno::Reference< css::container::XIndexAccess >& xMenuSettings,
+ const OUString& rBaseTitle, SvxConfigEntry* pParentData );
+
public:
SaveInData(
@@ -170,15 +181,6 @@ private:
css::uno::Reference< css::lang::XSingleComponentFactory >& rFactory,
SvTreeListEntry *pParent = nullptr );
- void ApplyMenu(
- css::uno::Reference< css::container::XIndexContainer >& rNewMenuBar,
- css::uno::Reference< css::lang::XSingleComponentFactory >& rFactory,
- SvxConfigEntry *pMenuData = nullptr );
-
- bool LoadSubMenus(
- const css::uno::Reference< css::container::XIndexAccess >& xMenuBarSettings,
- const OUString& rBaseTitle, SvxConfigEntry* pParentData );
-
public:
MenuSaveInData(
@@ -198,6 +200,26 @@ public:
bool Apply() override;
};
+class ContextMenuSaveInData : public SaveInData
+{
+private:
+ std::unique_ptr< SvxConfigEntry > m_pRootEntry;
+
+public:
+ ContextMenuSaveInData(
+ const css::uno::Reference< css::ui::XUIConfigurationManager >& xCfgMgr,
+ const css::uno::Reference< css::ui::XUIConfigurationManager >& xParentCfgMgr,
+ const OUString& aModuleId, bool bIsDocConfig );
+ virtual ~ContextMenuSaveInData();
+
+ SvxEntries* GetEntries() override;
+ void SetEntries( SvxEntries* pNewEntries ) override;
+ bool HasSettings() override;
+ bool HasURL( const OUString& rURL ) override;
+ void Reset() override;
+ bool Apply() override;
+};
+
class SvxConfigEntry
{
private:
@@ -213,6 +235,7 @@ private:
bool bIsUserDefined;
bool bIsMain;
bool bIsParentData;
+ bool bIsModified;
/// toolbar specific properties
bool bIsVisible;
@@ -238,6 +261,7 @@ public:
bIsUserDefined( false ),
bIsMain( false ),
bIsParentData( false ),
+ bIsModified( false ),
bIsVisible( true ),
nStyle( 0 ),
mpEntries( nullptr )
@@ -270,6 +294,9 @@ public:
void SetParentData( bool bValue = true ) { bIsParentData = bValue; }
bool IsParentData() { return bIsParentData; }
+ void SetModified( bool bValue = true ) { bIsModified = bValue; }
+ bool IsModified() { return bIsModified; }
+
bool IsMovable();
bool IsDeletable();
bool IsRenamable();
commit 899453aa8407fca8a93d51f12ad4e335d1beeb62
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date: Wed Nov 11 15:23:58 2015 +0200
tdf#93837 Add context menu customization UI
Depends on env. variable for now. Nothing to
customize yet anyway.
Change-Id: I70edd33b51d931632fac454684d6c22906a727fe
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 6a82340..ba0829f 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -739,6 +739,11 @@ VclPtr<SfxTabPage> CreateSvxMenuConfigPage( vcl::Window *pParent, const SfxItemS
return VclPtr<SvxMenuConfigPage>::Create( pParent, *rSet );
}
+VclPtr<SfxTabPage> CreateSvxContextMenuConfigPage( vcl::Window *pParent, const SfxItemSet* rSet )
+{
+ return VclPtr<SvxMenuConfigPage>::Create( pParent, *rSet, false );
+}
+
VclPtr<SfxTabPage> CreateKeyboardConfigPage( vcl::Window *pParent, const SfxItemSet* rSet )
{
return VclPtr<SfxAcceleratorConfigPage>::Create( pParent, *rSet );
@@ -783,6 +788,7 @@ SvxConfigDialog::SvxConfigDialog(vcl::Window * pParent, const SfxItemSet* pInSet
: SfxTabDialog(pParent, "CustomizeDialog",
"cui/ui/customizedialog.ui", pInSet)
, m_nMenusPageId(0)
+ , m_nContextMenusPageId(0)
, m_nKeyboardPageId(0)
, m_nToolbarsPageId(0)
, m_nEventsPageId(0)
@@ -790,6 +796,10 @@ SvxConfigDialog::SvxConfigDialog(vcl::Window * pParent, const SfxItemSet* pInSet
InitImageType();
m_nMenusPageId = AddTabPage("menus", CreateSvxMenuConfigPage, nullptr);
+ if ( getenv("LO_USE_NEWCONTEXTMENU") )
+ m_nContextMenusPageId = AddTabPage("contextmenus", CreateSvxContextMenuConfigPage, nullptr);
+ else
+ RemoveTabPage("contextmenus");
m_nKeyboardPageId = AddTabPage("keyboard", CreateKeyboardConfigPage, nullptr);
m_nToolbarsPageId = AddTabPage("toolbars", CreateSvxToolbarConfigPage, nullptr);
m_nEventsPageId = AddTabPage("events", CreateSvxEventConfigPage, nullptr);
@@ -819,7 +829,7 @@ void SvxConfigDialog::SetFrame(const css::uno::Reference< css::frame::XFrame >&
void SvxConfigDialog::PageCreated( sal_uInt16 nId, SfxTabPage& rPage )
{
if (nId == m_nMenusPageId || nId == m_nKeyboardPageId ||
- nId == m_nToolbarsPageId)
+ nId == m_nToolbarsPageId || nId == m_nContextMenusPageId)
{
rPage.SetFrame(m_xFrame);
}
@@ -2193,8 +2203,9 @@ bool SvxConfigPage::MoveEntryData(
return false;
}
-SvxMenuConfigPage::SvxMenuConfigPage(vcl::Window *pParent, const SfxItemSet& rSet)
+SvxMenuConfigPage::SvxMenuConfigPage(vcl::Window *pParent, const SfxItemSet& rSet, bool bIsMenuBar)
: SvxConfigPage(pParent, rSet)
+ , m_bIsMenuBar( bIsMenuBar )
{
m_pContentsListBox = VclPtr<SvxMenuEntriesListBox>::Create(m_pEntries, this);
m_pContentsListBox->set_grid_left_attach(0);
@@ -2231,6 +2242,14 @@ SvxMenuConfigPage::SvxMenuConfigPage(vcl::Window *pParent, const SfxItemSet& rSe
m_pModifyCommandButton->SetSelectHdl(
LINK( this, SvxMenuConfigPage, EntrySelectHdl ) );
+
+ if ( !bIsMenuBar )
+ {
+ m_pTopLevel->set_label( CUI_RES( RID_SVXSTR_PRODUCTNAME_CONTEXTMENUS ) );
+ m_pNewTopLevelButton->Hide();
+ pMenu->HideItem( pMenu->GetItemId( "move" ) );
+ pMenu->HideItem( pMenu->GetItemId( "menuitem3" ) );
+ }
}
SvxMenuConfigPage::~SvxMenuConfigPage()
diff --git a/cui/source/customize/cfg.src b/cui/source/customize/cfg.src
index fed45bd..0ac1b96 100644
--- a/cui/source/customize/cfg.src
+++ b/cui/source/customize/cfg.src
@@ -192,6 +192,11 @@ String RID_SVXSTR_PRODUCTNAME_TOOLBARS
Text [ en-US ] = "%PRODUCTNAME %MODULENAME Toolbars" ;
};
+String RID_SVXSTR_PRODUCTNAME_CONTEXTMENUS
+{
+ Text [ en-US ] = "%PRODUCTNAME %MODULENAME Context Menus" ;
+};
+
String RID_SVXSTR_TOOLBAR
{
Text [ en-US ] = "Toolbar" ;
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index f4bb1df..b4cbaa0 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -59,6 +59,7 @@ class SvxConfigDialog : public SfxTabDialog
private:
css::uno::Reference< css::frame::XFrame > m_xFrame;
sal_uInt16 m_nMenusPageId;
+ sal_uInt16 m_nContextMenusPageId;
sal_uInt16 m_nKeyboardPageId;
sal_uInt16 m_nToolbarsPageId;
sal_uInt16 m_nEventsPageId;
@@ -439,7 +440,7 @@ public:
class SvxMenuConfigPage : public SvxConfigPage
{
private:
-
+ bool m_bIsMenuBar;
DECL_LINK_TYPED( SelectMenu, ListBox&, void );
DECL_LINK_TYPED( SelectMenuEntry, SvTreeListBox *, void );
DECL_LINK_TYPED( NewMenuHdl, Button *, void );
@@ -455,7 +456,7 @@ private:
void DeleteSelectedTopLevel() override;
public:
- SvxMenuConfigPage( vcl::Window *pParent, const SfxItemSet& rItemSet );
+ SvxMenuConfigPage( vcl::Window *pParent, const SfxItemSet& rItemSet, bool bIsMenuBar = true );
virtual ~SvxMenuConfigPage();
virtual void dispose() override;
diff --git a/cui/source/inc/cuires.hrc b/cui/source/inc/cuires.hrc
index 6f8df14..e99045d 100644
--- a/cui/source/inc/cuires.hrc
+++ b/cui/source/inc/cuires.hrc
@@ -238,6 +238,7 @@
#define RID_SVXDLG_CUSTOMIZE (RID_SVX_START + 291)
#define RID_SVXPAGE_CONFIGGROUPBOX (RID_SVX_START + 304)
+#define RID_SVXSTR_PRODUCTNAME_CONTEXTMENUS (RID_SVX_START + 1167)
#define RID_SVXSTR_NEW_MENU (RID_SVX_START + 1039)
#define RID_SVXSTR_NEW_TOOLBAR (RID_SVX_START + 1040)
#define RID_SVXSTR_MOVE_MENU (RID_SVX_START + 1041)
diff --git a/cui/uiconfig/ui/customizedialog.ui b/cui/uiconfig/ui/customizedialog.ui
index 7d9f6b4..a3223dc 100644
--- a/cui/uiconfig/ui/customizedialog.ui
+++ b/cui/uiconfig/ui/customizedialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.19.0 -->
<interface>
<requires lib="gtk+" version="3.0"/>
<object class="GtkDialog" id="CustomizeDialog">
@@ -107,13 +107,27 @@
<placeholder/>
</child>
<child type="tab">
+ <object class="GtkLabel" id="contextmenus">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Context Menus</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
<object class="GtkLabel" id="keyboard">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Keyboard</property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">2</property>
<property name="tab_fill">False</property>
</packing>
</child>
@@ -127,7 +141,7 @@
<property name="label" translatable="yes">Toolbars</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="position">3</property>
<property name="tab_fill">False</property>
</packing>
</child>
@@ -141,7 +155,7 @@
<property name="label" translatable="yes">Events</property>
</object>
<packing>
- <property name="position">3</property>
+ <property name="position">4</property>
<property name="tab_fill">False</property>
</packing>
</child>
More information about the Libreoffice-commits
mailing list