← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~patrick-zakweb/openlp/bug-936281-newformat into lp:openlp

 

mohij has proposed merging lp:~patrick-zakweb/openlp/bug-936281-newformat into lp:openlp.

Requested reviews:
  Jonathan Corwin (j-corwin)
  Tim Bentley (trb143)
  Raoul Snyman (raoul-snyman)
  Andreas Preikschat (googol)

For more details, see:
https://code.launchpad.net/~patrick-zakweb/openlp/bug-936281-newformat/+merge/145750

This branch does *not* fix bug 836281. The branch is more or less named wrong.
It fixes the poor visibility of the selected item in lists on Windows.
It does not provide a way to distinguish between already shown and new items in the service manager as the bug report requests.

-Adapt code to new Settings infrastructure.
-Spelling changes.
-Tested on Kubuntu.
-- 
https://code.launchpad.net/~patrick-zakweb/openlp/bug-936281-newformat/+merge/145750
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/__init__.py'
--- openlp/core/__init__.py	2013-01-23 21:47:23 +0000
+++ openlp/core/__init__.py	2013-01-30 23:35:25 +0000
@@ -121,11 +121,15 @@
             if FirstTimeForm(screens).exec_() == QtGui.QDialog.Accepted:
                 Settings().setValue(u'general/has run wizard', True)
         # Correct stylesheet bugs
-        if os.name == u'nt':
+        application_stylesheet = u''
+        if not Settings().value(u'advanced/alternate rows'):
             base_color = self.palette().color(QtGui.QPalette.Active, QtGui.QPalette.Base)
-            application_stylesheet = \
+            alternate_rows_repair_stylesheet = \
                 u'QTableWidget, QListWidget, QTreeWidget {alternate-background-color: ' + base_color.name() + ';}\n'
+            application_stylesheet += alternate_rows_repair_stylesheet
+        if os.name == u'nt':
             application_stylesheet += nt_repair_stylesheet
+        if application_stylesheet:
             self.setStyleSheet(application_stylesheet)
         show_splash = Settings().value(u'general/show splash')
         if show_splash:

