# HG changeset patch # User Sadrul Habib Chowdhury # Date 1199868153 0 # Node ID 6704629dc478b7e9f54f272a9dc0438885a386ab # Parent 62147d5b4512c279993b271bc65875623b3dfd13 Remove the completed/cancelled xfers when 'Clear finished transfers' is selected. (Did anyone notice our 'purple_xfer_is_canceled' is typoed?) diff -r 62147d5b4512 -r 6704629dc478 finch/gntft.c --- a/finch/gntft.c Wed Jan 09 02:16:11 2008 +0000 +++ b/finch/gntft.c Wed Jan 09 08:42:33 2008 +0000 @@ -142,15 +142,23 @@ xfer_dialog->auto_clear = !xfer_dialog->auto_clear; purple_prefs_set_bool("/finch/filetransfer/clear_finished", xfer_dialog->auto_clear); + if (xfer_dialog->auto_clear) { + GList *iter = purple_xfers_get_all(); + while (iter) { + PurpleXfer *xfer = iter->data; + iter = iter->next; + if (purple_xfer_is_completed(xfer) || purple_xfer_is_canceled(xfer)) + finch_xfer_dialog_remove_xfer(xfer); + } + } } static void remove_button_cb(GntButton *button) { PurpleXfer *selected_xfer = gnt_tree_get_selection_data(GNT_TREE(xfer_dialog->tree)); - if (selected_xfer && (selected_xfer->status == PURPLE_XFER_STATUS_CANCEL_LOCAL || - selected_xfer->status == PURPLE_XFER_STATUS_CANCEL_REMOTE || - selected_xfer->status == PURPLE_XFER_STATUS_DONE)) { + if (selected_xfer && (purple_xfer_is_completed(selected_xfer) || + purple_xfer_is_canceled(selected_xfer))) { finch_xfer_dialog_remove_xfer(selected_xfer); } }