Revision: 1751 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1751&view=re... Author: frlan Date: 2010-11-18 23:41:01 +0000 (Thu, 18 Nov 2010)
Log Message: ----------- GeanySendMail: Make usage of new plugin APIv199 and its dialogs_show_input(). Based on a patch by Nick. Thanks very much
Modified Paths: -------------- trunk/geany-plugins/geanysendmail/ChangeLog trunk/geany-plugins/geanysendmail/README trunk/geany-plugins/geanysendmail/src/geanysendmail.c
Modified: trunk/geany-plugins/geanysendmail/ChangeLog =================================================================== --- trunk/geany-plugins/geanysendmail/ChangeLog 2010-11-16 16:07:46 UTC (rev 1750) +++ trunk/geany-plugins/geanysendmail/ChangeLog 2010-11-18 23:41:01 UTC (rev 1751) @@ -1,3 +1,9 @@ +2010-11-19 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Apply a patch by Nick to make usage of new dialogs_show_input() + function from plugin APIv199. + + 2010-09-23 Frank Lanitz frank@frank.uvena.de
* Replace deprecated PLUGIN_KEY_GROUP macro.
Modified: trunk/geany-plugins/geanysendmail/README =================================================================== --- trunk/geany-plugins/geanysendmail/README 2010-11-16 16:07:46 UTC (rev 1750) +++ trunk/geany-plugins/geanysendmail/README 2010-11-18 23:41:01 UTC (rev 1751) @@ -25,7 +25,7 @@ prepared package e.g. from your distribution you probably need to install an additional package, this might be called geany-dev or geany-devel. Please note that in order to compile and use this plugin, -you need Geany 0.19 or later (Geany Plugin API v147 or higher). +you need Geany 0.20 or later (Geany Plugin API v199 or higher).
Furthermore you need, of course, a C compiler and the Make tool. The GNU versions of these tools are recommended.
Modified: trunk/geany-plugins/geanysendmail/src/geanysendmail.c =================================================================== --- trunk/geany-plugins/geanysendmail/src/geanysendmail.c 2010-11-16 16:07:46 UTC (rev 1750) +++ trunk/geany-plugins/geanysendmail/src/geanysendmail.c 2010-11-18 23:41:01 UTC (rev 1751) @@ -35,7 +35,7 @@ GeanyData *geany_data; GeanyFunctions *geany_functions;
-PLUGIN_VERSION_CHECK(188) +PLUGIN_VERSION_CHECK(199)
PLUGIN_SET_TRANSLATABLE_INFO( LOCALEDIR, @@ -63,12 +63,6 @@ static GtkWidget *main_menu_item = NULL;
-static void on_enter_key_pressed_in_entry(G_GNUC_UNUSED GtkWidget *widget, gpointer dialog ) -{ - gtk_dialog_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); -} - - /* Callback for sending file as attachment */ static void send_as_attachment(G_GNUC_UNUSED GtkMenuItem *menuitem, G_GNUC_UNUSED gpointer gdata) @@ -78,10 +72,6 @@ gchar *command = NULL; GError *error = NULL; GString *cmd_str = NULL; - GtkWidget *dialog = NULL; - GtkWidget *label = NULL; - GtkWidget *entry = NULL; - GtkWidget *vbox = NULL; GKeyFile *config = g_key_file_new(); gchar *config_dir = g_path_get_dirname(config_file); gchar *data; @@ -106,44 +96,22 @@
if ((use_address_dialog == TRUE) && (g_strrstr(mailer, "%r") != NULL)) { - dialog = gtk_dialog_new_with_buttons(_("Recipient's Address"), + gchar *input = dialogs_show_input(_("Recipient's Address"), GTK_WINDOW(geany->main_widgets->window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, - NULL); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); - vbox = ui_dialog_vbox_new(GTK_DIALOG(dialog)); - gtk_widget_set_name(dialog, "GeanyDialog"); - gtk_box_set_spacing(GTK_BOX(vbox), 10); + _("Enter the recipient's e-mail address:"), + address);
- label = gtk_label_new(_("Enter the recipient's e-mail address:")); - gtk_widget_show(label); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - entry = gtk_entry_new(); - gtk_widget_show(entry); - if (address != NULL) - gtk_entry_set_text(GTK_ENTRY(entry), address); - - gtk_container_add(GTK_CONTAINER(vbox), label); - gtk_container_add(GTK_CONTAINER(vbox), entry); - gtk_widget_show(vbox); - - g_signal_connect(G_OBJECT(entry), "activate", - G_CALLBACK(on_enter_key_pressed_in_entry), dialog); - - if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) + if (input) { g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL);
g_free(address); - address = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); + address = input;
g_key_file_set_string(config, "tools", "address", address); } else { - gtk_widget_destroy(dialog); return; }
@@ -173,10 +141,14 @@ if (! utils_string_replace_all(cmd_str, "%r", address)) ui_set_statusbar(FALSE, _("Recipient address placeholder not found. The executed command might have failed.")); + g_free(address); } else + { /* Removes %r if option was not activ but was included into command */ utils_string_replace_all(cmd_str, "%r", NULL); + g_free(address); + }
utils_string_replace_all(cmd_str, "%b", g_path_get_basename(locale_filename));
@@ -190,12 +162,6 @@
g_free(locale_filename); g_free(command); - - if (dialog != NULL) - { - gtk_widget_destroy(dialog); - } - } else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.