From 13608bedae2c2a1ee891d2a4ec8d52da38f34ac5 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 17 Mar 2010 19:04:39 +0000 Subject: [PATCH] Alter form removal complete --- openlp/plugins/alerts/alertsplugin.py | 4 - openlp/plugins/alerts/forms/alertstab.py | 156 +++++++++++++++++++---- 2 files changed, 134 insertions(+), 26 deletions(-) diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 4fade5f85..0416167c6 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -89,10 +89,6 @@ class alertsPlugin(Plugin): self.alertForm.loadList() self.alertForm.exec_() - def onAlertsEdit(self): - self.alertEditForm.loadList() - self.alertEditForm.exec_() - def about(self): about_text = self.trUtf8('Alerts Plugin
This plugin ' 'controls the displaying of alerts on the presentations screen') diff --git a/openlp/plugins/alerts/forms/alertstab.py b/openlp/plugins/alerts/forms/alertstab.py index c842c2e20..4651b14c5 100644 --- a/openlp/plugins/alerts/forms/alertstab.py +++ b/openlp/plugins/alerts/forms/alertstab.py @@ -26,6 +26,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, str_to_bool +from openlp.plugins.alerts.lib.models import AlertItem class AlertsTab(SettingsTab): """ @@ -33,6 +34,7 @@ class AlertsTab(SettingsTab): """ def __init__(self, parent, section=None): self.parent = parent + self.manager = parent.manager SettingsTab.__init__(self, parent.name, section) def setupUi(self): @@ -149,22 +151,6 @@ class AlertsTab(SettingsTab): QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.HistoryLayout.addItem(self.HistorySpacer) self.FontLayout.addWidget(self.HistoryWidget) - self.HistoryEditWidget = QtGui.QWidget(self.FontGroupBox) - self.HistoryEditWidget.setObjectName(u'HistoryEditWidget') - self.HistoryEditLayout = QtGui.QHBoxLayout(self.HistoryEditWidget) - self.HistoryEditLayout.setSpacing(8) - self.HistoryEditLayout.setMargin(0) - self.HistoryEditLayout.setObjectName(u'HistoryEditLayout') - self.HistoryEditLabel = QtGui.QLabel(self.HistoryEditWidget) - self.HistoryEditLabel.setObjectName(u'HistoryEditLabel') - self.HistoryEditLayout.addWidget(self.HistoryEditLabel) - self.HistoryEditPushButton = QtGui.QPushButton(self.HistoryEditWidget) - self.HistoryEditPushButton.setObjectName(u'HistoryEditPushButton') - self.HistoryEditLayout.addWidget(self.HistoryEditPushButton) - self.HistoryEditSpacer = QtGui.QSpacerItem(147, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.HistoryEditLayout.addItem(self.HistoryEditSpacer) - self.FontLayout.addWidget(self.HistoryEditWidget) self.SlideLeftLayout.addWidget(self.FontGroupBox) self.SlideLeftSpacer = QtGui.QSpacerItem(20, 94, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) @@ -201,6 +187,43 @@ class AlertsTab(SettingsTab): self.SlideRightSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.SlideRightLayout.addItem(self.SlideRightSpacer) + self.layoutWidget = QtGui.QWidget(self) + self.layoutWidget.setGeometry(QtCore.QRect(20, 10, 361, 251)) + self.layoutWidget.setObjectName(u'layoutWidget') + self.verticalLayout_2 = QtGui.QVBoxLayout(self.layoutWidget) + self.verticalLayout_2.setObjectName(u'verticalLayout_2') + self.horizontalLayout_2 = QtGui.QHBoxLayout() + self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') + self.AlertLineEdit = QtGui.QLineEdit(self.layoutWidget) + self.AlertLineEdit.setObjectName(u'AlertLineEdit') + self.horizontalLayout_2.addWidget(self.AlertLineEdit) + self.verticalLayout_2.addLayout(self.horizontalLayout_2) + self.horizontalLayout = QtGui.QHBoxLayout() + self.horizontalLayout.setObjectName(u'horizontalLayout') + self.AlertListWidget = QtGui.QListWidget(self.layoutWidget) + self.AlertListWidget.setAlternatingRowColors(True) + self.AlertListWidget.setObjectName(u'AlertListWidget') + self.horizontalLayout.addWidget(self.AlertListWidget) + self.verticalLayout = QtGui.QVBoxLayout() + self.verticalLayout.setObjectName(u'verticalLayout') + self.SaveButton = QtGui.QPushButton(self.layoutWidget) + self.SaveButton.setObjectName(u'SaveButton') + self.verticalLayout.addWidget(self.SaveButton) + self.ClearButton = QtGui.QPushButton(self.layoutWidget) + self.ClearButton.setObjectName(u'ClearButton') + self.verticalLayout.addWidget(self.ClearButton) + self.AddButton = QtGui.QPushButton(self.layoutWidget) + self.AddButton.setObjectName(u'AddButton') + self.verticalLayout.addWidget(self.AddButton) + self.EditButton = QtGui.QPushButton(self.layoutWidget) + self.EditButton.setObjectName(u'EditButton') + self.verticalLayout.addWidget(self.EditButton) + self.DeleteButton = QtGui.QPushButton(self.layoutWidget) + self.DeleteButton.setObjectName(u'DeleteButton') + self.verticalLayout.addWidget(self.DeleteButton) + self.horizontalLayout.addLayout(self.verticalLayout) + self.verticalLayout_2.addLayout(self.horizontalLayout) + self.SlideRightLayout.addWidget(self.layoutWidget) self.AlertsLayout.addWidget(self.AlertRightColumn) # Signals and slots QtCore.QObject.connect(self.HistoryCheckBox, @@ -210,8 +233,6 @@ class AlertsTab(SettingsTab): QtCore.SIGNAL(u'pressed()'), self.onBackgroundColorButtonClicked) QtCore.QObject.connect(self.FontColorButton, QtCore.SIGNAL(u'pressed()'), self.onFontColorButtonClicked) - QtCore.QObject.connect(self.HistoryEditPushButton, - QtCore.SIGNAL(u'pressed()'), self.onHistoryEditButtonClicked) QtCore.QObject.connect(self.FontComboBox, QtCore.SIGNAL(u'activated(int)'), self.onFontComboBoxClicked) QtCore.QObject.connect(self.LocationComboBox, @@ -220,6 +241,27 @@ class AlertsTab(SettingsTab): QtCore.SIGNAL(u'valueChanged(int)'), self.onTimeoutSpinBoxChanged) QtCore.QObject.connect(self.FontSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.onFontSizeSpinBoxChanged) + QtCore.QObject.connect(self.DeleteButton, + QtCore.SIGNAL(u'clicked()'), + self.onDeleteClick) + QtCore.QObject.connect(self.ClearButton, + QtCore.SIGNAL(u'clicked()'), + self.onClearClick) + QtCore.QObject.connect(self.EditButton, + QtCore.SIGNAL(u'clicked()'), + self.onEditClick) + QtCore.QObject.connect(self.AddButton, + QtCore.SIGNAL(u'clicked()'), + self.onAddClick) + QtCore.QObject.connect(self.SaveButton, + QtCore.SIGNAL(u'clicked()'), + self.onSaveClick) + QtCore.QObject.connect(self.AlertListWidget, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onItemSelected) + QtCore.QObject.connect(self.AlertListWidget, + QtCore.SIGNAL(u'clicked(QModelIndex)'), + self.onItemSelected) def retranslateUi(self): self.FontGroupBox.setTitle(self.trUtf8('Font')) @@ -232,11 +274,15 @@ class AlertsTab(SettingsTab): self.TimeoutSpinBox.setSuffix(self.trUtf8('s')) self.LocationLabel.setText(self.trUtf8('Location:')) self.HistoryLabel.setText(self.trUtf8('Keep History:')) - self.HistoryEditLabel.setText(self.trUtf8('Edit History:')) self.PreviewGroupBox.setTitle(self.trUtf8('Preview')) self.FontPreview.setText(self.trUtf8('openlp.org')) self.LocationComboBox.setItemText(0, self.trUtf8('Top')) self.LocationComboBox.setItemText(1, self.trUtf8('Bottom')) + self.SaveButton.setText(self.trUtf8('Save')) + self.ClearButton.setText(self.trUtf8('Clear')) + self.AddButton.setText(self.trUtf8('Add')) + self.EditButton.setText(self.trUtf8('Edit')) + self.DeleteButton.setText(self.trUtf8('Delete')) def onBackgroundColorButtonClicked(self): self.bg_color = QtGui.QColorDialog.getColor( @@ -271,9 +317,6 @@ class AlertsTab(SettingsTab): self.font_size = self.FontSizeSpinBox.value() self.updateDisplay() - def onHistoryEditButtonClicked(self): - self.parent.onAlertsEdit() - def load(self): self.timeout = int(self.config.get_config(u'timeout', 5)) self.font_color = unicode( @@ -298,6 +341,75 @@ class AlertsTab(SettingsTab): font.setFamily(self.font_face) self.FontComboBox.setCurrentFont(font) self.updateDisplay() + self.loadList() + + def loadList(self): + self.AlertListWidget.clear() + alerts = self.manager.get_all_alerts() + for alert in alerts: + item_name = QtGui.QListWidgetItem(alert.text) + item_name.setData( + QtCore.Qt.UserRole, QtCore.QVariant(alert.id)) + self.AlertListWidget.addItem(item_name) + self.AddButton.setEnabled(True) + self.ClearButton.setEnabled(False) + self.SaveButton.setEnabled(False) + self.EditButton.setEnabled(False) + self.DeleteButton.setEnabled(False) + + def onItemSelected(self): + self.EditButton.setEnabled(True) + self.DeleteButton.setEnabled(True) + + def onDeleteClick(self): + item = self.AlertListWidget.currentItem() + if item: + item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] + self.parent.manager.delete_alert(item_id) + row = self.AlertListWidget.row(item) + self.AlertListWidget.takeItem(row) + self.AddButton.setEnabled(True) + self.SaveButton.setEnabled(False) + self.DeleteButton.setEnabled(False) + self.EditButton.setEnabled(False) + + def onEditClick(self): + item = self.AlertListWidget.currentItem() + if item: + self.item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] + self.AlertLineEdit.setText(unicode(item.text())) + self.AddButton.setEnabled(True) + self.ClearButton.setEnabled(True) + self.SaveButton.setEnabled(True) + self.DeleteButton.setEnabled(True) + self.EditButton.setEnabled(False) + + def onClearClick(self): + self.AlertLineEdit.setText(u'') + self.AddButton.setEnabled(False) + self.ClearButton.setEnabled(True) + self.SaveButton.setEnabled(False) + self.DeleteButton.setEnabled(False) + self.EditButton.setEnabled(False) + + def onAddClick(self): + if len(self.AlertLineEdit.text()) == 0: + QtGui.QMessageBox.information(self, + self.trUtf8('Item selected to Add'), + self.trUtf8('Missing data')) + else: + alert = AlertItem() + alert.text = unicode(self.AlertLineEdit.text()) + self.manager.save_alert(alert) + self.onClearClick() + self.loadList() + + def onSaveClick(self): + alert = self.manager.get_alert(self.item_id) + alert.text = unicode(self.AlertLineEdit.text()) + self.manager.save_alert(alert) + self.onClearClick() + self.loadList() def save(self): self.font_face = self.FontComboBox.currentFont().family()