summaryrefslogtreecommitdiff
path: root/basctl/source/basicide
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-11-01 10:30:23 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-11-01 12:44:59 +0100
commit2ed921b0a56961c6937661258b44e1690c5f98d1 (patch)
treeb07ee475903d0de952a2ea9329e7f11e51129770 /basctl/source/basicide
parentc8c11b55456df5b418848ac3159b9f370215bc09 (diff)
Resolves: tdf#145391 insertion code assumes unsorted treeview
so assumed row index doesn't match real insertion point presumably a problem since... commit e8b3df5b9b0eb0a93c25b6dc2e445ae44a7e3f78 Date: Fri Aug 2 14:57:49 2019 +0200 tdf#93476 Sort Macro library list after creating/importing a macro Only set the widget as sorted in the ctor, it remains sorted Change-Id: I6cefc43357f3215a49b33ff18befdc679c1749bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124542 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'basctl/source/basicide')
-rw-r--r--basctl/source/basicide/moduldl2.cxx39
1 files changed, 22 insertions, 17 deletions
diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index 42bcccebd67b..e962eb4e0824 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -622,28 +622,33 @@ void LibPage::InsertLib()
Sequence< OUString > aLibNames = GetMergedLibraryNames( xModLibContImport, xDlgLibContImport );
sal_Int32 nLibCount = aLibNames.getLength();
- const OUString* pLibNames = aLibNames.getConstArray();
- for ( sal_Int32 i = 0 ; i < nLibCount ; i++ )
+ if (nLibCount)
{
// library import dialog
- if (!xLibDlg)
- {
- xLibDlg = std::make_shared<LibDialog>(m_pDialog->getDialog());
- xLibDlg->SetStorageName( aURLObj.getName() );
- }
+ xLibDlg = std::make_shared<LibDialog>(m_pDialog->getDialog());
+ xLibDlg->SetStorageName(aURLObj.getName());
+ weld::TreeView& rView = xLibDlg->GetLibBox();
+ rView.make_unsorted();
- // libbox entries
- OUString aLibName( pLibNames[ i ] );
- if ( !( ( xModLibContImport.is() && xModLibContImport->hasByName( aLibName ) && xModLibContImport->isLibraryLink( aLibName ) ) ||
- ( xDlgLibContImport.is() && xDlgLibContImport->hasByName( aLibName ) && xDlgLibContImport->isLibraryLink( aLibName ) ) ) )
+ const OUString* pLibNames = aLibNames.getConstArray();
+ for (sal_Int32 i = 0 ; i < nLibCount; ++i)
{
- weld::TreeView& rView = xLibDlg->GetLibBox();
- rView.append();
- const int nRow = rView.n_children() - 1;
- rView.set_toggle(nRow, TRISTATE_TRUE);
- rView.set_text(nRow, aLibName, 0);
- rView.set_cursor(rView.find_text(aLibName));
+ // libbox entries
+ OUString aLibName( pLibNames[ i ] );
+ if ( !( ( xModLibContImport.is() && xModLibContImport->hasByName( aLibName ) && xModLibContImport->isLibraryLink( aLibName ) ) ||
+ ( xDlgLibContImport.is() && xDlgLibContImport->hasByName( aLibName ) && xDlgLibContImport->isLibraryLink( aLibName ) ) ) )
+ {
+ rView.append();
+ const int nRow = rView.n_children() - 1;
+ rView.set_toggle(nRow, TRISTATE_TRUE);
+ rView.set_text(nRow, aLibName, 0);
+ }
}
+
+ rView.make_sorted();
+
+ if (rView.n_children())
+ rView.set_cursor(0);
}
if (!xLibDlg)