forked from openlp/openlp
completed exception report dialog
This commit is contained in:
parent
5bae9c74e3
commit
8ad603b251
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import translate
|
from openlp.core.lib import translate, build_icon
|
||||||
|
|
||||||
class Ui_ExceptionDialog(object):
|
class Ui_ExceptionDialog(object):
|
||||||
def setupUi(self, exceptionDialog):
|
def setupUi(self, exceptionDialog):
|
||||||
@ -63,12 +63,26 @@ class Ui_ExceptionDialog(object):
|
|||||||
self.exceptionButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close)
|
self.exceptionButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close)
|
||||||
self.exceptionButtonBox.setObjectName(u'exceptionButtonBox')
|
self.exceptionButtonBox.setObjectName(u'exceptionButtonBox')
|
||||||
self.exceptionLayout.addWidget(self.exceptionButtonBox)
|
self.exceptionLayout.addWidget(self.exceptionButtonBox)
|
||||||
|
self.saveReportButton = QtGui.QPushButton(exceptionDialog)
|
||||||
|
self.saveReportButton.setIcon(build_icon(u':/general/general_save.png'))
|
||||||
|
self.saveReportButton.setObjectName(u'saveReportButton')
|
||||||
|
self.exceptionButtonBox.addButton(self.saveReportButton,
|
||||||
|
QtGui.QDialogButtonBox.ActionRole)
|
||||||
|
self.sendReportButton = QtGui.QPushButton(exceptionDialog)
|
||||||
|
self.sendReportButton.setIcon(build_icon(
|
||||||
|
u':/general/general_email.png'))
|
||||||
|
self.sendReportButton.setObjectName(u'sendReportButton')
|
||||||
|
self.exceptionButtonBox.addButton(self.sendReportButton,
|
||||||
|
QtGui.QDialogButtonBox.ActionRole)
|
||||||
self.retranslateUi(exceptionDialog)
|
self.retranslateUi(exceptionDialog)
|
||||||
QtCore.QObject.connect(self.exceptionButtonBox,
|
QtCore.QObject.connect(self.exceptionButtonBox,
|
||||||
QtCore.SIGNAL(u'accepted()'), exceptionDialog.accept)
|
QtCore.SIGNAL(u'accepted()'), exceptionDialog.accept)
|
||||||
QtCore.QObject.connect(self.exceptionButtonBox,
|
QtCore.QObject.connect(self.exceptionButtonBox,
|
||||||
QtCore.SIGNAL(u'rejected()'), exceptionDialog.reject)
|
QtCore.SIGNAL(u'rejected()'), exceptionDialog.reject)
|
||||||
|
QtCore.QObject.connect(self.saveReportButton,
|
||||||
|
QtCore.SIGNAL(u'pressed()'), self.onSaveReportButtonPressed)
|
||||||
|
QtCore.QObject.connect(self.sendReportButton,
|
||||||
|
QtCore.SIGNAL(u'pressed()'), self.onSendReportButtonPressed)
|
||||||
QtCore.QMetaObject.connectSlotsByName(exceptionDialog)
|
QtCore.QMetaObject.connectSlotsByName(exceptionDialog)
|
||||||
|
|
||||||
def retranslateUi(self, exceptionDialog):
|
def retranslateUi(self, exceptionDialog):
|
||||||
@ -80,3 +94,7 @@ class Ui_ExceptionDialog(object):
|
|||||||
'developers, so please e-mail it to bugs@openlp.org, along with a '
|
'developers, so please e-mail it to bugs@openlp.org, along with a '
|
||||||
'detailed description of what you were doing when the problem '
|
'detailed description of what you were doing when the problem '
|
||||||
'occurred.'))
|
'occurred.'))
|
||||||
|
self.saveReportButton.setText(translate('OpenLP.ExceptionDialog',
|
||||||
|
'Save Report to File'))
|
||||||
|
self.sendReportButton.setText(translate('OpenLP.ExceptionDialog',
|
||||||
|
'Send Report Mail'))
|
||||||
|
@ -25,11 +25,22 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import platform
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
import sqlalchemy
|
||||||
|
import BeautifulSoup
|
||||||
|
import enchant
|
||||||
|
import chardet
|
||||||
|
try:
|
||||||
|
import sqlite
|
||||||
|
sqlite_version = sqlite.version
|
||||||
|
except ImportError:
|
||||||
|
sqlite_version = u'-'
|
||||||
|
|
||||||
from openlp.core.lib import translate, build_icon, SettingsManager
|
from lxml import etree
|
||||||
from openlp.core.ui.mailto import mailto
|
from PyQt4 import Qt, QtCore, QtGui
|
||||||
|
|
||||||
|
from openlp.core.lib import translate, SettingsManager, mailto
|
||||||
|
|
||||||
from exceptiondialog import Ui_ExceptionDialog
|
from exceptiondialog import Ui_ExceptionDialog
|
||||||
|
|
||||||
@ -42,48 +53,36 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog):
|
|||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.settingsSection = u'crashreport'
|
self.settingsSection = u'crashreport'
|
||||||
#TODO: Icons
|
#TODO: Icons
|
||||||
self.saveReportButton = QtGui.QPushButton(self)
|
|
||||||
self.saveReportButton.setIcon(build_icon(u':/icon/openlp-logo-16x16.png'))
|
|
||||||
self.saveReportButton.setText(translate('OpenLP.ExceptionForm', 'Save Report to File'))
|
|
||||||
self.saveReportButton.setObjectName(u'saveReportButton')
|
|
||||||
self.sendReportButton = QtGui.QPushButton(self)
|
|
||||||
self.sendReportButton.setIcon(build_icon(u':/icon/openlp-logo-16x16.png'))
|
|
||||||
self.sendReportButton.setText(translate('OpenLP.ExceptionForm', 'Send Report Mail'))
|
|
||||||
self.sendReportButton.setObjectName(u'sendReportButton')
|
|
||||||
self.exceptionButtonBox.addButton(self.saveReportButton,
|
|
||||||
QtGui.QDialogButtonBox.ActionRole)
|
|
||||||
self.exceptionButtonBox.addButton(self.sendReportButton,
|
|
||||||
QtGui.QDialogButtonBox.ActionRole)
|
|
||||||
QtCore.QObject.connect(self.saveReportButton,
|
|
||||||
QtCore.SIGNAL(u'pressed()'), self.onSaveReportButtonPressed)
|
|
||||||
QtCore.QObject.connect(self.sendReportButton,
|
|
||||||
QtCore.SIGNAL(u'pressed()'), self.onSendReportButtonPressed)
|
|
||||||
|
|
||||||
def _createReport(self):
|
def _createReport(self):
|
||||||
|
openlp_version = self.parent().applicationVersion[u'full']
|
||||||
|
traceback = unicode(self.exceptionTextEdit.toPlainText())
|
||||||
system = unicode(translate('OpenLP.ExceptionForm',
|
system = unicode(translate('OpenLP.ExceptionForm',
|
||||||
'Operating System: %s\n'
|
'Platform: %s\n')) % (platform.platform())
|
||||||
'Desktop Envoirnment: %s'))
|
|
||||||
libraries = unicode(translate('OpenLP.ExceptionForm',
|
libraries = unicode(translate('OpenLP.ExceptionForm',
|
||||||
'Python: %s\n'
|
'Python: %s\n'
|
||||||
'PyQt: %s\n'
|
'PyQt4: %s\n'
|
||||||
|
'Qt4: %s\n'
|
||||||
'SQLAlchemy: %s\n'
|
'SQLAlchemy: %s\n'
|
||||||
'lxml: %s\n'
|
'lxml: %s\n'
|
||||||
'BeautifulSoup: %s\n'
|
'BeautifulSoup: %s\n'
|
||||||
'PyEnchant: %s\n'
|
'PyEnchant: %s\n'
|
||||||
'Chardet: %s\n'
|
'Chardet: %s\n'
|
||||||
'pysqlite: %s'))
|
'PySQLite: %s\n')) % (platform.python_version(),
|
||||||
#TODO: collect the informations
|
Qt.PYQT_VERSION_STR, Qt.qVersion(), sqlalchemy.__version__,
|
||||||
version = self.parent().applicationVersion[u'full']
|
etree.__version__, BeautifulSoup.__version__ , enchant.__version__,
|
||||||
return (version, system, libraries)
|
chardet.__version__, sqlite_version)
|
||||||
|
return (openlp_version, traceback, system, libraries)
|
||||||
|
|
||||||
def onSaveReportButtonPressed(self):
|
def onSaveReportButtonPressed(self):
|
||||||
"""
|
"""
|
||||||
Saving exception log and system informations to a file.
|
Saving exception log and system informations to a file.
|
||||||
"""
|
"""
|
||||||
report = unicode(translate('OpenLP.ExceptionForm',
|
report = unicode(translate('OpenLP.ExceptionForm',
|
||||||
'*OpenLP Bug Report*\n'
|
'**OpenLP Bug Report**\n'
|
||||||
'Version: %s\n'
|
'Version: %s\n\n'
|
||||||
'--- System information. ---\n%s\n'
|
'--- Exception Traceback ---\n%s\n'
|
||||||
|
'--- System information ---\n%s\n'
|
||||||
'--- Library Versions ---\n%s\n'))
|
'--- Library Versions ---\n%s\n'))
|
||||||
filename = QtGui.QFileDialog.getSaveFileName(self,
|
filename = QtGui.QFileDialog.getSaveFileName(self,
|
||||||
translate('OpenLP.ExceptionForm', 'Save Crash Report'),
|
translate('OpenLP.ExceptionForm', 'Save Crash Report'),
|
||||||
@ -113,9 +112,10 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog):
|
|||||||
"""
|
"""
|
||||||
email_body = unicode(translate('OpenLP.ExceptionForm',
|
email_body = unicode(translate('OpenLP.ExceptionForm',
|
||||||
'*OpenLP Bug Report*\n'
|
'*OpenLP Bug Report*\n'
|
||||||
'Version: %s\n'
|
'Version: %s\n\n'
|
||||||
'--- Please enter the report below this line. ---\n\n\n'
|
'--- Please enter the report below this line. ---\n\n\n'
|
||||||
'--- System information. ---\n%s\n'
|
'--- Exception Traceback ---\n%s\n'
|
||||||
|
'--- System information ---\n%s\n'
|
||||||
'--- Library Versions ---\n%s\n'))
|
'--- Library Versions ---\n%s\n'))
|
||||||
mailto(address=u'bugs@openlp.org', subject=u'OpenLP Bug Report',
|
mailto.mailto(address=u'bugs@openlp.org', subject=u'OpenLP Bug Report',
|
||||||
body=email_body % self._createReport())
|
body=email_body % self._createReport())
|
||||||
|
BIN
resources/images/general_email.png
Normal file
BIN
resources/images/general_email.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 755 B |
@ -39,6 +39,7 @@
|
|||||||
<file>general_new.png</file>
|
<file>general_new.png</file>
|
||||||
<file>general_open.png</file>
|
<file>general_open.png</file>
|
||||||
<file>general_save.png</file>
|
<file>general_save.png</file>
|
||||||
|
<file>general_email.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="slides">
|
<qresource prefix="slides">
|
||||||
<file>slide_close.png</file>
|
<file>slide_close.png</file>
|
||||||
|
Loading…
Reference in New Issue
Block a user