Index: linux/downloadqueue.cc =================================================================== RCS file: /cvsroot/linuxdcpp/linuxdcpp/linux/downloadqueue.cc,v retrieving revision 1.28 diff -u -r1.28 downloadqueue.cc --- linux/downloadqueue.cc 21 Aug 2006 15:52:37 -0000 1.28 +++ linux/downloadqueue.cc 16 Sep 2006 12:57:32 -0000 @@ -80,6 +80,7 @@ g_signal_connect(getWidget("fileHighestPriorityItem"), "activate", G_CALLBACK(setFilePriorityClicked_gui), (gpointer)this); g_signal_connect(getWidget("fileRemoveItem"), "activate", G_CALLBACK(removeFileClicked_gui), (gpointer)this); g_signal_connect(fileView.get(), "button_press_event", G_CALLBACK(file_onButtonPressed_gui), (gpointer)this); + g_signal_connect(fileView.get(), "key_press_event", G_CALLBACK(file_onKeyPressed_gui), (gpointer)this); g_signal_connect(fileView.get(), "popup_menu", G_CALLBACK(file_onPopupMenu_gui), (gpointer)this); g_signal_connect(dirView.get(), "button_press_event", G_CALLBACK(dir_onButtonPressed_gui), (gpointer)this); g_signal_connect(dirView.get(), "button_release_event", G_CALLBACK(dir_onButtonReleased_gui), (gpointer)this); @@ -613,6 +614,34 @@ } } return FALSE; +} +gboolean DownloadQueue::file_onKeyPressed_gui (GtkWidget *widget, GdkEventKey *event, gpointer user_data) +{ + if (event->keyval == 65535) + { + DownloadQueue *q = (DownloadQueue*)user_data; + GtkTreeSelection *selection; + GtkTreeIter iter; + QueueItemInfo *info; + GtkTreeModel *m = GTK_TREE_MODEL (q->fileStore); + selection = gtk_tree_view_get_selection(q->fileView.get()); + GList *list = gtk_tree_selection_get_selected_rows(selection, NULL); + gint count = gtk_tree_selection_count_selected_rows(selection); + GtkTreePath *path; + for (int i = 0; i < count; i++) + { + path = (GtkTreePath *)g_list_nth_data(list, i); + if (gtk_tree_model_get_iter(m, &iter, path)) + { + info = q->fileView.getValue(&iter, "Info"); + info->remove(); + } + } + gtk_tree_path_free(path); + g_list_free(list); + return TRUE; + } + return FALSE; } gboolean DownloadQueue::file_onPopupMenu_gui (GtkWidget *widget, gpointer user_data) { Index: linux/downloadqueue.hh =================================================================== RCS file: /cvsroot/linuxdcpp/linuxdcpp/linux/downloadqueue.hh,v retrieving revision 1.17 diff -u -r1.17 downloadqueue.hh --- linux/downloadqueue.hh 21 Aug 2006 15:52:37 -0000 1.17 +++ linux/downloadqueue.hh 16 Sep 2006 12:57:32 -0000 @@ -60,6 +60,7 @@ static gboolean dir_onButtonReleased_gui (GtkWidget *widget, GdkEventButton *event, gpointer user_data); static gboolean dir_onPopupMenu_gui (GtkWidget *widget, gpointer user_data); static gboolean file_onButtonPressed_gui (GtkWidget *widget, GdkEventButton *event, gpointer user_data); + static gboolean file_onKeyPressed_gui (GtkWidget *widget, GdkEventKey *event, gpointer user_data); static gboolean file_onPopupMenu_gui (GtkWidget *widget, gpointer user_data); void dir_popup_menu_gui (GdkEventButton *event, gpointer user_data); void file_popup_menu_gui (GdkEventButton *event, gpointer user_data);