Tim Bentley has proposed merging lp:~trb143/openlp/bugs into lp:openlp. Requested reviews: OpenLP Core (openlp-core) Related bugs: #693150 Custom Slide Display footer option https://bugs.launchpad.net/bugs/693150 #693202 delete theme https://bugs.launchpad.net/bugs/693202
For more details, see: https://code.launchpad.net/~trb143/openlp/bugs/+merge/48631 Fix setup.py so it works following file removal. Fix settings to work with -d option Upgrade Exception form to allow an attachment. Upgrade Exception form to force a 20 character error description. -- https://code.launchpad.net/~trb143/openlp/bugs/+merge/48631 Your team OpenLP Core is requested to review the proposed merge of lp:~trb143/openlp/bugs into lp:openlp.
=== modified file 'openlp.pyw' --- openlp.pyw 2011-01-23 14:33:50 +0000 +++ openlp.pyw 2011-02-04 17:18:53 +0000 @@ -76,7 +76,7 @@ """ Load and store current Application Version """ - if u'--dev-version' in sys.argv: + if u'--dev-version' in sys.argv or u'-d' in sys.argv: # If we're running the dev version, let's use bzr to get the version try: # If bzrlib is availble, use it @@ -216,6 +216,7 @@ Sets the Busy Cursor for the Application """ self.setOverrideCursor(QtCore.Qt.BusyCursor) + self.processEvents() def setNormalCursor(self): """ === modified file 'openlp/core/ui/exceptiondialog.py' --- openlp/core/ui/exceptiondialog.py 2010-12-31 18:10:45 +0000 +++ openlp/core/ui/exceptiondialog.py 2011-02-04 17:18:53 +0000 @@ -46,6 +46,15 @@ self.messageLabel.setObjectName(u'messageLabel') self.messageLayout.addWidget(self.messageLabel) self.exceptionLayout.addLayout(self.messageLayout) + self.descriptionExplanation = QtGui.QLabel(exceptionDialog) + self.descriptionExplanation.setObjectName(u'descriptionExplanation') + self.exceptionLayout.addWidget(self.descriptionExplanation) + self.descriptionTextEdit = QtGui.QPlainTextEdit(exceptionDialog) + self.descriptionTextEdit.setObjectName(u'descriptionTextEdit') + self.exceptionLayout.addWidget(self.descriptionTextEdit) + self.descriptionWordCount = QtGui.QLabel(exceptionDialog) + self.descriptionWordCount.setObjectName(u'descriptionWordCount') + self.exceptionLayout.addWidget(self.descriptionWordCount) self.exceptionTextEdit = QtGui.QPlainTextEdit(exceptionDialog) self.exceptionTextEdit.setReadOnly(True) self.exceptionTextEdit.setObjectName(u'exceptionTextEdit') @@ -65,19 +74,31 @@ self.saveReportButton.setObjectName(u'saveReportButton') self.exceptionButtonBox.addButton(self.saveReportButton, QtGui.QDialogButtonBox.ActionRole) + self.attachFileButton = QtGui.QPushButton(exceptionDialog) + self.attachFileButton.setIcon(build_icon(u':/general/general_open.png')) + self.attachFileButton.setObjectName(u'attachFileButton') + self.exceptionButtonBox.addButton(self.attachFileButton, + QtGui.QDialogButtonBox.ActionRole) self.retranslateUi(exceptionDialog) + QtCore.QObject.connect(self.descriptionTextEdit, + QtCore.SIGNAL(u'textChanged()'), self.onDescriptionUpdated) QtCore.QObject.connect(self.exceptionButtonBox, QtCore.SIGNAL(u'rejected()'), exceptionDialog.reject) QtCore.QObject.connect(self.sendReportButton, QtCore.SIGNAL(u'pressed()'), self.onSendReportButtonPressed) QtCore.QObject.connect(self.saveReportButton, QtCore.SIGNAL(u'pressed()'), self.onSaveReportButtonPressed) + QtCore.QObject.connect(self.attachFileButton, + QtCore.SIGNAL(u'pressed()'), self.onAttachFileButtonPressed) QtCore.QMetaObject.connectSlotsByName(exceptionDialog) def retranslateUi(self, exceptionDialog): exceptionDialog.setWindowTitle( translate('OpenLP.ExceptionDialog', 'Error Occurred')) + self.descriptionExplanation.setText(translate('OpenLP.ExceptionDialog', + 'Please enter a description of what you were doing to cause this ' + 'error \n(Minimum 20 characters)')) self.messageLabel.setText(translate('OpenLP.ExceptionDialog', 'Oops! ' 'OpenLP hit a problem, and couldn\'t recover. The text in the box ' 'below contains information that might be helpful to the OpenLP ' @@ -88,3 +109,5 @@ 'Send E-Mail')) self.saveReportButton.setText(translate('OpenLP.ExceptionDialog', 'Save to File')) + self.attachFileButton.setText(translate('OpenLP.ExceptionDialog', + 'Attach File')) === modified file 'openlp/core/ui/exceptionform.py' --- openlp/core/ui/exceptionform.py 2010-12-31 19:22:41 +0000 +++ openlp/core/ui/exceptionform.py 2011-02-04 17:18:53 +0000 @@ -70,8 +70,15 @@ self.setupUi(self) self.settingsSection = u'crashreport' + def exec_(self): + self.descriptionTextEdit.setPlainText(u'') + self.onDescriptionUpdated() + self.fileAttachment = None + return QtGui.QDialog.exec_(self) + def _createReport(self): openlp_version = self.parent().applicationVersion[u'full'] + description = unicode(self.descriptionTextEdit.toPlainText()) traceback = unicode(self.exceptionTextEdit.toPlainText()) system = unicode(translate('OpenLP.ExceptionForm', 'Platform: %s\n')) % platform.platform() @@ -90,7 +97,7 @@ system = system + u'Desktop: KDE SC\n' elif os.environ.get(u'GNOME_DESKTOP_SESSION_ID'): system = system + u'Desktop: GNOME\n' - return (openlp_version, traceback, system, libraries) + return (openlp_version, description, traceback, system, libraries) def onSaveReportButtonPressed(self): """ @@ -99,6 +106,7 @@ report = unicode(translate('OpenLP.ExceptionForm', '**OpenLP Bug Report**\n' 'Version: %s\n\n' + '--- Details of the Exception. ---\n\n%s\n\n ' '--- Exception Traceback ---\n%s\n' '--- System information ---\n%s\n' '--- Library Versions ---\n%s\n')) @@ -132,18 +140,48 @@ body = unicode(translate('OpenLP.ExceptionForm', '*OpenLP Bug Report*\n' 'Version: %s\n\n' - '--- Please enter the report below this line. ---\n\n\n' + '--- Details of the Exception. ---\n\n%s\n\n ' '--- Exception Traceback ---\n%s\n' '--- System information ---\n%s\n' '--- Library Versions ---\n%s\n', 'Please add the information that bug reports are favoured written ' 'in English.')) content = self._createReport() - for line in content[1].split(u'\n'): + for line in content[2].split(u'\n'): if re.search(r'[/\\]openlp[/\\]', line): source = re.sub(r'.*[/\\]openlp[/\\](.*)".*', r'\1', line) if u':' in line: exception = line.split(u'\n')[-1].split(u':')[0] subject = u'Bug report: %s in %s' % (exception, source) - mailto(address=u'b...@openlp.org', subject=subject, - body=body % content) + if self.fileAttachment: + mailto(address=u'b...@openlp.org', subject=subject, + body=body % content, attach=self.fileAttachment) + else: + mailto(address=u'b...@openlp.org', subject=subject, + body=body % content) + + def onDescriptionUpdated(self): + count = int(20 - len(self.descriptionTextEdit.toPlainText())) + if count < 0: + count = 0 + self.__buttonState(True) + else: + self.__buttonState(False) + self.descriptionWordCount.setText( + unicode(translate('OpenLP.ExceptionDialog', + 'Description characters to enter : %s')) % count ) + + def onAttachFileButtonPressed(self): + files = QtGui.QFileDialog.getOpenFileName( + self,translate('ImagePlugin.ExceptionDialog', + 'Select Attachment'), + SettingsManager.get_last_dir(u'exceptions'), + u'%s (*.*) (*)' % + unicode(translate('ImagePlugin.MediaItem', 'All Files'))) + log.info(u'New files(s) %s', unicode(files)) + if files: + self.fileAttachment = unicode(files) + + def __buttonState(self, state): + self.saveReportButton.setEnabled(state) + self.sendReportButton.setEnabled(state) === modified file 'openlp/core/ui/servicemanager.py' --- openlp/core/ui/servicemanager.py 2011-02-03 03:50:04 +0000 +++ openlp/core/ui/servicemanager.py 2011-02-04 17:18:53 +0000 @@ -507,7 +507,6 @@ p_file = filePath if 'p_file' in locals(): Receiver.send_message(u'cursor_busy') - Receiver.send_message(u'openlp_process_events') fileTo = open(p_file, u'r') items = cPickle.load(fileTo) fileTo.close() === modified file 'openlp/plugins/bibles/lib/http.py' --- openlp/plugins/bibles/lib/http.py 2011-02-02 23:12:31 +0000 +++ openlp/plugins/bibles/lib/http.py 2011-02-04 17:18:53 +0000 @@ -443,7 +443,6 @@ book = db_book.name if BibleDB.get_verse_count(self, book, reference[1]) == 0: Receiver.send_message(u'cursor_busy') - Receiver.send_message(u'openlp_process_events') search_results = self.get_chapter(book, reference[1]) if search_results and search_results.has_verselist(): ## We have found a book of the bible lets check to see === modified file 'openlp/plugins/songs/forms/songmaintenanceform.py' --- openlp/plugins/songs/forms/songmaintenanceform.py 2011-02-03 17:28:48 +0000 +++ openlp/plugins/songs/forms/songmaintenanceform.py 2011-02-04 17:18:53 +0000 @@ -372,7 +372,6 @@ Utility method to merge two objects to leave one in the database. """ Receiver.send_message(u'cursor_busy') - Receiver.send_message(u'openlp_process_events') merge(dbObject) reset() Receiver.send_message(u'songs_load_list') === modified file 'resources/forms/exceptiondialog.ui' --- resources/forms/exceptiondialog.ui 2010-09-14 18:18:47 +0000 +++ resources/forms/exceptiondialog.ui 2011-02-04 17:18:53 +0000 @@ -13,82 +13,128 @@ <property name="windowTitle"> <string>Dialog</string> </property> - <layout class="QVBoxLayout" name="exceptionLayout"> - <property name="spacing"> - <number>8</number> - </property> - <property name="margin"> - <number>8</number> - </property> - <item> - <layout class="QHBoxLayout" name="messageLayout"> - <property name="spacing"> - <number>0</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <item> - <widget class="QLabel" name="bugLabel"> - <property name="minimumSize"> - <size> - <width>64</width> - <height>64</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>64</width> - <height>64</height> - </size> - </property> - <property name="text"> - <string/> - </property> - <property name="pixmap"> - <pixmap resource="../images/openlp-2.qrc">:/graphics/exception.png</pixmap> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="messageLabel"> - <property name="text"> - <string>Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to b...@openlp.org, along with a detailed description of what you were doing when the problem occurred.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QPlainTextEdit" name="exceptionTextEdit"> - <property name="readOnly"> - <bool>true</bool> - </property> - <property name="backgroundVisible"> - <bool>false</bool> - </property> - </widget> - </item> - <item> - <widget class="QDialogButtonBox" name="exceptionButtonBox"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Close</set> - </property> - </widget> - </item> - </layout> + <widget class="QPlainTextEdit" name="exceptionTextEdit"> + <property name="geometry"> + <rect> + <x>8</x> + <y>194</y> + <width>564</width> + <height>171</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="backgroundVisible"> + <bool>false</bool> + </property> + </widget> + <widget class="QDialogButtonBox" name="exceptionButtonBox"> + <property name="geometry"> + <rect> + <x>8</x> + <y>373</y> + <width>83</width> + <height>26</height> + </rect> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Close</set> + </property> + </widget> + <widget class="QPlainTextEdit" name="discriptionplainTextEdit"> + <property name="geometry"> + <rect> + <x>8</x> + <y>103</y> + <width>561</width> + <height>71</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + <widget class="QLabel" name="characterCount"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>301</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string>TextLabel</string> + </property> + </widget> + <widget class="QLabel" name="whatyouweredoinglabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>59</width> + <height>17</height> + </rect> + </property> + <property name="text"> + <string>TextLabel</string> + </property> + </widget> + <widget class="QWidget" name=""> + <layout class="QHBoxLayout" name="messageLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="bugLabel"> + <property name="minimumSize"> + <size> + <width>64</width> + <height>64</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>64</width> + <height>64</height> + </size> + </property> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="../images/openlp-2.qrc">:/graphics/exception.png</pixmap> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="messageLabel"> + <property name="text"> + <string>Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to b...@openlp.org, along with a detailed description of what you were doing when the problem occurred.</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> </widget> <resources> <include location="../images/openlp-2.qrc"/> === modified file 'setup.py' --- setup.py 2010-12-26 11:04:47 +0000 +++ setup.py 2011-02-04 17:18:53 +0000 @@ -69,8 +69,7 @@ url='http://openlp.org/', license='GNU General Public License', packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), - scripts=['openlp.pyw', 'scripts/openlp-1to2-converter.py', - 'scripts/bible-1to2-converter.py','scripts/openlp-remoteclient.py'], + scripts=['openlp.pyw', 'scripts/openlp-remoteclient.py'], include_package_data=True, zip_safe=False, install_requires=[
_______________________________________________ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp