changeset 589:a437571d0fc5

Work on GUI and filter config code.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 22 Mar 2007 15:55:02 +0000
parents 15d511ab290a
children 7d94e9e5dfb7
files src/xs_config.c src/xs_genui.h xmms-sid.glade
diffstat 3 files changed, 229 insertions(+), 84 deletions(-) [+]
line wrap: on
line diff
--- a/src/xs_config.c	Thu Mar 22 15:14:03 2007 +0000
+++ b/src/xs_config.c	Thu Mar 22 15:55:02 2007 +0000
@@ -54,6 +54,7 @@
 #define XS_CFG_GET_BOOL		xmms_cfg_read_boolean
 #endif
 #include <stdio.h>
+#include <ctype.h>
 #include "xs_glade.h"
 #include "xs_interface.h"
 #include "xs_support.h"
@@ -65,10 +66,20 @@
 static GtkWidget *xs_configwin = NULL,
 	*xs_sldb_fileselector = NULL,
 	*xs_stil_fileselector = NULL,
-	*xs_hvsc_pathselector = NULL;
+	*xs_hvsc_selector = NULL,
+	*xs_filt_importselector = NULL,
+	*xs_filt_exportselector = NULL;
 
 #define LUW(x)	lookup_widget(xs_configwin, x)
 
+#define XS_DEF_WINDOW_DELETE(ME, MV)	\
+gboolean xs_ ## ME ## _delete(GtkWidget * w, GdkEvent * e, gpointer d) {	\
+	(void) w; (void) e; (void) d;						\
+	if (xs_ ## MV ) { gtk_widget_destroy(xs_ ## MV ); xs_ ## MV = NULL; }	\
+	return FALSE;								\
+}
+
+
 
 /*
  * Configuration specific stuff
@@ -372,12 +383,31 @@
 static gboolean xs_filters_import(gchar *pcFilename, t_xs_sid2_filter **pFilters, gint *nFilters)
 {
 	FILE *inFile;
+	gchar inLine[XS_BUF_SIZE];
+	size_t lineNum;
 	t_xs_sid2_filter *f;
 	
-	if ((inFile = fopen(pcFilename, "rb")) == NULL)
+	if ((inFile = fopen(pcFilename, "ra")) == NULL)
 		return FALSE;
 	
-	
+	lineNum = 0;
+	while (fgets(inLine, XS_BUF_SIZE, inFile) != NULL) {
+		size_t linePos = 0;
+		lineNum++;
+		
+		xs_findnext(inLine, &linePos);
+fprintf(stderr, ":'%s'\n", &inLine[linePos]);
+		if (isalpha(inLine[linePos])) {
+			/* A new key/value pair */
+			
+		} else if (inLine[linePos] == '[') {
+			/* New filter(?) section starts */
+			
+		} else if ((inLine[linePos] != ';') && (inLine[linePos] != 0)) {
+			/* Syntax error */
+			return FALSE;
+		}
+	}
 	
 	fclose(inFile);
 	return FALSE;
@@ -391,7 +421,7 @@
 	gint n;
 	
 	/* Open/create the file */
-	if ((outFile = fopen(pcFilename, "wb")) == NULL)
+	if ((outFile = fopen(pcFilename, "wa")) == NULL)
 		return FALSE;
 	
 	/* Write each filter spec in "INI"-style format */
@@ -641,7 +671,7 @@
 
 /* HVSC songlength-database file selector response-functions
  */
-void xs_cfg_sld_dbbrowse(GtkButton * button, gpointer user_data)
+void xs_cfg_sldb_browse(GtkButton * button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
@@ -651,7 +681,7 @@
 		return;
 	}
 
-	xs_sldb_fileselector = create_xs_sldbfileselector();
+	xs_sldb_fileselector = create_xs_sldb_fs();
 	XS_MUTEX_LOCK(xs_cfg);
 	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_sldb_fileselector), xs_cfg.songlenDBPath);
 	XS_MUTEX_UNLOCK(xs_cfg);
@@ -659,7 +689,7 @@
 }
 
 
-void xs_cfg_sldb_fs_ok(GtkButton *button, gpointer user_data)
+void xs_sldb_fs_ok(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
@@ -674,16 +704,20 @@
 }
 
 
