summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2009-03-03 18:18:03 +0100
committerTomas Bzatek <tbzatek@redhat.com>2009-03-03 18:18:03 +0100
commitb0d6294edde299a4835d69c78c35d2f46d7ad6c2 (patch)
tree4fdf5e4b769c5c5f74cfd10b53d94896351480b5
parentabc86e7f8afc79d102375cf7d60c2307cb5b52e8 (diff)
downloadnautilus-gdu-b0d6294edde299a4835d69c78c35d2f46d7ad6c2.tar.gz
nautilus-gdu-b0d6294edde299a4835d69c78c35d2f46d7ad6c2.tar.xz
nautilus-gdu-b0d6294edde299a4835d69c78c35d2f46d7ad6c2.zip
Port to libgdu-0.2
-rw-r--r--configure.in6
-rw-r--r--src/format-window-operation.c12
-rw-r--r--src/format-window.c231
-rw-r--r--src/format-window.h1
4 files changed, 150 insertions, 100 deletions
diff --git a/configure.in b/configure.in
index b3f0ac0..f3390ee 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
AC_INIT
PACKAGE=nautilus-gdu
-VERSION=0.1
+VERSION=0.2
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
@@ -13,8 +13,8 @@ AM_CONFIG_HEADER(config.h)
GLIB_REQUIRED=2.18.0
GTK_REQUIRED=2.14.0
NAUTILUS_REQUIRED=2.24.0
-GDU_REQUIRED=0.1
-GDU_GTK_REQUIRED=0.1
+GDU_REQUIRED=0.2
+GDU_GTK_REQUIRED=0.2
AC_C_CONST
AC_ISC_POSIX
diff --git a/src/format-window-operation.c b/src/format-window-operation.c
index 113a3e6..40ea754 100644
--- a/src/format-window-operation.c
+++ b/src/format-window-operation.c
@@ -310,6 +310,7 @@ action_finished (FormatProcessData *data, char *new_device_path)
}
/* ---------------------------------------------------------------------------------------------------- */
+/* keep in sync with gdu-shell.c/gdu_shell_raise_error() */
static void
nautilus_gdu_show_error (GtkWidget *parent_window,
GduPresentable *presentable,
@@ -320,7 +321,7 @@ nautilus_gdu_show_error (GtkWidget *parent_window,
GtkWidget *dialog;
char *error_text;
char *window_title;
- char *window_icon_name;
+ GIcon *window_icon;
va_list args;
g_return_if_fail (presentable != NULL);
@@ -329,7 +330,7 @@ nautilus_gdu_show_error (GtkWidget *parent_window,
/* TODO: this still needs work */
window_title = gdu_presentable_get_name (presentable);
- window_icon_name = gdu_presentable_get_icon_name (presentable);
+ window_icon = gdu_presentable_get_icon (presentable);
va_start (args, primary_markup_format);
error_text = g_strdup_vprintf (primary_markup_format, args);
@@ -345,7 +346,8 @@ nautilus_gdu_show_error (GtkWidget *parent_window,
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message);
gtk_window_set_title (GTK_WINDOW (dialog), window_title);
- gtk_window_set_icon_name (GTK_WINDOW (dialog), window_icon_name);
+ // TODO: no support for GIcon in GtkWindow
+ //gtk_window_set_icon_name (GTK_WINDOW (dialog), window_icon_name);
g_signal_connect_swapped (dialog,
"response",
@@ -354,8 +356,9 @@ nautilus_gdu_show_error (GtkWidget *parent_window,
gtk_window_present (GTK_WINDOW (dialog));
g_free (window_title);
- g_free (window_icon_name);
g_free (error_text);
+ if (window_icon != NULL)
+ g_object_unref (window_icon);
}
/* ---------------------------------------------------------------------------------------------------- */
@@ -899,6 +902,7 @@ do_format (FormatDialogPrivate *priv)
data->secure_erase = gdu_util_delete_confirmation_dialog (GTK_WIDGET (priv->dialog),
"",
+ TRUE,
primary,
secondary,
_("C_reate"));
diff --git a/src/format-window.c b/src/format-window.c
index 17fc595..f652afb 100644
--- a/src/format-window.c
+++ b/src/format-window.c
@@ -153,20 +153,19 @@ update_ui_controls (FormatDialogPrivate *priv)
/* most of the code here was stolen from palimpsest */
+/* keep in sync with gdu-shell.c/details_update() */
static void
update_ui (FormatDialogPrivate *priv)
{
- char *details1;
- char *details2;
- char *details3;
char *s;
+ char *p;
char *name = NULL;
- char *icon_name = NULL;
- GdkPixbuf *pixbuf;
+ GdkPixbuf *pixbuf = NULL;
const char *usage;
const char *type;
const char *device_file;
- char *strsize = NULL;
+ guint64 presentable_size = 0;
+ char *strsize_long;
GduDevice *device = NULL;
GduPresentable *toplevel_presentable = NULL;
GduDevice *toplevel_device = NULL;
@@ -176,6 +175,8 @@ update_ui (FormatDialogPrivate *priv)
gboolean known_fs;
const char *scheme;
char **flags;
+ GPtrArray *details;
+ guint n;
if (priv->presentable) {
@@ -183,9 +184,9 @@ update_ui (FormatDialogPrivate *priv)
toplevel_presentable = gdu_presentable_get_toplevel (priv->presentable);
if (toplevel_presentable != NULL)
toplevel_device = gdu_presentable_get_device (toplevel_presentable);
- icon_name = gdu_presentable_get_icon_name (priv->presentable);
name = gdu_presentable_get_name (priv->presentable);
- strsize = gdu_util_get_size_for_display (gdu_presentable_get_size (priv->presentable), FALSE);
+ presentable_size = gdu_presentable_get_size (priv->presentable);
+ pixbuf = gdu_util_get_pixbuf_for_presentable_at_pixel_size (priv->presentable, 112);
}
/* window title */
@@ -195,15 +196,6 @@ update_ui (FormatDialogPrivate *priv)
/* icon */
- pixbuf = NULL;
- /* we can also use gdu_util_get_pixbuf_for_presentable() */
- if (icon_name != NULL) {
- pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
- icon_name,
- 96,
- GTK_ICON_LOOKUP_GENERIC_FALLBACK,
- NULL);
- }
gtk_image_set_from_pixbuf (GTK_IMAGE (priv->icon_image), pixbuf);
if (pixbuf)
g_object_unref (pixbuf);
@@ -221,31 +213,20 @@ update_ui (FormatDialogPrivate *priv)
type = gdu_device_id_get_type (device);
device_file = gdu_device_get_device_file (device);
}
+ details = g_ptr_array_new ();
+
- details1 = NULL;
- details2 = NULL;
- details3 = NULL;
+ /* header labels */
+ if (presentable_size > 0) {
+ strsize_long = gdu_util_get_size_for_display (presentable_size, TRUE);
+ } else {
+ strsize_long = g_strdup ("Unknown Size");
+ }
- /* Labels, header */
- /* TODO: clean unused code up */
if (GDU_IS_DRIVE (priv->presentable)) {
- details3 = g_strdup (device_file);
- if (GDU_IS_ACTIVATABLE_DRIVE (priv->presentable)) {
- switch (gdu_activatable_drive_get_kind (GDU_ACTIVATABLE_DRIVE (priv->presentable))) {
- case GDU_ACTIVATABLE_DRIVE_KIND_LINUX_MD:
- details1 = g_strdup (_("Linux Software RAID"));
- break;
- default:
- details1 = g_strdup (_("Activatable Drive"));
- break;
- }
- } else {
- s = gdu_util_get_connection_for_display (
- gdu_device_drive_get_connection_interface (device),
- gdu_device_drive_get_connection_speed (device));
- details1 = g_strdup_printf (_("Connected via %s"), s);
- g_free (s);
- }
+
+ g_ptr_array_add (details,
+ g_strdup (strsize_long));
if (device == NULL) {
/* TODO */
@@ -264,15 +245,19 @@ update_ui (FormatDialogPrivate *priv)
s = g_strdup_printf (_("Unknown Scheme: %s"), scheme);
}
- details2 = g_strdup_printf (_("%s Partitioned Media (%s)"), strsize, s);
+ g_ptr_array_add (details,
+ g_strdup_printf (_("Partitioned Media (%s)"), s));
g_free (s);
} else if (usage != NULL && strlen (usage) > 0) {
- details2 = g_strdup_printf (_("%s Unpartitioned Media"), strsize);
+ g_ptr_array_add (details,
+ g_strdup (_("Unpartitioned Media")));
} else if (!gdu_device_is_media_available (device)) {
- details2 = g_strdup_printf (_("No Media Detected"));
+ g_ptr_array_add (details,
+ g_strdup_printf (_("No Media Detected")));
} else {
- details2 = g_strdup_printf (_("Unrecognized"));
+ g_ptr_array_add (details,
+ g_strdup_printf (_("Unrecognized")));
}
} else {
if (gdu_device_is_partition_table (device)) {
@@ -287,25 +272,49 @@ update_ui (FormatDialogPrivate *priv)
} else {
s = g_strdup_printf (_("Unknown Scheme: %s"), scheme);
}
- details2 = g_strdup_printf (_("Partitioned (%s)"), s);
- g_free (s);
+ g_ptr_array_add (details, s);
} else if (usage != NULL && strlen (usage) > 0) {
- details2 = g_strdup_printf (_("Not Partitioned"));
+ g_ptr_array_add (details,
+ g_strdup_printf (_("Not Partitioned")));
} else if (!gdu_device_is_media_available (device)) {
- details2 = g_strdup_printf (_("No Media Detected"));
+ g_ptr_array_add (details,
+ g_strdup_printf (_("No Media Detected")));
} else {
- details2 = g_strdup_printf (_("Unrecognized"));
+ g_ptr_array_add (details,
+ g_strdup_printf (_("Unrecognized")));
}
}
+ }
+
+ if (GDU_IS_LINUX_MD_DRIVE (priv->presentable)) {
+ g_ptr_array_add (details,
+ g_strdup (_("Linux Software RAID")));
+ } else {
+ s = gdu_util_get_connection_for_display (
+ gdu_device_drive_get_connection_interface (device),
+ gdu_device_drive_get_connection_speed (device));
+ g_ptr_array_add (details,
+ g_strdup_printf (_("Connected via %s"), s));
+ g_free (s);
+ }
+ if (device_file != NULL) {
if (gdu_device_is_read_only (device)) {
- s = details3;
- details3 = g_strconcat (details3, _(" (Read Only)"), NULL);
- g_free (s);
+ g_ptr_array_add (details,
+ g_strdup_printf (_("%s (Read Only)"), device_file));
+ } else {
+ g_ptr_array_add (details,
+ g_strdup (device_file));
}
+ } else {
+ g_ptr_array_add (details,
+ g_strdup (_("Not running")));
}
+
} else if (GDU_IS_VOLUME (priv->presentable)) {
- details3 = g_strdup (device_file);
+
+ g_ptr_array_add (details,
+ g_strdup (strsize_long));
if (strcmp (usage, "filesystem") == 0) {
char *fsname;
@@ -313,7 +322,8 @@ update_ui (FormatDialogPrivate *priv)
gdu_device_id_get_type (device),
gdu_device_id_get_version (device),
TRUE);
- details1 = g_strdup_printf (_("%s %s File System"), strsize, fsname);
+ g_ptr_array_add (details,
+ g_strdup_printf (_("%s File System"), fsname));
g_free (fsname);
} else if (strcmp (usage, "raid") == 0) {
char *fsname;
@@ -321,84 +331,115 @@ update_ui (FormatDialogPrivate *priv)
gdu_device_id_get_type (device),
gdu_device_id_get_version (device),
TRUE);
- details1 = g_strdup_printf (_("%s %s"), strsize, fsname);
- g_free (fsname);
+ g_ptr_array_add (details, fsname);
} else if (strcmp (usage, "crypto") == 0) {
- details1 = g_strdup_printf (_("%s Encrypted LUKS Device"), strsize);
+ g_ptr_array_add (details,
+ g_strdup (_("Encrypted LUKS Device")));
} else if (strcmp (usage, "other") == 0) {
if (strcmp (type, "swap") == 0) {
- details1 = g_strdup_printf (_("%s Swap Space"), strsize);
+ g_ptr_array_add (details,
+ g_strdup (_("Swap Space")));
} else {
- details1 = g_strdup_printf (_("%s Data"), strsize);
+ g_ptr_array_add (details,
+ g_strdup (_("Data")));
}
} else {
- details1 = g_strdup_printf (_("%s Unrecognized"), strsize);
+ g_ptr_array_add (details,
+ g_strdup (_("Unrecognized")));
}
if (gdu_device_is_luks_cleartext (device)) {
- details2 = g_strdup (_("Unlocked Encrypted LUKS Volume"));
+ g_ptr_array_add (details,
+ g_strdup (_("Unlocked Encrypted LUKS Volume")));
} else {
if (gdu_device_is_partition (device)) {
char *part_desc;
part_desc = gdu_util_get_desc_for_part_type (gdu_device_partition_get_scheme (device),
gdu_device_partition_get_type (device));
- details2 = g_strdup_printf (_("Partition %d (%s)"),
- gdu_device_partition_get_number (device), part_desc);
+ g_ptr_array_add (details,
+ g_strdup_printf (_("Partition %d (%s)"),
+ gdu_device_partition_get_number (device), part_desc));
g_free (part_desc);
} else {
- details2 = g_strdup (_("Not Partitioned"));
+ g_ptr_array_add (details,
+ g_strdup (_("Not Partitioned")));
}
}
+ s = g_strdup (device_file);
if (gdu_device_is_read_only (device)) {
- s = details3;
- details3 = g_strconcat (details3, _(" (Read Only)"), NULL);
- g_free (s);
+ p = s;
+ s = g_strconcat (s, _(" (Read Only)"), NULL);
+ g_free (p);
}
if (gdu_device_is_mounted (device)) {
- s = details3;
- details3 = g_strconcat (details3,
- _(" mounted at "),
- gdu_device_get_mount_path (device),
- NULL);
- g_free (s);
+ p = s;
+ s = g_strconcat (s,
+ _(" mounted at "),
+ gdu_device_get_mount_path (device),
+ NULL);
+ g_free (p);
}
+ g_ptr_array_add (details, s);
+
+
} else if (GDU_IS_VOLUME_HOLE (priv->presentable)) {
- details1 = g_strdup_printf (_("%s Unallocated"), strsize);
+ g_ptr_array_add (details,
+ g_strdup (strsize_long));
- if (toplevel_device != NULL) {
- details2 = g_strdup (gdu_device_get_device_file (toplevel_device));
+ g_ptr_array_add (details,
+ g_strdup (_("Unallocated Space")));
- if (gdu_device_is_read_only (toplevel_device)) {
- s = details2;
- details2 = g_strconcat (details2, _(" (Read Only)"), NULL);
- g_free (s);
- }
+ if (toplevel_device != NULL) {
+ if (gdu_device_is_read_only (toplevel_device))
+ g_ptr_array_add (details, g_strdup_printf (_("%s (Read Only)"), gdu_device_get_device_file (toplevel_device)));
+ else
+ g_ptr_array_add (details, g_strdup (gdu_device_get_device_file (toplevel_device)));
}
}
+
if (device)
g_print ("gdu_device_id_get_type (device) = '%s', gdu_device_partition_get_type (device) = '%s'\n",
gdu_device_id_get_type (device), gdu_device_partition_get_type (device));
- if (icon_name)
- g_free (icon_name);
if (name)
g_free (name);
- if (strsize)
- g_free (strsize);
+ if (strsize_long)
+ g_free (strsize_long);
+
+
+ for (n = 0; n < 4; n++) {
+ GtkWidget *label;
+ const gchar *detail_str;
+
+ switch (n) {
+ case 0:
+ label = priv->details1_label;
+ break;
+ case 1:
+ label = priv->details2_label;
+ break;
+ case 2:
+ label = priv->details3_label;
+ break;
+ case 3:
+ label = priv->details4_label;
+ break;
+ }
+
+ if (n < details->len)
+ detail_str = details->pdata[n];
+ else
+ detail_str = "";
- gtk_label_set_markup (GTK_LABEL (priv->details1_label), details1);
- gtk_label_set_markup (GTK_LABEL (priv->details2_label), details2);
- gtk_label_set_markup (GTK_LABEL (priv->details3_label), details3);
- if (details1)
- g_free (details1);
- if (details2)
- g_free (details2);
- if (details3)
- g_free (details3);
+ gtk_label_set_markup (GTK_LABEL (label), detail_str);
+ }
+
+ g_ptr_array_foreach (details, (GFunc) g_free, NULL);
+ g_ptr_array_free (details, TRUE);
/* partition type combo */
@@ -776,6 +817,10 @@ nautilus_gdu_spawn_dialog (GduPresentable *presentable,
gtk_box_pack_start (GTK_BOX (vbox3), label, FALSE, TRUE, 0);
priv->details3_label = label;
+ label = gtk_label_new (NULL);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (vbox3), label, FALSE, TRUE, 0);
+ priv->details4_label = label;
/* partition */
diff --git a/src/format-window.h b/src/format-window.h
index 94445a5..f3c993e 100644
--- a/src/format-window.h
+++ b/src/format-window.h
@@ -39,6 +39,7 @@ typedef struct {
GtkWidget *details1_label;
GtkWidget *details2_label;
GtkWidget *details3_label;
+ GtkWidget *details4_label;
GtkWidget *mount_warning;
GtkWidget *readonly_warning;
GtkWidget *no_media_warning;