← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol-hush/openlp/alerts into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol-hush/openlp/alerts into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~googol-hush/openlp/alerts/+merge/48537

Hello!

- enhanced the button behaviour on the alert dialog
-- 
https://code.launchpad.net/~googol-hush/openlp/alerts/+merge/48537
Your team OpenLP Core is requested to review the proposed merge of lp:~googol-hush/openlp/alerts into lp:openlp.
=== modified file 'openlp/plugins/alerts/forms/alertdialog.py'
--- openlp/plugins/alerts/forms/alertdialog.py	2011-01-05 17:13:57 +0000
+++ openlp/plugins/alerts/forms/alertdialog.py	2011-02-03 19:43:55 +0000
@@ -66,6 +66,7 @@
         self.saveButton.setObjectName(u'saveButton')
         self.manageButtonLayout.addWidget(self.saveButton)
         self.deleteButton = QtGui.QPushButton(alertDialog)
+        self.deleteButton.setEnabled(False)
         self.deleteButton.setIcon(build_icon(u':/general/general_delete.png'))
         self.deleteButton.setObjectName(u'deleteButton')
         self.manageButtonLayout.addWidget(self.deleteButton)
@@ -75,11 +76,13 @@
         self.buttonBox.addButton(QtGui.QDialogButtonBox.Close)
         displayIcon = build_icon(u':/general/general_live.png')
         self.displayButton = QtGui.QPushButton(alertDialog)
+        self.displayButton.setEnabled(False)
         self.displayButton.setIcon(displayIcon)
         self.displayButton.setObjectName(u'displayButton')
         self.buttonBox.addButton(self.displayButton,
             QtGui.QDialogButtonBox.ActionRole)
         self.displayCloseButton = QtGui.QPushButton(alertDialog)
