banshee r4600 - in trunk/banshee: . src/Core/Banshee.ThickClient/Banshee.Preferences.Gui src/Dap/Banshee.Dap/Banshee.Dap
- From: gburt svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r4600 - in trunk/banshee: . src/Core/Banshee.ThickClient/Banshee.Preferences.Gui src/Dap/Banshee.Dap/Banshee.Dap
- Date: Wed, 24 Sep 2008 03:13:13 +0000 (UTC)
Author: gburt
Date: Wed Sep 24 03:13:13 2008
New Revision: 4600
URL: http://svn.gnome.org/viewvc/banshee?rev=4600&view=rev
Log:
2008-09-23 Gabriel Burt <gabriel burt gmail com>
* src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Update the sensitivities of
the library sync prefs when the Manual Sync pref changes, and raise
Updated when that happens too so that the Sync action is immediately
hidden/shown (BGO #552654).
* src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
Fix listening to changes on the Preference and setting the sensitivity and
visibility of the widgets.
Modified:
trunk/banshee/ChangeLog
trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs
trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs
Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs (original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs Wed Sep 24 03:13:13 2008
@@ -41,11 +41,11 @@
if (preference == null) {
return null;
}
+
+ Widget widget = preference.DisplayWidget as Widget;
+ //OnPreferenceChanged (preference);
- Widget display_widget = preference.DisplayWidget as Widget;
- OnPreferenceChanged (preference);
-
- return display_widget ?? GetWidget (preference, preference.GetType ().GetProperty ("Value").PropertyType);
+ return widget ?? GetWidget (preference, preference.GetType ().GetProperty ("Value").PropertyType);
}
private static Widget GetWidget (PreferenceBase preference, Type type)
@@ -58,15 +58,20 @@
}
if (widget != null) {
- preference.Changed += OnPreferenceChanged;
- //widget.Destroyed += OnWidgetDestroyed;
- }
+ preference.Changed += delegate (Root pref) {
+ widget.Sensitive = pref.Sensitive;
+ widget.Visible = pref.Visible;
+ };
- if (preference.ShowDescription) {
- VBox box = new VBox ();
- box.PackStart (widget, false, false, 0);
- new DescriptionLabel (preference.Description).PackInto (box, false);
- widget = box;
+ widget.Sensitive = preference.Sensitive;
+ widget.Visible = preference.Visible;
+
+ if (preference.ShowDescription) {
+ VBox box = new VBox ();
+ box.PackStart (widget, false, false, 0);
+ new DescriptionLabel (preference.Description).PackInto (box, false);
+ widget = box;
+ }
}
return widget;
@@ -80,19 +85,6 @@
return preference.MnemonicWidget as Widget;
}
-
- /*private static void OnWidgetDestroyed (object sender, EventArgs args)
- {
- }*/
-
- private static void OnPreferenceChanged (Root preference)
- {
- Widget widget = preference.DisplayWidget as Widget;
- if (widget != null) {
- widget.Sensitive = preference.Sensitive;
- widget.Visible = preference.Visible;
- }
- }
private class PreferenceCheckButton : CheckButton
{
Modified: trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs (original)
+++ trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs Wed Sep 24 03:13:13 2008
@@ -54,6 +54,7 @@
private SchemaEntry<bool> manually_manage, auto_sync;
private Section dap_prefs_section;
private PreferenceBase manually_manage_pref;//, auto_sync_pref;
+ private SchemaPreference<bool> auto_sync_pref;
private List<Section> pref_sections = new List<Section> ();
private RateLimiter sync_limiter;
@@ -93,6 +94,7 @@
sync_limiter = new RateLimiter (RateLimitedSync);
BuildPreferences ();
BuildSyncLists ();
+ UpdateSensitivities ();
}
public void Dispose ()
@@ -109,8 +111,7 @@
private void BuildPreferences ()
{
- conf_ns = String.Format ("{0}.{1}", dap.ParentConfigurationId, "sync");
-
+ conf_ns = "sync";
manually_manage = dap.CreateSchema<bool> (conf_ns, "enabled", true,
Catalog.GetString ("Manually manage this device"),
Catalog.GetString ("Manually managing your device means you can drag and drop items onto the device, and manually remove them.")
@@ -127,7 +128,9 @@
manually_manage_pref = dap_prefs_section.Add (manually_manage);
manually_manage_pref.ShowDescription = true;
manually_manage_pref.ShowLabel = false;
- SchemaPreference<bool> auto_sync_pref = dap_prefs_section.Add (auto_sync);
+ manually_manage_pref.ValueChanged += OnManuallyManageChanged;
+
+ auto_sync_pref = dap_prefs_section.Add (auto_sync);
auto_sync_pref.ValueChanged += OnAutoSyncChanged;
//manually_manage_pref.Changed += OnEnabledChanged;
@@ -160,18 +163,21 @@
dap.TracksDeleted += OnDapChanged;
}
- /*private void OnEnabledChanged (Root pref)
+ private void OnManuallyManageChanged (Root preference)
{
- Console.WriteLine ("got manual mng changed, Enabled = {0}", Enabled);
- auto_sync_pref.Sensitive = Enabled;
- foreach (Section section in pref_sections) {
- if (section != dap_prefs_section) {
- section.Sensitive = Enabled;
- }
- }
+ UpdateSensitivities ();
OnUpdated ();
- }*/
+ }
+ private void UpdateSensitivities ()
+ {
+ bool sync_enabled = Enabled;
+ auto_sync_pref.Sensitive = sync_enabled;
+ foreach (DapLibrarySync lib_sync in library_syncs) {
+ lib_sync.PrefsSection.Sensitive = sync_enabled;
+ }
+ }
+
private void OnAutoSyncChanged (Root preference)
{
if (AutoSync) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]