Re: [Banshee-List] [banshee] [AddinView] Update model when a checkbox is toggled



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.

Gabriel

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.
>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]