summaryrefslogtreecommitdiff
path: root/portato
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--portato/gui/exception_handling.py7
-rw-r--r--portato/gui/windows/mailinfo.py59
2 files changed, 63 insertions, 3 deletions
diff --git a/portato/gui/exception_handling.py b/portato/gui/exception_handling.py
index 5d5eb17..9a593c1 100644
--- a/portato/gui/exception_handling.py
+++ b/portato/gui/exception_handling.py
@@ -21,7 +21,6 @@ from StringIO import StringIO
from ..helper import debug, error
from .dialogs import file_chooser_dialog, io_ex_dialog
-from .windows.mailinfo import MailInfoWindow
# for the i18n
from ..constants import LOCALE_DIR, APP
@@ -44,6 +43,8 @@ class GtkThread (Thread):
finally:
del type, val, tb
+from .windows.mailinfo import MailInfoWindow
+
class UncaughtExceptionDialog(gtk.MessageDialog):
"""Original idea by Gustavo Carneiro - original code: http://www.daa.com.au/pipermail/pygtk/attachments/20030828/2d304204/gtkexcepthook.py."""
@@ -107,7 +108,9 @@ class UncaughtExceptionDialog(gtk.MessageDialog):
debug("Nothing to save")
elif resp == 3:
debug("Send bug per mail")
- MailInfoWindow(self, self.text)
+ self.destroy()
+ MailInfoWindow(None, self.text)
+ return
else:
break
self.destroy()
diff --git a/portato/gui/windows/mailinfo.py b/portato/gui/windows/mailinfo.py
index 45b4273..ebecf35 100644
--- a/portato/gui/windows/mailinfo.py
+++ b/portato/gui/windows/mailinfo.py
@@ -13,18 +13,75 @@
from __future__ import absolute_import
import gtk
+import smtplib
+import time
from .basic import AbstractDialog
+from ..exception_handling import GtkThread
from ...helper import debug
+from ...constants import VERSION
class MailInfoWindow (AbstractDialog):
+ TO = "bugs@portato.necoro.net"
def __init__ (self, parent, tb):
AbstractDialog.__init__(self, parent)
+
+ self.tb = tb
self.window.show_all()
- def cb_cancel_clicked (self):
+ def set_data (self):
+ name = self.tree.get_widget("nameEntry").get_text()
+ addr = self.tree.get_widget("mailEntry").get_text()
+ if not addr:
+ addr = self.TO
+
+ if name:
+ fro = "%s <%s>" % (name, addr)
+ else:
+ fro = addr
+
+ commentBuffer = self.tree.get_widget("commentEntry").get_buffer()
+ text = commentBuffer.get_text(*commentBuffer.get_bounds())
+
+ if text:
+ text += "\n\n===========\n"
+
+ text += self.tb
+
+ message = """From: %s
+To: %s
+Subject: %s
+%s""" % ( fro, self.TO, ("[Bug Report] Bug in Portato %s" % VERSION), text)
+
+ self.addr = addr
+ self.message = message
+
+ def send (self):
+ debug("Connecting to server")
+ server = smtplib.SMTP("mail.necoro.eu")
+ debug("Sending mail")
+ try:
+ try:
+ server.sendmail(self.addr, self.TO, self.message)
+ except smtplib.SMTPRecipientsRefused, e:
+ info(_("An error occurred while sending. I think we where greylisted. The error: %s") % e)
+ info(_("Wait 60 seconds and try again."))
+ time.sleep(60)
+ server.sendmail(self.addr, self.TO, self.message)
+ debug("Sent")
+ finally:
+ server.quit()
+
+ def cb_cancel_clicked (self, *args):
+
+ self.close()
+ return True
+
+ def cb_send_clicked (self, *args):
+ self.set_data()
+ GtkThread(target = self.send, name = "Mail Send Thread").start()
self.close()
return True
000'>2008-01-18 r664@Devoty: necoro | 2008-01-18 21:40:29 +0100Necoro5-26/+181 2008-01-18 r661@Devoty: necoro | 2008-01-18 14:16:59 +0100Necoro8-211/+293 2008-01-18 r655@Devoty: necoro | 2008-01-18 03:04:53 +0100Necoro1-1/+1 2008-01-18 r651@Devoty: necoro | 2008-01-18 02:41:51 +0100Necoro3-393/+513 2008-01-18 r643@Devoty: necoro | 2008-01-16 18:55:49 +0100Necoro14-249/+525 2008-01-14 r634@Devoty: necoro | 2008-01-14 23:48:24 +0100Necoro3-1/+4 2008-01-14 r632@Devoty: necoro | 2008-01-14 23:44:52 +0100Necoro3-175/+181 2008-01-14(no commit message)Necoro10-758/+1014 2008-01-14 r621@Devoty: necoro | 2008-01-14 20:21:40 +0100Necoro2-21/+61 2008-01-14 r618@Devoty: necoro | 2008-01-14 20:19:05 +0100Necoro2-35/+57 2008-01-14 r617@Devoty: necoro | 2008-01-14 19:12:59 +0100Necoro2-10/+10 2008-01-14 r609@Devoty: necoro | 2008-01-14 17:04:38 +0100Necoro9-394/+477 2008-01-14 r605@Devoty: necoro | 2008-01-14 11:43:34 +0100Necoro2-26/+129 2008-01-14 r603@Devoty: necoro | 2008-01-14 11:30:26 +0100Necoro4-26/+38 2008-01-11 r598@Devoty: necoro | 2008-01-10 16:36:29 +0100Necoro4-10/+50 2008-01-11 r597@Devoty: necoro | 2008-01-10 14:12:35 +0100Necoro1-3/+3 2008-01-10 r595@Devoty: necoro | 2008-01-10 04:04:15 +0100Necoro1-52/+3 2008-01-09 r586@Devoty: necoro | 2008-01-09 14:54:18 +0100Necoro1-1/+1 2007-12-06 r577@Devoty: necoro | 2007-12-06 20:37:36 +0100Necoro1-1/+1 2007-12-06 r572@Devoty: necoro | 2007-11-28 08:48:15 +0100Necoro1-0/+1 2007-11-27 r570@Devoty: necoro | 2007-11-27 02:08:21 +0100Necoro3-84/+108