commit 58b5c4b4a51f9387316f9e708b9b31cfed6c1d11
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Wed May 19 21:14:37 2010 +0100

    Fixes more/fewer filter tab actions sensitivity
    
    * Get the actions to enable/disable when sorttab max and mins reached
    
    * TODO list updated with latest progress

 TODO                                              |   15 +++++------
 plugins/sorttab_display/plugin.c                  |   27 ++++++++------------
 plugins/sorttab_display/plugin.h                  |    2 +
 plugins/sorttab_display/sorttab_display.ui        |    2 +
 plugins/sorttab_display/sorttab_display_actions.c |   12 +++++++-
 src/display_sorttabs.c                            |   15 -----------
 6 files changed, 32 insertions(+), 41 deletions(-)
---
diff --git a/TODO b/TODO
index 13cf715..af2a1dd 100644
--- a/TODO
+++ b/TODO
@@ -4,8 +4,7 @@ Prospective Plugins:
        filter bar
 #  track editor
        play tracks now
-    info window
-       help
+#    info window
        synchronizer
        download coverart plugin
        photo panel
@@ -38,12 +37,12 @@ Edit Menu
 - Randomize current playlist
 - Save Displayed track order
 - Repo iPod Options
-- Preferences
+# Preferences
 
 View Menu
-- Info Window
-- More / Fewer filter tabs
-- Arrange Filter Tabs
+# Info Window
+# More / Fewer filter tabs
+# Arrange Filter Tabs (Not creating)
 
 Tools Menu
 - Play Now
@@ -52,8 +51,8 @@ Tools Menu
 - Synchronize All, Contacts, Calendar, Notes
 
 Help Menu
-- Help Contents
-- About box
+# Help Contents
+# About box
 
 Playlists Plugin
 # popup menu
