Revision: 1118 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1118&view=re... Author: frlan Date: 2010-01-05 23:07:37 +0000 (Tue, 05 Jan 2010)
Log Message: ----------- GeanySendMail: Tagging of 0.4.3 maintenance release and merging it into geany-plugins combined plugin release
Modified Paths: -------------- trunk/geany-plugins/geanysendmail/ChangeLog trunk/geany-plugins/geanysendmail/NEWS trunk/geany-plugins/geanysendmail/README trunk/geany-plugins/geanysendmail/TODO trunk/geany-plugins/geanysendmail/src/geanysendmail.c
Added Paths: ----------- tags/geanysendmail/geanysendmail-0.4.3/ tags/geanysendmail/geanysendmail-0.4.3/ChangeLog tags/geanysendmail/geanysendmail-0.4.3/NEWS tags/geanysendmail/geanysendmail-0.4.3/po/de.po tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c tags/geanysendmail/geanysendmail-0.4.3/wscript
Removed Paths: ------------- tags/geanysendmail/geanysendmail-0.4.3/ChangeLog tags/geanysendmail/geanysendmail-0.4.3/NEWS tags/geanysendmail/geanysendmail-0.4.3/po/de.po tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot tags/geanysendmail/geanysendmail-0.4.3/src/Makefile.am tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c tags/geanysendmail/geanysendmail-0.4.3/wscript trunk/geany-plugins/geanysendmail/INSTALL
Deleted: tags/geanysendmail/geanysendmail-0.4.3/ChangeLog =================================================================== --- trunk/geanysendmail/ChangeLog 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/ChangeLog 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,113 +0,0 @@ -2009-10-08 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Use waf for building plugin in faovr of autotools. - - -2009-07-18 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Update to Geany plugin API v147 and make usage of single header includes. - - -2009-05-28 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Make usage of Geany's ui_widget_set_tooltip_text() function. - - -2009-04-24 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Applied a patch by Timothy Boronczyk which allows aborting when inserting - recipient's email address. - - -2008-10-14 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Applied a patch by Nick to make use of Geany Plugin API r100 and the - add_document_sensitive() function from plugin API. - - -2008-10-13 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Applied a patch by Nick to make use of Geany Plugin API r99 and the - add item to toolbar function. - - -2008-10-03 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Implement a %b placeholder for adding basename of file to mailer command. - Thanks to Timothy Boronczyk for idea. - - -2008-09-28 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Make configuration example copyable. - - -2008-09-25 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Added a patch by Timothy Boronczyk to support creating a mail with - recipients email. Thanks for it. - - -2008-09-01 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Build environment: Update of Makefiles to include icon.h into source - package - * Build environment: Added makefile for Windows (needs to be tested) - * configure.in: Update of version string - - -2008-07-11 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Make plugin compile with Geany svn r2767. - - -2008-06-26 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Update of used plugin API to v71. - - -2008-06-16 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Make plugin also work together with GTK-2.8. Thanks to Nick for - providing patch. - - -2008-06-14 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Update of plugin API - - -2008-05-20 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Ported build system from spellcheck plugin. Thanks for it. - * Updated Geany plugin API. - * Activating of i18n support and adding a first German translation. - - -2008-05-13 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * Restart using ChangeLog. - - -2007-11-29 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * geanysendmail.c: Applied a patch from Enrico to improve code; - Version 0.2b - - -2007-11-23 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * geanysendmail.c, TODO: %f added Filename placeholder - Fixes a few segfaults and momory problems - - -2007-11-23 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * geanysendmail.c: Added support configuration dialog called by - plugin manager and configuration file support to store mailer. - * TODO: Added list to keep in mind what is still missing - - -2007-11-20 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - - * *: Initial commit
Copied: tags/geanysendmail/geanysendmail-0.4.3/ChangeLog (from rev 1117, trunk/geanysendmail/ChangeLog) =================================================================== --- tags/geanysendmail/geanysendmail-0.4.3/ChangeLog (rev 0) +++ tags/geanysendmail/geanysendmail-0.4.3/ChangeLog 2010-01-05 23:07:37 UTC (rev 1118) @@ -0,0 +1,118 @@ +2010-01-05 + + * Release of 0.4.3 mainteinance release. + + +2009-10-08 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Use waf for building plugin in faovr of autotools. + + +2009-07-18 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Update to Geany plugin API v147 and make usage of single header includes. + + +2009-05-28 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Make usage of Geany's ui_widget_set_tooltip_text() function. + + +2009-04-24 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Applied a patch by Timothy Boronczyk which allows aborting when inserting + recipient's email address. + + +2008-10-14 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Applied a patch by Nick to make use of Geany Plugin API r100 and the + add_document_sensitive() function from plugin API. + + +2008-10-13 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Applied a patch by Nick to make use of Geany Plugin API r99 and the + add item to toolbar function. + + +2008-10-03 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Implement a %b placeholder for adding basename of file to mailer command. + Thanks to Timothy Boronczyk for idea. + + +2008-09-28 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Make configuration example copyable. + + +2008-09-25 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Added a patch by Timothy Boronczyk to support creating a mail with + recipients email. Thanks for it. + + +2008-09-01 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Build environment: Update of Makefiles to include icon.h into source + package + * Build environment: Added makefile for Windows (needs to be tested) + * configure.in: Update of version string + + +2008-07-11 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Make plugin compile with Geany svn r2767. + + +2008-06-26 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Update of used plugin API to v71. + + +2008-06-16 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Make plugin also work together with GTK-2.8. Thanks to Nick for + providing patch. + + +2008-06-14 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Update of plugin API + + +2008-05-20 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Ported build system from spellcheck plugin. Thanks for it. + * Updated Geany plugin API. + * Activating of i18n support and adding a first German translation. + + +2008-05-13 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Restart using ChangeLog. + + +2007-11-29 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * geanysendmail.c: Applied a patch from Enrico to improve code; + Version 0.2b + + +2007-11-23 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * geanysendmail.c, TODO: %f added Filename placeholder + Fixes a few segfaults and momory problems + + +2007-11-23 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * geanysendmail.c: Added support configuration dialog called by + plugin manager and configuration file support to store mailer. + * TODO: Added list to keep in mind what is still missing + + +2007-11-20 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * *: Initial commit
Deleted: tags/geanysendmail/geanysendmail-0.4.3/NEWS =================================================================== --- trunk/geanysendmail/NEWS 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/NEWS 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,22 +0,0 @@ -GeanySendMail 0.4.3 (t.b.d.s) - * Use waf instead of autotools - * Update to Geany plugin API 147 - - -GeanySendMail 0.4.2 (26. May 2009): - * Added cancel button to recipient's address dialog - * Some minor code cleanup - - -GeanySendMail 0.4.1 (16. February 2009): - * Update to Geany pugin API v116 - * Minor improvments on wording and cleanup of code - - -GeanySendMail 0.4 (22. October 2008): - - * Adding support for creating a mail with recipients email - (Basic Patch by Timothy Boronczyk) - * Added placeholder for file's basename (Idea by Timothy Boronczyk) - * Added build support for Windows (not very well tested) - * Updates at translation, documentation and buildsystem
Copied: tags/geanysendmail/geanysendmail-0.4.3/NEWS (from rev 1117, trunk/geanysendmail/NEWS) =================================================================== --- tags/geanysendmail/geanysendmail-0.4.3/NEWS (rev 0) +++ tags/geanysendmail/geanysendmail-0.4.3/NEWS 2010-01-05 23:07:37 UTC (rev 1118) @@ -0,0 +1,22 @@ +GeanySendMail 0.4.3 (05.01.2010 - maintenance release) + * Use waf instead of autotools + * Update to Geany plugin API 147 + + +GeanySendMail 0.4.2 (26. May 2009): + * Added cancel button to recipient's address dialog + * Some minor code cleanup + + +GeanySendMail 0.4.1 (16. February 2009): + * Update to Geany pugin API v116 + * Minor improvments on wording and cleanup of code + + +GeanySendMail 0.4 (22. October 2008): + + * Adding support for creating a mail with recipients email + (Basic Patch by Timothy Boronczyk) + * Added placeholder for file's basename (Idea by Timothy Boronczyk) + * Added build support for Windows (not very well tested) + * Updates at translation, documentation and buildsystem
Deleted: tags/geanysendmail/geanysendmail-0.4.3/po/de.po =================================================================== --- trunk/geanysendmail/po/de.po 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/po/de.po 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,142 +0,0 @@ -# German translations for GeanySendMail package. -# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# Frank Lanitz <frank(at)frank(dot)uvena(dot)de> -msgid "" -msgstr "" -"Project-Id-Version: geanysendmail 0.4\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-25 00:27+0200\n" -"PO-Revision-Date: 2009-05-25 00:27+0100\n" -"Last-Translator: Frank Lanitz frank@frank.uvena.de\n" -"Language-Team: frank@frank.uvena.de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: German\n" -"X-Poedit-Country: GERMANY\n" -"X-Poedit-SourceCharset: utf-8\n" - -#: src/geanysendmail.c:47 -msgid "GeanySendMail" -msgstr "GeanySendMail" - -#: src/geanysendmail.c:47 -msgid "" -"A little plugin to send the current file as attachment by user's favorite " -"mailer" -msgstr "" -"Ein Plugin zum Senden einer Datei als Anhang unter Verwendung eines " -"Mailprogrammes." - -#: src/geanysendmail.c:107 -msgid "Recipient's Address" -msgstr "Emailadresse des Empfängers" - -#: src/geanysendmail.c:118 -msgid "Enter the recipient's e-mail address:" -msgstr "Emailadresse des Empfängers:" - -#: src/geanysendmail.c:151 src/geanysendmail.c:312 -msgid "Plugin configuration directory could not be created." -msgstr "Konfigurationsdatei konnte nicht erstellt werden." - -#: src/geanysendmail.c:166 -msgid "Filename placeholder not found. The executed command might have failed." -msgstr "" -"Konnte den Platzhalter für den Dateinamen (\%s) nicht finden. Das " -"angegebene Kommando könnte nicht korrekt ausgeführt worden sein." - -#: src/geanysendmail.c:172 -msgid "" -"Recipient address placeholder not found. The executed command might have " -"failed." -msgstr "" -"Konnte den Platzhalter für den Mailempfänger nicht finden. Das angegebene " -"Kommando könnte nicht korrekt ausgeführt worden sein." - -#: src/geanysendmail.c:184 -msgid "Could not execute mailer. Please check your configuration." -msgstr "" -"Konnte das Mailprogramm nicht aufrufen. Bitte überprüfen Sie Ihre " -"Einstellungen" - -#: src/geanysendmail.c:196 -msgid "Please define a mail client first." -msgstr "Bitte ein Mailprogramm angeben!" - -#: src/geanysendmail.c:201 -msgid "File has to be saved before sending." -msgstr "Die Datei muss vor dem Senden gespeichert werden." - -#: src/geanysendmail.c:217 -msgid "Mail" -msgstr "Mail" - -#: src/geanysendmail.c:248 -msgid "Send by mail" -msgstr "Per Mail senden" - -#. add a label and a text entry to the dialog -#: src/geanysendmail.c:336 -msgid "Path and options for the mail client:" -msgstr "Pfad und Optionen für das Mailprogramm:" - -#: src/geanysendmail.c:344 -msgid "" -"Note: \n" -"\t\%f will be replaced by your file.\n" -"\t\%r will be replaced by recipient's email address.\n" -"\t\%b will be replaced by basename of a file\n" -"\tExamples:\n" -"\tsylpheed --attach "\%f" --compose "\%r"\n" -"\tmutt -s "Sending '\%b'" -a "\%f" "\%r"" -msgstr "" -"Anmerkung: \n" -"\t\%f wird mit der zu sendenden Datei ersetzt.\t\n" -"\t\%r wird mit der Emailadresse des Empfängers ersetzt.\t\n" -"\t\%b wird mit dem reinen Dateinamen der zu sendenen Datei ersetzt.\n" -"\tEin Beispiel könnte sein:\t\n" -"\tsylpheed --attach "\%f" --compose "\%r"\n" -"\tmutt -s "Sending '\%b'" -a "\%f" "\%r"" - -#: src/geanysendmail.c:354 -msgid "Showing icon in toolbar" -msgstr "Symbol in der Werkzeugleiste anzeigen" - -#: src/geanysendmail.c:357 -msgid "Shows a icon in the toolbar to send file more easy." -msgstr "" -"Zeigt ein Symbol in der Werkzeugleiste an, sodass eine Datei einfacher " -"versendet werden kann." - -#: src/geanysendmail.c:364 -msgid "Using dialog for entering email address of recipients" -msgstr "" -"Zeigt einen Dialog zum Eingeben der Emailadresse des Empfängers der zu " -"sendenden Datei" - -#: src/geanysendmail.c:389 -msgid "Send file by mail" -msgstr "Per Mail senden" - -#. Build up menu entry -#: src/geanysendmail.c:416 -msgid "_Mail document" -msgstr "_Dokument versenden" - -#: src/geanysendmail.c:419 -msgid "" -"Sends the opened file as unzipped attachment by any mailer from your $PATH" -msgstr "" -"Sendet ein geöffnetes Dokument als ungepackten Anhang unter Verwendung eines " -"Mailprogrammes." - -#~ msgid "_Mail" -#~ msgstr "_Mail" - -#~ msgid "Note: \%f will be replaced by your filename." -#~ msgstr "Anmerkung: \%f wird durch den Dateinamen ersetzt." - -#~ msgid "Mail Configuration" -#~ msgstr "Maileinstellungen"
Copied: tags/geanysendmail/geanysendmail-0.4.3/po/de.po (from rev 1117, trunk/geanysendmail/po/de.po) =================================================================== --- tags/geanysendmail/geanysendmail-0.4.3/po/de.po (rev 0) +++ tags/geanysendmail/geanysendmail-0.4.3/po/de.po 2010-01-05 23:07:37 UTC (rev 1118) @@ -0,0 +1,142 @@ +# German translations for GeanySendMail package. +# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Frank Lanitz <frank(at)frank(dot)uvena(dot)de> +msgid "" +msgstr "" +"Project-Id-Version: geanysendmail 0.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-05 23:53+0100\n" +"PO-Revision-Date: 2009-05-25 00:27+0100\n" +"Last-Translator: Frank Lanitz frank@frank.uvena.de\n" +"Language-Team: frank@frank.uvena.de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../src/geanysendmail.c:40 +msgid "GeanySendMail" +msgstr "GeanySendMail" + +#: ../src/geanysendmail.c:40 +msgid "" +"A little plugin to send the current file as attachment by user's favorite " +"mailer" +msgstr "" +"Ein Plugin zum Senden einer Datei als Anhang unter Verwendung eines " +"Mailprogrammes." + +#: ../src/geanysendmail.c:100 +msgid "Recipient's Address" +msgstr "Emailadresse des Empfängers" + +#: ../src/geanysendmail.c:111 +msgid "Enter the recipient's e-mail address:" +msgstr "Emailadresse des Empfängers:" + +#: ../src/geanysendmail.c:144 ../src/geanysendmail.c:305 +msgid "Plugin configuration directory could not be created." +msgstr "Konfigurationsdatei konnte nicht erstellt werden." + +#: ../src/geanysendmail.c:159 +msgid "Filename placeholder not found. The executed command might have failed." +msgstr "" +"Konnte den Platzhalter für den Dateinamen (\%s) nicht finden. Das " +"angegebene Kommando könnte nicht korrekt ausgeführt worden sein." + +#: ../src/geanysendmail.c:165 +msgid "" +"Recipient address placeholder not found. The executed command might have " +"failed." +msgstr "" +"Konnte den Platzhalter für den Mailempfänger nicht finden. Das angegebene " +"Kommando könnte nicht korrekt ausgeführt worden sein." + +#: ../src/geanysendmail.c:177 +msgid "Could not execute mailer. Please check your configuration." +msgstr "" +"Konnte das Mailprogramm nicht aufrufen. Bitte überprüfen Sie Ihre " +"Einstellungen" + +#: ../src/geanysendmail.c:189 +msgid "Please define a mail client first." +msgstr "Bitte ein Mailprogramm angeben!" + +#: ../src/geanysendmail.c:194 +msgid "File has to be saved before sending." +msgstr "Die Datei muss vor dem Senden gespeichert werden." + +#: ../src/geanysendmail.c:210 +msgid "Mail" +msgstr "Mail" + +#: ../src/geanysendmail.c:241 +msgid "Send by mail" +msgstr "Per Mail senden" + +#. add a label and a text entry to the dialog +#: ../src/geanysendmail.c:326 +msgid "Path and options for the mail client:" +msgstr "Pfad und Optionen für das Mailprogramm:" + +#: ../src/geanysendmail.c:334 +msgid "" +"Note: \n" +"\t\%f will be replaced by your file.\n" +"\t\%r will be replaced by recipient's email address.\n" +"\t\%b will be replaced by basename of a file\n" +"\tExamples:\n" +"\tsylpheed --attach "\%f" --compose "\%r"\n" +"\tmutt -s "Sending '\%b'" -a "\%f" "\%r"" +msgstr "" +"Anmerkung: \n" +"\t\%f wird mit der zu sendenden Datei ersetzt.\t\n" +"\t\%r wird mit der Emailadresse des Empfängers ersetzt.\t\n" +"\t\%b wird mit dem reinen Dateinamen der zu sendenen Datei ersetzt.\n" +"\tEin Beispiel könnte sein:\t\n" +"\tsylpheed --attach "\%f" --compose "\%r"\n" +"\tmutt -s "Sending '\%b'" -a "\%f" "\%r"" + +#: ../src/geanysendmail.c:344 +msgid "Showing icon in toolbar" +msgstr "Symbol in der Werkzeugleiste anzeigen" + +#: ../src/geanysendmail.c:346 +msgid "Shows a icon in the toolbar to send file more easy." +msgstr "" +"Zeigt ein Symbol in der Werkzeugleiste an, sodass eine Datei einfacher " +"versendet werden kann." + +#: ../src/geanysendmail.c:352 +msgid "Using dialog for entering email address of recipients" +msgstr "" +"Zeigt einen Dialog zum Eingeben der Emailadresse des Empfängers der zu " +"sendenden Datei" + +#: ../src/geanysendmail.c:377 +msgid "Send file by mail" +msgstr "Per Mail senden" + +#. Build up menu entry +#: ../src/geanysendmail.c:404 +msgid "_Mail document" +msgstr "_Dokument versenden" + +#: ../src/geanysendmail.c:407 +msgid "" +"Sends the opened file as unzipped attachment by any mailer from your $PATH" +msgstr "" +"Sendet ein geöffnetes Dokument als ungepackten Anhang unter Verwendung eines " +"Mailprogrammes." + +#~ msgid "_Mail" +#~ msgstr "_Mail" + +#~ msgid "Note: \%f will be replaced by your filename." +#~ msgstr "Anmerkung: \%f wird durch den Dateinamen ersetzt." + +#~ msgid "Mail Configuration" +#~ msgstr "Maileinstellungen"
Deleted: tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot =================================================================== --- trunk/geanysendmail/po/geanysendmail.pot 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,111 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR EMAIL@ADDRESS, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-25 00:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME EMAIL@ADDRESS\n" -"Language-Team: LANGUAGE LL@li.org\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/geanysendmail.c:47 -msgid "GeanySendMail" -msgstr "" - -#: src/geanysendmail.c:47 -msgid "" -"A little plugin to send the current file as attachment by user's favorite " -"mailer" -msgstr "" - -#: src/geanysendmail.c:107 -msgid "Recipient's Address" -msgstr "" - -#: src/geanysendmail.c:118 -msgid "Enter the recipient's e-mail address:" -msgstr "" - -#: src/geanysendmail.c:151 src/geanysendmail.c:312 -msgid "Plugin configuration directory could not be created." -msgstr "" - -#: src/geanysendmail.c:166 -msgid "Filename placeholder not found. The executed command might have failed." -msgstr "" - -#: src/geanysendmail.c:172 -msgid "" -"Recipient address placeholder not found. The executed command might have " -"failed." -msgstr "" - -#: src/geanysendmail.c:184 -msgid "Could not execute mailer. Please check your configuration." -msgstr "" - -#: src/geanysendmail.c:196 -msgid "Please define a mail client first." -msgstr "" - -#: src/geanysendmail.c:201 -msgid "File has to be saved before sending." -msgstr "" - -#: src/geanysendmail.c:217 -msgid "Mail" -msgstr "" - -#: src/geanysendmail.c:248 -msgid "Send by mail" -msgstr "" - -#. add a label and a text entry to the dialog -#: src/geanysendmail.c:336 -msgid "Path and options for the mail client:" -msgstr "" - -#: src/geanysendmail.c:344 -msgid "" -"Note: \n" -"\t\%f will be replaced by your file.\n" -"\t\%r will be replaced by recipient's email address.\n" -"\t\%b will be replaced by basename of a file\n" -"\tExamples:\n" -"\tsylpheed --attach "\%f" --compose "\%r"\n" -"\tmutt -s "Sending '\%b'" -a "\%f" "\%r"" -msgstr "" - -#: src/geanysendmail.c:354 -msgid "Showing icon in toolbar" -msgstr "" - -#: src/geanysendmail.c:357 -msgid "Shows a icon in the toolbar to send file more easy." -msgstr "" - -#: src/geanysendmail.c:364 -msgid "Using dialog for entering email address of recipients" -msgstr "" - -#: src/geanysendmail.c:389 -msgid "Send file by mail" -msgstr "" - -#. Build up menu entry -#: src/geanysendmail.c:416 -msgid "_Mail document" -msgstr "" - -#: src/geanysendmail.c:419 -msgid "" -"Sends the opened file as unzipped attachment by any mailer from your $PATH" -msgstr ""
Copied: tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot (from rev 1117, trunk/geanysendmail/po/geanysendmail.pot) =================================================================== --- tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot (rev 0) +++ tags/geanysendmail/geanysendmail-0.4.3/po/geanysendmail.pot 2010-01-05 23:07:37 UTC (rev 1118) @@ -0,0 +1,111 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR EMAIL@ADDRESS, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-05 23:53+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME EMAIL@ADDRESS\n" +"Language-Team: LANGUAGE LL@li.org\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/geanysendmail.c:40 +msgid "GeanySendMail" +msgstr "" + +#: ../src/geanysendmail.c:40 +msgid "" +"A little plugin to send the current file as attachment by user's favorite " +"mailer" +msgstr "" + +#: ../src/geanysendmail.c:100 +msgid "Recipient's Address" +msgstr "" + +#: ../src/geanysendmail.c:111 +msgid "Enter the recipient's e-mail address:" +msgstr "" + +#: ../src/geanysendmail.c:144 ../src/geanysendmail.c:305 +msgid "Plugin configuration directory could not be created." +msgstr "" + +#: ../src/geanysendmail.c:159 +msgid "Filename placeholder not found. The executed command might have failed." +msgstr "" + +#: ../src/geanysendmail.c:165 +msgid "" +"Recipient address placeholder not found. The executed command might have " +"failed." +msgstr "" + +#: ../src/geanysendmail.c:177 +msgid "Could not execute mailer. Please check your configuration." +msgstr "" + +#: ../src/geanysendmail.c:189 +msgid "Please define a mail client first." +msgstr "" + +#: ../src/geanysendmail.c:194 +msgid "File has to be saved before sending." +msgstr "" + +#: ../src/geanysendmail.c:210 +msgid "Mail" +msgstr "" + +#: ../src/geanysendmail.c:241 +msgid "Send by mail" +msgstr "" + +#. add a label and a text entry to the dialog +#: ../src/geanysendmail.c:326 +msgid "Path and options for the mail client:" +msgstr "" + +#: ../src/geanysendmail.c:334 +msgid "" +"Note: \n" +"\t\%f will be replaced by your file.\n" +"\t\%r will be replaced by recipient's email address.\n" +"\t\%b will be replaced by basename of a file\n" +"\tExamples:\n" +"\tsylpheed --attach "\%f" --compose "\%r"\n" +"\tmutt -s "Sending '\%b'" -a "\%f" "\%r"" +msgstr "" + +#: ../src/geanysendmail.c:344 +msgid "Showing icon in toolbar" +msgstr "" + +#: ../src/geanysendmail.c:346 +msgid "Shows a icon in the toolbar to send file more easy." +msgstr "" + +#: ../src/geanysendmail.c:352 +msgid "Using dialog for entering email address of recipients" +msgstr "" + +#: ../src/geanysendmail.c:377 +msgid "Send file by mail" +msgstr "" + +#. Build up menu entry +#: ../src/geanysendmail.c:404 +msgid "_Mail document" +msgstr "" + +#: ../src/geanysendmail.c:407 +msgid "" +"Sends the opened file as unzipped attachment by any mailer from your $PATH" +msgstr ""
Deleted: tags/geanysendmail/geanysendmail-0.4.3/src/Makefile.am =================================================================== --- trunk/geanysendmail/src/Makefile.am 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/src/Makefile.am 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,7 +0,0 @@ - -lib_LTLIBRARIES = geanysendmail.la -geanysendmail_la_SOURCES = geanysendmail.c icon.h -geanysendmail_la_LDFLAGS = -module -avoid-version -geanysendmail_la_LIBADD = @GEANY_LIBS@ $(INTLLIBS) - -AM_CFLAGS = @GEANY_CFLAGS@ -DLOCALEDIR=""$(localedir)""
Deleted: tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c =================================================================== --- trunk/geanysendmail/src/geanysendmail.c 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,427 +0,0 @@ -/* - * geanysendmail.c - * - * Copyright 2007-2009 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - * Copyright 2007 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> - * Copyright 2007, 2008 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> - * Copyright 2008, 2009 Timothy Boronczyk <tboronczyk(at)gmail(dot)com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* A little plugin to send a document as attachment using the preferred mail client */ - -#include "geanyplugin.h" -#include "icon.h" - - -#ifdef HAVE_LOCALE_H -# include <locale.h> -#endif - -GeanyPlugin *geany_plugin; -GeanyData *geany_data; -GeanyFunctions *geany_functions; - -PLUGIN_VERSION_CHECK(147) - -PLUGIN_SET_INFO(_("GeanySendMail"), _("A little plugin to send the current \ -file as attachment by user's favorite mailer"), VERSION, "Frank Lanitz frank@frank.uvena.de") - -/* Keybinding(s) */ -enum -{ - SENDMAIL_KB, - COUNT_KB -}; - -PLUGIN_KEY_GROUP(sendmail, COUNT_KB) - -static gchar *config_file = NULL; -static gchar *mailer = NULL; -static gchar *address = NULL; -gboolean icon_in_toolbar = FALSE; -gboolean use_address_dialog = FALSE; -/* Needed global to remove from toolbar again */ -GtkWidget *mailbutton = NULL; -static GtkWidget *main_menu_item = NULL; - -/* Callback for sending file as attachment */ -static void -send_as_attachment(G_GNUC_UNUSED GtkMenuItem *menuitem, G_GNUC_UNUSED gpointer gdata) -{ - GeanyDocument *doc; - gchar *locale_filename = NULL; - 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; - - doc = document_get_current(); - - if (doc->file_name == NULL) - { - dialogs_show_save_as(); - } - else - { - document_save_file(doc, FALSE); - } - - if (doc->file_name != NULL) - { - if (mailer) - { - locale_filename = utils_get_locale_from_utf8(doc->file_name); - cmd_str = g_string_new(mailer); - - if ((use_address_dialog == TRUE) && (g_strrstr(mailer, "%r") != NULL)) - { - gint tmp; - - dialog = gtk_dialog_new_with_buttons(_("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); - - 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); - - tmp = gtk_dialog_run(GTK_DIALOG(dialog)); - - if (tmp != GTK_RESPONSE_ACCEPT) - { - gtk_widget_destroy(dialog); - return; - } - else - { - 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))); - - g_key_file_set_string(config, "tools", "address", address); - } - - if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && - utils_mkdir(config_dir, TRUE) != 0) - { - dialogs_show_msgbox(GTK_MESSAGE_ERROR, - _("Plugin configuration directory could not be created.")); - } - else - { - /* write config to file */ - data = g_key_file_to_data(config, NULL, NULL); - utils_write_file(config_file, data); - g_free(data); - g_key_file_free(config); - g_free(config_dir); - } - } - - if (! utils_string_replace_all(cmd_str, "%f", locale_filename)) - ui_set_statusbar(FALSE, - _("Filename placeholder not found. The executed command might have failed.")); - - if (use_address_dialog == TRUE && address != NULL) - { - if (! utils_string_replace_all(cmd_str, "%r", address)) - ui_set_statusbar(FALSE, - _("Recipient address placeholder not found. The executed command might have failed.")); - } - else - /* Removes %r if option was not activ but was included into command */ - utils_string_replace_all(cmd_str, "%r", NULL); - - utils_string_replace_all(cmd_str, "%b", g_path_get_basename(locale_filename)); - - command = g_string_free(cmd_str, FALSE); - g_spawn_command_line_async(command, &error); - if (error != NULL) - { - ui_set_statusbar(FALSE, _("Could not execute mailer. Please check your configuration.")); - g_error_free(error); - } - - g_free(locale_filename); - g_free(command); - - if (dialog != NULL) - gtk_widget_destroy(dialog); - } - else - { - ui_set_statusbar(FALSE, _("Please define a mail client first.")); - } - } - else - { - ui_set_statusbar(FALSE, _("File has to be saved before sending.")); - } -} - -static void key_send_as_attachment(G_GNUC_UNUSED guint key_id) -{ - send_as_attachment(NULL, NULL); -} - -#define GEANYSENDMAIL_STOCK_MAIL "geanysendmail-mail" - -static void add_stock_item(void) -{ - GtkIconSet *icon_set; - GtkIconFactory *factory = gtk_icon_factory_new(); - GtkIconTheme *theme = gtk_icon_theme_get_default(); - GtkStockItem item = { GEANYSENDMAIL_STOCK_MAIL, _("Mail"), 0, 0, GETTEXT_PACKAGE }; - - if (gtk_icon_theme_has_icon(theme, "mail-message-new")) - { - GtkIconSource *icon_source = gtk_icon_source_new(); - icon_set = gtk_icon_set_new(); - gtk_icon_source_set_icon_name(icon_source, "mail-message-new"); - gtk_icon_set_add_source(icon_set, icon_source); - gtk_icon_source_free(icon_source); - } - else - { - GdkPixbuf *pb = gdk_pixbuf_new_from_inline(-1, mail_pixbuf, FALSE, NULL); - icon_set = gtk_icon_set_new_from_pixbuf(pb); - g_object_unref(pb); - } - gtk_icon_factory_add(factory, item.stock_id, icon_set); - gtk_stock_add(&item, 1); - gtk_icon_factory_add_default(factory); - - g_object_unref(factory); - gtk_icon_set_unref(icon_set); -} - - -void show_icon() -{ - mailbutton = GTK_WIDGET(gtk_tool_button_new_from_stock(GEANYSENDMAIL_STOCK_MAIL)); - plugin_add_toolbar_item(geany_plugin, GTK_TOOL_ITEM(mailbutton)); - ui_add_document_sensitive(mailbutton); -#if GTK_CHECK_VERSION(2, 12, 0) - gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(mailbutton), _("Send by mail")); -#endif - g_signal_connect (G_OBJECT(mailbutton), "clicked", G_CALLBACK(send_as_attachment), NULL); - gtk_widget_show_all (mailbutton); -} - -void cleanup_icon() -{ - if (mailbutton != NULL) - { - gtk_container_remove(GTK_CONTAINER (geany->main_widgets->toolbar), mailbutton); - } -} - - -static struct -{ - GtkWidget *entry; - GtkWidget *checkbox_icon_to_toolbar; - GtkWidget *checkbox_use_addressdialog; -} -pref_widgets; - -static void -on_configure_response(G_GNUC_UNUSED GtkDialog *dialog, gint response, G_GNUC_UNUSED gpointer user_data) -{ - if (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY) - { - GKeyFile *config = g_key_file_new(); - gchar *config_dir = g_path_get_dirname(config_file); - - g_free(mailer); - mailer = g_strdup(gtk_entry_get_text(GTK_ENTRY(pref_widgets.entry))); - - if (icon_in_toolbar == FALSE && - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar)) == TRUE) - { - icon_in_toolbar = TRUE; - show_icon(); - } - else if (icon_in_toolbar == TRUE && - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar)) == FALSE) - { - cleanup_icon(); - icon_in_toolbar = FALSE; - } - else - { - icon_in_toolbar = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar)); - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_use_addressdialog)) == TRUE) - use_address_dialog = TRUE; - else - use_address_dialog = FALSE; - - g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL); - g_key_file_set_string(config, "tools", "mailer", mailer); - g_key_file_set_boolean(config, "tools", "address_usage", use_address_dialog); - g_key_file_set_boolean(config, "icon", "show_icon", icon_in_toolbar); - - if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && utils_mkdir(config_dir, TRUE) != 0) - { - dialogs_show_msgbox(GTK_MESSAGE_ERROR, - _("Plugin configuration directory could not be created.")); - } - else - { - /* write config to file */ - gchar *data = g_key_file_to_data(config, NULL, NULL); - utils_write_file(config_file, data); - g_free(data); - } - g_key_file_free(config); - g_free(config_dir); - } -} - -GtkWidget *plugin_configure(GtkDialog *dialog) -{ - GtkWidget *label1, *label2, *vbox; - - vbox = gtk_vbox_new(FALSE, 6); - - /* add a label and a text entry to the dialog */ - label1 = gtk_label_new(_("Path and options for the mail client:")); - gtk_widget_show(label1); - gtk_misc_set_alignment(GTK_MISC(label1), 0, 0.5); - pref_widgets.entry = gtk_entry_new(); - gtk_widget_show(pref_widgets.entry); - if (mailer != NULL) - gtk_entry_set_text(GTK_ENTRY(pref_widgets.entry), mailer); - - label2 = gtk_label_new(_("Note: \n\t%f will be replaced by your file."\ - "\n\t%r will be replaced by recipient's email address."\ - "\n\t%b will be replaced by basename of a file"\ - "\n\tExamples:"\ - "\n\tsylpheed --attach "%f" --compose "%r""\ - "\n\tmutt -s "Sending '%b'" -a "%f" "%r"")); - gtk_label_set_selectable(GTK_LABEL(label2), TRUE); - gtk_widget_show(label2); - gtk_misc_set_alignment(GTK_MISC(label2), 0, 0.5); - - pref_widgets.checkbox_icon_to_toolbar = gtk_check_button_new_with_label(_("Showing icon in toolbar")); - ui_widget_set_tooltip_text(pref_widgets.checkbox_icon_to_toolbar, - _("Shows a icon in the toolbar to send file more easy.")); - gtk_button_set_focus_on_click(GTK_BUTTON(pref_widgets.checkbox_icon_to_toolbar), FALSE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar), icon_in_toolbar); - gtk_widget_show(pref_widgets.checkbox_icon_to_toolbar); - - pref_widgets.checkbox_use_addressdialog = gtk_check_button_new_with_label(_ - ("Using dialog for entering email address of recipients")); - - gtk_button_set_focus_on_click(GTK_BUTTON(pref_widgets.checkbox_use_addressdialog), FALSE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_use_addressdialog), use_address_dialog); - gtk_widget_show(pref_widgets.checkbox_use_addressdialog); - - gtk_container_add(GTK_CONTAINER(vbox), label1); - gtk_container_add(GTK_CONTAINER(vbox), pref_widgets.entry); - gtk_container_add(GTK_CONTAINER(vbox), label2); - gtk_box_pack_start(GTK_BOX(vbox), pref_widgets.checkbox_icon_to_toolbar, TRUE, FALSE, 2); - gtk_box_pack_start(GTK_BOX(vbox), pref_widgets.checkbox_use_addressdialog, TRUE, FALSE, 2); - - gtk_widget_show(vbox); - - g_signal_connect(dialog, "response", G_CALLBACK(on_configure_response), NULL); - return vbox; -} - -/* Called by Geany to initialize the plugin */ -void plugin_init(GeanyData G_GNUC_UNUSED *data) -{ - GtkTooltips *tooltips = NULL; - - GKeyFile *config = g_key_file_new(); - - gchar *kb_label = _("Send file by mail"); - - GtkWidget *menu_mail = NULL; - - main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); - - config_file = g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S, - "geanysendmail", G_DIR_SEPARATOR_S, "mail.conf", NULL); - - /* Initialising options from config file */ - g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL); - mailer = g_key_file_get_string(config, "tools", "mailer", NULL); - address = g_key_file_get_string(config, "tools", "address", NULL); - use_address_dialog = g_key_file_get_boolean(config, "tools", "address_usage", NULL); - icon_in_toolbar = g_key_file_get_boolean(config, "icon", "show_icon", NULL); - - g_key_file_free(config); - - tooltips = gtk_tooltips_new(); - - add_stock_item(); - if (icon_in_toolbar == TRUE) - { - show_icon(); - } - - /* Build up menu entry */ - menu_mail = gtk_menu_item_new_with_mnemonic(_("_Mail document")); - gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), menu_mail); - ui_widget_set_tooltip_text(menu_mail, - _("Sends the opened file as unzipped attachment by any mailer from your $PATH")); - g_signal_connect(G_OBJECT(menu_mail), "activate", G_CALLBACK(send_as_attachment), NULL); - - /* setup keybindings */ - keybindings_set_item(plugin_key_group, SENDMAIL_KB, key_send_as_attachment, - 0, 0, "send_file_as_attachment", kb_label, menu_mail); - - gtk_widget_show_all(menu_mail); - ui_add_document_sensitive(menu_mail); - main_menu_item = menu_mail; -} - - -void plugin_cleanup() -{ - gtk_widget_destroy(main_menu_item); - cleanup_icon(); - g_free(mailer); - g_free(address); - g_free(config_file); -}
Copied: tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c (from rev 1117, trunk/geanysendmail/src/geanysendmail.c) =================================================================== --- tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c (rev 0) +++ tags/geanysendmail/geanysendmail-0.4.3/src/geanysendmail.c 2010-01-05 23:07:37 UTC (rev 1118) @@ -0,0 +1,427 @@ +/* + * geanysendmail.c + * + * Copyright 2007-2009 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + * Copyright 2007 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> + * Copyright 2007, 2008 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + * Copyright 2008, 2009 Timothy Boronczyk <tboronczyk(at)gmail(dot)com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* A little plugin to send a document as attachment using the preferred mail client */ + +#include "geanyplugin.h" +#include "icon.h" + + +#ifdef HAVE_LOCALE_H +# include <locale.h> +#endif + +GeanyPlugin *geany_plugin; +GeanyData *geany_data; +GeanyFunctions *geany_functions; + +PLUGIN_VERSION_CHECK(147) + +PLUGIN_SET_INFO(_("GeanySendMail"), _("A little plugin to send the current \ +file as attachment by user's favorite mailer"), "0.4.3", "Frank Lanitz frank@frank.uvena.de") + +/* Keybinding(s) */ +enum +{ + SENDMAIL_KB, + COUNT_KB +}; + +PLUGIN_KEY_GROUP(sendmail, COUNT_KB) + +static gchar *config_file = NULL; +static gchar *mailer = NULL; +static gchar *address = NULL; +gboolean icon_in_toolbar = FALSE; +gboolean use_address_dialog = FALSE; +/* Needed global to remove from toolbar again */ +GtkWidget *mailbutton = NULL; +static GtkWidget *main_menu_item = NULL; + +/* Callback for sending file as attachment */ +static void +send_as_attachment(G_GNUC_UNUSED GtkMenuItem *menuitem, G_GNUC_UNUSED gpointer gdata) +{ + GeanyDocument *doc; + gchar *locale_filename = NULL; + 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; + + doc = document_get_current(); + + if (doc->file_name == NULL) + { + dialogs_show_save_as(); + } + else + { + document_save_file(doc, FALSE); + } + + if (doc->file_name != NULL) + { + if (mailer) + { + locale_filename = utils_get_locale_from_utf8(doc->file_name); + cmd_str = g_string_new(mailer); + + if ((use_address_dialog == TRUE) && (g_strrstr(mailer, "%r") != NULL)) + { + gint tmp; + + dialog = gtk_dialog_new_with_buttons(_("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); + + 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); + + tmp = gtk_dialog_run(GTK_DIALOG(dialog)); + + if (tmp != GTK_RESPONSE_ACCEPT) + { + gtk_widget_destroy(dialog); + return; + } + else + { + 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))); + + g_key_file_set_string(config, "tools", "address", address); + } + + if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && + utils_mkdir(config_dir, TRUE) != 0) + { + dialogs_show_msgbox(GTK_MESSAGE_ERROR, + _("Plugin configuration directory could not be created.")); + } + else + { + /* write config to file */ + data = g_key_file_to_data(config, NULL, NULL); + utils_write_file(config_file, data); + g_free(data); + g_key_file_free(config); + g_free(config_dir); + } + } + + if (! utils_string_replace_all(cmd_str, "%f", locale_filename)) + ui_set_statusbar(FALSE, + _("Filename placeholder not found. The executed command might have failed.")); + + if (use_address_dialog == TRUE && address != NULL) + { + if (! utils_string_replace_all(cmd_str, "%r", address)) + ui_set_statusbar(FALSE, + _("Recipient address placeholder not found. The executed command might have failed.")); + } + else + /* Removes %r if option was not activ but was included into command */ + utils_string_replace_all(cmd_str, "%r", NULL); + + utils_string_replace_all(cmd_str, "%b", g_path_get_basename(locale_filename)); + + command = g_string_free(cmd_str, FALSE); + g_spawn_command_line_async(command, &error); + if (error != NULL) + { + ui_set_statusbar(FALSE, _("Could not execute mailer. Please check your configuration.")); + g_error_free(error); + } + + g_free(locale_filename); + g_free(command); + + if (dialog != NULL) + gtk_widget_destroy(dialog); + } + else + { + ui_set_statusbar(FALSE, _("Please define a mail client first.")); + } + } + else + { + ui_set_statusbar(FALSE, _("File has to be saved before sending.")); + } +} + +static void key_send_as_attachment(G_GNUC_UNUSED guint key_id) +{ + send_as_attachment(NULL, NULL); +} + +#define GEANYSENDMAIL_STOCK_MAIL "geanysendmail-mail" + +static void add_stock_item(void) +{ + GtkIconSet *icon_set; + GtkIconFactory *factory = gtk_icon_factory_new(); + GtkIconTheme *theme = gtk_icon_theme_get_default(); + GtkStockItem item = { GEANYSENDMAIL_STOCK_MAIL, _("Mail"), 0, 0, GETTEXT_PACKAGE }; + + if (gtk_icon_theme_has_icon(theme, "mail-message-new")) + { + GtkIconSource *icon_source = gtk_icon_source_new(); + icon_set = gtk_icon_set_new(); + gtk_icon_source_set_icon_name(icon_source, "mail-message-new"); + gtk_icon_set_add_source(icon_set, icon_source); + gtk_icon_source_free(icon_source); + } + else + { + GdkPixbuf *pb = gdk_pixbuf_new_from_inline(-1, mail_pixbuf, FALSE, NULL); + icon_set = gtk_icon_set_new_from_pixbuf(pb); + g_object_unref(pb); + } + gtk_icon_factory_add(factory, item.stock_id, icon_set); + gtk_stock_add(&item, 1); + gtk_icon_factory_add_default(factory); + + g_object_unref(factory); + gtk_icon_set_unref(icon_set); +} + + +void show_icon() +{ + mailbutton = GTK_WIDGET(gtk_tool_button_new_from_stock(GEANYSENDMAIL_STOCK_MAIL)); + plugin_add_toolbar_item(geany_plugin, GTK_TOOL_ITEM(mailbutton)); + ui_add_document_sensitive(mailbutton); +#if GTK_CHECK_VERSION(2, 12, 0) + gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(mailbutton), _("Send by mail")); +#endif + g_signal_connect (G_OBJECT(mailbutton), "clicked", G_CALLBACK(send_as_attachment), NULL); + gtk_widget_show_all (mailbutton); +} + +void cleanup_icon() +{ + if (mailbutton != NULL) + { + gtk_container_remove(GTK_CONTAINER (geany->main_widgets->toolbar), mailbutton); + } +} + + +static struct +{ + GtkWidget *entry; + GtkWidget *checkbox_icon_to_toolbar; + GtkWidget *checkbox_use_addressdialog; +} +pref_widgets; + +static void +on_configure_response(G_GNUC_UNUSED GtkDialog *dialog, gint response, G_GNUC_UNUSED gpointer user_data) +{ + if (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY) + { + GKeyFile *config = g_key_file_new(); + gchar *config_dir = g_path_get_dirname(config_file); + + g_free(mailer); + mailer = g_strdup(gtk_entry_get_text(GTK_ENTRY(pref_widgets.entry))); + + if (icon_in_toolbar == FALSE && + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar)) == TRUE) + { + icon_in_toolbar = TRUE; + show_icon(); + } + else if (icon_in_toolbar == TRUE && + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar)) == FALSE) + { + cleanup_icon(); + icon_in_toolbar = FALSE; + } + else + { + icon_in_toolbar = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar)); + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_use_addressdialog)) == TRUE) + use_address_dialog = TRUE; + else + use_address_dialog = FALSE; + + g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL); + g_key_file_set_string(config, "tools", "mailer", mailer); + g_key_file_set_boolean(config, "tools", "address_usage", use_address_dialog); + g_key_file_set_boolean(config, "icon", "show_icon", icon_in_toolbar); + + if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && utils_mkdir(config_dir, TRUE) != 0) + { + dialogs_show_msgbox(GTK_MESSAGE_ERROR, + _("Plugin configuration directory could not be created.")); + } + else + { + /* write config to file */ + gchar *data = g_key_file_to_data(config, NULL, NULL); + utils_write_file(config_file, data); + g_free(data); + } + g_key_file_free(config); + g_free(config_dir); + } +} + +GtkWidget *plugin_configure(GtkDialog *dialog) +{ + GtkWidget *label1, *label2, *vbox; + + vbox = gtk_vbox_new(FALSE, 6); + + /* add a label and a text entry to the dialog */ + label1 = gtk_label_new(_("Path and options for the mail client:")); + gtk_widget_show(label1); + gtk_misc_set_alignment(GTK_MISC(label1), 0, 0.5); + pref_widgets.entry = gtk_entry_new(); + gtk_widget_show(pref_widgets.entry); + if (mailer != NULL) + gtk_entry_set_text(GTK_ENTRY(pref_widgets.entry), mailer); + + label2 = gtk_label_new(_("Note: \n\t%f will be replaced by your file."\ + "\n\t%r will be replaced by recipient's email address."\ + "\n\t%b will be replaced by basename of a file"\ + "\n\tExamples:"\ + "\n\tsylpheed --attach "%f" --compose "%r""\ + "\n\tmutt -s "Sending '%b'" -a "%f" "%r"")); + gtk_label_set_selectable(GTK_LABEL(label2), TRUE); + gtk_widget_show(label2); + gtk_misc_set_alignment(GTK_MISC(label2), 0, 0.5); + + pref_widgets.checkbox_icon_to_toolbar = gtk_check_button_new_with_label(_("Showing icon in toolbar")); + ui_widget_set_tooltip_text(pref_widgets.checkbox_icon_to_toolbar, + _("Shows a icon in the toolbar to send file more easy.")); + gtk_button_set_focus_on_click(GTK_BUTTON(pref_widgets.checkbox_icon_to_toolbar), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_icon_to_toolbar), icon_in_toolbar); + gtk_widget_show(pref_widgets.checkbox_icon_to_toolbar); + + pref_widgets.checkbox_use_addressdialog = gtk_check_button_new_with_label(_ + ("Using dialog for entering email address of recipients")); + + gtk_button_set_focus_on_click(GTK_BUTTON(pref_widgets.checkbox_use_addressdialog), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pref_widgets.checkbox_use_addressdialog), use_address_dialog); + gtk_widget_show(pref_widgets.checkbox_use_addressdialog); + + gtk_container_add(GTK_CONTAINER(vbox), label1); + gtk_container_add(GTK_CONTAINER(vbox), pref_widgets.entry); + gtk_container_add(GTK_CONTAINER(vbox), label2); + gtk_box_pack_start(GTK_BOX(vbox), pref_widgets.checkbox_icon_to_toolbar, TRUE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(vbox), pref_widgets.checkbox_use_addressdialog, TRUE, FALSE, 2); + + gtk_widget_show(vbox); + + g_signal_connect(dialog, "response", G_CALLBACK(on_configure_response), NULL); + return vbox; +} + +/* Called by Geany to initialize the plugin */ +void plugin_init(GeanyData G_GNUC_UNUSED *data) +{ + GtkTooltips *tooltips = NULL; + + GKeyFile *config = g_key_file_new(); + + gchar *kb_label = _("Send file by mail"); + + GtkWidget *menu_mail = NULL; + + main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); + + config_file = g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S, + "geanysendmail", G_DIR_SEPARATOR_S, "mail.conf", NULL); + + /* Initialising options from config file */ + g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL); + mailer = g_key_file_get_string(config, "tools", "mailer", NULL); + address = g_key_file_get_string(config, "tools", "address", NULL); + use_address_dialog = g_key_file_get_boolean(config, "tools", "address_usage", NULL); + icon_in_toolbar = g_key_file_get_boolean(config, "icon", "show_icon", NULL); + + g_key_file_free(config); + + tooltips = gtk_tooltips_new(); + + add_stock_item(); + if (icon_in_toolbar == TRUE) + { + show_icon(); + } + + /* Build up menu entry */ + menu_mail = gtk_menu_item_new_with_mnemonic(_("_Mail document")); + gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), menu_mail); + ui_widget_set_tooltip_text(menu_mail, + _("Sends the opened file as unzipped attachment by any mailer from your $PATH")); + g_signal_connect(G_OBJECT(menu_mail), "activate", G_CALLBACK(send_as_attachment), NULL); + + /* setup keybindings */ + keybindings_set_item(plugin_key_group, SENDMAIL_KB, key_send_as_attachment, + 0, 0, "send_file_as_attachment", kb_label, menu_mail); + + gtk_widget_show_all(menu_mail); + ui_add_document_sensitive(menu_mail); + main_menu_item = menu_mail; +} + + +void plugin_cleanup() +{ + gtk_widget_destroy(main_menu_item); + cleanup_icon(); + g_free(mailer); + g_free(address); + g_free(config_file); +}
Deleted: tags/geanysendmail/geanysendmail-0.4.3/wscript =================================================================== --- trunk/geanysendmail/wscript 2010-01-05 22:40:35 UTC (rev 1116) +++ tags/geanysendmail/geanysendmail-0.4.3/wscript 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,342 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# WAF build script for geany plugin GeanySendMail -# -# Copyright 2008-2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> -# Copyright 2009 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# $Id$ - -""" -Waf build script for the Geany plugin GeanySendMail. - - -The code of this file itself loosely follows PEP 8 with some exceptions -(line width 100 characters and some other minor things). - -Requires WAF 1.5.7 and Python 2.4 (or later). -""" - - -import glob -import os -import sys -import tempfile -import Build -import Options -import Utils -import preproc - - -APPNAME = 'geanysendmail' -VERSION = '0.4.3dev' - -srcdir = '.' -blddir = '_build_' - - - -makefile_template = '''#!/usr/bin/make -f -# Waf Makefile wrapper - -all: - @./waf build - -update-po: - @./waf --update-po - -install: - @if test -n "$(DESTDIR)"; then \ - ./waf install --destdir="$(DESTDIR)"; \ - else \ - ./waf install; \ - fi; - -uninstall: - @if test -n "$(DESTDIR)"; then \ - ./waf uninstall --destdir="$(DESTDIR)"; \ - else \ - ./waf uninstall; \ - fi; - -clean: - @./waf clean - -distclean: - @./waf distclean - -.PHONY: clean uninstall install all -''' - - -geanysendmail_sources = [ - 'src/geanysendmail.c'] - -def configure(conf): - def conf_get_svn_rev(): - # try GIT - if os.path.exists('.git'): - cmds = [ 'git svn find-rev HEAD 2>/dev/null', - 'git svn find-rev origin/trunk 2>/dev/null', - 'git svn find-rev trunk 2>/dev/null', - 'git svn find-rev master 2>/dev/null' ] - for c in cmds: - try: - stdout = Utils.cmd_output(c) - if stdout: - return stdout.strip() - except: - pass - # try SVN - elif os.path.exists('.svn'): - try: - _env = None if is_win32 else {'LANG' : 'C'} - stdout = Utils.cmd_output(cmd='svn info --non-interactive', - silent=True, env=_env) - lines = stdout.splitlines(True) - for line in lines: - if line.startswith('Last Changed Rev'): - key, value = line.split(': ', 1) - return value.strip() - except: - pass - else: - pass - return '-1' - - def set_lib_dir(): - # use the libdir specified on command line - if Options.options.libdir: - conf.define('LIBDIR', Options.options.libdir, 1) - else: - # get Geany's libdir (this should be the default case for most users) - libdir = conf.check_cfg(package='geany', args='--variable=libdir') - if libdir: - conf.define('LIBDIR', libdir.strip(), 1) - else: - conf.define('LIBDIR', conf.env['PREFIX'] + '/lib', 1) - - def conf_define_from_opt(define_name, opt_name, default_value, quote=1): - if opt_name: - if isinstance(opt_name, bool): - opt_name = 1 - conf.define(define_name, opt_name, quote) - elif default_value: - conf.define(define_name, default_value, quote) - - - conf.check_tool('compiler_cc') - is_win32 = target_is_win32(conf.env) - - # we don't require intltool on Windows (it would require Perl) though it works well - try: - conf.check_tool('intltool') - except: - pass - - if not is_win32: - set_lib_dir() - - - # GTK version check - conf.check_cfg(package='gtk+-2.0', atleast_version='2.8.0', - uselib_store='GTK', mandatory=True, args='--cflags --libs') - gtk_version = conf.check_cfg(modversion='gtk+-2.0', uselib_store='GTK') - - # Checking for a 'good' geany - conf.check_cfg(package='geany', atleast_version='0.18', mandatory=True, args='--cflags --libs') - - gtk_version = conf.check_cfg(modversion='gtk+-2.0') or 'Unknown' - geany_version = conf.check_cfg(modversion='geany') or 'Unknown' - - # Windows specials - if is_win32: - if conf.env['PREFIX'] == tempfile.gettempdir(): - # overwrite default prefix on Windows (tempfile.gettempdir() is the Waf default) - conf.define('PREFIX', os.path.join(conf.srcdir, '%s-%s' % (APPNAME, VERSION)), 1) - # hack: we add the parent directory of the first include directory as this is missing in - # list returned from pkg-config - conf.env['CPPPATH_GTK'].insert(0, os.path.dirname(conf.env['CPPPATH_GTK'][0])) - # we don't need -fPIC when compiling on or for Windows - if '-fPIC' in conf.env['shlib_CCFLAGS']: - conf.env['shlib_CCFLAGS'].remove('-fPIC') - conf.env['shlib_PATTERN'] = '%s.dll' - else: - conf.env['shlib_PATTERN'] = '%s.so' - - svn_rev = conf_get_svn_rev() - conf.define('REVISION', svn_rev, 1) - - conf.env['G_PREFIX'] = conf.env['PREFIX'] - - - if is_win32: - conf.define('PREFIX', '', 1) - conf.define('LIBDIR', '', 1) - conf.define('DOCDIR', 'doc', 1) - conf.define('LOCALEDIR', 'share/locale', 1) - # DATADIR is defined in objidl.h, so we remove it from config.h - conf.undefine('DATADIR') - else: - conf.define('PREFIX', conf.env['PREFIX'], 1) - conf.define('DOCDIR', '%s/doc/geany-plugins/' % conf.env['DATADIR'], 1) - conf.define('VERSION', VERSION, 1) - conf.define('PACKAGE', APPNAME, 1) - conf.define('GETTEXT_PACKAGE', APPNAME, 1) - conf.define('ENABLE_NLS', 1) - conf.write_config_header('config.h') - - if is_win32: # overwrite LOCALEDIR to install message catalogues properly - conf.env['LOCALEDIR'] = os.path.join(conf.env['G_PREFIX'], 'share/locale') - - Utils.pprint('BLUE', 'Summary:') - print_message(conf, 'Install GeanySendMail ' + VERSION + ' in', conf.env['G_PREFIX']) - print_message(conf, 'Using GTK version', gtk_version) - print_message(conf, 'Using Geany version', geany_version) - if svn_rev != '-1': - print_message(conf, 'Compiling Subversion revision', svn_rev) - conf.env.append_value('CCFLAGS', '-g -O0 -DDEBUG'.split()) # -DGEANY_DISABLE_DEPRECATED' - - conf.env.append_value('CCFLAGS', '-DHAVE_CONFIG_H'.split()) - - # convenience script (script content copied from the original waf.bat) - if is_win32: - f = open('waf.bat', 'wb') - f.write('@python -x %~dp0waf %* & exit /b') - f.close - # write a simple Makefile - else: - f = open('Makefile', 'w') - f.write(makefile_template) - f.close - -def set_options(opt): - opt.tool_options('compiler_cc') - opt.tool_options('intltool') - - # Paths - opt.add_option('--libdir', type='string', default='', - help='object code libraries', dest='libdir') - # Actions - opt.add_option('--update-po', action='store_true', default=False, - help='update the message catalogs for translation', dest='update_po') - opt.add_option('--write-installer', action='store_true', default=False, - help='create Windows installer (maintainer and Win32 only)', dest='write_installer') - -def build(bld): - is_win32 = target_is_win32(bld.env) - - def install_docs(bld, pname, files): - ext = '.txt' if is_win32 else '' - docdir = '${G_PREFIX}/doc/plugins/%s' % pname if is_win32 else '${DOCDIR}/%s' % pname - for file in files: - if os.path.exists(file): - bld.install_as( - '%s/%s%s' % (docdir, uc_first(file, is_win32), ext), file) - - bld.new_task_gen( - features = 'cc cshlib', - name = 'geanysendmail', - target = 'geanysendmail', - source = geanysendmail_sources, - includes = '. src/', - uselib = 'GTK GEANY', - install_path = '${G_PREFIX}/lib' if is_win32 else '${LIBDIR}/geany/' - ) - - install_docs(bld, 'geanysendmail', 'AUTHORS ChangeLog COPYING NEWS README THANKS TODO'.split()) - - # Translations - if bld.env['INTLTOOL']: - bld.new_task_gen( - features = 'intltool_po', - podir = 'po', - install_path = '${LOCALEDIR}', - appname = 'geanysendmail' - ) - -def shutdown(): - if Options.options.write_installer: - do_sign = os.path.exists("sign.bat") # private file to sign the binary files, not needed - def sign_binary(file): - if do_sign: - Utils.exec_command('sign.bat %s' % file) - - # strip all binaries - Utils.pprint('CYAN', 'Stripping %sfiles' % ('and signing binary ' if do_sign else '')) - files = glob.glob(os.path.join(Build.bld.env['G_PREFIX'], 'lib', '*.dll')) - - if Options.options.update_po: - # the following code was taken from midori's WAF script, thanks - potfile = '%s.pot' % (APPNAME) - os.chdir('%s/po' % srcdir) - try: - try: - size_old = os.stat(potfile).st_size - except: - size_old = 0 - Utils.exec_command('intltool-update --pot -g %s' % APPNAME) - if os.stat(potfile).st_size != size_old: - Utils.pprint('CYAN', 'Updated POT file.') - launch('intltool-update -r -g %s' % APPNAME, 'Updating translations', 'CYAN') - else: - Utils.pprint('CYAN', 'POT file is up to date.') - except: - Utils.pprint('RED', 'Failed to generate pot file.') - os.chdir('..') - - -# Simple function to execute a command and print its exit status -def launch(command, status, success_color='GREEN'): - ret = 0 - Utils.pprint(success_color, status) - try: - ret = Utils.exec_command(command) - except OSError, e: - ret = 1 - print str(e), ":", command - except: - ret = 1 - - if ret != 0: - Utils.pprint('RED', status + ' failed') - - return ret - - -def print_message(conf, msg, result, color = 'GREEN'): - conf.check_message_1(msg) - conf.check_message_2(result, color) - - -def uc_first(s, is_win32): - if is_win32: - return s.title() - return s - - -def target_is_win32(env): - if sys.platform == 'win32': - return True - if env and 'CC' in env: - cc = env['CC'] - if not isinstance(cc, str): - cc = ''.join(cc) - return cc.find('mingw') != -1 - return False -
Copied: tags/geanysendmail/geanysendmail-0.4.3/wscript (from rev 1117, trunk/geanysendmail/wscript) =================================================================== --- tags/geanysendmail/geanysendmail-0.4.3/wscript (rev 0) +++ tags/geanysendmail/geanysendmail-0.4.3/wscript 2010-01-05 23:07:37 UTC (rev 1118) @@ -0,0 +1,342 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# WAF build script for geany plugin GeanySendMail +# +# Copyright 2008-2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> +# Copyright 2009 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# $Id$ + +""" +Waf build script for the Geany plugin GeanySendMail. + + +The code of this file itself loosely follows PEP 8 with some exceptions +(line width 100 characters and some other minor things). + +Requires WAF 1.5.7 and Python 2.4 (or later). +""" + + +import glob +import os +import sys +import tempfile +import Build +import Options +import Utils +import preproc + + +APPNAME = 'geanysendmail' +VERSION = '0.4.3' + +srcdir = '.' +blddir = '_build_' + + + +makefile_template = '''#!/usr/bin/make -f +# Waf Makefile wrapper + +all: + @./waf build + +update-po: + @./waf --update-po + +install: + @if test -n "$(DESTDIR)"; then \ + ./waf install --destdir="$(DESTDIR)"; \ + else \ + ./waf install; \ + fi; + +uninstall: + @if test -n "$(DESTDIR)"; then \ + ./waf uninstall --destdir="$(DESTDIR)"; \ + else \ + ./waf uninstall; \ + fi; + +clean: + @./waf clean + +distclean: + @./waf distclean + +.PHONY: clean uninstall install all +''' + + +geanysendmail_sources = [ + 'src/geanysendmail.c'] + +def configure(conf): + def conf_get_svn_rev(): + # try GIT + if os.path.exists('.git'): + cmds = [ 'git svn find-rev HEAD 2>/dev/null', + 'git svn find-rev origin/trunk 2>/dev/null', + 'git svn find-rev trunk 2>/dev/null', + 'git svn find-rev master 2>/dev/null' ] + for c in cmds: + try: + stdout = Utils.cmd_output(c) + if stdout: + return stdout.strip() + except: + pass + # try SVN + elif os.path.exists('.svn'): + try: + _env = None if is_win32 else {'LANG' : 'C'} + stdout = Utils.cmd_output(cmd='svn info --non-interactive', + silent=True, env=_env) + lines = stdout.splitlines(True) + for line in lines: + if line.startswith('Last Changed Rev'): + key, value = line.split(': ', 1) + return value.strip() + except: + pass + else: + pass + return '-1' + + def set_lib_dir(): + # use the libdir specified on command line + if Options.options.libdir: + conf.define('LIBDIR', Options.options.libdir, 1) + else: + # get Geany's libdir (this should be the default case for most users) + libdir = conf.check_cfg(package='geany', args='--variable=libdir') + if libdir: + conf.define('LIBDIR', libdir.strip(), 1) + else: + conf.define('LIBDIR', conf.env['PREFIX'] + '/lib', 1) + + def conf_define_from_opt(define_name, opt_name, default_value, quote=1): + if opt_name: + if isinstance(opt_name, bool): + opt_name = 1 + conf.define(define_name, opt_name, quote) + elif default_value: + conf.define(define_name, default_value, quote) + + + conf.check_tool('compiler_cc') + is_win32 = target_is_win32(conf.env) + + # we don't require intltool on Windows (it would require Perl) though it works well + try: + conf.check_tool('intltool') + except: + pass + + if not is_win32: + set_lib_dir() + + + # GTK version check + conf.check_cfg(package='gtk+-2.0', atleast_version='2.8.0', + uselib_store='GTK', mandatory=True, args='--cflags --libs') + gtk_version = conf.check_cfg(modversion='gtk+-2.0', uselib_store='GTK') + + # Checking for a 'good' geany + conf.check_cfg(package='geany', atleast_version='0.18', mandatory=True, args='--cflags --libs') + + gtk_version = conf.check_cfg(modversion='gtk+-2.0') or 'Unknown' + geany_version = conf.check_cfg(modversion='geany') or 'Unknown' + + # Windows specials + if is_win32: + if conf.env['PREFIX'] == tempfile.gettempdir(): + # overwrite default prefix on Windows (tempfile.gettempdir() is the Waf default) + conf.define('PREFIX', os.path.join(conf.srcdir, '%s-%s' % (APPNAME, VERSION)), 1) + # hack: we add the parent directory of the first include directory as this is missing in + # list returned from pkg-config + conf.env['CPPPATH_GTK'].insert(0, os.path.dirname(conf.env['CPPPATH_GTK'][0])) + # we don't need -fPIC when compiling on or for Windows + if '-fPIC' in conf.env['shlib_CCFLAGS']: + conf.env['shlib_CCFLAGS'].remove('-fPIC') + conf.env['shlib_PATTERN'] = '%s.dll' + else: + conf.env['shlib_PATTERN'] = '%s.so' + + svn_rev = conf_get_svn_rev() + conf.define('REVISION', svn_rev, 1) + + conf.env['G_PREFIX'] = conf.env['PREFIX'] + + + if is_win32: + conf.define('PREFIX', '', 1) + conf.define('LIBDIR', '', 1) + conf.define('DOCDIR', 'doc', 1) + conf.define('LOCALEDIR', 'share/locale', 1) + # DATADIR is defined in objidl.h, so we remove it from config.h + conf.undefine('DATADIR') + else: + conf.define('PREFIX', conf.env['PREFIX'], 1) + conf.define('DOCDIR', '%s/doc/geany-plugins/' % conf.env['DATADIR'], 1) + conf.define('VERSION', VERSION, 1) + conf.define('PACKAGE', APPNAME, 1) + conf.define('GETTEXT_PACKAGE', APPNAME, 1) + conf.define('ENABLE_NLS', 1) + conf.write_config_header('config.h') + + if is_win32: # overwrite LOCALEDIR to install message catalogues properly + conf.env['LOCALEDIR'] = os.path.join(conf.env['G_PREFIX'], 'share/locale') + + Utils.pprint('BLUE', 'Summary:') + print_message(conf, 'Install GeanySendMail ' + VERSION + ' in', conf.env['G_PREFIX']) + print_message(conf, 'Using GTK version', gtk_version) + print_message(conf, 'Using Geany version', geany_version) + if svn_rev != '-1': + print_message(conf, 'Compiling Subversion revision', svn_rev) + conf.env.append_value('CCFLAGS', '-g -O0 -DDEBUG'.split()) # -DGEANY_DISABLE_DEPRECATED' + + conf.env.append_value('CCFLAGS', '-DHAVE_CONFIG_H'.split()) + + # convenience script (script content copied from the original waf.bat) + if is_win32: + f = open('waf.bat', 'wb') + f.write('@python -x %~dp0waf %* & exit /b') + f.close + # write a simple Makefile + else: + f = open('Makefile', 'w') + f.write(makefile_template) + f.close + +def set_options(opt): + opt.tool_options('compiler_cc') + opt.tool_options('intltool') + + # Paths + opt.add_option('--libdir', type='string', default='', + help='object code libraries', dest='libdir') + # Actions + opt.add_option('--update-po', action='store_true', default=False, + help='update the message catalogs for translation', dest='update_po') + opt.add_option('--write-installer', action='store_true', default=False, + help='create Windows installer (maintainer and Win32 only)', dest='write_installer') + +def build(bld): + is_win32 = target_is_win32(bld.env) + + def install_docs(bld, pname, files): + ext = '.txt' if is_win32 else '' + docdir = '${G_PREFIX}/doc/plugins/%s' % pname if is_win32 else '${DOCDIR}/%s' % pname + for file in files: + if os.path.exists(file): + bld.install_as( + '%s/%s%s' % (docdir, uc_first(file, is_win32), ext), file) + + bld.new_task_gen( + features = 'cc cshlib', + name = 'geanysendmail', + target = 'geanysendmail', + source = geanysendmail_sources, + includes = '. src/', + uselib = 'GTK GEANY', + install_path = '${G_PREFIX}/lib' if is_win32 else '${LIBDIR}/geany/' + ) + + install_docs(bld, 'geanysendmail', 'AUTHORS ChangeLog COPYING NEWS README THANKS TODO'.split()) + + # Translations + if bld.env['INTLTOOL']: + bld.new_task_gen( + features = 'intltool_po', + podir = 'po', + install_path = '${LOCALEDIR}', + appname = 'geanysendmail' + ) + +def shutdown(): + if Options.options.write_installer: + do_sign = os.path.exists("sign.bat") # private file to sign the binary files, not needed + def sign_binary(file): + if do_sign: + Utils.exec_command('sign.bat %s' % file) + + # strip all binaries + Utils.pprint('CYAN', 'Stripping %sfiles' % ('and signing binary ' if do_sign else '')) + files = glob.glob(os.path.join(Build.bld.env['G_PREFIX'], 'lib', '*.dll')) + + if Options.options.update_po: + # the following code was taken from midori's WAF script, thanks + potfile = '%s.pot' % (APPNAME) + os.chdir('%s/po' % srcdir) + try: + try: + size_old = os.stat(potfile).st_size + except: + size_old = 0 + Utils.exec_command('intltool-update --pot -g %s' % APPNAME) + if os.stat(potfile).st_size != size_old: + Utils.pprint('CYAN', 'Updated POT file.') + launch('intltool-update -r -g %s' % APPNAME, 'Updating translations', 'CYAN') + else: + Utils.pprint('CYAN', 'POT file is up to date.') + except: + Utils.pprint('RED', 'Failed to generate pot file.') + os.chdir('..') + + +# Simple function to execute a command and print its exit status +def launch(command, status, success_color='GREEN'): + ret = 0 + Utils.pprint(success_color, status) + try: + ret = Utils.exec_command(command) + except OSError, e: + ret = 1 + print str(e), ":", command + except: + ret = 1 + + if ret != 0: + Utils.pprint('RED', status + ' failed') + + return ret + + +def print_message(conf, msg, result, color = 'GREEN'): + conf.check_message_1(msg) + conf.check_message_2(result, color) + + +def uc_first(s, is_win32): + if is_win32: + return s.title() + return s + + +def target_is_win32(env): + if sys.platform == 'win32': + return True + if env and 'CC' in env: + cc = env['CC'] + if not isinstance(cc, str): + cc = ''.join(cc) + return cc.find('mingw') != -1 + return False +
Modified: trunk/geany-plugins/geanysendmail/ChangeLog =================================================================== --- trunk/geany-plugins/geanysendmail/ChangeLog 2010-01-05 22:56:08 UTC (rev 1117) +++ trunk/geany-plugins/geanysendmail/ChangeLog 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,3 +1,18 @@ +2010-01-05 + + * Release of 0.4.3 mainteinance release. + + +2009-10-08 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Use waf for building plugin in faovr of autotools. + + +2009-07-18 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * Update to Geany plugin API v147 and make usage of single header includes. + + 2009-05-28 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
* Make usage of Geany's ui_widget_set_tooltip_text() function.
Deleted: trunk/geany-plugins/geanysendmail/INSTALL =================================================================== --- trunk/geany-plugins/geanysendmail/INSTALL 2010-01-05 22:56:08 UTC (rev 1117) +++ trunk/geany-plugins/geanysendmail/INSTALL 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,3 +0,0 @@ -GeanySendMail as distributed within the geany-plugins package doesn't -have a own build system for its own. Please check documentation of -geany-plugins release instead.
Modified: trunk/geany-plugins/geanysendmail/NEWS =================================================================== --- trunk/geany-plugins/geanysendmail/NEWS 2010-01-05 22:56:08 UTC (rev 1117) +++ trunk/geany-plugins/geanysendmail/NEWS 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,5 +1,10 @@ +GeanySendMail 0.4.3 (05.01.2010 - maintenance release) + * Use waf instead of autotools + * Update to Geany plugin API 147 + + GeanySendMail 0.4.2 (26. May 2009): - * Added cancel button to recipient's address dialog + * Added cancel button to recipient's address dialog * Some minor code cleanup
Modified: trunk/geany-plugins/geanysendmail/README =================================================================== --- trunk/geany-plugins/geanysendmail/README 2010-01-05 22:56:08 UTC (rev 1117) +++ trunk/geany-plugins/geanysendmail/README 2010-01-05 23:07:37 UTC (rev 1118) @@ -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.16 or later (Geany Plugin API v116 or higher). +you need Geany 0.19 or later (Geany Plugin API v147 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/TODO =================================================================== --- trunk/geany-plugins/geanysendmail/TODO 2010-01-05 22:56:08 UTC (rev 1117) +++ trunk/geany-plugins/geanysendmail/TODO 2010-01-05 23:07:37 UTC (rev 1118) @@ -1,5 +1,6 @@ TODO ----
+ * Buildsupport for Win32 (Needs some testing) * Support for Inline-mailing (embedded text inside mail) * Send mail directly (only UNIX like systems)
Modified: trunk/geany-plugins/geanysendmail/src/geanysendmail.c =================================================================== --- trunk/geany-plugins/geanysendmail/src/geanysendmail.c 2010-01-05 22:56:08 UTC (rev 1117) +++ trunk/geany-plugins/geanysendmail/src/geanysendmail.c 2010-01-05 23:07:37 UTC (rev 1118) @@ -23,17 +23,10 @@
/* A little plugin to send a document as attachment using the preferred mail client */
-#include "geany.h" -#include "ui_utils.h" -#include "support.h" -#include "plugindata.h" -#include "document.h" -#include "filetypes.h" -#include "utils.h" -#include "keybindings.h" +#include "geanyplugin.h" #include "icon.h" -#include "geanyfunctions.h"
+ #ifdef HAVE_LOCALE_H # include <locale.h> #endif @@ -42,10 +35,10 @@ GeanyData *geany_data; GeanyFunctions *geany_functions;
-PLUGIN_VERSION_CHECK(116) +PLUGIN_VERSION_CHECK(147)
PLUGIN_SET_INFO(_("GeanySendMail"), _("A little plugin to send the current \ -file as attachment by user's favorite mailer"), "0.4.2", "Frank Lanitz frank@frank.uvena.de") +file as attachment by user's favorite mailer"), "0.4.3", "Frank Lanitz frank@frank.uvena.de")
/* Keybinding(s) */ enum
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.