Re: [Banshee-List] [banshee] [AddinView] Update model when a checkbox is toggled
- From: Gabriel Burt <gabriel burt gmail com>
- To: banshee-list gnome org
- Subject: Re: [Banshee-List] [banshee] [AddinView] Update model when a checkbox is toggled
- Date: Sun, 11 Apr 2010 23:18:27 -0700
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]