← Back to team overview

openlp-core team mailing list archive

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

 

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

Requested reviews:
  OpenLP Core (openlp-core)


Alerts clean up and new ui with fixes
Alerts with text substitutions
Presentations now have icons
-- 
https://code.launchpad.net/~trb143/openlp/working/+merge/23866
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/mediamanageritem.py'
--- openlp/core/lib/mediamanageritem.py	2010-04-07 18:32:54 +0000
+++ openlp/core/lib/mediamanageritem.py	2010-04-21 17:40:34 +0000
@@ -357,11 +357,14 @@
         Validates to see if the file still exists or
         thumbnail is up to date
         """
-        filedate = os.stat(file).st_mtime
-        thumbdate = os.stat(thumb).st_mtime
-        #if file updated rebuild icon
-        if filedate > thumbdate:
-            self.IconFromFile(file, thumb)
+        if os.path.exists(file):
+            filedate = os.stat(file).st_mtime
+            thumbdate = os.stat(thumb).st_mtime
+            #if file updated rebuild icon
+            if filedate > thumbdate:
+                self.IconFromFile(file, thumb)
+            return True
+        return False
 
     def IconFromFile(self, file, thumb):
         icon = build_icon(unicode(file))
@@ -471,4 +474,4 @@
         if self.generateSlideData(service_item, item):
             return service_item
         else:
-            return None
\ No newline at end of file
+            return None

=== modified file 'openlp/plugins/alerts/forms/alertdialog.py'
--- openlp/plugins/alerts/forms/alertdialog.py	2010-04-17 07:31:15 +0000
+++ openlp/plugins/alerts/forms/alertdialog.py	2010-04-21 17:40:34 +0000
@@ -1,82 +1,92 @@
 # -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
 
-# Form implementation generated from reading ui file 'alertdialog.ui'
-#
-# Created: Sat Apr 17 08:07:40 2010
-#      by: PyQt4 UI code generator 4.7
-#
-# WARNING! All changes made in this file will be lost!
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael      #
+# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin      #
+# Thompson, Jon Tibble, Carsten Tinggaard                                     #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it     #
+# under the terms of the GNU General Public License as published by the Free  #
+# Software Foundation; version 2 of the License.                              #
+#                                                                             #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for    #
+# more details.                                                               #
+#                                                                             #
+# You should have received a copy of the GNU General Public License along     #
+# with this program; if not, write to the Free Software Foundation, Inc., 59  #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA                          #
+###############################################################################
 
 from PyQt4 import QtCore, QtGui
 
 class Ui_AlertDialog(object):
     def setupUi(self, AlertDialog):
-        AlertDialog.setObjectName("AlertDialog")
+        AlertDialog.setObjectName(u'AlertDialog')
         AlertDialog.resize(567, 440)
         icon = QtGui.QIcon()
-        icon.addPixmap(QtGui.QPixmap(":/icon/openlp.org-icon-32.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         AlertDialog.setWindowIcon(icon)
         self.AlertFormLayout = QtGui.QVBoxLayout(AlertDialog)
         self.AlertFormLayout.setSpacing(8)
         self.AlertFormLayout.setMargin(8)
-        self.AlertFormLayout.setObjectName("AlertFormLayout")
+        self.AlertFormLayout.setObjectName(u'AlertFormLayout')
         self.AlertTextLayout = QtGui.QFormLayout()
         self.AlertTextLayout.setContentsMargins(0, 0, -1, -1)
         self.AlertTextLayout.setSpacing(8)
-        self.AlertTextLayout.setObjectName("AlertTextLayout")
+        self.AlertTextLayout.setObjectName(u'AlertTextLayout')
         self.AlertEntryLabel = QtGui.QLabel(AlertDialog)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
         sizePolicy.setHeightForWidth(self.AlertEntryLabel.sizePolicy().hasHeightForWidth())
         self.AlertEntryLabel.setSizePolicy(sizePolicy)
-        self.AlertEntryLabel.setObjectName("AlertEntryLabel")
+        self.AlertEntryLabel.setObjectName(u'AlertEntryLabel')
         self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.AlertEntryLabel)
         self.AlertParameter = QtGui.QLabel(AlertDialog)
-        self.AlertParameter.setObjectName("AlertParameter")
+        self.AlertParameter.setObjectName(u'AlertParameter')
         self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.AlertParameter)
         self.ParameterEdit = QtGui.QLineEdit(AlertDialog)
-        self.ParameterEdit.setObjectName("ParameterEdit")
+        self.ParameterEdit.setObjectName(u'ParameterEdit')
         self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.ParameterEdit)
         self.AlertTextEdit = QtGui.QLineEdit(AlertDialog)
-        self.AlertTextEdit.setObjectName("AlertTextEdit")
+        self.AlertTextEdit.setObjectName(u'AlertTextEdit')
         self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.AlertTextEdit)
         self.AlertFormLayout.addLayout(self.AlertTextLayout)
         self.ManagementLayout = QtGui.QHBoxLayout()
         self.ManagementLayout.setSpacing(8)
         self.ManagementLayout.setContentsMargins(-1, -1, -1, 0)
-        self.ManagementLayout.setObjectName("ManagementLayout")
+        self.ManagementLayout.setObjectName(u'ManagementLayout')
         self.AlertListWidget = QtGui.QListWidget(AlertDialog)
         self.AlertListWidget.setAlternatingRowColors(True)
-        self.AlertListWidget.setObjectName("AlertListWidget")
+        self.AlertListWidget.setObjectName(u'AlertListWidget')
         self.ManagementLayout.addWidget(self.AlertListWidget)
         self.ManageButtonLayout = QtGui.QVBoxLayout()
         self.ManageButtonLayout.setSpacing(8)
-        self.ManageButtonLayout.setObjectName("ManageButtonLayout")
+        self.ManageButtonLayout.setObjectName(u'ManageButtonLayout')
         self.NewButton = QtGui.QPushButton(AlertDialog)
         icon1 = QtGui.QIcon()
-        icon1.addPixmap(QtGui.QPixmap(":/general/general_new.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        icon1.addPixmap(QtGui.QPixmap(u':/general/general_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.NewButton.setIcon(icon1)
-        self.NewButton.setObjectName("NewButton")
+        self.NewButton.setObjectName(u'NewButton')
         self.ManageButtonLayout.addWidget(self.NewButton)
         self.SaveButton = QtGui.QPushButton(AlertDialog)
         self.SaveButton.setEnabled(False)
         icon2 = QtGui.QIcon()
-        icon2.addPixmap(QtGui.QPixmap(":/general/general_save.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        icon2.addPixmap(QtGui.QPixmap(u':/general/general_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.SaveButton.setIcon(icon2)
-        self.SaveButton.setObjectName("SaveButton")
+        self.SaveButton.setObjectName(u'SaveButton')
         self.ManageButtonLayout.addWidget(self.SaveButton)
-        self.EditButton = QtGui.QPushButton(AlertDialog)
+        self.DeleteButton = QtGui.QPushButton(AlertDialog)
         icon3 = QtGui.QIcon()
-        icon3.addPixmap(QtGui.QPixmap(":/general/general_edit.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.EditButton.setIcon(icon3)
-        self.EditButton.setObjectName("EditButton")
-        self.ManageButtonLayout.addWidget(self.EditButton)
-        self.DeleteButton = QtGui.QPushButton(AlertDialog)
-        icon4 = QtGui.QIcon()
-        icon4.addPixmap(QtGui.QPixmap(":/general/general_delete.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.DeleteButton.setIcon(icon4)
-        self.DeleteButton.setObjectName("DeleteButton")
+        icon3.addPixmap(QtGui.QPixmap(u':/general/general_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.DeleteButton.setIcon(icon3)
+        self.DeleteButton.setObjectName(u'DeleteButton')
         self.ManageButtonLayout.addWidget(self.DeleteButton)
         spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
         self.ManageButtonLayout.addItem(spacerItem)
@@ -84,51 +94,52 @@
         self.AlertFormLayout.addLayout(self.ManagementLayout)
         self.AlertButtonLayout = QtGui.QHBoxLayout()
         self.AlertButtonLayout.setSpacing(8)
-        self.AlertButtonLayout.setObjectName("AlertButtonLayout")
-        spacerItem1 = QtGui.QSpacerItem(181, 0, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.AlertButtonLayout.setObjectName(u'AlertButtonLayout')
+        spacerItem1 = QtGui.QSpacerItem(181, 0, QtGui.QSizePolicy.Expanding,
+            QtGui.QSizePolicy.Minimum)
         self.AlertButtonLayout.addItem(spacerItem1)
         self.DisplayButton = QtGui.QPushButton(AlertDialog)
-        icon5 = QtGui.QIcon()
-        icon5.addPixmap(QtGui.QPixmap(":/general/general_live.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.DisplayButton.setIcon(icon5)
-        self.DisplayButton.setObjectName("DisplayButton")
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(u':/general/general_live.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.DisplayButton.setIcon(icon4)
+        self.DisplayButton.setObjectName(u'DisplayButton')
         self.AlertButtonLayout.addWidget(self.DisplayButton)
         self.DisplayCloseButton = QtGui.QPushButton(AlertDialog)
-        self.DisplayCloseButton.setIcon(icon5)
-        self.DisplayCloseButton.setObjectName("DisplayCloseButton")
+        self.DisplayCloseButton.setIcon(icon4)
+        self.DisplayCloseButton.setObjectName(u'DisplayCloseButton')
         self.AlertButtonLayout.addWidget(self.DisplayCloseButton)
         self.CloseButton = QtGui.QPushButton(AlertDialog)
-        icon6 = QtGui.QIcon()
-        icon6.addPixmap(QtGui.QPixmap(":/system/system_close.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
-        self.CloseButton.setIcon(icon6)
-        self.CloseButton.setObjectName("CloseButton")
+        icon5 = QtGui.QIcon()
+        icon5.addPixmap(QtGui.QPixmap(u':/system/system_close.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.CloseButton.setIcon(icon5)
+        self.CloseButton.setObjectName(u'CloseButton')
         self.AlertButtonLayout.addWidget(self.CloseButton)
         self.AlertFormLayout.addLayout(self.AlertButtonLayout)
         self.AlertEntryLabel.setBuddy(self.AlertTextEdit)
         self.AlertParameter.setBuddy(self.ParameterEdit)
 
         self.retranslateUi(AlertDialog)
-        QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL("clicked()"), AlertDialog.close)
+        QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AlertDialog.close)
         QtCore.QMetaObject.connectSlotsByName(AlertDialog)
         AlertDialog.setTabOrder(self.AlertTextEdit, self.ParameterEdit)
         AlertDialog.setTabOrder(self.ParameterEdit, self.AlertListWidget)
         AlertDialog.setTabOrder(self.AlertListWidget, self.NewButton)
         AlertDialog.setTabOrder(self.NewButton, self.SaveButton)
-        AlertDialog.setTabOrder(self.SaveButton, self.EditButton)
-        AlertDialog.setTabOrder(self.EditButton, self.DeleteButton)
+        AlertDialog.setTabOrder(self.SaveButton, self.DeleteButton)
         AlertDialog.setTabOrder(self.DeleteButton, self.DisplayButton)
         AlertDialog.setTabOrder(self.DisplayButton, self.DisplayCloseButton)
         AlertDialog.setTabOrder(self.DisplayCloseButton, self.CloseButton)
 
     def retranslateUi(self, AlertDialog):
-        AlertDialog.setWindowTitle(QtGui.QApplication.translate("AlertDialog", "Alert Message", None, QtGui.QApplication.UnicodeUTF8))
-        self.AlertEntryLabel.setText(QtGui.QApplication.translate("AlertDialog", "Alert &text:", None, QtGui.QApplication.UnicodeUTF8))
-        self.AlertParameter.setText(QtGui.QApplication.translate("AlertDialog", "&Parameter(s):", None, QtGui.QApplication.UnicodeUTF8))
-        self.NewButton.setText(QtGui.QApplication.translate("AlertDialog", "&New", None, QtGui.QApplication.UnicodeUTF8))
-        self.SaveButton.setText(QtGui.QApplication.translate("AlertDialog", "&Save", None, QtGui.QApplication.UnicodeUTF8))
-        self.EditButton.setText(QtGui.QApplication.translate("AlertDialog", "&Edit", None, QtGui.QApplication.UnicodeUTF8))
-        self.DeleteButton.setText(QtGui.QApplication.translate("AlertDialog", "&Delete", None, QtGui.QApplication.UnicodeUTF8))
-        self.DisplayButton.setText(QtGui.QApplication.translate("AlertDialog", "Displ&ay", None, QtGui.QApplication.UnicodeUTF8))
-        self.DisplayCloseButton.setText(QtGui.QApplication.translate("AlertDialog", "Display && Cl&ose", None, QtGui.QApplication.UnicodeUTF8))
-        self.CloseButton.setText(QtGui.QApplication.translate("AlertDialog", "&Close", None, QtGui.QApplication.UnicodeUTF8))
+        AlertDialog.setWindowTitle(self.trUtf8('Alert Message'))
+        self.AlertEntryLabel.setText(self.trUtf8('Alert &text:'))
+        self.AlertParameter.setText(self.trUtf8('&Parameter(s):'))
+        self.NewButton.setText(self.trUtf8('&New'))
+        self.SaveButton.setText(self.trUtf8('&Save'))
+        self.DeleteButton.setText(self.trUtf8('&Delete'))
+        self.DisplayButton.setText(self.trUtf8('Displ&ay'))
+        self.DisplayCloseButton.setText(self.trUtf8('Display && Cl&ose'))
+        self.CloseButton.setText(self.trUtf8('&Close'))
 

=== modified file 'openlp/plugins/alerts/forms/alertform.py'
--- openlp/plugins/alerts/forms/alertform.py	2010-04-17 07:31:15 +0000
+++ openlp/plugins/alerts/forms/alertform.py	2010-04-21 17:40:34 +0000
@@ -39,7 +39,7 @@
         """
         self.manager = manager
         self.parent = parent