=== modified file 'openlp/core/lib/settings.py'
--- openlp/core/lib/settings.py	2013-01-30 19:16:51 +0000
+++ openlp/core/lib/settings.py	2013-01-30 23:35:25 +0000
@@ -87,6 +87,7 @@
     """
     __default_settings__ = {
         u'advanced/x11 bypass wm': X11_BYPASS_DEFAULT,
+        u'advanced/alternate rows': not sys.platform.startswith(u'win'),
         u'advanced/default service enabled': True,
         u'advanced/enable exit confirmation': True,
         u'advanced/save current plugin': False,

=== modified file 'openlp/core/ui/advancedtab.py'
--- openlp/core/ui/advancedtab.py	2013-01-17 22:14:06 +0000
+++ openlp/core/ui/advancedtab.py	2013-01-30 23:35:25 +0000
@@ -229,14 +229,18 @@
         self.nextItemRadioButton.setObjectName(u'nextItemRadioButton')
         self.slideLayout.addWidget(self.nextItemRadioButton)
         self.rightLayout.addWidget(self.slideGroupBox)
-        self.x11GroupBox = QtGui.QGroupBox(self.leftColumn)
-        self.x11GroupBox.setObjectName(u'x11GroupBox')
-        self.x11Layout = QtGui.QVBoxLayout(self.x11GroupBox)
-        self.x11Layout.setObjectName(u'x11Layout')
-        self.x11BypassCheckBox = QtGui.QCheckBox(self.x11GroupBox)
+        # Display Workarounds
+        self.displayWorkaroundGroupBox = QtGui.QGroupBox(self.leftColumn)
+        self.displayWorkaroundGroupBox.setObjectName(u'displayWorkaroundGroupBox')
+        self.displayWorkaroundLayout = QtGui.QVBoxLayout(self.displayWorkaroundGroupBox)
+        self.displayWorkaroundLayout.setObjectName(u'displayWorkaroundLayout')
+        self.x11BypassCheckBox = QtGui.QCheckBox(self.displayWorkaroundGroupBox)
         self.x11BypassCheckBox.setObjectName(u'x11BypassCheckBox')
-        self.x11Layout.addWidget(self.x11BypassCheckBox)
-        self.rightLayout.addWidget(self.x11GroupBox)
+        self.displayWorkaroundLayout.addWidget(self.x11BypassCheckBox)
+        self.alternateRowsCheckBox = QtGui.QCheckBox(self.displayWorkaroundGroupBox)
+        self.alternateRowsCheckBox.setObjectName(u'alternateRowsCheckBox')
+        self.displayWorkaroundLayout.addWidget(self.alternateRowsCheckBox)
+        self.rightLayout.addWidget(self.displayWorkaroundGroupBox)
         self.rightLayout.addStretch()
         self.shouldUpdateServiceNameExample = False
         QtCore.QObject.connect(self.serviceNameCheckBox, QtCore.SIGNAL(u'toggled(bool)'),
@@ -253,6 +257,8 @@
         QtCore.QObject.connect(self.defaultBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onDefaultBrowseButtonClicked)
         QtCore.QObject.connect(self.defaultRevertButton, QtCore.SIGNAL(u'clicked()'), self.onDefaultRevertButtonClicked)
         QtCore.QObject.connect(self.x11BypassCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.onX11BypassCheckBoxToggled)
+        QtCore.QObject.connect(self.alternateRowsCheckBox,
+            QtCore.SIGNAL(u'toggled(bool)'), self.onAlternateRowsCheckBoxToggled)
         QtCore.QObject.connect(self.dataDirectoryBrowseButton, QtCore.SIGNAL(u'clicked()'),
             self.onDataDirectoryBrowseButtonClicked)
         QtCore.QObject.connect(self.dataDirectoryDefaultButton, QtCore.SIGNAL(u'clicked()'),
@@ -260,7 +266,7 @@
         QtCore.QObject.connect(self.dataDirectoryCancelButton, QtCore.SIGNAL(u'clicked()'),
             self.onDataDirectoryCancelButtonClicked)
         QtCore.QObject.connect(self.dataDirectoryCopyCheckBox, QtCore.SIGNAL(u'toggled(bool)'),
-                self.onDataDirectoryCopyCheckBoxToggled)
+            self.onDataDirectoryCopyCheckBoxToggled)
         QtCore.QObject.connect(self.endSlideRadioButton, QtCore.SIGNAL(u'clicked()'), self.onEndSlideButtonClicked)
         QtCore.QObject.connect(self.wrapSlideRadioButton, QtCore.SIGNAL(u'clicked()'), self.onWrapSlideButtonClicked)
         QtCore.QObject.connect(self.nextItemRadioButton, QtCore.SIGNAL(u'clicked()'), self.onnextItemButtonClicked)
@@ -323,8 +329,9 @@
         self.newDataDirectoryHasFilesLabel.setText(
             translate('OpenLP.AdvancedTab', '<strong>WARNING:</strong> New data directory location contains '
                 'OpenLP data files.  These files WILL be replaced during a copy.'))
-        self.x11GroupBox.setTitle(translate('OpenLP.AdvancedTab', 'X11'))
+        self.displayWorkaroundGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Display Workarounds'))
         self.x11BypassCheckBox.setText(translate('OpenLP.AdvancedTab','Bypass X11 Window Manager'))
+        self.alternateRowsCheckBox.setText(translate('OpenLP.AdvancedTab', 'Use alternating row colours in lists'))
         # Slide Limits
         self.slideGroupBox.setTitle(translate('OpenLP.GeneralTab', 'Service Item Slide Limits'))
         self.slideLabel.setText(translate('OpenLP.GeneralTab', 'Behavior of next/previous on the last/first slide:'))
@@ -361,6 +368,10 @@
         self.defaultColor = settings.value(u'default color')
         self.defaultFileEdit.setText(settings.value(u'default image'))
         self.slide_limits = settings.value(u'slide limits')
+        # Prevent the dialog displayed by the alternateRowsCheckBox to display.
+        self.alternateRowsCheckBox.blockSignals(True)
+        self.alternateRowsCheckBox.setChecked(settings.value(u'alternate rows'))
+        self.alternateRowsCheckBox.blockSignals(False)
         if self.slide_limits == SlideLimits.End:
             self.endSlideRadioButton.setChecked(True)
         elif self.slide_limits == SlideLimits.Wrap:
@@ -430,6 +441,7 @@
         settings.setValue(u'enable exit confirmation', self.enableAutoCloseCheckBox.isChecked())
         settings.setValue(u'hide mouse', self.hideMouseCheckBox.isChecked())
         settings.setValue(u'x11 bypass wm', self.x11BypassCheckBox.isChecked())
+        settings.setValue(u'alternate rows', self.alternateRowsCheckBox.isChecked())
         settings.setValue(u'default color', self.defaultColor)
         settings.setValue(u'default image', self.defaultFileEdit.text())
         settings.setValue(u'slide limits', self.slide_limits)
@@ -613,6 +625,17 @@
             The state of the check box (boolean).
         """
         self.displayChanged = True
+        
+    def onAlternateRowsCheckBoxToggled(self, checked):
+        """
+        Notify user about required restart.
+
+        ``checked``
+            The state of the check box (boolean).
+        """
+        QtGui.QMessageBox.information(self,
+            translate('OpenLP.AdvancedTab', 'Restart Required'),
+            translate('OpenLP.AdvancedTab', 'This change will only take effect once OpenLP has been restarted.'))
 
     def onEndSlideButtonClicked(self):
         self.slide_limits = SlideLimits.End


Follow ups