+        self.displayCloseButton.setEnabled(False)
         self.displayCloseButton.setIcon(displayIcon)
         self.displayCloseButton.setObjectName(u'displayCloseButton')
         self.buttonBox.addButton(self.displayCloseButton,

=== modified file 'openlp/plugins/alerts/forms/alertform.py'
--- openlp/plugins/alerts/forms/alertform.py	2011-01-22 12:21:43 +0000
+++ openlp/plugins/alerts/forms/alertform.py	2011-02-03 19:43:55 +0000
@@ -44,22 +44,24 @@
         self.item_id = None
         QtGui.QDialog.__init__(self, plugin.formparent)
         self.setupUi(self)
-        QtCore.QObject.connect(self.displayButton, QtCore.SIGNAL(u'clicked()'),
-            self.onDisplayClicked)
+        QtCore.QObject.connect(self.displayButton,
+            QtCore.SIGNAL(u'clicked()'), self.onDisplayClicked)
         QtCore.QObject.connect(self.displayCloseButton,
             QtCore.SIGNAL(u'clicked()'), self.onDisplayCloseClicked)
         QtCore.QObject.connect(self.alertTextEdit,
             QtCore.SIGNAL(u'textChanged(const QString&)'), self.onTextChanged)
-        QtCore.QObject.connect(self.newButton, QtCore.SIGNAL(u'clicked()'),
-            self.onNewClick)
-        QtCore.QObject.connect(self.deleteButton, QtCore.SIGNAL(u'clicked()'),
-            self.onDeleteClick)
-        QtCore.QObject.connect(self.saveButton, QtCore.SIGNAL(u'clicked()'),
-            self.onSaveClick)
+        QtCore.QObject.connect(self.newButton,
+            QtCore.SIGNAL(u'clicked()'), self.onNewClick)
+        QtCore.QObject.connect(self.deleteButton,
+            QtCore.SIGNAL(u'clicked()'), self.onDeleteClick)
+        QtCore.QObject.connect(self.saveButton,
+            QtCore.SIGNAL(u'clicked()'), self.onSaveClick)
         QtCore.QObject.connect(self.alertListWidget,
             QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onDoubleClick)
         QtCore.QObject.connect(self.alertListWidget,
             QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSingleClick)
+        QtCore.QObject.connect(self.alertListWidget,
+            QtCore.SIGNAL(u'currentRowChanged(int)'), self.onCurrentRowChanged)
 
     def loadList(self):
         """
@@ -72,12 +74,9 @@
             item_name = QtGui.QListWidgetItem(alert.text)
             item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(alert.id))
             self.alertListWidget.addItem(item_name)
-        self.saveButton.setEnabled(False)
-        self.deleteButton.setEnabled(False)
 
     def onDisplayClicked(self):
-        if self.triggerAlert(unicode(self.alertTextEdit.text())):
-            self.loadList()
+        self.triggerAlert(unicode(self.alertTextEdit.text()))
 
     def onDisplayCloseClicked(self):
         if self.triggerAlert(unicode(self.alertTextEdit.text())):
@@ -95,8 +94,6 @@
             self.alertListWidget.takeItem(row)
         self.item_id = None
         self.alertTextEdit.setText(u'')
-        self.saveButton.setEnabled(False)
-        self.deleteButton.setEnabled(False)
 
     def onNewClick(self):
         if len(self.alertTextEdit.text()) == 0:
@@ -135,30 +132,26 @@
         """
         List item has been double clicked to display it
         """
-        items = self.alertListWidget.selectedIndexes()
-        for item in items:
-            bitem = self.alertListWidget.item(item.row())
-            self.triggerAlert(unicode(bitem.text()))
-            self.alertTextEdit.setText(unicode(bitem.text()))
-            self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0]
+        item = self.alertListWidget.selectedIndexes()[0]
+        bitem = self.alertListWidget.item(item.row())
+        self.triggerAlert(unicode(bitem.text()))
+        self.alertTextEdit.setText(unicode(bitem.text()))
+        self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0]
         self.saveButton.setEnabled(False)
-        self.deleteButton.setEnabled(True)
 
     def onSingleClick(self):
         """
         List item has been single clicked to add it to
         the edit field so it can be changed.
         """
-        items = self.alertListWidget.selectedIndexes()
-        for item in items:
-            bitem = self.alertListWidget.item(item.row())
-            self.alertTextEdit.setText(unicode(bitem.text()))
-            self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0]
+        item = self.alertListWidget.selectedIndexes()[0]
+        bitem = self.alertListWidget.item(item.row())
+        self.alertTextEdit.setText(unicode(bitem.text()))
+        self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0]
         # If the alert does not contain '<>' we clear the ParameterEdit field.
         if unicode(self.alertTextEdit.text()).find(u'<>') == -1:
             self.parameterEdit.setText(u'')
         self.saveButton.setEnabled(False)
-        self.deleteButton.setEnabled(True)
 
     def triggerAlert(self, text):
         """
@@ -167,30 +160,49 @@
         ``text``
             The alert text (unicode).
         """
-        if text:
-            # We found '<>' in the alert text, but the ParameterEdit field is
-            # empty.
-            if text.find(u'<>') != -1 and not self.parameterEdit.text() and \
-                QtGui.QMessageBox.question(self,
-                translate('AlertPlugin.AlertForm', 'No Parameter found'),
-                translate('AlertPlugin.AlertForm', 'You have not entered a '
-                'parameter to be replaced.\nDo you want to continue anyway?'),
-                QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
-                QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No:
-                self.parameterEdit.setFocus()
-                return False
-            # The ParameterEdit field is not empty, but we have not found '<>'
-            # in the alert text.
-            elif text.find(u'<>') == -1 and self.parameterEdit.text() and \
-                QtGui.QMessageBox.question(self,
-                translate('AlertPlugin.AlertForm', 'No Placeholder found'),
-                translate('AlertPlugin.AlertForm', 'The alert text does not'
-                ' contain \'<>\'.\nDo want to continue anyway?'),
-                QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
-                QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No:
-                self.parameterEdit.setFocus()
-                return False
-            text = text.replace(u'<>', unicode(self.parameterEdit.text()))
-            self.parent.alertsmanager.displayAlert(text)
-            return True
-        return False
+        if not text:
+            return False
+        # We found '<>' in the alert text, but the ParameterEdit field is empty.
+        if text.find(u'<>') != -1 and not self.parameterEdit.text() and \
+            QtGui.QMessageBox.question(self,
+            translate('AlertPlugin.AlertForm', 'No Parameter found'),
+            translate('AlertPlugin.AlertForm', 'You have not entered a '
+            'parameter to be replaced.\nDo you want to continue anyway?'),
+            QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
+            QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No:
+            self.parameterEdit.setFocus()
+            return False
+        # The ParameterEdit field is not empty, but we have not found '<>'
+        # in the alert text.
+        elif text.find(u'<>') == -1 and self.parameterEdit.text() and \
+            QtGui.QMessageBox.question(self,
+            translate('AlertPlugin.AlertForm', 'No Placeholder found'),
+            translate('AlertPlugin.AlertForm', 'The alert text does not'
+            ' contain \'<>\'.\nDo want to continue anyway?'),
+            QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
+            QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No:
+            self.parameterEdit.setFocus()
+            return False
+        text = text.replace(u'<>', unicode(self.parameterEdit.text()))
+        self.parent.alertsmanager.displayAlert(text)
+        return True
+
+    def onCurrentRowChanged(self, row):
+        """
+        Called when the *alertListWidget*'s current row has been changed. This
+        enables or disables buttons which require an item to act on.
+
+        ``row``
+            The row (int). If there is no current row, the value is -1.
+        """
+        if row == -1:
+            self.displayButton.setEnabled(False)
+            self.displayCloseButton.setEnabled(False)
+            self.saveButton.setEnabled(False)
+            self.deleteButton.setEnabled(False)
+        else:
+            self.displayButton.setEnabled(True)
+            self.displayCloseButton.setEnabled(True)
+            self.deleteButton.setEnabled(True)
+            # We do not need to enable the save button, as it is only enabled
+            # when typing text in the "alertTextEdit".


Follow ups