f-spot r4110 - in trunk/src: . UI.Dialog Widgets
- From: sdelcroix svn gnome org
- To: svn-commits-list gnome org
- Subject: f-spot r4110 - in trunk/src: . UI.Dialog Widgets
- Date: Thu, 26 Jun 2008 21:28:58 +0000 (UTC)
Author: sdelcroix
Date: Thu Jun 26 21:28:57 2008
New Revision: 4110
URL: http://svn.gnome.org/viewvc/f-spot?rev=4110&view=rev
Log:
use a MenuButton and a hierachical TagMenu for tag selection in the Prefrences dialog. Fixes bgo538875
Modified:
trunk/src/UI.Dialog/PreferenceDialog.cs
trunk/src/Widgets/MenuButton.cs
trunk/src/f-spot.glade
Modified: trunk/src/UI.Dialog/PreferenceDialog.cs
==============================================================================
--- trunk/src/UI.Dialog/PreferenceDialog.cs (original)
+++ trunk/src/UI.Dialog/PreferenceDialog.cs Thu Jun 26 21:28:57 2008
@@ -13,6 +13,8 @@
using System.Collections.Generic;
using Gtk;
+using FSpot.Widgets;
+
namespace FSpot.UI.Dialog {
#if FALSE
public class ProfileList : TreeStore {
@@ -41,7 +43,7 @@
[Glade.Widget] private ComboBox display_combo;
[Glade.Widget] private ComboBox destination_combo;
#endif
- [Glade.Widget] private OptionMenu tag_option;
+ [Glade.Widget] private HBox tagselectionhbox;
[Glade.Widget] private Button set_saver_button;
[Glade.Widget] private FileChooserButton photosdir_chooser;
[Glade.Widget] private RadioButton screensaverall_radio;
@@ -55,7 +57,7 @@
[Glade.Widget] private Table theme_table;
[Glade.Widget] private Button refreshtheme_button;
private ComboBox themelist_combo;
-
+ private MenuButton tag_button;
private static PreferenceDialog prefs = null;
@@ -66,6 +68,7 @@
public PreferenceDialog () : base ("main_preferences")
{
+ tag_button = new MenuButton ();
LoadPreference (Preferences.METADATA_EMBED_IN_IMAGE);
LoadPreference (Preferences.SCREENSAVER_TAG);
LoadPreference (Preferences.GNOME_SCREENSAVER_THEME);
@@ -94,15 +97,13 @@
destination_combo.SetCellDataFunc (desc_cell, new CellLayoutDataFunc (ProfileList.ProfileDescriptionDataFunc));
destination_combo.Changed += HandleDisplayChanged;
#endif
- Tag t = MainWindow.Toplevel.Database.Tags.GetTagById (screensaver_tag);
TagMenu tagmenu = new TagMenu (null, MainWindow.Toplevel.Database.Tags);
- tagmenu.Populate (true);
- tag_option.Menu = tagmenu;
+ tagmenu.Populate (false);
- int history = tagmenu.GetPosition (t);
- if (history >= 0)
- tag_option.SetHistory ((uint)history);
+ tag_button.Menu = tagmenu;
+ tag_button.ShowAll ();
+ tagselectionhbox.Add (tag_button);
tagmenu.TagSelected += HandleTagMenuSelected;
set_saver_button.Clicked += HandleUseFSpot;
@@ -166,6 +167,7 @@
#endif
private void HandleTagMenuSelected (Tag t)
{
+ tag_button.Label = t.Name;
screensaver_tag = (int) t.Id;
Preferences.Set (Preferences.SCREENSAVER_TAG, (int) t.Id);
}
@@ -178,11 +180,11 @@
private void ToggleTagRadio (object o, System.EventArgs e)
{
- tag_option.Sensitive = (screensavertagged_radio.Active);
+ tag_button.Sensitive = (screensavertagged_radio.Active);
if (screensaverall_radio.Active)
Preferences.Set (Preferences.SCREENSAVER_TAG, 0);
else
- HandleTagMenuSelected (((tag_option.Menu as Menu).Active as TagMenu.TagMenuItem).Value);
+ HandleTagMenuSelected (((tag_button.Menu as Menu).Active as TagMenu.TagMenuItem).Value);
}
void ToggleThemeRadio (object o, EventArgs e)
@@ -280,9 +282,11 @@
}
if (screensaver_tag == 0) {
screensaverall_radio.Active = true;
- tag_option.Sensitive = false;
+ tag_button.Sensitive = false;
} else {
screensavertagged_radio.Active = true;
+ Tag t = MainWindow.Toplevel.Database.Tags.GetTagById (screensaver_tag);
+ tag_button.Label = t.Name;
}
break;
case Preferences.GNOME_SCREENSAVER_THEME:
Modified: trunk/src/Widgets/MenuButton.cs
==============================================================================
--- trunk/src/Widgets/MenuButton.cs (original)
+++ trunk/src/Widgets/MenuButton.cs Thu Jun 26 21:28:57 2008
@@ -39,13 +39,16 @@
}
public MenuButton () : this (null)
- {}
+ {
+ }
public MenuButton (string label) : this (label, null)
- {}
+ {
+ }
public MenuButton (string label, Menu menu) : this (label, menu, ArrowType.Down)
- {}
+ {
+ }
public MenuButton (string label, Menu menu, ArrowType arrow_type) : base ()
{
Modified: trunk/src/f-spot.glade
==============================================================================
--- trunk/src/f-spot.glade (original)
+++ trunk/src/f-spot.glade Thu Jun 26 21:28:57 2008
@@ -6169,7 +6169,7 @@
</widget>
</child>
<child>
- <widget class="GtkHBox" id="hbox6">
+ <widget class="GtkHBox" id="tagselectionhbox">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
@@ -6189,14 +6189,7 @@
</packing>
</child>
<child>
- <widget class="GtkOptionMenu" id="tag_option">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
+ <placeholder/>
</child>
</widget>
<packing>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]