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