[brasero] Fix #598908 - data project: multiple file rename do not work
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [brasero] Fix #598908 - data project: multiple file rename do not work
- Date: Mon, 19 Oct 2009 14:30:12 +0000 (UTC)
commit ea76cee6d02ac1ee5b4511de32d62a65b20de139
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Mon Oct 19 16:24:00 2009 +0200
Fix #598908 - data project: multiple file rename do not work
Based on the patch by Philipp Doorkeeper
This adds a new way to renames files by prepending a number to them (useful when you want to order them)
src/brasero-rename.c | 40 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 38 insertions(+), 2 deletions(-)
---
diff --git a/src/brasero-rename.c b/src/brasero-rename.c
index e189441..920d17f 100644
--- a/src/brasero-rename.c
+++ b/src/brasero-rename.c
@@ -167,6 +167,30 @@ brasero_rename_number_string (BraseroRename *self,
return g_strdup_printf ("%s%i%s", left, priv->number ++, right);
}
+static gchar *
+brasero_rename_sequence_string (BraseroRename *self,
+ const gchar *name,
+ guint item_num,
+ guint nb_items)
+{
+ BraseroRenamePrivate *priv;
+ gboolean is_at_end;
+
+ priv = BRASERO_RENAME_PRIVATE (self);
+
+ is_at_end = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->insert_combo)) != 0;
+
+ if (nb_items < 10){
+ return g_strdup_printf ("%i%s", item_num, name);
+ } else if (nb_items < 100){
+ return g_strdup_printf ("%02i%s", item_num, name);
+ } else if (nb_items < 1000){
+ return g_strdup_printf ("%03i%s", item_num, name);
+ } else {
+ return g_strdup_printf ("%04i%s", item_num, name);
+ }
+}
+
gboolean
brasero_rename_do (BraseroRename *self,
GtkTreeSelection *selection,
@@ -176,6 +200,8 @@ brasero_rename_do (BraseroRename *self,
BraseroRenamePrivate *priv;
GtkTreeModel *model;
GList *selected;
+ guint item_num;
+ guint nb_items;
GList *item;
guint mode;
@@ -187,7 +213,11 @@ brasero_rename_do (BraseroRename *self,
return TRUE;
selected = gtk_tree_selection_get_selected_rows (selection, &model);
- for (item = selected; item; item = item->next) {
+
+ nb_items = g_list_length (selected);
+ item_num = 0;
+
+ for (item = selected; item; item = item->next, item_num ++) {
GtkTreePath *treepath;
GtkTreeIter iter;
gboolean result;
@@ -215,6 +245,9 @@ redo:
case 3:
new_name = brasero_rename_number_string (self, name);
break;
+ case 4:
+ new_name = brasero_rename_sequence_string (self, name, item_num, nb_items);
+ break;
default:
new_name = NULL;
break;
@@ -249,7 +282,9 @@ brasero_rename_type_changed (GtkComboBox *combo,
BraseroRenamePrivate *priv;
priv = BRASERO_RENAME_PRIVATE (self);
- if (gtk_combo_box_get_active (combo) == -1) {
+
+ if (gtk_combo_box_get_active (combo) - priv->show_default < 0
+ || gtk_combo_box_get_active (combo) - priv->show_default == 4) {
gtk_widget_hide (priv->notebook);
return;
}
@@ -286,6 +321,7 @@ brasero_rename_init (BraseroRename *object)
gtk_combo_box_append_text (GTK_COMBO_BOX (priv->combo), _("Delete text"));
gtk_combo_box_append_text (GTK_COMBO_BOX (priv->combo), _("Substitute text"));
gtk_combo_box_append_text (GTK_COMBO_BOX (priv->combo), _("Number files according to a pattern"));
+ gtk_combo_box_append_text (GTK_COMBO_BOX (priv->combo), _("Insert number sequence at beginning"));
g_signal_connect (priv->combo,
"changed",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]