-        self.history_required = True
+        self.item_id = None
         QtGui.QDialog.__init__(self, None)
         self.setupUi(self)
         QtCore.QObject.connect(self.DisplayButton,
@@ -57,9 +57,6 @@
         QtCore.QObject.connect(self.DeleteButton,
                                QtCore.SIGNAL(u'clicked()'),
                                self.onDeleteClick)
-        QtCore.QObject.connect(self.EditButton,
-                               QtCore.SIGNAL(u'clicked()'),
-                               self.onEditClick)
         QtCore.QObject.connect(self.SaveButton,
                                QtCore.SIGNAL(u'clicked()'),
                                self.onSaveClick)
@@ -79,12 +76,10 @@
                 QtCore.Qt.UserRole, QtCore.QVariant(alert.id))
             self.AlertListWidget.addItem(item_name)
         self.SaveButton.setEnabled(False)
-        self.EditButton.setEnabled(False)
         self.DeleteButton.setEnabled(False)
 
     def onDisplayClicked(self):
         if self.triggerAlert(unicode(self.AlertTextEdit.text())):
-            self.history_required = False
             self.loadList()
 
     def onDisplayCloseClicked(self):
@@ -103,15 +98,6 @@
         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.AlertTextEdit.setText(unicode(item.text()))
-        self.SaveButton.setEnabled(True)
-        self.DeleteButton.setEnabled(True)
-        self.EditButton.setEnabled(False)
-
     def onNewClick(self):
         if len(self.AlertTextEdit.text()) == 0:
             QtGui.QMessageBox.information(self,
@@ -121,19 +107,22 @@
             alert = AlertItem()
             alert.text = unicode(self.AlertTextEdit.text())
             self.manager.save_alert(alert)
-        self.onClearClick()
+        self.AlertTextEdit.setText(u'')
         self.loadList()
 
     def onSaveClick(self):
-        alert = self.manager.get_alert(self.item_id)
-        alert.text = unicode(self.AlertTextEdit.text())
-        self.manager.save_alert(alert)
-        self.onClearClick()
-        self.loadList()
+        if self.item_id:
+            alert = self.manager.get_alert(self.item_id)
+            alert.text = unicode(self.AlertTextEdit.text())
+            self.manager.save_alert(alert)
+            self.item_id = None
+            self.loadList()
+        else:
+            self.onNewClick()
 
     def onTextChanged(self):
         #Data has changed by editing it so potential storage required
-        self.history_required = True
+        self.SaveButton.setEnabled(True)
 
     def onDoubleClick(self):
         """
@@ -143,7 +132,10 @@
         for item in items:
             bitem = self.AlertListWidget.item(item.row())
             self.triggerAlert(bitem.text())
-        self.history_required = False
+            self.AlertTextEdit.setText(bitem.text())
+            self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0]
+        self.SaveButton.setEnabled(False)
+        self.DeleteButton.setEnabled(True)
 
     def onSingleClick(self):
         """
@@ -154,16 +146,13 @@
         for item in items:
             bitem = self.AlertListWidget.item(item.row())
             self.AlertTextEdit.setText(bitem.text())
-        self.history_required = False
-        self.EditButton.setEnabled(True)
+            self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0]
+        self.SaveButton.setEnabled(False)
         self.DeleteButton.setEnabled(True)
 
     def triggerAlert(self, text):
         if text:
