[Libreoffice-commits] core.git: cui/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Mon Nov 25 15:14:26 UTC 2019
cui/source/customize/SvxNotebookbarConfigPage.cxx | 28 +++++++++++-----------
cui/source/inc/SvxNotebookbarConfigPage.hxx | 3 +-
2 files changed, 17 insertions(+), 14 deletions(-)
New commits:
commit 7c949066e6aae6ffe3b88d6500e70cdb7cc03b69
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Nov 25 10:20:32 2019 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Nov 25 16:13:27 2019 +0100
tdf#126043 load the xml just once
Change-Id: I98cfeeeddf2fb2d86259a11368bf3db752f5e556
Reviewed-on: https://gerrit.libreoffice.org/83656
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx
index cd654fa717c8..fc54f4628705 100644
--- a/cui/source/customize/SvxNotebookbarConfigPage.cxx
+++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx
@@ -431,31 +431,28 @@ void SvxNotebookbarConfigPage::searchNodeandAttribute(std::vector<NotebookbarEnt
}
}
-void SvxNotebookbarConfigPage::FillFunctionsList(std::vector<NotebookbarEntries>& aEntries,
+void SvxNotebookbarConfigPage::FillFunctionsList(xmlNodePtr pRootNodePtr,
+ std::vector<NotebookbarEntries>& aEntries,
std::vector<CategoriesEntries>& aCategoryList,
OUString& sActiveCategory)
{
- OString sUIFileUIPath = CustomNotebookbarGenerator::getSystemPath(
- CustomNotebookbarGenerator::getCustomizedUIPath());
- xmlDocPtr pDoc = xmlParseFile(sUIFileUIPath.getStr());
- xmlNodePtr pNodePtr = xmlDocGetRootElement(pDoc);
-
CategoriesEntries aCurItemEntry;
- searchNodeandAttribute(aEntries, aCategoryList, sActiveCategory, aCurItemEntry, pNodePtr,
+ searchNodeandAttribute(aEntries, aCategoryList, sActiveCategory, aCurItemEntry, pRootNodePtr,
false);
- if (pDoc != nullptr)
- {
- xmlFreeDoc(pDoc);
- }
}
void SvxNotebookbarConfigPage::SelectElement()
{
+ OString sUIFileUIPath = CustomNotebookbarGenerator::getSystemPath(
+ CustomNotebookbarGenerator::getCustomizedUIPath());
+ xmlDocPtr pDoc = xmlParseFile(sUIFileUIPath.getStr());
+ xmlNodePtr pNodePtr = xmlDocGetRootElement(pDoc);
+
m_xContentsListBox->clear();
std::vector<NotebookbarEntries> aEntries;
std::vector<CategoriesEntries> aCategoryList;
OUString sActiveCategory = m_xTopLevelListBox->get_active_id();
- FillFunctionsList(aEntries, aCategoryList, sActiveCategory);
+ FillFunctionsList(pNodePtr, aEntries, aCategoryList, sActiveCategory);
if (m_xTopLevelListBox->get_count() == 1)
{
@@ -477,7 +474,7 @@ void SvxNotebookbarConfigPage::SelectElement()
std::vector<NotebookbarEntries> aGtkEntries;
sal_Int32 rPos = 1;
sActiveCategory = aEntries[nIdx].sUIItemId.getToken(rPos, ':', rPos);
- FillFunctionsList(aGtkEntries, aCategoryList, sActiveCategory);
+ FillFunctionsList(pNodePtr, aGtkEntries, aCategoryList, sActiveCategory);
for (std::size_t Idx = 0; Idx < aGtkEntries.size(); Idx++)
aTempEntries.push_back(aGtkEntries[Idx]);
aGtkEntries.clear();
@@ -510,6 +507,11 @@ void SvxNotebookbarConfigPage::SelectElement()
++nId;
}
aEntries.clear();
+
+ if (pDoc != nullptr)
+ {
+ xmlFreeDoc(pDoc);
+ }
}
SvxNotebookbarEntriesListBox::SvxNotebookbarEntriesListBox(std::unique_ptr<weld::TreeView> xParent,
diff --git a/cui/source/inc/SvxNotebookbarConfigPage.hxx b/cui/source/inc/SvxNotebookbarConfigPage.hxx
index 7793d6e6415b..3c657db3ca84 100644
--- a/cui/source/inc/SvxNotebookbarConfigPage.hxx
+++ b/cui/source/inc/SvxNotebookbarConfigPage.hxx
@@ -60,7 +60,8 @@ public:
SaveInData* CreateSaveInData(const css::uno::Reference<css::ui::XUIConfigurationManager>&,
const css::uno::Reference<css::ui::XUIConfigurationManager>&,
const OUString& aModuleId, bool docConfig) override;
- static void FillFunctionsList(std::vector<NotebookbarEntries>& aEntries,
+ static void FillFunctionsList(xmlNodePtr pRootNodePtr,
+ std::vector<NotebookbarEntries>& aEntries,
std::vector<CategoriesEntries>& aCategoryList,
OUString& sActiveCategory);
static void searchNodeandAttribute(std::vector<NotebookbarEntries>& aEntries,
More information about the Libreoffice-commits
mailing list