diff --git a/plugins/sorttab_display/plugin.c b/plugins/sorttab_display/plugin.c
index ad7e57c..6e78605 100644
--- a/plugins/sorttab_display/plugin.c
+++ b/plugins/sorttab_display/plugin.c
@@ -48,22 +48,6 @@ static gpointer parent_class;
 static GtkActionEntry sorttab_actions[] =
     {
         {
-            "ActionViewMoreFilterTabs", /* Action name */
-            NULL, /* Stock icon */
-            N_("_More Filter Tabs"), /* Display label */
-            NULL, /* short-cut */
-            NULL, /* Tooltip */
-            G_CALLBACK (on_more_sort_tabs_activate) /* callback */
-        },
-        {
-            "ActionViewFewerFilterTabs", /* Action name */
-            NULL, /* Stock icon */
-            N_("_Fewer Filter Tabs"), /* Display label */
-            NULL, /* short-cut */
-            NULL, /* Tooltip */
-            G_CALLBACK (on_fewer_sort_tabs_activate) /* callback */
-        },
-        {
             "ActionDeleteSelectedEntry",
             GTK_STOCK_DELETE,
             N_("Selected Filter Tab Entry from Playlist"),
@@ -112,6 +96,14 @@ static gboolean 
activate_sorttab_display_plugin(AnjutaPlugin *plugin) {
             = anjuta_ui_add_action_group_entries(ui, 
"ActionGroupSorttabDisplay", _("Sorttab Display"), sorttab_actions, 
G_N_ELEMENTS (sorttab_actions), GETTEXT_PACKAGE, TRUE, plugin);
     sorttab_display_plugin->action_group = action_group;
 
+    sorttab_display_plugin->more_filtertabs_action = gtk_action_new 
("ActionViewMoreFilterTabs", _("More Filter Tabs"), NULL, GTK_STOCK_GO_UP);
+    g_signal_connect(sorttab_display_plugin->more_filtertabs_action, 
"activate", G_CALLBACK(on_more_sort_tabs_activate), sorttab_display_plugin);
+    gtk_action_group_add_action (sorttab_display_plugin->action_group, 
sorttab_display_plugin->more_filtertabs_action);
+
+    sorttab_display_plugin->fewer_filtertabs_action = gtk_action_new 
("ActionViewFewerFilterTabs", _("Fewer Filter Tabs"), NULL, GTK_STOCK_GO_DOWN);
+    g_signal_connect(sorttab_display_plugin->fewer_filtertabs_action, 
"activate", G_CALLBACK(on_fewer_sort_tabs_activate), sorttab_display_plugin);
+    gtk_action_group_add_action (sorttab_display_plugin->action_group, 
sorttab_display_plugin->fewer_filtertabs_action);
+
     /* Merge UI */
     sorttab_display_plugin->uiid = anjuta_ui_merge(ui, UI_FILE);
 
@@ -137,6 +129,9 @@ static gboolean 
deactivate_sorttab_display_plugin(AnjutaPlugin *plugin) {
     sorttab_display_plugin = (SorttabDisplayPlugin*) plugin;
     ui = anjuta_shell_get_ui(plugin->shell, NULL);
 
+    sorttab_display_plugin->more_filtertabs_action = NULL;
+    sorttab_display_plugin->fewer_filtertabs_action = NULL;
+
     /* Remove widgets from Shell */
     anjuta_shell_remove_widget(plugin->shell, 
sorttab_display_plugin->st_paned, NULL);
 
diff --git a/plugins/sorttab_display/plugin.h b/plugins/sorttab_display/plugin.h
index ab974c4..7a60e2d 100644
--- a/plugins/sorttab_display/plugin.h
+++ b/plugins/sorttab_display/plugin.h
@@ -57,6 +57,8 @@ struct _SorttabDisplayPlugin {
     gint uiid;
     GtkActionGroup *action_group;
     GtkWidget *prefs;
+    GtkAction *more_filtertabs_action;
+    GtkAction *fewer_filtertabs_action;
 };
 
 struct _SorttabDisplayPluginClass {
diff --git a/plugins/sorttab_display/sorttab_display.ui 
b/plugins/sorttab_display/sorttab_display.ui
index 532845c..0fa5811 100644
--- a/plugins/sorttab_display/sorttab_display.ui
+++ b/plugins/sorttab_display/sorttab_display.ui
@@ -20,8 +20,10 @@
                </menu>
                <menu name="MenuView" action="ActionMenuView">
                        <placeholder 
name="PlaceholderSorttabDisplayActionMenuView">
+                               <separator/>
                                <menuitem name="More Filter Tabs" 
action="ActionViewMoreFilterTabs"/>
                                <menuitem name="Less Filter Tabs" 
action="ActionViewFewerFilterTabs"/>
+                               <separator/>
                        </placeholder>
                </menu>
        </menubar>
diff --git a/plugins/sorttab_display/sorttab_display_actions.c 
b/plugins/sorttab_display/sorttab_display_actions.c
index 381b9a4..c28dfa5 100644
--- a/plugins/sorttab_display/sorttab_display_actions.c
+++ b/plugins/sorttab_display/sorttab_display_actions.c
@@ -38,13 +38,21 @@
 #include "libgtkpod/file.h"
 
 void on_more_sort_tabs_activate(GtkAction *action, SorttabDisplayPlugin* 
plugin) {
-    prefs_set_int("sort_tab_num", prefs_get_int("sort_tab_num") + 1);
+    int sort_tab_num = prefs_get_int("sort_tab_num") + 1;
+    prefs_set_int("sort_tab_num", sort_tab_num);
     st_show_visible();
+
+    gtk_action_set_sensitive(action, sort_tab_num < SORT_TAB_MAX);
+    gtk_action_set_sensitive(plugin->fewer_filtertabs_action, sort_tab_num > 
0);
 }
 
 void on_fewer_sort_tabs_activate(GtkAction *action, SorttabDisplayPlugin* 
plugin) {
-    prefs_set_int("sort_tab_num", prefs_get_int("sort_tab_num") - 1);
+    int sort_tab_num = prefs_get_int("sort_tab_num") - 1;
+    prefs_set_int("sort_tab_num", sort_tab_num);
     st_show_visible();
+
+    gtk_action_set_sensitive(plugin->more_filtertabs_action, sort_tab_num < 
SORT_TAB_MAX);
+    gtk_action_set_sensitive(action, sort_tab_num > 1);
 }
 
 static void delete_selected_entry(DeleteAction deleteaction, gchar *text) {
diff --git a/src/display_sorttabs.c b/src/display_sorttabs.c
index 4a62cf0..079ed0f 100644
--- a/src/display_sorttabs.c
+++ b/src/display_sorttabs.c
@@ -2285,21 +2285,6 @@ static void st_adjust_visible(void) {
         if (i < PANED_NUM_ST)
             gtk_widget_hide(GTK_WIDGET (st_paned[i]));
     }
-
-    g_message("TODO: Need to work out how to disable more and less sort tab 
actions");
-    //    /* activate / deactiveate "less sort tabs" menu item */
-    //    w = gtkpod_xml_get_widget(main_window_xml, "less_sort_tabs");
-    //    if (n == 0)
-    //        gtk_widget_set_sensitive(w, FALSE);
-    //    else
-    //        gtk_widget_set_sensitive(w, TRUE);
-    //
-    //    /* activate / deactiveate "more sort tabs" menu item */
-    //    w = gtkpod_xml_get_widget(main_window_xml, "more_sort_tabs");
-    //    if (n == SORT_TAB_MAX)
-    //        gtk_widget_set_sensitive(w, FALSE);
-    //    else
-    //        gtk_widget_set_sensitive(w, TRUE);
 }
 
 /* Make the appropriate number of sort tab instances visible */

------------------------------------------------------------------------------

_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to