summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/salvtables.cxx15
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx25
2 files changed, 10 insertions, 30 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index c2f4312aa371..1805559ee3ad 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -1260,17 +1260,14 @@ public:
m_xTreeView->SelectEntryPos(pos);
}
- virtual OUString get_selected() const override
+ virtual std::vector<int> get_selected_rows() const override
{
- return m_xTreeView->GetSelectedEntry();
- }
-
- virtual std::vector<OUString> get_selected_rows() const override
- {
- std::vector<OUString> aRows;
+ std::vector<int> aRows;
- for (sal_Int32 i = 0; i < m_xTreeView->GetSelectedEntryCount(); ++i)
- aRows.push_back(m_xTreeView->GetSelectedEntry(i));
+ sal_Int32 nCount = m_xTreeView->GetSelectedEntryCount();
+ aRows.reserve(nCount);
+ for (sal_Int32 i = 0; i < nCount; ++i)
+ aRows.push_back(m_xTreeView->GetSelectedEntryPos(i));
return aRows;
}
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index e961a9c6f041..62ba6f6590f6 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1944,6 +1944,7 @@ private:
hide();
m_aFunc(GtkToVcl(ret));
+ m_aFunc = nullptr;
m_xDialogController.reset();
}
public:
@@ -3103,34 +3104,16 @@ public:
enable_notify_events();
}
- virtual OUString get_selected() const override
+ virtual std::vector<int> get_selected_rows() const override
{
- assert(gtk_tree_selection_get_mode(gtk_tree_view_get_selection(m_pTreeView)) == GTK_SELECTION_SINGLE);
-
- OUString sRet;
- GtkTreeIter iter;
- GtkTreeModel* pModel;
- if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(m_pTreeView), &pModel, &iter))
- {
- gchar *pStr = nullptr;
- gtk_tree_model_get(pModel, &iter, 0, &pStr, -1);
- sRet = OUString(pStr, pStr ? strlen(pStr) : 0, RTL_TEXTENCODING_UTF8);
- g_free(pStr);
- }
- return sRet;
- }
-
- virtual std::vector<OUString> get_selected_rows() const override
- {
- std::vector<OUString> aRows;
+ std::vector<int> aRows;
GtkTreeModel* pModel;
GList* pList = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(m_pTreeView), &pModel);
for (GList* pItem = g_list_first(pList); pItem; pItem = g_list_next(pItem))
{
GtkTreePath* path = static_cast<GtkTreePath*>(pItem->data);
- int nRow = gtk_tree_path_get_indices(path)[0];
- aRows.push_back(get(nRow));
+ aRows.push_back(gtk_tree_path_get_indices(path)[0]);
}
g_list_free_full(pList, reinterpret_cast<GDestroyNotify>(gtk_tree_path_free));