summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-01-15 11:15:50 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-01-15 22:14:39 +0100
commit07b224028963a3ce9c1a0401c0dc9fb4538d515e (patch)
tree1649f1bf5f1fb1e539f03f89bd95109b78024086 /vcl
parentd479d1694897bdb2588f38c4d231220efb4eb229 (diff)
Related: tdf#122627 auto detect of toggle column doesn't work
so remove it and explicitly state what column contains the toggle Change-Id: I58fb12a4b8fa9eeb9c038f796e48b0aeaa0b2404 Reviewed-on: https://gerrit.libreoffice.org/66379 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/salvtables.cxx7
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx19
2 files changed, 10 insertions, 16 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 19af48748b34..828468d23a70 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2208,8 +2208,6 @@ public:
virtual bool get_toggle(int pos, int col) const override
{
SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
- if (col == -1)
- return m_xTreeView->GetCheckButtonState(pEntry) == SvButtonState::Checked;
++col; //skip dummy/expander column
@@ -2225,11 +2223,6 @@ public:
virtual void set_toggle(int pos, bool bOn, int col) override
{
SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
- if (col == -1)
- {
- m_xTreeView->SetCheckButtonState(pEntry, bOn ? SvButtonState::Checked : SvButtonState::Unchecked);
- return;
- }
bool bRadio = std::find(m_aRadioIndexes.begin(), m_aRadioIndexes.end(), col) != m_aRadioIndexes.end();
++col; //skip dummy/expander column
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index bb9e7a3fa8e9..2031622a77ef 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -4818,8 +4818,9 @@ private:
GtkTreeView* m_pTreeView;
GtkTreeStore* m_pTreeStore;
std::unique_ptr<comphelper::string::NaturalStringSorter> m_xSorter;
+ // map from toggle column to toggle visibility column
+ std::map<int, int> m_aToggleVisMap;
gint m_nTextCol;
- gint m_nToggleCol;
gint m_nImageCol;
gint m_nExpanderImageCol;
gint m_nIdCol;
@@ -5009,7 +5010,6 @@ public:
, m_pTreeView(pTreeView)
, m_pTreeStore(GTK_TREE_STORE(gtk_tree_view_get_model(m_pTreeView)))
, m_nTextCol(-1)
- , m_nToggleCol(-1)
, m_nImageCol(-1)
, m_nExpanderImageCol(-1)
, m_nChangedSignalId(g_signal_connect(gtk_tree_view_get_selection(pTreeView), "changed",
@@ -5030,10 +5030,9 @@ public:
m_nTextCol = nIndex;
else if (GTK_IS_CELL_RENDERER_TOGGLE(pCellRenderer))
{
- if (m_nToggleCol == -1)
- m_nToggleCol = nIndex;
g_object_set_data(G_OBJECT(pCellRenderer), "g-lo-CellIndex", reinterpret_cast<gpointer>(nIndex));
g_signal_connect(G_OBJECT(pCellRenderer), "toggled", G_CALLBACK(signalCellToggled), this);
+ m_aToggleVisMap[nIndex] = -1;
}
else if (GTK_IS_CELL_RENDERER_PIXBUF(pCellRenderer))
{
@@ -5048,7 +5047,11 @@ public:
g_list_free(pRenderers);
}
g_list_free(pColumns);
- m_nIdCol = nIndex;
+ m_nIdCol = nIndex++;
+ for (auto& a : m_aToggleVisMap)
+ {
+ a.second = nIndex++;
+ }
}
virtual void set_column_fixed_widths(const std::vector<int>& rWidths) override
@@ -5263,15 +5266,13 @@ public:
virtual bool get_toggle(int pos, int col) const override
{
- if (col == -1)
- return get_bool(pos, m_nToggleCol);
return get_bool(pos, col);
}
virtual void set_toggle(int pos, bool bOn, int col) override
{
- if (col == -1)
- return set(pos, m_nToggleCol, bOn);
+ // checkbuttons are invisible until toggled on or off
+ set(pos, m_aToggleVisMap[col], true);
return set(pos, col, bOn);
}