+            text = text.replace(u'<>', unicode(self.ParameterEdit.text()))
             self.parent.alertsmanager.displayAlert(text)
-            if self.parent.alertsTab.save_history and self.history_required:
-                alert = AlertItem()
-                alert.text = unicode(self.AlertTextEdit.text())
-                self.manager.save_alert(alert)
             return True
         return False

=== modified file 'openlp/plugins/alerts/forms/alertstab.py'
--- openlp/plugins/alerts/forms/alertstab.py	2010-04-19 18:43:20 +0000
+++ openlp/plugins/alerts/forms/alertstab.py	2010-04-21 17:40:34 +0000
@@ -34,7 +34,6 @@
     def __init__(self, parent, section=None):
         self.parent = parent
         self.manager = parent.manager
-        self.alertsmanager = parent.alertsmanager
         SettingsTab.__init__(self, parent.name, section)
 
     def setupUi(self):
@@ -135,22 +134,6 @@
             QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
         self.LocationLayout.addItem(self.LocationSpacer)
         self.FontLayout.addWidget(self.LocationWidget)
-        self.HistoryWidget = QtGui.QWidget(self.FontGroupBox)
-        self.HistoryWidget.setObjectName(u'HistoryWidget')
-        self.HistoryLayout = QtGui.QHBoxLayout(self.HistoryWidget)
-        self.HistoryLayout.setSpacing(8)
-        self.HistoryLayout.setMargin(0)
-        self.HistoryLayout.setObjectName(u'HistoryLayout')
-        self.HistoryLabel = QtGui.QLabel(self.HistoryWidget)
-        self.HistoryLabel.setObjectName(u'HistoryLabel')
-        self.HistoryLayout.addWidget(self.HistoryLabel)
-        self.HistoryCheckBox = QtGui.QCheckBox(self.HistoryWidget)
-        self.HistoryCheckBox.setObjectName(u'HistoryCheckBox')
-        self.HistoryLayout.addWidget(self.HistoryCheckBox)
-        self.HistorySpacer = QtGui.QSpacerItem(147, 20,
-            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.HistoryLayout.addItem(self.HistorySpacer)
-        self.FontLayout.addWidget(self.HistoryWidget)
         self.SlideLeftLayout.addWidget(self.FontGroupBox)
         self.SlideLeftSpacer = QtGui.QSpacerItem(20, 94,
             QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
@@ -189,9 +172,6 @@
         self.SlideRightLayout.addItem(self.SlideRightSpacer)
         self.AlertsLayout.addWidget(self.AlertRightColumn)
         # Signals and slots
-        QtCore.QObject.connect(self.HistoryCheckBox,
-            QtCore.SIGNAL(u'stateChanged(int)'),
-            self.onHistoryCheckBoxChanged)
         QtCore.QObject.connect(self.BackgroundColorButton,
             QtCore.SIGNAL(u'pressed()'), self.onBackgroundColorButtonClicked)
         QtCore.QObject.connect(self.FontColorButton,
@@ -215,7 +195,6 @@
         self.TimeoutLabel.setText(self.trUtf8('Alert timeout:'))
         self.TimeoutSpinBox.setSuffix(self.trUtf8('s'))
         self.LocationLabel.setText(self.trUtf8('Location:'))
-        self.HistoryLabel.setText(self.trUtf8('Keep History:'))
         self.PreviewGroupBox.setTitle(self.trUtf8('Preview'))
         self.FontPreview.setText(self.trUtf8('openlp.org'))
         self.LocationComboBox.setItemText(0, self.trUtf8('Top'))
@@ -234,12 +213,6 @@
     def onLocationComboBoxClicked(self, location):
         self.location = location
 
-    def onHistoryCheckBoxChanged(self, check_state):
-        self.save_history = False
-        # we have a set value convert to True/False
-        if check_state == QtCore.Qt.Checked:
-            self.save_history = True
-
     def onFontColorButtonClicked(self):
         self.font_color = QtGui.QColorDialog.getColor(
             QtGui.QColor(self.font_color), self).name()
@@ -264,8 +237,6 @@
         self.font_face = unicode(
             self.config.get_config(u'font face', QtGui.QFont().family()))
         self.location = int(self.config.get_config(u'location', 0))
-        self.save_history = str_to_bool(
-            self.config.get_config(u'save history', u'False'))
         self.FontSizeSpinBox.setValue(self.font_size)
         self.TimeoutSpinBox.setValue(self.timeout)
         self.FontColorButton.setStyleSheet(
@@ -273,7 +244,6 @@
         self.BackgroundColorButton.setStyleSheet(
             u'background-color: %s' % self.bg_color)
         self.LocationComboBox.setCurrentIndex(self.location)
-        self.HistoryCheckBox.setChecked(self.save_history)
         font = QtGui.QFont()
         font.setFamily(self.font_face)
         self.FontComboBox.setCurrentFont(font)
@@ -292,7 +262,6 @@
         self.config.set_config(u'timeout', unicode(self.timeout))
         self.config.set_config(u'location',
                         unicode(self.LocationComboBox.currentIndex()))
-        self.config.set_config(u'save history', unicode(self.save_history))
 
     def updateDisplay(self):
         font = QtGui.QFont()

=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py	2010-04-08 16:00:04 +0000
+++ openlp/plugins/images/lib/mediaitem.py	2010-04-21 17:40:34 +0000
@@ -124,8 +124,10 @@
             (path, filename) = os.path.split(unicode(file))
             thumb = os.path.join(self.servicePath, filename)
             if os.path.exists(thumb):
-                self.validate(file, thumb)
-                icon = build_icon(thumb)
+                if self.validate(file, thumb):
+                    icon = build_icon(thumb)
+                else:
+                    icon = build_icon(u':/general/general_delete.png')
             else:
                 icon = self.IconFromFile(file, thumb)
             item_name = QtGui.QListWidgetItem(filename)

=== modified file 'openlp/plugins/presentations/lib/mediaitem.py'
--- openlp/plugins/presentations/lib/mediaitem.py	2010-04-06 17:52:09 +0000
+++ openlp/plugins/presentations/lib/mediaitem.py	2010-04-21 17:40:34 +0000
@@ -28,7 +28,7 @@
 
 from PyQt4 import QtCore, QtGui
 
-from openlp.core.lib import MediaManagerItem, BaseListWithDnD
+from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon
 from openlp.plugins.presentations.lib import MessageListener
 
 log = logging.getLogger(__name__)
@@ -103,6 +103,10 @@
         self.PageLayout.addWidget(self.PresentationWidget)
 
     def initialise(self):
+        self.servicePath = os.path.join(
+            self.parent.config.get_data_path(), u'thumbnails')
+        if not os.path.exists(self.servicePath):
+            os.mkdir(self.servicePath)
         list = self.parent.config.load_list(u'presentations')
         self.loadList(list)
         for item in self.controllers:
@@ -128,8 +132,27 @@
                         'A presentation with that filename already exists.'),
                     QtGui.QMessageBox.Ok)
             else:
+                icon = None
+                for controller in self.controllers:
+                    thumbPath = os.path.join(self.parent.config.get_data_path(), \
+                        u'thumbnails', controller, filename)
+                    thumb = os.path.join(thumbPath, u'slide1.png')
+                    preview = os.path.join(self.parent.config.get_data_path(), \
+                        controller, u'thumbnails', filename, u'slide1.png')
+                    if os.path.exists(preview):
+                        if os.path.exists(thumb):
+                            if self.validate(preview, thumb):
+                                icon = build_icon(thumb)
+                            else:
+                                icon = build_icon(u':/general/general_delete.png')
+                        else:
+                            os.makedirs(thumbPath)
+                            icon = self.IconFromFile(preview, thumb)
+                if not icon:
+                    icon = build_icon(u':/general/general_delete.png')
                 item_name = QtGui.QListWidgetItem(filename)
                 item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file))
