[Xfce4-commits] <xfce4-mount-plugin:master> extend menu to trim characters
Fabian
noreply at xfce.org
Sun May 13 22:20:04 CEST 2012
Updating branch refs/heads/master
to dedb40d54cc09bf9bd0635ee968db5caa047d6df (commit)
from a5a57fd35316572d645587218a6f70ab01e8cddc (commit)
commit dedb40d54cc09bf9bd0635ee968db5caa047d6df
Author: Fabian <timystery at arcor.de>
Date: Sun May 13 22:14:41 2012 +0200
extend menu to trim characters
configure.ac.in | 4 +-
panel-plugin/devices.c | 14 +++++++----
panel-plugin/mount-plugin.c | 53 +++++++++++++++++++++++++++++++++++++++++-
panel-plugin/mount-plugin.h | 4 +++
4 files changed, 66 insertions(+), 9 deletions(-)
diff --git a/configure.ac.in b/configure.ac.in
index a841703..3219836 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -11,12 +11,12 @@ dnl for Xfce4-panel 4.8 and higher only!
m4_define([mount_version_major], [0])
m4_define([mount_version_minor], [6])
m4_define([mount_version_micro], [3])
-m4_define([mount_version_tag], []) # Leave empty for releases
+m4_define([mount_version_tag], [git]) # Leave empty only for releases, but use 'git' in most cases
m4_define([mount_version_build], [@REVISION@])
m4_define([mount_version], [mount_version_major().mount_version_minor().mount_version_micro()ifelse(mount_version_tag(), [], [], [mount_version_tag()-mount_version_build()])])
AC_INIT([xfce4-mount-plugin], [mount_version],
- [timystery at arcor.de])
+ [timystery at arcor.de])
MOUNT_VERSION=mount_version()
AM_INIT_AUTOMAKE([xfce4-mount-plugin], [$MOUNT_VERSION])
diff --git a/panel-plugin/devices.c b/panel-plugin/devices.c
index f29acda..0e436df 100644
--- a/panel-plugin/devices.c
+++ b/panel-plugin/devices.c
@@ -180,14 +180,18 @@ disk_print (t_disk * pdisk)
}
char *
-shorten_disk_name (const char *dev)
+shorten_disk_name (const char *dev, int len)
{
- char *r, *lastchars;
- if (strncmp(dev, "UUID", 4)==0 && strlen(dev)>13)
+ char *r, *lastchars, *firstchars;
+ //if (strncmp(dev, "UUID", 4)==0 &&
+ if (strlen(dev)>len)
{
+ // we want at least 5 characters at the end so that trimmed UUIDs are still readable
lastchars = (char *) (dev + strlen(dev) - 5);
- r = (char *) malloc (14*sizeof(char));
- snprintf (r, 14, "UUID=...%s", lastchars);
+ firstchars = (char *) malloc (len-5*sizeof(char));
+ snprintf(firstchars, len-5, dev);
+ r = (char *) malloc (len*sizeof(char));
+ snprintf (r, len, "%s…%s", firstchars, lastchars);
}
else
r = g_strdup (dev);
diff --git a/panel-plugin/mount-plugin.c b/panel-plugin/mount-plugin.c
index 894ebf4..036edd4 100644
--- a/panel-plugin/mount-plugin.c
+++ b/panel-plugin/mount-plugin.c
@@ -461,6 +461,8 @@ create_mounter_control (XfcePanelPlugin *plugin)
mounter->umount_command = g_strdup(DEFAULT_UMOUNT_COMMAND);
mounter->on_mount_cmd = g_strdup("");
mounter->excluded_filesystems = g_strdup("");
+ mounter->trim_devicenames = TRUE;
+ mounter->trim_devicename_count = 14;
mounter->message_dialog = FALSE;
mounter->include_NFSs = FALSE;
mounter->exclude_FSs = FALSE;
@@ -550,6 +552,12 @@ mounter_apply_options (t_mounter_dialog *md)
mt->exclude_devicenames = gtk_toggle_button_get_active
(GTK_TOGGLE_BUTTON(md->show_exclude_devicenames));
+
+ mt->trim_devicenames = gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(md->show_trim_devicenames));
+
+ mt->trim_devicename_count = gtk_spin_button_get_value_as_int
+ (GTK_SPIN_BUTTON(md->spin_trim_devicename_count));
if (mt->include_NFSs!=incl_NFSs || mt->exclude_FSs!=excl_FSs
|| strlen(mt->excluded_filesystems)!=0) {
@@ -641,6 +649,17 @@ exclude_devicenames_toggled (GtkWidget *widget, t_mounter_dialog *md)
return TRUE;
}*/
+static gboolean
+trim_devicenames_toggled (GtkWidget *widget, t_mounter_dialog *md)
+{
+ gboolean val;
+
+ val = gtk_check_button_get_active(GTK_CHECK_BUTTON(widget));
+ gtk_widget_set_sensitive(GTK_WIDGET(md->show_trim_devicenames), !val);
+
+ return TRUE;
+}
+
static void
mounter_create_options (XfcePanelPlugin *plugin, t_mounter *mt)
{
@@ -910,7 +929,36 @@ mounter_create_options (XfcePanelPlugin *plugin, t_mounter *mt)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(md->show_exclude_devicenames),
mt->exclude_devicenames);
-
+ /* Trim device names */
+ _eventbox = gtk_event_box_new ();
+ gtk_box_pack_start (GTK_BOX (_vbox), GTK_WIDGET(_eventbox),
+ FALSE, FALSE, 0);
+ gtk_widget_show (_eventbox);
+ gtk_tooltips_set_tip ( GTK_TOOLTIPS(tip), _eventbox,
+ _("Trim the device names to the number of characters specified in the spin button."),
+ NULL );
+ _hbox = gtk_hbox_new (FALSE, BORDER);
+ gtk_widget_show (_hbox);
+ gtk_container_add (GTK_CONTAINER (_eventbox), _hbox );
+ gtk_widget_set_sensitive(GTK_WIDGET(_hbox), !mt->exclude_devicenames);
+ md->show_trim_devicenames = gtk_check_button_new_with_mnemonic (
+ _("Trim device names: ") );
+ gtk_widget_show (md->show_trim_devicenames);
+ gtk_box_pack_start (GTK_BOX (_hbox), GTK_WIDGET(md->show_trim_devicenames),
+ FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(md->show_trim_devicenames),
+ mt->trim_devicenames);
+
+ _label = gtk_label_new(_(" characters"));
+ gtk_widget_show (_label);
+ gtk_box_pack_end (GTK_BOX (_hbox), GTK_WIDGET(_label),
+ FALSE, FALSE, 0);
+ md->spin_trim_devicename_count = gtk_spin_button_new_with_range (5.0, 99.0, 1.0);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(md->spin_trim_devicename_count), (double) mt->trim_devicename_count);
+ gtk_widget_show (md->spin_trim_devicename_count);
+ gtk_box_pack_end (GTK_BOX (_hbox), GTK_WIDGET(md->spin_trim_devicename_count),
+ FALSE, FALSE, 0);
+
/* Exclude file systems */
_eventbox = gtk_event_box_new ();
@@ -961,7 +1009,7 @@ mounter_show_about(XfcePanelPlugin *plugin, t_mounter *mt)
GdkPixbuf *icon;
const gchar *auth[] = { "Jean-Baptiste Dulong",
"Fabian Nowak <timystery at arcor.de>",
- "Landry Breuil <landry at xfce.org>", NULL };
+ "Landry Breuil <landry at xfce.org>", NULL };
icon = xfce_panel_pixbuf_from_source("drive-harddisk", NULL, 32);
gtk_show_about_dialog(NULL,
"logo", icon,
@@ -972,6 +1020,7 @@ mounter_show_about(XfcePanelPlugin *plugin, t_mounter *mt)
"website", "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin",
"copyright", _("Copyright (c) 2005-2012\n"),
"authors", auth, NULL);
+ // TODO: add translators.
if(icon)
g_object_unref(G_OBJECT(icon));
diff --git a/panel-plugin/mount-plugin.h b/panel-plugin/mount-plugin.h
index 54f7181..c35a75c 100644
--- a/panel-plugin/mount-plugin.h
+++ b/panel-plugin/mount-plugin.h
@@ -62,6 +62,8 @@ typedef struct
gboolean include_NFSs; /**< whether to also display network file systems */
gboolean exclude_FSs;
gboolean exclude_devicenames;
+ gboolean trim_devicenames;
+ gint trim_devicename_count;
gboolean eject_drives;
gboolean showed_fstab_dialog;
GtkWidget *button;
@@ -106,6 +108,8 @@ typedef struct
GtkWidget *show_exclude_FSs;
GtkWidget *show_eject_drives;
GtkWidget *show_exclude_devicenames;
+ GtkWidget *show_trim_devicenames;
+ GtkWidget *spin_trim_devicename_count;
GtkWidget *string_excluded_filesystems;
}
t_mounter_dialog;
More information about the Xfce4-commits
mailing list