diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-01-15 11:15:50 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-01-15 22:14:39 +0100 |
commit | 07b224028963a3ce9c1a0401c0dc9fb4538d515e (patch) | |
tree | 1649f1bf5f1fb1e539f03f89bd95109b78024086 /vcl | |
parent | d479d1694897bdb2588f38c4d231220efb4eb229 (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.cxx | 7 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 19 |
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); } |