On Sun, 2010-04-11 at 23:18 -0700, Gabriel Burt wrote: > Hey Bertrand, > > Doesn't calling update_model make the TreeView refresh basically, > losing your scroll position and expansion state? Having that happen > when you click to enable/disable an extension doesn't seem good to me. The scroll position is not lost, but I hadn't noticed the problem with the expansion state : all top-level nodes are now expanded when a checkbox is toggled. As my knowledge of the treeview is quite limited, I don't see an easy way to fix this. Suggestions welcome. In any case, I'd have no problem to revert that commit. -- Bertrand > On Sun, Apr 11, 2010 at 8:30 AM, Bertrand Lorentz > <blorentz src gnome org> wrote: > > commit ac7975a59eeafe57ce347e0598166bd9f80e84ed > > Author: Bertrand Lorentz <bertrand lorentz gmail com> > > Date: Sun Apr 11 15:55:09 2010 +0200 > > > > [AddinView] Update model when a checkbox is toggled > > > > Any addins that depend on the one that is disabled are disabled > > automatically, so we need to update the tree view to make that visible. > > We just add a call to update_model () in the Toggled handler, but that > > means the code block has to be moved after the update_model declaration. > > > > .../Banshee.Addins.Gui/AddinView.cs | 31 ++++++++++--------- > > 1 files changed, 16 insertions(+), 15 deletions(-) > > --- > > diff --git a/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs b/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs > > index a921718..22e1a3d 100644 > > --- a/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs > > +++ b/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs > > @@ -89,21 +89,6 @@ namespace Banshee.Addins.Gui > > Model = model > > }; > > > > - var txt_cell = new CellRendererText () { WrapMode = Pango.WrapMode.Word }; > > - tree_view.AppendColumn ("Name", txt_cell , "markup", Columns.Name); > > - > > - var check_cell = new CellRendererToggle () { Activatable = true }; > > - tree_view.AppendColumn ("Enable", check_cell, "visible", Columns.IsAddin, "active", Columns.IsEnabled); > > - check_cell.Toggled += (o, a) => { > > - TreeIter iter; > > - if (model.GetIter (out iter, new TreePath (a.Path))) { > > - var addin = model.GetValue (iter, 3) as Addin; > > - bool enabled = (bool) model.GetValue (iter, 1); > > - addin.Enabled = !enabled; > > - model.SetValue (iter, 1, addin.Enabled); > > - } > > - }; > > - > > var update_model = new System.Action (() => { > > string search = search_entry.Query; > > bool? enabled = filter_combo.Active > 0 ? (bool?) (filter_combo.Active == 1 ? true : false) : null; > > @@ -132,6 +117,22 @@ namespace Banshee.Addins.Gui > > tree_view.ExpandAll (); > > }); > > > > + var txt_cell = new CellRendererText () { WrapMode = Pango.WrapMode.Word }; > > + tree_view.AppendColumn ("Name", txt_cell , "markup", Columns.Name); > > + > > + var check_cell = new CellRendererToggle () { Activatable = true }; > > + tree_view.AppendColumn ("Enable", check_cell, "visible", Columns.IsAddin, "active", Columns.IsEnabled); > > + check_cell.Toggled += (o, a) => { > > + TreeIter iter; > > + if (model.GetIter (out iter, new TreePath (a.Path))) { > > + var addin = model.GetValue (iter, 3) as Addin; > > + bool enabled = (bool) model.GetValue (iter, 1); > > + addin.Enabled = !enabled; > > + model.SetValue (iter, 1, addin.Enabled); > > + update_model (); > > + } > > + }; > > + > > update_model (); > > search_entry.Changed += (o, a) => update_model (); > > filter_combo.Changed += (o, a) => update_model (); > > _______________________________________________ > > commits-list mailing list (read only) > > http://mail.gnome.org/mailman/listinfo/commits-list > > > > Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want. > > > _______________________________________________ > banshee-list mailing list > banshee-list gnome org > http://mail.gnome.org/mailman/listinfo/banshee-list (unsubscribe here)
Attachment:
signature.asc
Description: This is a digitally signed message part