+                item_name.setIcon(icon)
                 self.ListView.addItem(item_name)
 
     def onDeleteClick(self):

=== modified file 'openlp/plugins/presentations/presentationplugin.py'
--- openlp/plugins/presentations/presentationplugin.py	2010-03-24 22:59:05 +0000
+++ openlp/plugins/presentations/presentationplugin.py	2010-04-21 17:40:34 +0000
@@ -58,7 +58,6 @@
             if self.controllers[controller].enabled:
                 presentation_types.append({u'%s' % controller : self.controllers[controller].supports})
                 self.controllers[controller].start_process()
-
         Receiver.send_message(
                     u'presentation types', presentation_types)
 

=== modified file 'resources/forms/alertdialog.ui'
--- resources/forms/alertdialog.ui	2010-04-17 07:31:15 +0000
+++ resources/forms/alertdialog.ui	2010-04-21 17:40:34 +0000
@@ -98,7 +98,7 @@
           <string>&amp;New</string>
          </property>
          <property name="icon">
-          <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
+          <iconset>
            <normaloff>:/general/general_new.png</normaloff>:/general/general_new.png</iconset>
          </property>
         </widget>
@@ -112,29 +112,18 @@
           <string>&amp;Save</string>
          </property>
          <property name="icon">
-          <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
+          <iconset>
            <normaloff>:/general/general_save.png</normaloff>:/general/general_save.png</iconset>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QPushButton" name="EditButton">
