Configtool: Add "Report problem" function.

The idea is to open the user's email client automatically, so
(s)he has not much more to do than to write a sentence about what
went wrong. As easy as possible!

This is work related to issue #159.
This commit is contained in:
Markus Hitter 2015-06-08 01:02:03 +02:00
parent a13e00893d
commit 80626eb528
2 changed files with 36 additions and 1 deletions

View File

@ -20,6 +20,7 @@ except:
import os.path import os.path
import inspect import inspect
from configtool.data import reHelpText
cmd_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( cmd_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile(
inspect.currentframe()))[0])) inspect.currentframe()))[0]))
@ -532,7 +533,40 @@ class ConfigFrame(wx.Frame):
"Find help", style = wx.OK) "Find help", style = wx.OK)
def onReportProblem(self, evt): def onReportProblem(self, evt):
print "Report problem not implemented, yet." import urllib
import webbrowser
# Testing allowed URLs up to 32 kB in size. Longer URLs are simply chopped.
mailRecipients ="reply+0004dc756da9f0641af0a3834c580ad5be469f4f6b" \
"5d4cfc92cf00000001118c958a92a169ce051faa8c@" \
"reply.github.com,mah@jump-ing.de"
mailSubject = "Teacup problem report"
mailBody = "Please answer these questions before hitting \"send\":\n\n" \
"What did you try to do?\n\n\n" \
"What did you expect to happen?\n\n\n" \
"What happened instead?\n\n\n\n" \
"To allow developers to help, configuration files are " \
"attached, with help comments stripped:\n"
for f in self.pgBoard.getFileName(), self.pgPrinter.getFileName():
if not f:
mailBody += "\n(no file loaded)\n"
continue
mailBody += "\n" + os.path.basename(f) + ":\n"
mailBody += "----------------------------------------------\n"
try:
fc = open(f).read()
fc = reHelpText.sub("", fc)
mailBody += fc
except:
mailBody += "(could not read this file)\n"
mailBody += "----------------------------------------------\n"
url = "mailto:" + urllib.quote(mailRecipients) + \
"?subject=" + urllib.quote(mailSubject) + \
"&body=" + urllib.quote(mailBody)
webbrowser.open_new(url)
def onAbout(self, evt): def onAbout(self, evt):
# Get the contributors' top 10 with something like this: # Get the contributors' top 10 with something like this:

View File

@ -54,6 +54,7 @@ reCandCPUClocks = re.compile("^\s*//\s*#define\s+F_CPU_OPT\s+(\w+)")
reHelpTextStart = re.compile("^\s*/\*\*\s+\\\\def\s+(.*)") reHelpTextStart = re.compile("^\s*/\*\*\s+\\\\def\s+(.*)")
reHelpTextEnd = re.compile("^\s*\*/") reHelpTextEnd = re.compile("^\s*\*/")
reHelpText = re.compile("/\*\*.*?\*/\r?\n", re.DOTALL)
reSensor = re.compile(".*\\(\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\\)") reSensor = re.compile(".*\\(\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\\)")
reHeater = re.compile(".*\\(\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\\)") reHeater = re.compile(".*\\(\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\\)")