diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-11-25 13:31:22 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-11-28 11:32:06 +0100 |
commit | 581f3e4ad80a664a2f51f50523db403d0ae1eeaf (patch) | |
tree | 12dbc490f5ee87ee8fc1dd8b4574e37b8c54a07b /cui/source/customize | |
parent | eacfff3748b56507c24d52dc4979ee75ee164dd1 (diff) |
tdf#126043 use bulk_insert_for_each
Change-Id: I68b5a7805a2e0a76d1871448a011fdde7f7cdb1e
Reviewed-on: https://gerrit.libreoffice.org/83685
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit 9b6b134b3e605236e90aca089867f08d659a6076)
Reviewed-on: https://gerrit.libreoffice.org/83967
Diffstat (limited to 'cui/source/customize')
-rw-r--r-- | cui/source/customize/SvxNotebookbarConfigPage.cxx | 52 |
1 files changed, 23 insertions, 29 deletions
diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx index b74353a95758..c8270b941385 100644 --- a/cui/source/customize/SvxNotebookbarConfigPage.cxx +++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx @@ -217,8 +217,9 @@ short SvxNotebookbarConfigPage::QueryReset() void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId, const OUString& sUIItemId, - const OUString& sUIItemCommand, int nPos, - int nStartCol) + const OUString& sUIItemCommand, + weld::TreeView& rTreeView, + weld::TreeIter& rIter, int nStartCol) { css::uno::Reference<css::container::XNameAccess> m_xCommandToLabelMap, m_xGlobalCommandToLabelMap; @@ -264,7 +265,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId, if (sClassId == "GtkSeparatorMenuItem" || sClassId == "GtkSeparator") { OUString sDataInTree = "--------------------------------------------"; - m_xContentsListBox->set_text(nPos, sDataInTree, nStartCol + 1); + rTreeView.set_text(rIter, sDataInTree, nStartCol + 1); } else { @@ -272,9 +273,9 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId, aName = sUIItemId; auto xImage = GetSaveInData()->GetImage(sUIItemCommand); if (xImage.is()) - m_xContentsListBox->set_image(nPos, xImage, nStartCol); - m_xContentsListBox->set_text(nPos, aName, nStartCol + 1); - m_xContentsListBox->set_id(nPos, sUIItemId); + rTreeView.set_image(rIter, xImage, nStartCol); + rTreeView.set_text(rIter, aName, nStartCol + 1); + rTreeView.set_id(rIter, sUIItemId); } } @@ -434,7 +435,6 @@ void SvxNotebookbarConfigPage::SelectElement() 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(); @@ -473,30 +473,24 @@ void SvxNotebookbarConfigPage::SelectElement() aTempEntries.clear(); weld::TreeView& rTreeView = m_xContentsListBox->get_widget(); - rTreeView.freeze(); - - sal_Int64 nId = 0; - for (std::size_t nIdx = 0; nIdx < aEntries.size(); nIdx++) - { - OUString sId(OUString::number(nId)); - m_xContentsListBox->insert(nIdx, sId); - if (aEntries[nIdx].sActionName != "Null") - { - if (aEntries[nIdx].sVisibleValue == "True") + rTreeView.bulk_insert_for_each( + aEntries.size(), [this, &rTreeView, &aEntries](weld::TreeIter& rIter, int nIdx) { + OUString sId(OUString::number(nIdx)); + rTreeView.set_id(rIter, sId); + if (aEntries[nIdx].sActionName != "Null") { - m_xContentsListBox->set_toggle(nIdx, TRISTATE_TRUE, 0); - } - else - { - m_xContentsListBox->set_toggle(nIdx, TRISTATE_FALSE, 0); + if (aEntries[nIdx].sVisibleValue == "True") + { + rTreeView.set_toggle(rIter, TRISTATE_TRUE, 0); + } + else + { + rTreeView.set_toggle(rIter, TRISTATE_FALSE, 0); + } } - } - InsertEntryIntoNotebookbarTabUI(aEntries[nIdx].sClassId, aEntries[nIdx].sDisplayName, - aEntries[nIdx].sActionName, nIdx, 1); - ++nId; - } - - rTreeView.thaw(); + InsertEntryIntoNotebookbarTabUI(aEntries[nIdx].sClassId, aEntries[nIdx].sDisplayName, + aEntries[nIdx].sActionName, rTreeView, rIter, 1); + }); aEntries.clear(); |