-         <property name="text">
-          <string>&amp;Edit</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
-           <normaloff>:/general/general_edit.png</normaloff>:/general/general_edit.png</iconset>
-         </property>
-        </widget>
-       </item>
-       <item>
         <widget class="QPushButton" name="DeleteButton">
          <property name="text">
           <string>&amp;Delete</string>
          </property>
          <property name="icon">
-          <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
+          <iconset>
            <normaloff>:/general/general_delete.png</normaloff>:/general/general_delete.png</iconset>
          </property>
         </widget>
@@ -180,7 +169,7 @@
         <string>Displ&amp;ay</string>
        </property>
        <property name="icon">
-        <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
+        <iconset>
          <normaloff>:/general/general_live.png</normaloff>:/general/general_live.png</iconset>
        </property>
       </widget>
@@ -191,7 +180,7 @@
         <string>Display &amp;&amp; Cl&amp;ose</string>
        </property>
        <property name="icon">
-        <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
+        <iconset>
          <normaloff>:/general/general_live.png</normaloff>:/general/general_live.png</iconset>
        </property>
       </widget>
@@ -202,7 +191,7 @@
         <string>&amp;Close</string>
        </property>
        <property name="icon">
-        <iconset resource="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc">
+        <iconset>
          <normaloff>:/system/system_close.png</normaloff>:/system/system_close.png</iconset>
        </property>
       </widget>
@@ -217,15 +206,12 @@
   <tabstop>AlertListWidget</tabstop>
   <tabstop>NewButton</tabstop>
   <tabstop>SaveButton</tabstop>
-  <tabstop>EditButton</tabstop>
   <tabstop>DeleteButton</tabstop>
   <tabstop>DisplayButton</tabstop>
   <tabstop>DisplayCloseButton</tabstop>
   <tabstop>CloseButton</tabstop>
  </tabstops>
- <resources>
-  <include location="../Projects/OpenLP/trunk/resources/images/openlp-2.qrc"/>
- </resources>
+ <resources/>
  <connections>
   <connection>
    <sender>CloseButton</sender>


Follow ups