Notebookbar: separate .ui files settings for each module

* each module have own list of implementations
* deleted placeholder .ui files from Calc and Impress

Change-Id: Ib7d4cafbb332447e769ca753003d31e9f3025f0a
Reviewed-on: https://gerrit.libreoffice.org/29143
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
This commit is contained in:
Szymon Kłos
2016-09-21 15:28:26 +02:00
committed by Samuel Mehrbrodt
parent d749277ac0
commit af3df5340d
10 changed files with 184 additions and 601 deletions

View File

@@ -84,9 +84,29 @@ void NotebookbarMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >
SolarMutexGuard aSolarMutexGuard;
resetPopupMenu( rPopupMenu );
const Reference<frame::XModuleManager> xModuleManager = frame::ModuleManager::create( m_xContext );
vcl::EnumContext::Application eApp = vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(m_xFrame));
OUStringBuffer aPath("org.openoffice.Office.UI.Notebookbar/Applications/");
switch ( eApp )
{
case vcl::EnumContext::Application::Application_Writer:
aPath.append("Writer");
break;
case vcl::EnumContext::Application::Application_Calc:
aPath.append("Calc");
break;
case vcl::EnumContext::Application::Application_Impress:
aPath.append("Impress");
break;
default:
break;
}
aPath.append("/Implementations");
const utl::OConfigurationTreeRoot aImplementationsNode(
m_xContext,
OUString("org.openoffice.Office.UI.Notebookbar/Implementations"),
OUString( aPath.makeStringAndClear() ),
false);
if ( !aImplementationsNode.isValid() )
return;
@@ -222,7 +242,7 @@ void SAL_CALL NotebookbarMenuController::itemSelected( const css::awt::MenuEvent
void SAL_CALL NotebookbarMenuController::itemActivated( const css::awt::MenuEvent& ) throw (RuntimeException, std::exception)
{
OUString aActive = officecfg::Office::UI::Notebookbar::Active::get( m_xContext );
OUString aActive;
const Reference<frame::XModuleManager> xModuleManager = frame::ModuleManager::create( m_xContext );
vcl::EnumContext::Application eApp = vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(m_xFrame));
@@ -232,15 +252,15 @@ void SAL_CALL NotebookbarMenuController::itemActivated( const css::awt::MenuEven
{
case vcl::EnumContext::Application::Application_Writer:
aPath.append("Writer");
aActive = officecfg::Office::UI::Notebookbar::ActiveWriter::get( m_xContext );
break;
case vcl::EnumContext::Application::Application_Calc:
aPath.append("Calc");
aActive = officecfg::Office::UI::Notebookbar::ActiveCalc::get( m_xContext );
break;
case vcl::EnumContext::Application::Application_Impress:
aPath.append("Impress");
break;
case vcl::EnumContext::Application::Application_Draw:
aPath.append("Draw");
aActive = officecfg::Office::UI::Notebookbar::ActiveImpress::get( m_xContext );
break;
default:
break;

View File

@@ -1,42 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE oor:component-data SYSTEM "../../../../../component-update.dtd">
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:install="http://openoffice.org/2004/installation" oor:name="Notebookbar" oor:package="org.openoffice.Office.UI">
<prop oor:name="Active">
<prop oor:name="ActiveWriter">
<value>notebookbar.ui</value>
</prop>
<node oor:name="Implementations">
<node oor:name="Tabbed" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Tabbed</value>
</prop>
<prop oor:name="File">
<value>notebookbar.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>false</value>
</prop>
<prop oor:name="ActiveCalc">
<value>notebookbar.ui</value>
</prop>
<prop oor:name="ActiveImpress">
<value>notebookbar.ui</value>
</prop>
<node oor:name="Applications">
<node oor:name="Writer" oor:op="replace">
<node oor:name="Implementations">
<node oor:name="Tabbed" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Tabbed</value>
</prop>
<prop oor:name="File">
<value>notebookbar.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>false</value>
</prop>
</node>
<node oor:name="Groups" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Contextual groups</value>
</prop>
<prop oor:name="File">
<value>notebookbar_groups.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>true</value>
</prop>
</node>
<node oor:name="Single" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Contextual single</value>
</prop>
<prop oor:name="File">
<value>notebookbar_single.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>true</value>
</prop>
</node>
</node>
</node>
<node oor:name="Groups" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Contextual groups</value>
</prop>
<prop oor:name="File">
<value>notebookbar_groups.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>true</value>
</prop>
<node oor:name="Calc" oor:op="replace">
<node oor:name="Implementations">
<node oor:name="Tabbed" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Tabbed</value>
</prop>
<prop oor:name="File">
<value>notebookbar.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>false</value>
</prop>
</node>
</node>
</node>
<node oor:name="Single" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Contextual single</value>
</prop>
<prop oor:name="File">
<value>notebookbar_single.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>true</value>
</prop>
<node oor:name="Impress" oor:op="replace">
<node oor:name="Implementations">
<node oor:name="Tabbed" oor:op="replace">
<prop oor:name="Label">
<value xml:lang="en-US">Tabbed</value>
</prop>
<prop oor:name="File">
<value>notebookbar.ui</value>
</prop>
<prop oor:name="HasMenubar">
<value>false</value>
</prop>
</node>
</node>
</node>
</node>
</oor:component-data>

View File

@@ -27,29 +27,49 @@
<desc>The implementation description container.</desc>
</info>
<prop oor:name="Label" oor:type="xs:string" oor:nillable="false" oor:localized="true">
<info>
<desc>The implementation name.</desc>
</info>
</prop>
<prop oor:name="File" oor:type="xs:string" oor:nillable="false">
<info>
<desc>The .ui file name.</desc>
</info>
</prop>
<prop oor:name="HasMenubar" oor:type="xs:boolean" oor:nillable="false">
<info>
<desc>Determines if menubar is visible.</desc>
</info>
</prop>
</group>
<group oor:name="Application">
<info>
<desc>The implementation name.</desc>
<desc>Describes notebookbar settings for one application.</desc>
</info>
</prop>
<prop oor:name="File" oor:type="xs:string" oor:nillable="false">
<info>
<desc>The .ui file name.</desc>
</info>
</prop>
<prop oor:name="HasMenubar" oor:type="xs:boolean" oor:nillable="false">
<info>
<desc>Determines if menubar is visible.</desc>
</info>
</prop>
<set oor:name="Implementations" oor:node-type="Implementation">
<info>
<desc>List of implementations.</desc>
</info>
</set>
</group>
</templates>
<component>
<prop oor:name="Active" oor:type="xs:string" oor:nillable="false">
<prop oor:name="ActiveWriter" oor:type="xs:string" oor:nillable="false">
<info>
<desc>Contains name of currently used implementation.</desc>
<desc>Contains name of currently used implementation in the Writer module.</desc>
</info>
</prop>
<set oor:name="Implementations" oor:node-type="Implementation">
<prop oor:name="ActiveCalc" oor:type="xs:string" oor:nillable="false">
<info>
<desc>Contains name of currently used implementation in the Calc module.</desc>
</info>
</prop>
<prop oor:name="ActiveImpress" oor:type="xs:string" oor:nillable="false">
<info>
<desc>Contains name of currently used implementation in the Impress module.</desc>
</info>
</prop>
<set oor:name="Applications" oor:node-type="Application">
<info>
<desc>List of implementations.</desc>
</info>

View File

@@ -141,8 +141,6 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
sc/uiconfig/scalc/ui/leftheaderdialog \
sc/uiconfig/scalc/ui/namerangesdialog \
sc/uiconfig/scalc/ui/notebookbar \
sc/uiconfig/scalc/ui/notebookbar_groups \
sc/uiconfig/scalc/ui/notebookbar_single \
sc/uiconfig/scalc/ui/managenamesdialog \
sc/uiconfig/scalc/ui/mergecellsdialog \
sc/uiconfig/scalc/ui/movecopysheet \

View File

@@ -1,133 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<requires lib="LibreOffice" version="1.0"/>
<!-- interface-local-resource-path ../../../icon-themes/galaxy/cmd/ -->
<object class="GtkGrid" id="NotebookBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="vcllo-NotebookbarTabControl" id="ContextContainer">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="sfxlo-PriorityHBox" id="FileBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="sfxlo-DropdownBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<style>
<class name="priority-1"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="FileLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">File</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</interface>

View File

@@ -1,133 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<requires lib="LibreOffice" version="1.0"/>
<!-- interface-local-resource-path ../../../icon-themes/galaxy/cmd/ -->
<object class="GtkGrid" id="NotebookBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="vcllo-NotebookbarTabControl" id="ContextContainer">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="sfxlo-PriorityHBox" id="FileBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="sfxlo-DropdownBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<style>
<class name="priority-1"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="FileLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">File</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</interface>

View File

@@ -121,8 +121,6 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/simpress,\
sd/uiconfig/simpress/ui/interactionpage \
sd/uiconfig/simpress/ui/masterlayoutdlg \
sd/uiconfig/simpress/ui/notebookbar \
sd/uiconfig/simpress/ui/notebookbar_groups \
sd/uiconfig/simpress/ui/notebookbar_single \
sd/uiconfig/simpress/ui/optimpressgeneralpage \
sd/uiconfig/simpress/ui/photoalbum \
sd/uiconfig/simpress/ui/presentationdialog \

View File

@@ -1,133 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<requires lib="LibreOffice" version="1.0"/>
<!-- interface-local-resource-path ../../../icon-themes/galaxy/cmd/ -->
<object class="GtkGrid" id="NotebookBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="vcllo-NotebookbarTabControl" id="ContextContainer">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="sfxlo-PriorityHBox" id="FileBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="sfxlo-DropdownBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<style>
<class name="priority-1"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="FileLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">File</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</interface>

View File

@@ -1,133 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<requires lib="LibreOffice" version="1.0"/>
<!-- interface-local-resource-path ../../../icon-themes/galaxy/cmd/ -->
<object class="GtkGrid" id="NotebookBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="vcllo-NotebookbarTabControl" id="ContextContainer">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="sfxlo-PriorityHBox" id="FileBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="sfxlo-DropdownBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<style>
<class name="priority-1"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="FileLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">File</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</interface>

View File

@@ -51,16 +51,53 @@ static OUString lcl_getAppName( vcl::EnumContext::Application eApp )
case vcl::EnumContext::Application::Application_Impress:
return OUString( "Impress" );
break;
case vcl::EnumContext::Application::Application_Draw:
return OUString( "Draw" );
break;
default:
return OUString( "" );
break;
}
}
static const utl::OConfigurationNode lcl_getCurrentImplConfigNode()
static void lcl_setNotebookbarFileName( vcl::EnumContext::Application eApp, const OUString& sFileName )
{
std::shared_ptr<comphelper::ConfigurationChanges> aBatch(
comphelper::ConfigurationChanges::create( ::comphelper::getProcessComponentContext() ) );
switch ( eApp )
{
case vcl::EnumContext::Application::Application_Writer:
officecfg::Office::UI::Notebookbar::ActiveWriter::set( sFileName, aBatch );
break;
case vcl::EnumContext::Application::Application_Calc:
officecfg::Office::UI::Notebookbar::ActiveCalc::set( sFileName, aBatch );
break;
case vcl::EnumContext::Application::Application_Impress:
officecfg::Office::UI::Notebookbar::ActiveImpress::set( sFileName, aBatch );
break;
default:
break;
}
aBatch->commit();
}
static OUString lcl_getNotebookbarFileName( vcl::EnumContext::Application eApp )
{
switch ( eApp )
{
case vcl::EnumContext::Application::Application_Writer:
return officecfg::Office::UI::Notebookbar::ActiveWriter::get();
break;
case vcl::EnumContext::Application::Application_Calc:
return officecfg::Office::UI::Notebookbar::ActiveCalc::get();
break;
case vcl::EnumContext::Application::Application_Impress:
return officecfg::Office::UI::Notebookbar::ActiveImpress::get();
break;
default:
break;
}
return OUString();
}
static const utl::OConfigurationNode lcl_getCurrentImplConfigNode( const Reference<css::frame::XFrame>& xFrame )
{
const Reference<frame::XModuleManager> xModuleManager = frame::ModuleManager::create( ::comphelper::getProcessComponentContext() );
@@ -73,9 +110,10 @@ static const utl::OConfigurationNode lcl_getCurrentImplConfigNode()
if ( !aNotebookbarNode.isValid() )
return utl::OConfigurationNode();
OUString aActive = comphelper::getString( aNotebookbarNode.getNodeValue( "Active" ) );
vcl::EnumContext::Application eApp = vcl::EnumContext::GetApplicationEnum( xModuleManager->identify( xFrame ) );
OUString aActive = lcl_getNotebookbarFileName( eApp );
const utl::OConfigurationNode aImplsNode = aNotebookbarNode.openNode("Implementations");
const utl::OConfigurationNode aImplsNode = aNotebookbarNode.openNode("Applications/" + lcl_getAppName( eApp) + "/Implementations");
const Sequence<OUString> aModeNodeNames( aImplsNode.getNodeNames() );
const sal_Int32 nCount( aModeNodeNames.getLength() );
@@ -158,10 +196,9 @@ void SfxNotebookBar::ExecMethod(SfxBindings& rBindings, const OUString& rUIName)
// Save active UI file name
if ( !rUIName.isEmpty() )
{
std::shared_ptr<comphelper::ConfigurationChanges> batch(
comphelper::ConfigurationChanges::create( ::comphelper::getProcessComponentContext() ) );
officecfg::Office::UI::Notebookbar::Active::set( rUIName, batch );
batch->commit();
const Reference<frame::XModuleManager> xModuleManager = frame::ModuleManager::create( ::comphelper::getProcessComponentContext() );
vcl::EnumContext::Application eApp = vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(m_xFrame));
lcl_setNotebookbarFileName( eApp, rUIName );
}
// trigger the StateMethod
@@ -198,7 +235,9 @@ bool SfxNotebookBar::StateMethod(SystemWindow* pSysWindow,
{
RemoveListeners(pSysWindow);
OUString sFile = officecfg::Office::UI::Notebookbar::Active::get();
const Reference<frame::XModuleManager> xModuleManager = frame::ModuleManager::create( ::comphelper::getProcessComponentContext() );
vcl::EnumContext::Application eApp = vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(m_xFrame));
OUString sFile = lcl_getNotebookbarFileName( eApp );
OUString sNewFile = rUIFile + sFile;
OUString sCurrentFile;
if ( pSysWindow->GetNotebookBar() )
@@ -215,7 +254,7 @@ bool SfxNotebookBar::StateMethod(SystemWindow* pSysWindow,
bChangedFile = ( sNewFile.compareTo( sCurrentFile ) != 0 );
}
if ( !sFile.isEmpty() && bChangedFile )
if ( ( !sFile.isEmpty() && bChangedFile ) || !pSysWindow->GetNotebookBar()->IsVisible() )
{
OUStringBuffer aBuf(rUIFile);
aBuf.append( sFile );
@@ -225,7 +264,7 @@ bool SfxNotebookBar::StateMethod(SystemWindow* pSysWindow,
pSysWindow->GetNotebookBar()->Show();
pSysWindow->GetNotebookBar()->SetIconClickHdl(LINK(nullptr, SfxNotebookBar, OpenNotebookbarPopupMenu));
const utl::OConfigurationNode aModeNode( lcl_getCurrentImplConfigNode() );
const utl::OConfigurationNode aModeNode( lcl_getCurrentImplConfigNode( xFrame ) );
SfxNotebookBar::ShowMenubar( comphelper::getBOOL( aModeNode.getNodeValue( "HasMenubar" ) ) );
SfxViewFrame* pView = SfxViewFrame::Current();