← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~trb143/openlp/junefixes into lp:openlp

 

Tim Bentley has proposed merging lp:~trb143/openlp/junefixes into lp:openlp.

Requested reviews:
  Andreas Preikschat (googol)
Related bugs:
  Bug #1196926 in OpenLP: "Zero division error when display size set to zero"
  https://bugs.launchpad.net/openlp/+bug/1196926
  Bug #1197376 in OpenLP: "Typing a path for a theme background causes a key error"
  https://bugs.launchpad.net/openlp/+bug/1197376

For more details, see:
https://code.launchpad.net/~trb143/openlp/junefixes/+merge/176059

In testing python3 there is alot of import noise with uno.
This is caused by the exceptionform so only request the uno details if the form is being displayed.  This removes all the import noise!
-- 
https://code.launchpad.net/~trb143/openlp/junefixes/+merge/176059
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/__init__.py'
--- openlp/core/__init__.py	2013-03-26 11:45:18 +0000
+++ openlp/core/__init__.py	2013-07-21 14:15:33 +0000
@@ -185,7 +185,7 @@
         """
         log.exception(''.join(format_exception(exctype, value, traceback)))
         if not hasattr(self, u'exception_form'):
-            self.exception_form = ExceptionForm(self.main_window)
+            self.exception_form = ExceptionForm()
         self.exception_form.exception_text_edit.setPlainText(''.join(format_exception(exctype, value, traceback)))
         self.set_normal_cursor()
         self.exception_form.exec_()

=== modified file 'openlp/core/ui/exceptionform.py'
--- openlp/core/ui/exceptionform.py	2013-06-26 18:54:21 +0000
+++ openlp/core/ui/exceptionform.py	2013-07-21 14:15:33 +0000
@@ -37,6 +37,9 @@
 import bs4
 import sqlalchemy
 from lxml import etree
+
+from openlp.core.lib import Registry
+
 from PyQt4 import Qt, QtCore, QtGui, QtWebKit
 
 try:
@@ -77,19 +80,7 @@
     CHERRYPY_VERSION = cherrypy.__version__
 except ImportError:
     CHERRYPY_VERSION = u'-'
-try:
-    import uno
-    arg = uno.createUnoStruct(u'com.sun.star.beans.PropertyValue')
-    arg.Name = u'nodepath'
-    arg.Value = u'/org.openoffice.Setup/Product'
-    context = uno.getComponentContext()
-    provider = context.ServiceManager.createInstance(u'com.sun.star.configuration.ConfigurationProvider')
-    node = provider.createInstanceWithArguments(u'com.sun.star.configuration.ConfigurationAccess', (arg,))
-    UNO_VERSION = node.getByName(u'ooSetupVersion')
-except ImportError:
-    UNO_VERSION = u'-'
-except:
-    UNO_VERSION = u'- (Possible non-standard UNO installation)'
+
 try:
     WEBKIT_VERSION = QtWebKit.qWebKitVersion()
 except AttributeError:
@@ -100,7 +91,6 @@
 except ImportError:
     VLC_VERSION = u'-'
 
-
 from openlp.core.lib import UiStrings, Settings, translate
 from openlp.core.utils import get_application_version
 
@@ -113,11 +103,11 @@
     """
     The exception dialog
     """
-    def __init__(self, parent):
+    def __init__(self):
         """
         Constructor.
         """
-        QtGui.QDialog.__init__(self, parent)
+        QtGui.QDialog.__init__(self, self.main_window)
         self.setupUi(self)
         self.settings_section = u'crashreport'
 
@@ -152,7 +142,7 @@
             u'Mako: %s\n' % MAKO_VERSION + \
             u'CherryPy: %s\n' % CHERRYPY_VERSION + \
             u'pyICU: %s\n' % ICU_VERSION + \
-            u'pyUNO bridge: %s\n' % UNO_VERSION + \
+            u'pyUNO bridge: %s\n' % self._pyuno_import() + \
             u'VLC: %s\n' % VLC_VERSION
         if platform.system() == u'Linux':
             if os.environ.get(u'KDE_FULL_SESSION') == u'true':
@@ -256,3 +246,34 @@
         """
         self.save_report_button.setEnabled(state)
         self.send_report_button.setEnabled(state)
+
+    def _pyuno_import(self):
+        """
+        Added here to define only when the form is actioned. The uno interface spits out lots of exception messages
+        if the import is at a file level.  If uno import is changed this could be reverted.
+        This happens in other classes but there it is localised here it is across the whole system and hides real
+        errors.
+        """
+        try:
+            import uno
+            arg = uno.createUnoStruct(u'com.sun.star.beans.PropertyValue')
+            arg.Name = u'nodepath'
+            arg.Value = u'/org.openoffice.Setup/Product'
+            context = uno.getComponentContext()
+            provider = context.ServiceManager.createInstance(u'com.sun.star.configuration.ConfigurationProvider')
+            node = provider.createInstanceWithArguments(u'com.sun.star.configuration.ConfigurationAccess', (arg,))
+            return node.getByName(u'ooSetupVersion')
+        except ImportError:
+            return u'-'
+        except:
+            return u'- (Possible non-standard UNO installation)'
+
+    def _get_main_window(self):
+        """
+        Adds the main window to the class dynamically
+        """
+        if not hasattr(self, u'_main_window'):
+            self._main_window = Registry().get(u'main_window')
+        return self._main_window
+
+    main_window = property(_get_main_window)
\ No newline at end of file

=== modified file 'openlp/core/ui/formattingtagform.py'
--- openlp/core/ui/formattingtagform.py	2013-03-06 22:42:52 +0000
+++ openlp/core/ui/formattingtagform.py	2013-07-21 14:15:33 +0000
@@ -31,7 +31,7 @@
 Custom tags can be defined and saved. The Custom Tag arrays are saved in a pickle so QSettings works on them. Base Tags
 cannot be changed.
 """
-from PyQt4 import QtCore, QtGui
+from PyQt4 import QtGui
 
 from openlp.core.lib import FormattingTags, translate
 from openlp.core.lib.ui import critical_error_message_box


Follow ups