commit 37409bdc562c1e9318d31ece3cbd9fad223dcce5
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Sun Oct 17 20:38:10 2010 +0100

    Sorttab display preference for sorting
    
    * Adds preference panel for changing the sort order to filter tabs
    
    * Removes randomize and alphabetize actions as sorting now controlled
      exclusively in the preference window.

 libgtkpod/gtkpod_app_iface.c                       |   12 --
 libgtkpod/gtkpod_app_iface.h                       |    3 -
 libgtkpod/misc.h                                   |    1 -
 libgtkpod/misc_playlist.c                          |   15 --
 plugins/playlist_display/playlist_display.glade    |    2 +-
 plugins/playlist_display/playlist_display.ui       |    1 -
 .../playlist_display/playlist_display_actions.c    |    4 -
 .../playlist_display/playlist_display_actions.h    |    1 -
 .../playlist_display_context_menu.c                |   12 --
 plugins/playlist_display/plugin.c                  |    8 -
 plugins/sorttab_display/display_sorttabs.c         |    2 +-
 plugins/sorttab_display/plugin.c                   |    1 -
 plugins/sorttab_display/sorttab_display.glade      |  184 +++++++++++++++++++-
 .../sorttab_display/sorttab_display_context_menu.c |   29 ---
 .../sorttab_display/sorttab_display_preferences.c  |   42 +++++
 plugins/track_display/display_tracks.c             |   10 -
 plugins/track_display/plugin.c                     |    1 -
 17 files changed, 227 insertions(+), 101 deletions(-)
