Changeset 1984
- Timestamp:
- 05/16/07 23:13:59
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-folder.c (modified) (3 diffs)
- trunk/libtinymail-camel/tny-camel-folder.h (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-nntp-folder.c (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-pop-folder.c (modified) (2 diffs)
- trunk/libtinymail/tny-folder.c (modified) (1 diff)
- trunk/libtinymail/tny-folder.h (modified) (2 diffs)
- trunk/libtinymail/tny-merge-folder.c (modified) (2 diffs)
- trunk/tests/c-demo/tny-demoui-summary-view.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r1972 r1984 1 2007-05-16 Philip Van Hoof <pvanhoof@gnome.org> 2 3 * Removed the unworkable tny_folder_set_name, old code should replace 4 this with tny_folder_copy with the del parameter set to TRUE and the 5 folder store being the one you get using tny_folder_get_folder_store 6 7 * This was a major API change 8 1 9 2007-05-16 Murray Cumming <murrayc@murrayc.com> 2 10 trunk/libtinymail-camel/tny-camel-folder.c
r1983 r1984 2612 2612 2613 2613 return; 2614 }2615 2616 2617 static void2618 tny_camel_folder_set_name (TnyFolder *self, const gchar *name, GError **err)2619 {2620 TNY_CAMEL_FOLDER_GET_CLASS (self)->set_name_func (self, name, err);2621 return;2622 }2623 2624 static void2625 tny_camel_folder_set_name_default (TnyFolder *self, const gchar *name, GError **err)2626 {2627 TnyCamelFolderPriv *priv = TNY_CAMEL_FOLDER_GET_PRIVATE (self);2628 CamelFolder *cfolder;2629 CamelFolderInfo *parent_info;2630 const gchar *old_path;2631 gchar *new_path;2632 CamelException ex = CAMEL_EXCEPTION_INITIALISER;2633 gboolean changed = FALSE;2634 gboolean was_sub = FALSE;2635 2636 if (!_tny_session_check_operation (TNY_FOLDER_PRIV_GET_SESSION(priv), err,2637 TNY_FOLDER_ERROR, TNY_FOLDER_ERROR_SET_NAME))2638 return;2639 2640 2641 g_static_rec_mutex_lock (priv->folder_lock);2642 2643 if (!priv->folder || !priv->loaded || !CAMEL_IS_FOLDER (priv->folder))2644 if (!load_folder_no_lock (priv))2645 {2646 g_static_rec_mutex_unlock (priv->folder_lock);2647 _tny_session_stop_operation (TNY_FOLDER_PRIV_GET_SESSION (priv));2648 return;2649 }2650 2651 if (!priv->iter) {2652 _tny_session_stop_operation (TNY_FOLDER_PRIV_GET_SESSION (priv));2653 g_static_rec_mutex_unlock (priv->folder_lock);2654 return;2655 }2656 2657 /* Create new full name */2658 cfolder = _tny_camel_folder_get_camel_folder (TNY_CAMEL_FOLDER (self));2659 old_path = camel_folder_get_full_name (cfolder);2660 parent_info = priv->iter->parent;2661 2662 if (parent_info)2663 new_path = g_strdup_printf ("%s/%s", parent_info->full_name, name);2664 else2665 {2666 if (!priv->iter_parented)2667 {2668 char *nold_path = g_strdup (old_path);2669 char *lastslash = strrchr (nold_path, '/');2670 if (lastslash)2671 {2672 *lastslash = '\0';2673 new_path = g_strdup_printf ("%s/%s", nold_path, name);2674 g_free (nold_path);2675 } else {2676 g_free (nold_path);2677 g_set_error (err, TNY_FOLDER_ERROR,2678 TNY_FOLDER_ERROR_SET_NAME,2679 "Can't rename %s to %s", old_path, name);2680 goto errorh;2681 }2682 } else {2683 g_set_error (err, TNY_FOLDER_ERROR,2684 TNY_FOLDER_ERROR_SET_NAME,2685 "Can't rename the root INBOX folder");2686 goto errorh;2687 }2688 }2689 2690 /* Check that the name really changes */2691 if (!strcmp (old_path, new_path))2692 {2693 g_free (new_path);2694 /* It's not really an error, just a NOOP */2695 goto errorh;2696 }2697 2698 /* Rename folder */2699 2700 if (camel_store_supports_subscriptions (cfolder->parent_store))2701 was_sub = camel_store_folder_subscribed (cfolder->parent_store, old_path);2702 2703 camel_store_rename_folder (cfolder->parent_store, old_path, (const gchar *) new_path, &ex);2704 2705 if (camel_store_supports_subscriptions (cfolder->parent_store))2706 {2707 camel_store_unsubscribe_folder (cfolder->parent_store, old_path, NULL);2708 2709 if (was_sub)2710 camel_store_subscribe_folder (cfolder->parent_store, new_path, NULL);2711 else2712 camel_store_unsubscribe_folder (cfolder->parent_store, new_path, NULL);2713 }2714 2715 g_free (new_path);2716 2717 if (camel_exception_is_set (&ex))2718 {2719 g_set_error (err, TNY_FOLDER_ERROR,2720 TNY_FOLDER_ERROR_SET_NAME,2721 camel_exception_get_description (&ex));2722 2723 camel_exception_clear (&ex);2724 2725 } else if (priv->cached_name)2726 {2727 changed = TRUE;2728 g_free (priv->cached_name);2729 priv->cached_name = g_strdup (name);2730 }2731 2732 errorh:2733 2734 g_static_rec_mutex_unlock (priv->folder_lock);2735 2736 if (changed)2737 {2738 TnyFolderChange *change;2739 2740 change = tny_folder_change_new (self);2741 tny_folder_change_set_rename (change, name);2742 notify_folder_observers_about (self, change);2743 g_object_unref (G_OBJECT (change));2744 }2745 2746 _tny_session_stop_operation (TNY_FOLDER_PRIV_GET_SESSION (priv));2747 2614 } 2748 2615 … … 3677 3544 klass->get_msg_async_func = tny_camel_folder_get_msg_async; 3678 3545 klass->get_id_func = tny_camel_folder_get_id; 3679 klass->set_name_func = tny_camel_folder_set_name;3680 3546 klass->get_name_func = tny_camel_folder_get_name; 3681 3547 klass->get_folder_type_func = tny_camel_folder_get_folder_type; … … 3737 3603 class->get_msg_async_func = tny_camel_folder_get_msg_async_default; 3738 3604 class->get_id_func = tny_camel_folder_get_id_default; 3739 class->set_name_func = tny_camel_folder_set_name_default;3740 3605 class->get_name_func = tny_camel_folder_get_name_default; 3741 3606 class->get_folder_type_func = tny_camel_folder_get_folder_type_default; trunk/libtinymail-camel/tny-camel-folder.h
r1936 r1984 68 68 const gchar* (*get_id_func) (TnyFolder *self); 69 69 TnyAccount* (*get_account_func) (TnyFolder *self); 70 void (*set_name_func) (TnyFolder *self, const gchar *name, GError **err);71 70 TnyFolderType (*get_folder_type_func) (TnyFolder *self); 72 71 guint (*get_all_count_func) (TnyFolder *self); trunk/libtinymail-camel/tny-camel-nntp-folder.c
r1866 r1984 107 107 object_class = (GObjectClass*) class; 108 108 109 TNY_CAMEL_FOLDER_CLASS (class)->set_name_func = tny_camel_nntp_folder_set_name;110 109 TNY_CAMEL_FOLDER_CLASS (class)->remove_folder_func = tny_camel_nntp_folder_remove_folder; 111 110 TNY_CAMEL_FOLDER_CLASS (class)->create_folder_func = tny_camel_nntp_folder_create_folder; trunk/libtinymail-camel/tny-camel-pop-folder.c
r1866 r1984 92 92 93 93 static void 94 tny_camel_pop_folder_set_name (TnyFolder *self, const gchar *name, GError **err)95 {96 g_set_error (err, TNY_FOLDER_STORE_ERROR,97 TNY_FOLDER_STORE_ERROR_CREATE_FOLDER,98 "You can't use the tny_folder_set_name API on POP folders");99 return;100 }101 102 103 static void104 94 tny_camel_pop_folder_class_init (TnyCamelPOPFolderClass *class) 105 95 { … … 109 99 object_class = (GObjectClass*) class; 110 100 111 TNY_CAMEL_FOLDER_CLASS (class)->set_name_func = tny_camel_pop_folder_set_name;112 101 TNY_CAMEL_FOLDER_CLASS (class)->remove_folder_func = tny_camel_pop_folder_remove_folder; 113 102 TNY_CAMEL_FOLDER_CLASS (class)->create_folder_func = tny_camel_pop_folder_create_folder; trunk/libtinymail/tny-folder.c
r1970 r1984 1151 1151 1152 1152 1153 /**1154 * tny_folder_set_name:1155 * @self: a TnyFolder object1156 * @name: a new name for the folder1157 * @err: a #GError object or NULL1158 *1159 * Rename a folder. Most services require the name to be unique in the1160 * parent folder. A rename operation that didn't succeed will put an error1161 * in @err.1162 *1163 **/1164 void1165 tny_folder_set_name (TnyFolder *self, const gchar *name, GError **err)1166 {1167 #ifdef DBC /* require */1168 g_assert (TNY_IS_FOLDER (self));1169 g_assert (name);1170 g_assert (strlen (name) > 0);1171 g_assert (TNY_FOLDER_GET_IFACE (self)->set_name_func != NULL);1172 #endif1173 1174 TNY_FOLDER_GET_IFACE (self)->set_name_func (self, name, err);1175 1176 #ifdef DBC /* ensure */1177 g_assert (!strcmp (tny_folder_get_name (self), name));1178 #endif1179 1180 return;1181 }1182 1153 1183 1154 /** trunk/libtinymail/tny-folder.h
r1936 r1984 100 100 const gchar* (*get_id_func) (TnyFolder *self); 101 101 TnyAccount* (*get_account_func) (TnyFolder *self); 102 void (*set_name_func) (TnyFolder *self, const gchar *name, GError **err);103 102 TnyFolderType (*get_folder_type_func) (TnyFolder *self); 104 103 guint (*get_all_count_func) (TnyFolder *self); … … 137 136 const gchar* tny_folder_get_id (TnyFolder *self); 138 137 const gchar* tny_folder_get_name (TnyFolder *self); 139 void tny_folder_set_name (TnyFolder *self, const gchar *name, GError **err);140 138 TnyFolderType tny_folder_get_folder_type (TnyFolder *self); 141 139 guint tny_folder_get_all_count (TnyFolder *self); trunk/libtinymail/tny-merge-folder.c
r1924 r1984 382 382 } 383 383 384 static void385 tny_merge_folder_set_name (TnyFolder *self, const gchar *name, GError **err)386 {387 TnyMergeFolderPriv *priv = TNY_MERGE_FOLDER_GET_PRIVATE (self);388 389 g_static_rec_mutex_lock (priv->lock);390 391 if (priv->name)392 g_free (priv->name);393 priv->name = g_strdup (name);394 395 g_static_rec_mutex_unlock (priv->lock);396 397 return;398 }399 384 400 385 static TnyFolderType … … 1043 1028 klass->get_id_func = tny_merge_folder_get_id; 1044 1029 klass->get_account_func = tny_merge_folder_get_account; 1045 klass->set_name_func = tny_merge_folder_set_name;1046 1030 klass->get_folder_type_func = tny_merge_folder_get_folder_type; 1047 1031 klass->get_all_count_func = tny_merge_folder_get_all_count; trunk/tests/c-demo/tny-demoui-summary-view.c
r1957 r1984 830 830 &folder, -1); 831 831 832 dialog = gtk_dialog_new_with_buttons (_("Rename a folder"), 832 dialog = gtk_dialog_new_with_buttons (_("Rename or copy a folder (first OK=rename)"), 833 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))), 834 GTK_DIALOG_MODAL, 835 GTK_STOCK_OK, 836 GTK_RESPONSE_ACCEPT, 837 GTK_STOCK_OK, 838 GTK_RESPONSE_YES, 839 GTK_STOCK_CANCEL, 840 GTK_RESPONSE_REJECT, 841 NULL); 842 843 entry = gtk_entry_new (); 844 gtk_entry_set_text (GTK_ENTRY (entry), tny_folder_get_name (folder)); 845 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), entry); 846 gtk_widget_show (entry); 847 848 result = gtk_dialog_run (GTK_DIALOG (dialog)); 849 850 switch (result) 851 { 852 case GTK_RESPONSE_YES: 853 case GTK_RESPONSE_ACCEPT: 854 { 855 gboolean copy = (result == GTK_RESPONSE_YES); 856 GError *err = NULL; 857 const gchar *newname = gtk_entry_get_text (GTK_ENTRY (entry)); 858 TnyFolderStore *into = tny_folder_get_folder_store (folder); 859 TnyFolder *nfol = tny_folder_copy (folder, into, newname, copy, &err); 860 861 if (err != NULL) 862 { 863 GtkWidget *edialog; 864 865 gtk_widget_destroy (dialog); 866 dialog = NULL; 867 868 edialog = gtk_message_dialog_new ( 869 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))), 870 GTK_DIALOG_DESTROY_WITH_PARENT, 871 GTK_MESSAGE_ERROR, 872 GTK_BUTTONS_CLOSE, 873 err->message); 874 g_signal_connect_swapped (edialog, "response", 875 G_CALLBACK (gtk_widget_destroy), edialog); 876 gtk_widget_show_all (edialog); 877 g_error_free (err); 878 } 879 880 if (into) 881 g_object_unref (into); 882 883 if (nfol) 884 g_object_unref (nfol); 885 886 } 887 break; 888 889 default: 890 break; 891 } 892 893 if (dialog) 894 gtk_widget_destroy (dialog); 895 g_object_unref (G_OBJECT (folder)); 896 } 897 898 } 899 900 } 901 902 static void 903 on_delete_folder_activate (GtkMenuItem *mitem, gpointer user_data) 904 { 905 TnyDemouiSummaryView *self = user_data; 906 TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self); 907 GtkTreeIter iter; 908 GtkTreeModel *model; 909 910 if (gtk_tree_selection_get_selected (priv->mailbox_select, &model, &iter)) 911 { 912 gint type; 913 914 gtk_tree_model_get (model, &iter, 915 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, 916 &type, -1); 917 918 if (type != TNY_FOLDER_TYPE_ROOT) 919 { 920 TnyFolder *folder; 921 GtkWidget *dialog, *label; 922 gint result; 923 924 gtk_tree_model_get (model, &iter, 925 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 926 &folder, -1); 927 928 dialog = gtk_dialog_new_with_buttons (_("Delete a folder"), 833 929 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))), 834 930 GTK_DIALOG_MODAL, … … 839 935 NULL); 840 936 937 label = gtk_label_new (_("Are you sure you want to delete this folder?")); 938 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label); 939 gtk_widget_show (label); 940 941 result = gtk_dialog_run (GTK_DIALOG (dialog)); 942 943 switch (result) 944 { 945 case GTK_RESPONSE_ACCEPT: 946 { 947 GError *err = NULL; 948 TnyFolderStore *folderstore = tny_folder_get_folder_store (folder); 949 950 tny_folder_store_remove_folder (folderstore, folder, &err); 951 952 if (err != NULL) 953 { 954 GtkWidget *edialog; 955 956 gtk_widget_destroy (dialog); 957 dialog = NULL; 958 959 edialog = gtk_message_dialog_new ( 960 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))), 961 GTK_DIALOG_DESTROY_WITH_PARENT, 962 GTK_MESSAGE_ERROR, 963 GTK_BUTTONS_CLOSE, 964 err->message); 965 g_signal_connect_swapped (edialog, "response", 966 G_CALLBACK (gtk_widget_destroy), edialog); 967 gtk_widget_show_all (edialog); 968 g_error_free (err); 969 } 970 971 g_object_unref (G_OBJECT (folderstore)); 972 } 973 break; 974 975 default: 976 break; 977 } 978 979 if (dialog) 980 gtk_widget_destroy (dialog); 981 g_object_unref (G_OBJECT (folder)); 982 } 983 984 } 985 } 986 987 static void 988 on_create_folder_activate (GtkMenuItem *mitem, gpointer user_data) 989 { 990 TnyDemouiSummaryView *self = user_data; 991 TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self); 992 GtkTreeIter iter; 993 GtkTreeModel *model; 994 995 if (gtk_tree_selection_get_selected (priv->mailbox_select, &model, &iter)) 996 { 997 gint type; 998 999 gtk_tree_model_get (model, &iter, 1000 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, 1001 &type, -1); 1002 1003 if (type != TNY_FOLDER_TYPE_ROOT) 1004 { 1005 TnyFolderStore *folderstore; 1006 GtkWidget *dialog, *entry; 1007 gint result; 1008 1009 gtk_tree_model_get (model, &iter, 1010 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 1011 &folderstore, -1); 1012 1013 dialog = gtk_dialog_new_with_buttons (_("Create a folder"), 1014 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))), 1015 GTK_DIALOG_MODAL, 1016 GTK_STOCK_OK, 1017 GTK_RESPONSE_ACCEPT, 1018 GTK_STOCK_CANCEL, 1019 GTK_RESPONSE_REJECT, 1020 NULL); 1021 841 1022 entry = gtk_entry_new (); 842 gtk_entry_set_text (GTK_ENTRY (entry), tny_folder_get_name (folder));1023 gtk_entry_set_text (GTK_ENTRY (entry), _("New folder")); 843 1024 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), entry); 844 1025 gtk_widget_show (entry); … … 852 1033 GError *err = NULL; 853 1034 const gchar *newname = gtk_entry_get_text (GTK_ENTRY (entry)); 854 tny_folder_set_name (folder, newname, &err); 1035 1036 TnyFolder *created = tny_folder_store_create_folder (folderstore, newname, &err); 1037 1038 if (created) /* Can be NULL on failure */ 1039 g_object_unref (G_OBJECT (created)); 855 1040 856 1041 if (err != NULL) … … 881 1066 if (dialog) 882 1067 gtk_widget_destroy (dialog); 883 g_object_unref (G_OBJECT (folder));884 }885 886 }887 888 }889 890 static void891 on_delete_folder_activate (GtkMenuItem *mitem, gpointer user_data)892 {893 TnyDemouiSummaryView *self = user_data;894 TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self);895 GtkTreeIter iter;896 GtkTreeModel *model;897 898 if (gtk_tree_selection_get_selected (priv->mailbox_select, &model, &iter))899 {900 gint type;901 902 gtk_tree_model_get (model, &iter,903 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN,904 &type, -1);905 906 if (type != TNY_FOLDER_TYPE_ROOT)907 {908 TnyFolder *folder;909 GtkWidget *dialog, *label;910 gint result;911 912 gtk_tree_model_get (model, &iter,913 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,914 &folder, -1);915 916 dialog = gtk_dialog_new_with_buttons (_("Delete a folder"),917 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))),918 GTK_DIALOG_MODAL,919 GTK_STOCK_OK,920 GTK_RESPONSE_ACCEPT,921 GTK_STOCK_CANCEL,922 GTK_RESPONSE_REJECT,923 NULL);924 925 label = gtk_label_new (_("Are you sure you want to delete this folder?"));926 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label);927 gtk_widget_show (label);928 929 result = gtk_dialog_run (GTK_DIALOG (dialog));930 931 switch (result)932 {933 case GTK_RESPONSE_ACCEPT:934 {935 GError *err = NULL;936 TnyFolderStore *folderstore = tny_folder_get_folder_store (folder);937 938 tny_folder_store_remove_folder (folderstore, folder, &err);939 940 if (err != NULL)941 {942 GtkWidget *edialog;943 944 gtk_widget_destroy (dialog);945 dialog = NULL;946 947 edialog = gtk_message_dialog_new (948 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))),949 GTK_DIALOG_DESTROY_WITH_PARENT,950 GTK_MESSAGE_ERROR,951 GTK_BUTTONS_CLOSE,952 err->message);953 g_signal_connect_swapped (edialog, "response",954 G_CALLBACK (gtk_widget_destroy), edialog);955 gtk_widget_show_all (edialog);956 g_error_free (err);957 }958 959 g_object_unref (G_OBJECT (folderstore));960 }961 break;962 963 default:964 break;965 }966 967 if (dialog)968 gtk_widget_destroy (dialog);969 g_object_unref (G_OBJECT (folder));970 }971 972 }973 }974 975 static void976 on_create_folder_activate (GtkMenuItem *mitem, gpointer user_data)977 {978 TnyDemouiSummaryView *self = user_data;979 TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self);980 GtkTreeIter iter;981 GtkTreeModel *model;982 983 if (gtk_tree_selection_get_selected (priv->mailbox_select, &model, &iter))984 {985 gint type;986 987 gtk_tree_model_get (model, &iter,988 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN,989 &type, -1);990 991 if (type != TNY_FOLDER_TYPE_ROOT)992 {993 TnyFolderStore *folderstore;994 GtkWidget *dialog, *entry;995 gint result;996 997 gtk_tree_model_get (model, &iter,998 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,999 &folderstore, -1);1000 1001 dialog = gtk_dialog_new_with_buttons (_("Create a folder"),1002 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))),1003 GTK_DIALOG_MODAL,1004 GTK_STOCK_OK,1005 GTK_RESPONSE_ACCEPT,1006 GTK_STOCK_CANCEL,1007 GTK_RESPONSE_REJECT,1008 NULL);1009 1010 entry = gtk_entry_new ();1011 gtk_entry_set_text (GTK_ENTRY (entry), _("New folder"));1012 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), entry);1013 gtk_widget_show (entry);1014 1015 result = gtk_dialog_run (GTK_DIALOG (dialog));1016 1017 switch (result)1018 {1019 case GTK_RESPONSE_ACCEPT:1020 {1021 GError *err = NULL;1022 const gchar *newname = gtk_entry_get_text (GTK_ENTRY (entry));1023 1024 TnyFolder *created = tny_folder_store_create_folder (folderstore, newname, &err);1025 1026 if (created) /* Can be NULL on failure */1027 g_object_unref (G_OBJECT (created));1028 1029 if (err != NULL)1030 {1031 GtkWidget *edialog;1032 1033 gtk_widget_destroy (dialog);1034 dialog = NULL;1035 1036 edialog = gtk_message_dialog_new (1037 GTK_WINDOW (gtk_widget_get_parent (GTK_WIDGET (self))),1038 GTK_DIALOG_DESTROY_WITH_PARENT,1039 GTK_MESSAGE_ERROR,1040 GTK_BUTTONS_CLOSE,1041 err->message);1042 g_signal_connect_swapped (edialog, "response",1043 G_CALLBACK (gtk_widget_destroy), edialog);1044 gtk_widget_show_all (edialog);1045 g_error_free (err);1046 }1047 }1048 break;1049 1050 default:1051 break;1052 }1053 1054 if (dialog)1055 gtk_widget_destroy (dialog);1056 1068 g_object_unref (G_OBJECT (folderstore)); 1057 1069 }