-void xs_cfg_sldb_fs_cancel(GtkButton *button, gpointer user_data)
+void xs_sldb_fs_cancel(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
+	
 	/* Close file selector window */
 	gtk_widget_destroy(xs_sldb_fileselector);
 	xs_sldb_fileselector = NULL;
 }
 
 
+XS_DEF_WINDOW_DELETE(sldb_fs, sldb_fileselector)
+
+
 /* STIL-database file selector response-functions
  */
 void xs_cfg_stil_browse(GtkButton * button, gpointer user_data)
@@ -696,7 +730,7 @@
 		return;
 	}
 
-	xs_stil_fileselector = create_xs_stilfileselector();
+	xs_stil_fileselector = create_xs_stil_fs();
 	XS_MUTEX_LOCK(xs_cfg);
 	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_stil_fileselector), xs_cfg.stilDBPath);
 	XS_MUTEX_UNLOCK(xs_cfg);
@@ -704,7 +738,7 @@
 }
 
 
-void xs_cfg_stil_fs_ok(GtkButton *button, gpointer user_data)
+void xs_stil_fs_ok(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
@@ -719,7 +753,7 @@
 }
 
 
-void xs_cfg_stil_fs_cancel(GtkButton *button, gpointer user_data)
+void xs_stil_fs_cancel(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
@@ -730,6 +764,9 @@
 }
 
 
+XS_DEF_WINDOW_DELETE(stil_fs, stil_fileselector)
+
+
 /* HVSC location selector response-functions
  */
 void xs_cfg_hvsc_browse(GtkButton * button, gpointer user_data)
@@ -737,45 +774,48 @@
 	(void) button;
 	(void) user_data;
 
-	if (xs_hvsc_pathselector != NULL) {
-		gdk_window_raise(xs_hvsc_pathselector->window);
+	if (xs_hvsc_selector != NULL) {
+		gdk_window_raise(xs_hvsc_selector->window);
 		return;
 	}
 
-	xs_hvsc_pathselector = create_xs_hvscpathselector();
+	xs_hvsc_selector = create_xs_hvsc_fs();
 	XS_MUTEX_LOCK(xs_cfg);
-	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_hvsc_pathselector), xs_cfg.hvscPath);
+	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_hvsc_selector), xs_cfg.hvscPath);
 	XS_MUTEX_UNLOCK(xs_cfg);
-	gtk_widget_show(xs_hvsc_pathselector);
+	gtk_widget_show(xs_hvsc_selector);
 }
 
 
-void xs_cfg_hvsc_fs_ok(GtkButton *button, gpointer user_data)
+void xs_hvsc_fs_ok(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
 
 	/* Selection was accepted! */
 	gtk_entry_set_text(GTK_ENTRY(LUW("cfg_hvsc_path")),
-			   gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_hvsc_pathselector)));
+			   gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_hvsc_selector)));
 
 	/* Close file selector window */
-	gtk_widget_destroy(xs_hvsc_pathselector);
-	xs_hvsc_pathselector = NULL;
+	gtk_widget_destroy(xs_hvsc_selector);
+	xs_hvsc_selector = NULL;
 }
 
 
-void xs_cfg_hvsc_fs_cancel(GtkButton *button, gpointer user_data)
+void xs_hvsc_fs_cancel(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
 
 	/* Close file selector window */
-	gtk_widget_destroy(xs_hvsc_pathselector);
-	xs_hvsc_pathselector = NULL;
+	gtk_widget_destroy(xs_hvsc_selector);
+	xs_hvsc_selector = NULL;
 }
 
 
+XS_DEF_WINDOW_DELETE(hvsc_fs, hvsc_selector)
+
+
 /* Filter handling
  */
 void xs_cfg_sp1_filter_reset(GtkButton * button, gpointer user_data)
@@ -789,22 +829,56 @@
 }
 
 
