summary refs log tree commit diff stats
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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);
 }