ClipIt-1.4.2-20111015001

+ Fixed: Fixed bug where wrong item was being selected for editing.
This commit is contained in:
Cristian Henzel 2011-10-15 12:30:45 +03:00
parent f3800da8c1
commit 23e3ffe68e
2 changed files with 22 additions and 18 deletions

View File

@ -1,4 +1,9 @@
ClipIt-1.4.2-20110906001 ~ 2011-09-06 15:01:40 +0300 ClipIt-1.4.2-20111015001 ~ 2011-10-15 12:29:14 +0300
+ Fixed: Fixed bug where wrong item was being selected for editing.
ClipIt-1.4.2-20110906001 - 2011-09-06 15:03:00 +0300
+ Added: Added transifex config to repository. + Added: Added transifex config to repository.
+ Added: Added script for automatic translation updating. + Added: Added script for automatic translation updating.

View File

@ -35,6 +35,13 @@ GtkListStore *search_list;
GtkWidget *search_entry; GtkWidget *search_entry;
GtkWidget *treeview_search; GtkWidget *treeview_search;
static void add_iter(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *piter, gpointer userdata)
{
GArray *sel = (GArray*)userdata;
GtkTreeIter iter = *piter;
g_array_append_val(sel, iter);
}
/* Search through the history */ /* Search through the history */
static void search_history() static void search_history()
{ {
@ -115,17 +122,17 @@ static void edit_selected()
if (selected_count > 0) { if (selected_count > 0) {
/* Create clipboard buffer and set its text */ /* Create clipboard buffer and set its text */
gint selected_item_nr; gint selected_item_nr;
GList *selected_rows = gtk_tree_selection_get_selected_rows(search_selection, NULL); GArray *sel = g_array_new(FALSE, FALSE, sizeof(GtkTreeIter));
GList *row_loop = g_list_first(selected_rows); gtk_tree_selection_selected_foreach(search_selection, add_iter, sel);
selected_item_nr = atoi((gchar*)gtk_tree_path_to_string(row_loop->data)); gtk_tree_selection_unselect_all(search_selection);
g_list_foreach(selected_rows, (GFunc)gtk_tree_path_free, NULL); GtkTreeIter *iter = &g_array_index(sel, GtkTreeIter, 0);
g_list_free(selected_rows); gtk_tree_model_get((GtkTreeModel*)search_list, iter, 0, &selected_item_nr, -1);
GList* element = g_list_nth(history, selected_item_nr); g_array_free(sel, TRUE);
GList* elementafter = element->next; GList *element = g_list_nth(history, selected_item_nr);
history_item *elem_data = element->data; history_item *elem_data = element->data;
GString* s_selected_item = g_string_new((gchar*)elem_data->content); GList* elementafter = element->next;
GtkTextBuffer* clipboard_buffer = gtk_text_buffer_new(NULL); GtkTextBuffer* clipboard_buffer = gtk_text_buffer_new(NULL);
gtk_text_buffer_set_text(clipboard_buffer, s_selected_item->str, -1); gtk_text_buffer_set_text(clipboard_buffer, (gchar*)elem_data->content, -1);
/* Create the dialog */ /* Create the dialog */
GtkWidget* dialog = gtk_dialog_new_with_buttons(_("Editing Clipboard"), NULL, GtkWidget* dialog = gtk_dialog_new_with_buttons(_("Editing Clipboard"), NULL,
(GTK_DIALOG_MODAL + GTK_DIALOG_NO_SEPARATOR), (GTK_DIALOG_MODAL + GTK_DIALOG_NO_SEPARATOR),
@ -180,18 +187,10 @@ static void edit_selected()
} }
} }
gtk_widget_destroy(dialog); gtk_widget_destroy(dialog);
g_string_free(s_selected_item, TRUE);
search_history(); search_history();
} }
} }
static void add_iter(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *piter, gpointer userdata)
{
GArray *sel = (GArray*)userdata;
GtkTreeIter iter = *piter;
g_array_append_val(sel, iter);
}
/* Called when Remove is selected from Manage dialog */ /* Called when Remove is selected from Manage dialog */
static void remove_selected() static void remove_selected()
{ {