+void xs_cfg_sp2_filter_update(XSCurve *curve, t_xs_sid2_filter *f)
+{
+	assert(curve);
+	assert(f);
+	
+	xs_curve_reset(curve);
+	xs_curve_set_range(curve, 0,0, XS_SIDPLAY2_NFPOINTS, XS_SIDPLAY2_FMAX);
+	xs_curve_set_points(curve, f->points, f->npoints);
+}
+
+
+void xs_cfg_sp2_presets_update()
+{
+}
+
+
 void xs_cfg_sp2_filter_load(GtkButton *button, gpointer user_data)
 {
+	gchar *tmpStr;
+	gint i, j;
+	
 	(void) button;
 	(void) user_data;
-	/*
-	1) get currently selected item from dropdown
-	2) set current filter to that
-	*/
+	
+	XS_MUTEX_LOCK(xs_cfg);
+	
+	tmpStr = gtk_entry_get_text(GTK_ENTRY(LUW("cfg_sp2_filter_combo_entry")));
+	for (i = 0, j = -1; i < xs_cfg.sid2NFilterPresets; i++) {
+		if (!strcmp(tmpStr, xs_cfg.sid2FilterPresets[i]->name)) {
+			j = i;
+			break;
+		}
+	}
 	
+	if (j != -1) {
+		fprintf(stderr, "Updating from '%s'\n", tmpStr);
+		xs_cfg_sp2_filter_update(
+			XS_CURVE(LUW("cfg_sp2_filter_curve")),
+			xs_cfg.sid2FilterPresets[i]);
+	} else {
+		/* error/warning: no such filter preset */
+		fprintf(stderr, "No such filter preset '%s'!\n", tmpStr);
+	}
+	
+	XS_MUTEX_UNLOCK(xs_cfg);
 }
 
 
 void xs_cfg_sp2_filter_save(GtkButton *button, gpointer user_data)
 {
-	(void) button;
-	(void) user_data;
 	/*
 	1) check if textentry matches any current filter name
 		yes) ask if saving over ok?
@@ -812,6 +886,32 @@
 		
 	2) save current filter to the name		
 	*/
+	
+	gchar *tmpStr;
+	gint i, j;
+	
+	(void) button;
+	(void) user_data;
+	
+	XS_MUTEX_LOCK(xs_cfg);
+	
+	tmpStr = gtk_entry_get_text(GTK_ENTRY(LUW("cfg_sp2_filter_combo_entry")));
+	for (i = 0, j = -1; i < xs_cfg.sid2NFilterPresets; i++) {
+		if (!strcmp(tmpStr, xs_cfg.sid2FilterPresets[i]->name)) {
+			j = i;
+			break;
+		}
+	}
+	
+	if (j != -1) {
+		fprintf(stderr, "found, confirm overwrite?\n");
+	}
+	
+	fprintf(stderr, "saving!\n");
+	
+	xs_cfg_sp2_presets_update();
+	
+	XS_MUTEX_UNLOCK(xs_cfg);
 }
 
 
@@ -835,6 +935,19 @@
 	2) import
 	3) change name if already existing
 	*/
+
+	if (xs_filt_importselector != NULL) {
+		gdk_window_raise(xs_filt_importselector->window);
+		return;
+	}
+
+	xs_filt_importselector = create_xs_filter_import_fs();
+/*
+	XS_MUTEX_LOCK(xs_cfg);
+	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_filt_importselector), "paska");
+	XS_MUTEX_UNLOCK(xs_cfg);
+*/
+	gtk_widget_show(xs_filt_importselector);
 }
 
 
@@ -853,6 +966,12 @@
 {
 	(void) button;
 	(void) user_data;
+
+	xs_cfg_sp2_presets_update();
+
+	/* Close file selector window */
+	gtk_widget_destroy(xs_filt_importselector);
+	xs_filt_importselector = NULL;
 }
 
 
@@ -860,13 +979,24 @@
 {
 	(void) button;
 	(void) user_data;
+
+	/* Close file selector window */
+	gtk_widget_destroy(xs_filt_importselector);
+	xs_filt_importselector = NULL;
 }
 
 
+XS_DEF_WINDOW_DELETE(filter_import_fs, filt_importselector)
+
+
 void xs_filter_export_fs_ok(GtkButton *button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
+
+	/* Close file selector window */
+	gtk_widget_destroy(xs_filt_exportselector);
+	xs_filt_exportselector = NULL;
 }
 
 
