summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBerke Viktor <bviktor@hexchat.org>2013-04-28 04:12:00 +0200
committerBerke Viktor <bviktor@hexchat.org>2013-04-28 04:12:00 +0200
commita3ba8d575e972ec1ee18b29007c58276625e77d3 (patch)
treed24cef9943468d4704dfcdce4aff14fd4e7dbce3
parentea48d18130e6266a8492ff53a459f3dc68b387e9 (diff)
Store just the filename if the sound file comes from the default sound dir
And get rid of some hardcoding while we're at it
-rw-r--r--src/common/cfgfiles.c2
-rw-r--r--src/common/cfgfiles.h2
-rw-r--r--src/common/text.c2
-rw-r--r--src/fe-gtk/setup.c16
4 files changed, 18 insertions, 4 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c
index 4ceb35b2..4e7dad5f 100644
--- a/src/common/cfgfiles.c
+++ b/src/common/cfgfiles.c
@@ -840,7 +840,7 @@ load_config (void)
 		g_mkdir (buf, 0700);
 		g_free (buf);
 
-		buf = g_build_filename (get_xdir (), "sounds", NULL);
+		buf = g_build_filename (get_xdir (), HEXCHAT_SOUND_DIR, NULL);
 		g_mkdir (buf, 0700);
 		g_free (buf);
 	}
diff --git a/src/common/cfgfiles.h b/src/common/cfgfiles.h
index 3feb6a31..103466f3 100644
--- a/src/common/cfgfiles.h
+++ b/src/common/cfgfiles.h
@@ -69,4 +69,6 @@ struct prefs
 #define TYPE_INT 1
 #define TYPE_BOOL 2
 
+#define HEXCHAT_SOUND_DIR "sounds"
+
 #endif
diff --git a/src/common/text.c b/src/common/text.c
index 3fb69dc9..98ddd775 100644
--- a/src/common/text.c
+++ b/src/common/text.c
@@ -2231,7 +2231,7 @@ sound_play (const char *file, gboolean quiet)
 	}
 	else
 	{
-		wavfile = g_build_filename (get_xdir (), "sounds", file, NULL);
+		wavfile = g_build_filename (get_xdir (), HEXCHAT_SOUND_DIR, file, NULL);
 	}
 
 	if (g_access (wavfile, R_OK) == 0)
diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c
index 6a057e39..28b05d2c 100644
--- a/src/fe-gtk/setup.c
+++ b/src/fe-gtk/setup.c
@@ -1618,14 +1618,26 @@ setup_snd_filereq_cb (GtkWidget *entry, char *file)
 	if (file)
 	{
 		if (file[0])
-			gtk_entry_set_text (GTK_ENTRY (entry), file);
+		{
+			/* Use just the filename if the given sound file is in the default <config>/sounds directory.
+			 * We're comparing absolute paths so this won't work in portable mode which uses a relative path.
+			 */
+			if (!strcmp (g_path_get_dirname (file), g_build_filename (get_xdir (), HEXCHAT_SOUND_DIR, NULL)))
+			{
+				gtk_entry_set_text (GTK_ENTRY (entry), g_path_get_basename (file));
+			}
+			else
+			{
+				gtk_entry_set_text (GTK_ENTRY (entry), file);
+			}
+		}
 	}
 }
 
 static void
 setup_snd_browse_cb (GtkWidget *button, GtkEntry *entry)
 {
-	char *sounds_dir = g_build_filename (get_xdir (), "sounds", NULL);
+	char *sounds_dir = g_build_filename (get_xdir (), HEXCHAT_SOUND_DIR, NULL);
 	gtkutil_file_req (_("Select a sound file"), setup_snd_filereq_cb, entry, sounds_dir, NULL, FRF_FILTERISINITIAL);
 	g_free (sounds_dir);
 }