---
diff --git a/libgtkpod/gtkpod_app_iface.c b/libgtkpod/gtkpod_app_iface.c
index 7c6f9cf..00b8699 100644
--- a/libgtkpod/gtkpod_app_iface.c
+++ b/libgtkpod/gtkpod_app_iface.c
@@ -66,9 +66,6 @@ static void gtkpod_app_base_init(GtkPodAppInterface* klass) {
         gtkpod_app_signals[TRACK_ADDED]
                 = g_signal_new(SIGNAL_TRACK_ADDED, G_OBJECT_CLASS_TYPE 
(klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, 
G_TYPE_NONE, 1, G_TYPE_POINTER);
 
-        gtkpod_app_signals[TRACKS_REORDERED]
-                = g_signal_new(SIGNAL_TRACKS_REORDERED, G_OBJECT_CLASS_TYPE 
(klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, 
G_TYPE_NONE, 0);
-
         gtkpod_app_signals[SORT_ENABLEMENT]
                 = g_signal_new(SIGNAL_SORT_ENABLEMENT, G_OBJECT_CLASS_TYPE 
(klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, 
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
 
@@ -400,15 +397,6 @@ void gtkpod_broadcast_preference_change(gchar 
*preference_name, gint value) {
     g_signal_emit(gtkpod_app, gtkpod_app_signals[PREFERENCE_CHANGE], 0, 
preference_name, value);
 }
 
-void gtkpod_tracks_reordered() {
-    g_return_if_fail (GTKPOD_IS_APP(gtkpod_app));
-    g_return_if_fail (gtkpod_get_current_playlist());
-
-    gtkpod_set_displayed_tracks(gtkpod_get_current_playlist()->members);
-
-    g_signal_emit(gtkpod_app, gtkpod_app_signals[TRACKS_REORDERED], 0);
-}
-
 /**
  * Register functions for the exporting of tracks, according to the
  * given contract. Used by the exported plugin to register its
diff --git a/libgtkpod/gtkpod_app_iface.h b/libgtkpod/gtkpod_app_iface.h
index cc1a565..3c6fcf7 100644
--- a/libgtkpod/gtkpod_app_iface.h
+++ b/libgtkpod/gtkpod_app_iface.h
@@ -63,7 +63,6 @@
 #define SIGNAL_ITDB_REMOVED "signal_itdb_removed"
 #define SIGNAL_SORT_ENABLEMENT "signal_sort_enablement"
 #define SIGNAL_PREFERENCE_CHANGE "signal_preference_change"
-#define SIGNAL_TRACKS_REORDERED "signal_tracks_reordered"
 #define SIGNAL_ITDB_DATA_CHANGED "signal_data_changed"
 #define SIGNAL_ITDB_DATA_SAVED "signal_data_saved"
 
@@ -96,7 +95,6 @@ enum
     TRACK_ADDED,
     TRACK_REMOVED,
     TRACK_UPDATED,
-    TRACKS_REORDERED,
     PLAYLIST_SELECTED,
     PLAYLIST_ADDED,
     PLAYLIST_REMOVED,
@@ -195,7 +193,6 @@ void gtkpod_set_selected_tracks(GList *tracks);
 void gtkpod_track_added(Track *track);
 void gtkpod_track_removed(Track *track);
 void gtkpod_track_updated(Track *track);
-void gtkpod_tracks_reordered();
 
 void gtkpod_set_sort_enablement(gboolean enable);
 gboolean gtkpod_get_sort_enablement();
diff --git a/libgtkpod/misc.h b/libgtkpod/misc.h
index 6206a54..a53a189 100644
--- a/libgtkpod/misc.h
+++ b/libgtkpod/misc.h
@@ -129,7 +129,6 @@ gchar *filename_from_uri (const char *uri,
 
 Playlist *generate_displayed_playlist (void);
 Playlist *generate_selected_playlist (void);
-void randomize_current_playlist (void);
 Playlist *generate_random_playlist (iTunesDB *itdb);
 Playlist *generate_not_listed_playlist (iTunesDB *itdb);
 Playlist *generate_playlist_with_name (iTunesDB *itdb, GList *tracks,
diff --git a/libgtkpod/misc_playlist.c b/libgtkpod/misc_playlist.c
index 0964aa2..0a5ad75 100644
--- a/libgtkpod/misc_playlist.c
+++ b/libgtkpod/misc_playlist.c
@@ -248,21 +248,6 @@ Playlist *generate_random_playlist(iTunesDB *itdb) {
     return new_pl;
 }
 
-void randomize_current_playlist(void) {
-    Playlist *pl = gtkpod_get_current_playlist();
-
-    if (!pl) {
-        message_sb_no_playlist_selected();
-        return;
-    }
-
-    gtkpod_set_selected_tracks(NULL);
-
-    itdb_playlist_randomize(pl);
-
-    gtkpod_tracks_reordered();
-}
-
 static void not_listed_make_track_list(gpointer key, gpointer track, gpointer 
tracks) {
     *(GList **) tracks = g_list_append(*(GList **) tracks, (Track *) track);
 }
diff --git a/plugins/playlist_display/playlist_display.glade 
b/plugins/playlist_display/playlist_display.glade
index 0f5a727..45936a5 100644
--- a/plugins/playlist_display/playlist_display.glade
+++ b/plugins/playlist_display/playlist_display.glade
@@ -153,7 +153,7 @@
                         </child>
                         <child>
                           <widget class="GtkCheckButton" 
id="pm_cfg_case_sensitive">
-                            <property name="label" translatable="yes">Case 
sensitive sorting</property>
+                            <property name="label" translatable="yes">Case 
sensitive sorting (setting affects all sorting)</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
diff --git a/plugins/playlist_display/playlist_display.ui 
b/plugins/playlist_display/playlist_display.ui
index f987cc3..a85e1b8 100644
--- a/plugins/playlist_display/playlist_display.ui
+++ b/plugins/playlist_display/playlist_display.ui
@@ -47,7 +47,6 @@
                     <menuitem name="One for each Year" 
action="ActionNewOnePerYearPlaylist"/> <!-- on_pl_for_each_year_activate -->
                     <menuitem name="One for each Rating" 
action="ActionNewOnePerRatingPlaylist"/> <!-- on_pl_for_each_rating_activate -->
                                </menu>
-                               <menuitem name="Randomize Current Playlist" 
action="ActionRandomizeCurrentPlaylist"/>
                                <separator/>
             </placeholder>
                </menu>
diff --git a/plugins/playlist_display/playlist_display_actions.c 
b/plugins/playlist_display/playlist_display_actions.c
index eebff5d..e335687 100644
--- a/plugins/playlist_display/playlist_display_actions.c
+++ b/plugins/playlist_display/playlist_display_actions.c
@@ -585,7 +585,3 @@ void on_sync_playlist_with_dirs(GtkAction *action, 
PlaylistDisplayPlugin* plugin
         sync_playlist(gtkpod_get_current_playlist(), NULL, 
KEY_SYNC_CONFIRM_DIRS, 0, KEY_SYNC_DELETE_TRACKS, 0, KEY_SYNC_CONFIRM_DELETE, 
0, KEY_SYNC_SHOW_SUMMARY, 0);
     }
 }
-
-void on_randomize_current_playlist(GtkAction *action, PlaylistDisplayPlugin* 
plugin) {
-    randomize_current_playlist();
-}
diff --git a/plugins/playlist_display/playlist_display_actions.h 
b/plugins/playlist_display/playlist_display_actions.h
index 8b7ecc9..799e5f0 100644
--- a/plugins/playlist_display/playlist_display_actions.h
+++ b/plugins/playlist_display/playlist_display_actions.h
@@ -69,6 +69,5 @@ void 
on_delete_selected_playlist_including_tracks_from_device(GtkAction *action,
 void on_update_selected_playlist (GtkAction *action, PlaylistDisplayPlugin* 
plugin);
 void on_update_mserv_selected_playlist (GtkAction *action, 
PlaylistDisplayPlugin* plugin);
 void on_sync_playlist_with_dirs(GtkAction *action, PlaylistDisplayPlugin* 
plugin);
-void on_randomize_current_playlist(GtkAction *action, PlaylistDisplayPlugin* 
plugin);
 
 #endif
diff --git a/plugins/playlist_display/playlist_display_context_menu.c 
b/plugins/playlist_display/playlist_display_context_menu.c
index 34c5048..84214c1 100644
--- a/plugins/playlist_display/playlist_display_context_menu.c
+++ b/plugins/playlist_display/playlist_display_context_menu.c
@@ -221,12 +221,6 @@ static void eject_ipod(GtkMenuItem *mi, gpointer data) {
     gp_eject_ipod(itdb);
 }
 
-static void randomize_playlist(GtkMenuItem *mi, gpointer data) {
-    g_return_if_fail (gtkpod_get_current_playlist());
-
-    randomize_current_playlist();
-}
-
 static GtkWidget *add_edit_ipod_properties(GtkWidget *menu) {
     if (!gtkpod_has_repository_editor())
         return menu;
@@ -274,10 +268,6 @@ static GtkWidget *add_eject_ipod(GtkWidget *menu) {
     return hookup_menu_item(menu, _("Eject iPod"), GTK_STOCK_DISCONNECT, 
G_CALLBACK (eject_ipod), NULL);
 }
 
-static GtkWidget *add_randomize_playlist(GtkWidget *menu) {
-    return hookup_menu_item(menu, _("Randomize Tracks"), GTK_STOCK_DISCONNECT, 
G_CALLBACK (randomize_playlist), NULL);
-}
-
 void pm_context_menu_init(void) {
     GtkWidget *menu = NULL;
     Playlist *pl;
@@ -309,7 +299,6 @@ void pm_context_menu_init(void) {
         if (eitdb->itdb_imported) {
             add_play_now(menu);
             add_enqueue(menu);
-            add_randomize_playlist(menu);
             add_update_tracks_from_file(menu);
             if (!pl->is_spl) {
                 add_sync_playlist_with_dirs(menu);
@@ -349,7 +338,6 @@ void pm_context_menu_init(void) {
     if (itdb->usertype & GP_ITDB_TYPE_LOCAL) {
         add_play_now(menu);
         add_enqueue(menu);
-        add_randomize_playlist(menu);
         add_update_tracks_from_file(menu);
         if (!pl->is_spl) {
             add_sync_playlist_with_dirs(menu);
diff --git a/plugins/playlist_display/plugin.c 
b/plugins/playlist_display/plugin.c
index f64045d..e7b0b9e 100644
--- a/plugins/playlist_display/plugin.c
+++ b/plugins/playlist_display/plugin.c
@@ -282,14 +282,6 @@ static GtkActionEntry playlist_actions[] =
             NULL,
             NULL,
             G_CALLBACK (on_update_mserv_selected_playlist)
-        },
-        {
-            "ActionRandomizeCurrentPlaylist",
-            NULL,
-            N_("Randomize Current Playlist"),
-            NULL,
-            NULL,
-            G_CALLBACK (on_randomize_current_playlist)
         }
     };
 
diff --git a/plugins/sorttab_display/display_sorttabs.c 
b/plugins/sorttab_display/display_sorttabs.c
index 3bdee6b..18c6a86 100644
--- a/plugins/sorttab_display/display_sorttabs.c
+++ b/plugins/sorttab_display/display_sorttabs.c
@@ -1787,7 +1787,7 @@ void st_sort(GtkSortType order) {
     for (i = 0; i < prefs_get_int("sort_tab_num"); ++i)
         st_sort_inst(i, order);
 
-    gtkpod_tracks_reordered();
+//    gtkpod_tracks_reordered();
 }
 
 gint st_get_sorttab_page_number(int inst) {
diff --git a/plugins/sorttab_display/plugin.c b/plugins/sorttab_display/plugin.c
index f45bf6e..dd6bee4 100644
--- a/plugins/sorttab_display/plugin.c
+++ b/plugins/sorttab_display/plugin.c
@@ -184,7 +184,6 @@ static gboolean 
activate_sorttab_display_plugin(AnjutaPlugin *plugin) {
     g_signal_connect (gtkpod_app, SIGNAL_TRACK_REMOVED, G_CALLBACK 
(sorttab_display_track_removed_cb), NULL);
     g_signal_connect (gtkpod_app, SIGNAL_TRACK_UPDATED, G_CALLBACK 
(sorttab_display_track_updated_cb), NULL);
     g_signal_connect (gtkpod_app, SIGNAL_PREFERENCE_CHANGE, G_CALLBACK 
(sorttab_display_preference_changed_cb), NULL);
-    g_signal_connect (gtkpod_app, SIGNAL_TRACKS_REORDERED, G_CALLBACK 
(sorttab_display_tracks_reordered_cb), NULL);
 
     anjuta_shell_add_widget(plugin->shell, sorttab_display_plugin->st_paned, 
"SorttabDisplayPlugin", "Track Filter", NULL, ANJUTA_SHELL_PLACEMENT_CENTER, 
NULL);
     return TRUE; /* FALSE if activation failed */
diff --git a/plugins/sorttab_display/sorttab_display.glade 
b/plugins/sorttab_display/sorttab_display.glade
index 0fea304..2fdb882 100644
--- a/plugins/sorttab_display/sorttab_display.glade
+++ b/plugins/sorttab_display/sorttab_display.glade
@@ -11,12 +11,14 @@
     <child>
       <widget class="GtkVBox" id="vbox43">
         <property name="visible">True</property>
+        <property name="orientation">vertical</property>
         <property name="spacing">6</property>
         <child>
           <widget class="GtkVBox" id="vbox7">
             <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>
             <property name="border_width">6</property>
+            <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
               <widget class="GtkLabel" id="label63">
@@ -105,6 +107,7 @@ Added
                 <child>
                   <widget class="GtkVBox" id="vbox44">
                     <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
                       <widget class="GtkLabel" id="label57">
@@ -125,6 +128,7 @@ Added
                     <child>
                       <widget class="GtkVBox" id="lower_cal_box">
                         <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
                         <property name="spacing">6</property>
                         <child>
                           <widget class="GtkCalendar" id="lower_cal">
@@ -247,6 +251,7 @@ Added
                 <child>
                   <widget class="GtkVBox" id="vbox47">
                     <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
                       <widget class="GtkLabel" id="label58">
@@ -267,6 +272,7 @@ Added
                     <child>
                       <widget class="GtkVBox" id="upper_cal_box">
                         <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
                         <property name="spacing">6</property>
                         <child>
                           <widget class="GtkCalendar" id="upper_cal">
@@ -458,6 +464,7 @@ Added
         <child>
           <widget class="GtkVBox" id="vbox37">
             <property name="visible">True</property>
+            <property name="orientation">vertical</property>
             <property name="spacing">18</property>
             <child>
               <widget class="GtkHBox" id="hbox20">
@@ -2176,7 +2183,6 @@ Added
                         <property name="visible">True</property>
                         <property name="border_width">12</property>
                         <property name="orientation">vertical</property>
-                        <property name="spacing">18</property>
                         <child>
                           <widget class="GtkHBox" id="hbox1">
                             <property name="visible">True</property>
@@ -2248,9 +2254,185 @@ Added
                 </child>
               </widget>
               <packing>
+                <property name="expand">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
+            <child>
+              <widget class="GtkFrame" id="frame4">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <widget class="GtkAlignment" id="alignment14">
+                    <property name="visible">True</property>
+                    <property name="top_padding">6</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <widget class="GtkVBox" id="vbox2">
+                        <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
+                        <property name="spacing">10</property>
+                        <child>
+                          <widget class="GtkHBox" id="hbox30">
+                            <property name="visible">True</property>
+                            <child>
+                              <widget class="GtkTable" id="table1">
+                                <property name="visible">True</property>
+                                <property name="border_width">5</property>
+                                <property name="n_rows">2</property>
+                                <property name="n_columns">3</property>
+                                <child>
+                                  <widget class="GtkLabel" id="label82">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="label" 
translatable="yes">&lt;b&gt;Ascending&lt;/b&gt;</property>
+                                    <property name="use_markup">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="y_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkLabel" id="label85">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="label" 
translatable="yes">&lt;b&gt;Descending&lt;/b&gt;</property>
+                                    <property name="use_markup">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="left_attach">2</property>
+                                    <property name="right_attach">3</property>
+                                    <property name="y_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkRadioButton" 
id="st_ascend">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property 
name="receives_default">False</property>
+                                    <property 
name="draw_indicator">True</property>
+                                    <property name="group">st_none</property>
+                                    <signal name="toggled" 
handler="on_st_ascend_toggled"/>
+                                    <child>
+                                      <widget class="GtkImage" id="image1928">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="stock">gtk-sort-ascending</property>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkRadioButton" 
id="st_descend">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property 
name="receives_default">False</property>
+                                    <property 
name="draw_indicator">True</property>
+                                    <property name="group">st_none</property>
+                                    <signal name="toggled" 
handler="on_st_descend_toggled"/>
+                                    <child>
+                                      <widget class="GtkImage" id="image1929">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="stock">gtk-sort-descending</property>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="left_attach">2</property>
+                                    <property name="right_attach">3</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkLabel" id="label86">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="label" 
translatable="yes">&lt;b&gt;None&lt;/b&gt;</property>
+                                    <property name="use_markup">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="y_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkRadioButton" id="st_none">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property 
name="receives_default">False</property>
+                                    <property name="active">True</property>
+                                    <property 
name="draw_indicator">True</property>
+                                    <signal name="toggled" 
handler="on_st_none_toggled"/>
+                                    <child>
+                                      <widget class="GtkImage" id="image1930">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="stock">gtk-undo</property>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options"></property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" 
id="st_cfg_case_sensitive">
+                            <property name="label" translatable="yes">Case 
sensitive sorting (setting affects all sorting)</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="has_tooltip">True</property>
+                            <property name="tooltip" translatable="yes">If 
checked, sorting will be case sensitive. Please note that case sensitive 
sorting will not work well with most charsets.</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label7">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Filter 
Sort Order&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="type">label_item</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
           </widget>
         </child>
         <child>
diff --git a/plugins/sorttab_display/sorttab_display_context_menu.c 
b/plugins/sorttab_display/sorttab_display_context_menu.c
index 4ea6232..f210484 100644
--- a/plugins/sorttab_display/sorttab_display_context_menu.c
+++ b/plugins/sorttab_display/sorttab_display_context_menu.c
@@ -45,34 +45,6 @@
 
 static gint entry_inst = -1;
 
-/**
- * alphabetize - alphabetize the currently selected entry
- * sort tab). The sort order is being cycled through.
- * @mi - the menu item selected
- * @data - should be the inst number
- */
-static void alphabetize(GtkMenuItem *mi, gpointer data) {
-    gint inst = GPOINTER_TO_INT(data);
-    if (st_get_selected_entry(inst)) {
-        switch (prefs_get_int("st_sort")) {
-        case SORT_ASCENDING:
-            prefs_set_int("st_sort", SORT_DESCENDING);
-            break;
-        case SORT_DESCENDING:
-            prefs_set_int("st_sort", SORT_NONE);
-            break;
-        case SORT_NONE:
-            prefs_set_int("st_sort", SORT_ASCENDING);
-            break;
-        }
-        st_sort(prefs_get_int("st_sort"));
-    }
-}
-
-static GtkWidget *add_alphabetize(GtkWidget *menu, gint inst) {
-    return hookup_menu_item(menu, _("Alphabetize"), GTK_STOCK_SORT_ASCENDING, 
G_CALLBACK (alphabetize), GINT_TO_POINTER(inst));
-}
-
 /* deletes the currently selected entry from the current playlist
  @inst: selected entry of which instance?
  @delete_full: if true, member songs are removed from the iPod
@@ -304,7 +276,6 @@ void st_context_menu_init(gint inst) {
     if (!pl->is_spl) {
         add_sync_playlist_with_dirs(menu);
     }
-    add_alphabetize(menu, inst);
     add_separator(menu);
     if (itdb->usertype & GP_ITDB_TYPE_IPOD) {
         add_delete_entry_from_ipod(menu);
diff --git a/plugins/sorttab_display/sorttab_display_preferences.c 
b/plugins/sorttab_display/sorttab_display_preferences.c
index 493c877..23013ac 100644
--- a/plugins/sorttab_display/sorttab_display_preferences.c
+++ b/plugins/sorttab_display/sorttab_display_preferences.c
@@ -31,6 +31,7 @@
 #include "libgtkpod/misc.h"
 #include "libgtkpod/prefs.h"
 #include "libgtkpod/directories.h"
+#include "libgtkpod/gp_private.h"
 #include "plugin.h"
 #include "display_sorttabs.h"
 
@@ -54,9 +55,31 @@ G_MODULE_EXPORT void on_group_compilations_toggled 
(GtkToggleButton *sender, gpo
     st_show_visible();
 }
 
+G_MODULE_EXPORT void on_st_ascend_toggled(GtkToggleButton *togglebutton, 
gpointer user_data) {
+    if (gtk_toggle_button_get_active(togglebutton))
+        st_sort(SORT_ASCENDING);
+}
+
+G_MODULE_EXPORT void on_st_descend_toggled(GtkToggleButton *togglebutton, 
gpointer user_data) {
+    if (gtk_toggle_button_get_active(togglebutton))
+        st_sort(SORT_DESCENDING);
+}
+
+G_MODULE_EXPORT void on_st_none_toggled(GtkToggleButton *togglebutton, 
gpointer user_data) {
+    if (gtk_toggle_button_get_active(togglebutton))
+        st_sort(SORT_NONE);
+}
+
+G_MODULE_EXPORT void on_st_sort_case_sensitive_toggled(GtkToggleButton 
*togglebutton, gpointer user_data) {
+    gboolean val = gtk_toggle_button_get_active(togglebutton);
+    prefs_set_int("case_sensitive", val);
+    gtkpod_broadcast_preference_change("case_sensitive", val);
+}
+
 GtkWidget *init_sorttab_preferences() {
     GtkWidget *notebook;
     GladeXML *pref_xml;
+    GtkWidget *w;
 
     gchar *glade_path = g_build_filename(get_glade_dir(), 
"sorttab_display.glade", NULL);
     pref_xml = gtkpod_xml_new(glade_path, "sorttab_settings_notebook");
@@ -64,6 +87,25 @@ GtkWidget *init_sorttab_preferences() {
     g_object_ref(notebook);
     g_free(glade_path);
 
+    switch (prefs_get_int("pm_sort")) {
+    case SORT_ASCENDING:
+        w = gtkpod_xml_get_widget(pref_xml, "st_ascend");
+        break;
+    case SORT_DESCENDING:
+        w = gtkpod_xml_get_widget(pref_xml, "st_descend");
+        break;
+    default:
+        w = gtkpod_xml_get_widget(pref_xml, "st_none");
+        break;
+    }
+
+    if (w)
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
+
+    if ((w = gtkpod_xml_get_widget(pref_xml, "st_cfg_case_sensitive"))) {
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), 
prefs_get_int("case_sensitive"));
+    }
+
     glade_xml_signal_autoconnect(pref_xml);
 
     return notebook;
diff --git a/plugins/track_display/display_tracks.c 
b/plugins/track_display/display_tracks.c
index ac48ab2..1025656 100644
--- a/plugins/track_display/display_tracks.c
+++ b/plugins/track_display/display_tracks.c
@@ -1190,7 +1190,6 @@ void tm_rows_reordered(void) {
          sort tabs */
         if (changed) {
             data_changed(itdb);
-            gtkpod_tracks_reordered();
         }
     }
 }
@@ -2455,12 +2454,3 @@ void track_display_preference_changed_cb(GtkPodApp *app, 
gpointer pfname, gint32
     }
 }
 
-void track_display_tracks_reordered_cb(GtkPodApp *app, gpointer data) {
-    if (prefs_get_int("tm_autostore")) {
-        prefs_set_int("tm_autostore", FALSE);
-        gtkpod_warning(_("Auto Store of track view disabled.\n\n"));
-    }
-
-    tm_adopt_order();
-}
-
diff --git a/plugins/track_display/plugin.c b/plugins/track_display/plugin.c
index 8bd0187..9d8c28d 100644
--- a/plugins/track_display/plugin.c
+++ b/plugins/track_display/plugin.c
@@ -135,7 +135,6 @@ static gboolean activate_track_display_plugin(AnjutaPlugin 
*plugin) {
     g_signal_connect (gtkpod_app, SIGNAL_TRACK_REMOVED, G_CALLBACK 
(track_display_track_removed_cb), NULL);
     g_signal_connect (gtkpod_app, SIGNAL_TRACK_UPDATED, G_CALLBACK 
(track_display_track_updated_cb), NULL);
     g_signal_connect (gtkpod_app, SIGNAL_PREFERENCE_CHANGE, G_CALLBACK 
(track_display_preference_changed_cb), NULL);
-    g_signal_connect (gtkpod_app, SIGNAL_TRACKS_REORDERED, G_CALLBACK 
(track_display_tracks_reordered_cb), NULL);
 
     gtk_widget_show_all(track_display_plugin->track_window);
     anjuta_shell_add_widget(plugin->shell, track_display_plugin->track_window, 
"TrackDisplayPlugin", "Playlist Tracks", NULL, ANJUTA_SHELL_PLACEMENT_TOP, 
NULL);

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to