@@ -874,9 +1004,16 @@
 {
 	(void) button;
 	(void) user_data;
+
+	/* Close file selector window */
+	gtk_widget_destroy(xs_filt_exportselector);
+	xs_filt_exportselector = NULL;
 }
 
 
+XS_DEF_WINDOW_DELETE(filter_export_fs, filt_exportselector)
+
+
 /* Selection toggle handlers
  */
 void xs_cfg_emu_filters_toggled(GtkToggleButton * togglebutton, gpointer user_data)
@@ -965,7 +1102,7 @@
 }
 
 
-void xs_cfg_sld_enable_toggled(GtkToggleButton * togglebutton, gpointer user_data)
+void xs_cfg_sldb_enable_toggled(GtkToggleButton * togglebutton, gpointer user_data)
 {
 	gboolean isActive = GTK_TOGGLE_BUTTON(togglebutton)->active;
 
@@ -1040,19 +1177,7 @@
 }
 
 
-gboolean xs_configwin_delete(GtkWidget * widget, GdkEvent * event, gpointer user_data)
-{
-	(void) widget;
-	(void) event;
-	(void) user_data;
-	
-	XSDEBUG("config::delete_event\n");
-	if (xs_configwin) {
-		gtk_widget_destroy(xs_configwin);
-		xs_configwin = NULL;
-	}
-	return FALSE;
-}
+XS_DEF_WINDOW_DELETE(configwin, configwin)
 
 
 /* Execute the configuration panel
@@ -1077,14 +1202,9 @@
 	XS_MUTEX_LOCK(xs_cfg);
 
 	/* Create the custom filter curve widget for libSIDPlay2 */
+	xs_cfg_sp2_presets_update();
 	tmpCurve = xs_curve_new();
-	xs_curve_reset(XS_CURVE(tmpCurve));
-	xs_curve_set_range(XS_CURVE(tmpCurve),
-		0,0, XS_SIDPLAY2_NFPOINTS, XS_SIDPLAY2_FMAX);
-
-	xs_curve_set_points(XS_CURVE(tmpCurve),
-		xs_cfg.sid2Filter.points, xs_cfg.sid2Filter.npoints);
-	
+	xs_cfg_sp2_filter_update(XS_CURVE(tmpCurve), &xs_cfg.sid2Filter);
 	gtk_widget_set_name(tmpCurve, "cfg_sp2_filter_curve");
 	gtk_widget_ref(tmpCurve);
 	gtk_object_set_data_full(GTK_OBJECT(xs_configwin),
@@ -1127,7 +1247,7 @@
 	xs_cfg_oversample_toggled((GtkToggleButton *) LUW("cfg_oversample"), NULL);
 	xs_cfg_mintime_enable_toggled((GtkToggleButton *) LUW("cfg_mintime_enable"), NULL);
 	xs_cfg_maxtime_enable_toggled((GtkToggleButton *) LUW("cfg_maxtime_enable"), NULL);
-	xs_cfg_sld_enable_toggled((GtkToggleButton *) LUW("cfg_sld_enable"), NULL);
+	xs_cfg_sldb_enable_toggled((GtkToggleButton *) LUW("cfg_sld_enable"), NULL);
 	xs_cfg_stil_enable_toggled((GtkToggleButton *) LUW("cfg_stil_enable"), NULL);
 	xs_cfg_subauto_enable_toggled((GtkToggleButton *) LUW("cfg_subauto_enable"), NULL);
 	xs_cfg_subauto_min_only_toggled((GtkToggleButton *) LUW("cfg_subauto_min_only"), NULL);
--- a/src/xs_genui.h	Thu Mar 22 15:14:03 2007 +0000
+++ b/src/xs_genui.h	Thu Mar 22 15:55:02 2007 +0000
@@ -1,6 +1,11 @@
 #include <gtk/gtk.h>
 
 
+gboolean
+xs_configwin_delete                    (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
 void
 xs_cfg_oversample_toggled              (GtkToggleButton *togglebutton,
                                         gpointer         user_data);
@@ -22,6 +27,10 @@
                                         gpointer         user_data);
 
 void
+xs_cfg_sp2_filter_export               (GtkButton       *button,
+                                        gpointer         user_data);
+
+void
 xs_cfg_sp2_filter_load                 (GtkButton       *button,
                                         gpointer         user_data);
 
@@ -34,7 +43,7 @@
                                         gpointer         user_data);
 
 void
