From 8ad603b2513684b41e66cf33cc12a6105065e50a Mon Sep 17 00:00:00 2001 From: M2j Date: Sat, 11 Dec 2010 01:26:41 +0100 Subject: [PATCH] completed exception report dialog --- openlp/core/{ui => lib}/mailto/__init__.py | 0 .../mailto/README => lib/mailto/mailto.INFO} | 0 openlp/core/ui/exceptiondialog.py | 22 +++++- openlp/core/ui/exceptionform.py | 64 +++++++++--------- resources/images/general_email.png | Bin 0 -> 755 bytes resources/images/openlp-2.qrc | 1 + 6 files changed, 53 insertions(+), 34 deletions(-) rename openlp/core/{ui => lib}/mailto/__init__.py (100%) rename openlp/core/{ui/mailto/README => lib/mailto/mailto.INFO} (100%) create mode 100644 resources/images/general_email.png diff --git a/openlp/core/ui/mailto/__init__.py b/openlp/core/lib/mailto/__init__.py similarity index 100% rename from openlp/core/ui/mailto/__init__.py rename to openlp/core/lib/mailto/__init__.py diff --git a/openlp/core/ui/mailto/README b/openlp/core/lib/mailto/mailto.INFO similarity index 100% rename from openlp/core/ui/mailto/README rename to openlp/core/lib/mailto/mailto.INFO diff --git a/openlp/core/ui/exceptiondialog.py b/openlp/core/ui/exceptiondialog.py index 49e2c8151..6fb7c7985 100644 --- a/openlp/core/ui/exceptiondialog.py +++ b/openlp/core/ui/exceptiondialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate +from openlp.core.lib import translate, build_icon class Ui_ExceptionDialog(object): def setupUi(self, exceptionDialog): @@ -63,12 +63,26 @@ class Ui_ExceptionDialog(object): self.exceptionButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close) self.exceptionButtonBox.setObjectName(u'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) QtCore.QObject.connect(self.exceptionButtonBox, QtCore.SIGNAL(u'accepted()'), exceptionDialog.accept) QtCore.QObject.connect(self.exceptionButtonBox, 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) 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 ' 'detailed description of what you were doing when the problem ' 'occurred.')) + self.saveReportButton.setText(translate('OpenLP.ExceptionDialog', + 'Save Report to File')) + self.sendReportButton.setText(translate('OpenLP.ExceptionDialog', + 'Send Report Mail')) diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index 2a7b872c9..09cdc1414 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -25,11 +25,22 @@ ############################################################################### 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 openlp.core.ui.mailto import mailto +from lxml import etree +from PyQt4 import Qt, QtCore, QtGui + +from openlp.core.lib import translate, SettingsManager, mailto from exceptiondialog import Ui_ExceptionDialog @@ -42,48 +53,36 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): self.setupUi(self) self.settingsSection = u'crashreport' #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): + openlp_version = self.parent().applicationVersion[u'full'] + traceback = unicode(self.exceptionTextEdit.toPlainText()) system = unicode(translate('OpenLP.ExceptionForm', - 'Operating System: %s\n' - 'Desktop Envoirnment: %s')) + 'Platform: %s\n')) % (platform.platform()) libraries = unicode(translate('OpenLP.ExceptionForm', 'Python: %s\n' - 'PyQt: %s\n' + 'PyQt4: %s\n' + 'Qt4: %s\n' 'SQLAlchemy: %s\n' 'lxml: %s\n' 'BeautifulSoup: %s\n' 'PyEnchant: %s\n' 'Chardet: %s\n' - 'pysqlite: %s')) - #TODO: collect the informations - version = self.parent().applicationVersion[u'full'] - return (version, system, libraries) + 'PySQLite: %s\n')) % (platform.python_version(), + Qt.PYQT_VERSION_STR, Qt.qVersion(), sqlalchemy.__version__, + etree.__version__, BeautifulSoup.__version__ , enchant.__version__, + chardet.__version__, sqlite_version) + return (openlp_version, traceback, system, libraries) def onSaveReportButtonPressed(self): """ Saving exception log and system informations to a file. """ report = unicode(translate('OpenLP.ExceptionForm', - '*OpenLP Bug Report*\n' - 'Version: %s\n' - '--- System information. ---\n%s\n' + '**OpenLP Bug Report**\n' + 'Version: %s\n\n' + '--- Exception Traceback ---\n%s\n' + '--- System information ---\n%s\n' '--- Library Versions ---\n%s\n')) filename = QtGui.QFileDialog.getSaveFileName(self, translate('OpenLP.ExceptionForm', 'Save Crash Report'), @@ -113,9 +112,10 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): """ email_body = unicode(translate('OpenLP.ExceptionForm', '*OpenLP Bug Report*\n' - 'Version: %s\n' + 'Version: %s\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')) - 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()) diff --git a/resources/images/general_email.png b/resources/images/general_email.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e9f2b647a6315fbbc0b1c30f87bdcb14e2c5a2 GIT binary patch literal 755 zcmV$)Z`J$S2g%9JmbD3M4! zu{h^&92b_wQFA{5fWR1V_gV*t2*d>flL>Ry1##!fag$$Fw5KU?vj4`-mn*DmD0T$F z&QrROfV3<`n(B;+0EkFC3OgmtzRyAtN6-h{npp$$N*Nx;_vDM)F*F8hAOwdcgqgsY z32g;*mkcwboe1;IG-sMxDa;jqWwYQ6dPK(<%H-jc6<8jv*(chIt&gDn$b1JSgBM{)rOK&F=4NbdZGm$ROV%Q%JNg5MFmQQje@{Autbx*AD?_c3k*N=u9qU0` ztRLNxAjtDj`ScO!j>B;kmN&L>x}{F*3gYt;3SH+hI=up0wMKZG*i0=>_9CRWJNarI zdr;LyetZl7Gb2BqPnzfTNq`=X<7mi-g?ks!Lg@__4u^ZA(WniLs&5VQVkQqwhvy#p lBINeJ^wrhX)c^mDe*n71HFqDb<*xt$002ovPDHLkV1k15PuKte literal 0 HcmV?d00001 diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index 2a3282461..e9ec5c0a3 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -39,6 +39,7 @@ general_new.png general_open.png general_save.png + general_email.png slide_close.png