-xs_cfg_sp2_filter_export               (GtkButton       *button,
+xs_cfg_sp2_filter_delete               (GtkButton       *button,
                                         gpointer         user_data);
 
 void
@@ -54,11 +63,11 @@
                                         gpointer         user_data);
 
 void
-xs_cfg_sld_enable_toggled              (GtkToggleButton *togglebutton,
+xs_cfg_sldb_enable_toggled             (GtkToggleButton *togglebutton,
                                         gpointer         user_data);
 
 void
-xs_cfg_sld_dbbrowse                    (GtkButton       *button,
+xs_cfg_sldb_browse                     (GtkButton       *button,
                                         gpointer         user_data);
 
 void
@@ -110,28 +119,48 @@
 xs_fileinfo_ok                         (GtkButton       *button,
                                         gpointer         user_data);
 
-void
-xs_cfg_sldb_fs_ok                      (GtkButton       *button,
+gboolean
+xs_sldb_fs_delete                      (GtkWidget       *widget,
+                                        GdkEvent        *event,
                                         gpointer         user_data);
 
 void
-xs_cfg_sldb_fs_cancel                  (GtkButton       *button,
+xs_sldb_fs_ok                          (GtkButton       *button,
+                                        gpointer         user_data);
+
+void
+xs_sldb_fs_cancel                      (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_stil_fs_delete                      (GtkWidget       *widget,
+                                        GdkEvent        *event,
                                         gpointer         user_data);
 
 void
-xs_cfg_stil_fs_ok                      (GtkButton       *button,
+xs_stil_fs_ok                          (GtkButton       *button,
                                         gpointer         user_data);
 
 void
-xs_cfg_stil_fs_cancel                  (GtkButton       *button,
+xs_stil_fs_cancel                      (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_hvsc_fs_delete                      (GtkWidget       *widget,
+                                        GdkEvent        *event,
                                         gpointer         user_data);
 
 void
-xs_cfg_hvsc_fs_ok                      (GtkButton       *button,
+xs_hvsc_fs_ok                          (GtkButton       *button,
                                         gpointer         user_data);
 
 void
-xs_cfg_hvsc_fs_cancel                  (GtkButton       *button,
+xs_hvsc_fs_cancel                      (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_filter_import_fs_delete             (GtkWidget       *widget,
+                                        GdkEvent        *event,
                                         gpointer         user_data);
 
 void
@@ -142,6 +171,11 @@
 xs_filter_import_fs_cancel             (GtkButton       *button,
                                         gpointer         user_data);
 
+gboolean
+xs_filter_export_fs_delete             (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
 void
 xs_filter_export_fs_ok                 (GtkButton       *button,
                                         gpointer         user_data);
@@ -149,12 +183,3 @@
 void
 xs_filter_export_fs_cancel             (GtkButton       *button,
                                         gpointer         user_data);
-
-void
-xs_cfg_sp2_filter_delete               (GtkButton       *button,
-                                        gpointer         user_data);
-
-gboolean
-xs_configwin_delete                    (GtkWidget       *widget,
-                                        GdkEvent        *event,
-                                        gpointer         user_data);
--- a/xmms-sid.glade	Thu Mar 22 15:14:03 2007 +0000
+++ b/xmms-sid.glade	Thu Mar 22 15:55:02 2007 +0000
@@ -1619,7 +1619,7 @@
 	      <can_focus>True</can_focus>
 	      <signal>
 		<name>toggled</name>
-		<handler>xs_cfg_sld_enable_toggled</handler>
+		<handler>xs_cfg_sldb_enable_toggled</handler>
 		<last_modification_time>Wed, 18 Aug 2004 02:51:47 GMT</last_modification_time>
 	      </signal>
 	      <label>Use XSIDPLAY-compatible database</label>
@@ -1683,7 +1683,7 @@
 		<can_focus>True</can_focus>
 		<signal>
 		  <name>clicked</name>
-		  <handler>xs_cfg_sld_dbbrowse</handler>
+		  <handler>xs_cfg_sldb_browse</handler>
 		  <last_modification_time>Sat, 18 Aug 2001 23:38:10 GMT</last_modification_time>
 		</signal>
 		<label>Browse</label>
@@ -2976,11 +2976,11 @@
 
 <widget>
   <class>GtkFileSelection</class>
-  <name>xs_sldbfileselector</name>
+  <name>xs_sldb_fs</name>
   <border_width>10</border_width>
   <signal>
     <name>delete_event</name>
-    <handler>xs_sldbfileselector_delete</handler>
+    <handler>xs_sldb_fs_delete</handler>
     <last_modification_time>Thu, 22 Mar 2007 15:08:51 GMT</last_modification_time>
   </signal>
   <title>Select HVSC song length database</title>
@@ -3000,7 +3000,7 @@
     <can_focus>True</can_focus>
     <signal>
       <name>clicked</name>
-      <handler>xs_cfg_sldb_fs_ok</handler>
+      <handler>xs_sldb_fs_ok</handler>
       <last_modification_time>Sat, 19 Oct 2002 22:50:48 GMT</last_modification_time>
     </signal>
     <label>OK</label>
@@ -3015,7 +3015,7 @@
     <can_focus>True</can_focus>
     <signal>
       <name>clicked</name>
-      <handler>xs_cfg_sldb_fs_cancel</handler>
+      <handler>xs_sldb_fs_cancel</handler>
       <last_modification_time>Sat, 19 Oct 2002 22:50:54 GMT</last_modification_time>
     </signal>
     <label>Cancel</label>
@@ -3025,11 +3025,11 @@
 
 <widget>
   <class>GtkFileSelection</class>
-  <name>xs_stilfileselector</name>
+  <name>xs_stil_fs</name>
   <border_width>10</border_width>
   <signal>
     <name>delete_event</name>
-    <handler>xs_stilfileselector_delete</handler>
+    <handler>xs_stil_fs_delete</handler>
     <last_modification_time>Thu, 22 Mar 2007 15:09:06 GMT</last_modification_time>
   </signal>
   <title>Select STIL-database </title>
@@ -3049,7 +3049,7 @@
     <can_focus>True</can_focus>
     <signal>
       <name>clicked</name>
-      <handler>xs_cfg_stil_fs_ok</handler>
+      <handler>xs_stil_fs_ok</handler>
       <last_modification_time>Sat, 19 Oct 2002 22:50:38 GMT</last_modification_time>
     </signal>
     <label>OK</label>
@@ -3064,7 +3064,7 @@
     <can_focus>True</can_focus>
     <signal>
       <name>clicked</name>
-      <handler>xs_cfg_stil_fs_cancel</handler>
+      <handler>xs_stil_fs_cancel</handler>
       <last_modification_time>Sat, 19 Oct 2002 22:51:00 GMT</last_modification_time>
     </signal>
     <label>Cancel</label>
@@ -3074,11 +3074,11 @@
 
 <widget>
   <class>GtkFileSelection</class>
-  <name>xs_hvscpathselector</name>
+  <name>xs_hvsc_fs</name>
   <border_width>10</border_width>
   <signal>
     <name>delete_event</name>
-    <handler>xs_hvscpathselector_delete</handler>
+    <handler>xs_hvsc_fs_delete</handler>
     <last_modification_time>Thu, 22 Mar 2007 15:09:24 GMT</last_modification_time>
   </signal>
   <title>Select HVSC location prefix</title>
@@ -3098,7 +3098,7 @@
     <can_focus>True</can_focus>
     <signal>
       <name>clicked</name>
-      <handler>xs_cfg_hvsc_fs_ok</handler>
+      <handler>xs_hvsc_fs_ok</handler>
       <last_modification_time>Wed, 14 Jan 2004 14:36:41 GMT</last_modification_time>
     </signal>
     <label>OK</label>
@@ -3113,7 +3113,7 @@
     <can_focus>True</can_focus>
     <signal>
       <name>clicked</name>
-      <handler>xs_cfg_hvsc_fs_cancel</handler>
+      <handler>xs_hvsc_fs_cancel</handler>
       <last_modification_time>Wed, 14 Jan 2004 14:37:04 GMT</last_modification_time>
     </signal>
     <label>Cancel</label>