← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~sam92/openlp/serviceitem_edittitle into lp:openlp

 

Samuel Mehrbrodt has proposed merging lp:~sam92/openlp/serviceitem_edittitle into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~sam92/openlp/serviceitem_edittitle/+merge/213545

Got the branch from https://code.launchpad.net/~marmyshev/openlp/item_title and merged with current trunk
-- 
https://code.launchpad.net/~sam92/openlp/serviceitem_edittitle/+merge/213545
Your team OpenLP Core is requested to review the proposed merge of lp:~sam92/openlp/serviceitem_edittitle into lp:openlp.
=== modified file 'openlp/core/lib/serviceitem.py'
--- openlp/core/lib/serviceitem.py	2014-03-18 20:36:02 +0000
+++ openlp/core/lib/serviceitem.py	2014-03-31 20:08:43 +0000
@@ -107,6 +107,9 @@
 
     ``CanAutoStartForLive``
             The capability to ignore the do not play if display blank flag.
+    
+    ``CanEditTitle``
+            The capability to edit the title of the item
 
     """
     CanPreview = 1
@@ -125,6 +128,7 @@
     CanWordSplit = 14
     HasBackgroundAudio = 15
     CanAutoStartForLive = 16
+    CanEditTitle = 17
 
 
 class ServiceItem(RegistryProperties):
@@ -423,7 +427,7 @@
         """
         Returns the title of the service item.
         """
-        if self.is_text():
+        if self.is_text() or ItemCapabilities.CanEditTitle in self.capabilities:
             return self.title
         else:
             if len(self._raw_frames) > 1:

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2014-03-20 19:10:31 +0000
+++ openlp/core/ui/servicemanager.py	2014-03-31 20:08:43 +0000
@@ -234,6 +234,8 @@
         self.menu = QtGui.QMenu()
         self.edit_action = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', '&Edit Item'),
                                                 icon=':/general/general_edit.png', triggers=self.remote_edit)
+        self.rename_action = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', '&Rename...'),
+                                                  triggers=self.on_service_item_rename)
         self.maintain_action = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', '&Reorder Item'),
                                                     icon=':/general/general_edit.png',
                                                     triggers=self.on_service_item_edit_form)
@@ -848,6 +850,7 @@
             pos = item.data(0, QtCore.Qt.UserRole)
         service_item = self.service_items[pos - 1]
         self.edit_action.setVisible(False)
+        self.rename_action.setVisible(False)
         self.create_custom_action.setVisible(False)
         self.maintain_action.setVisible(False)
         self.notes_action.setVisible(False)
@@ -855,6 +858,8 @@
         self.auto_start_action.setVisible(False)
         if service_item['service_item'].is_capable(ItemCapabilities.CanEdit) and service_item['service_item'].edit_id:
             self.edit_action.setVisible(True)
+        if service_item['service_item'].is_capable(ItemCapabilities.CanEditTitle):
+            self.rename_action.setVisible(True)
         if service_item['service_item'].is_capable(ItemCapabilities.CanMaintain):
             self.maintain_action.setVisible(True)
         if item.parent() is None:
@@ -1482,6 +1487,21 @@
             if new_item:
                 self.add_service_item(new_item, replace=True)
 
+    def on_service_item_rename(self):
+        """
+        Opens a dialog to rename the service item.
+        """
+        item = self.find_service_item()[0]
+        if not self.service_items[item]['service_item'].is_capable(ItemCapabilities.CanEditTitle):
+            return
+        title = self.service_items[item]['service_item'].title
+        title, ok = QtGui.QInputDialog.getText(self, translate('OpenLP.ServiceManager', 'Rename item title'),
+            translate('OpenLP.ServiceManager', 'Title:'), QtGui.QLineEdit.Normal, self.trUtf8(title))
+        if ok:
+            self.service_items[item]['service_item'].title = title
+            self.repaint_service_list(item, -1)
+            self.set_modified()
+
     def create_custom(self, field=None):
         """
         Saves the current text item as a custom slide

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2014-03-21 18:23:35 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2014-03-31 20:08:43 +0000
@@ -840,6 +840,7 @@
         service_item.add_capability(ItemCapabilities.CanPreview)
         service_item.add_capability(ItemCapabilities.CanLoop)
         service_item.add_capability(ItemCapabilities.CanWordSplit)
+        service_item.add_capability(ItemCapabilities.CanEditTitle)
         # Service Item: Title
         service_item.title = create_separated_list(raw_title)
         # Service Item: Theme

=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py	2014-03-21 18:23:35 +0000
+++ openlp/plugins/images/lib/mediaitem.py	2014-03-31 20:08:43 +0000
@@ -550,6 +550,7 @@
         service_item.add_capability(ItemCapabilities.CanPreview)
         service_item.add_capability(ItemCapabilities.CanLoop)
         service_item.add_capability(ItemCapabilities.CanAppend)
+        service_item.add_capability(ItemCapabilities.CanEditTitle)
         # force a nonexistent theme
         service_item.theme = -1
         missing_items_file_names = []

=== modified file 'openlp/plugins/media/lib/mediaitem.py'
--- openlp/plugins/media/lib/mediaitem.py	2014-03-21 18:23:35 +0000
+++ openlp/plugins/media/lib/mediaitem.py	2014-03-31 20:08:43 +0000
@@ -216,6 +216,7 @@
             if not self.media_controller.media_length(service_item):
                 return False
         service_item.add_capability(ItemCapabilities.CanAutoStartForLive)
+        service_item.add_capability(ItemCapabilities.CanEditTitle)
         service_item.add_capability(ItemCapabilities.RequiresMedia)
         if Settings().value(self.settings_section + '/media auto start') == QtCore.Qt.Checked:
             service_item.will_auto_start = True

=== modified file 'openlp/plugins/presentations/lib/mediaitem.py'
--- openlp/plugins/presentations/lib/mediaitem.py	2014-03-08 21:23:47 +0000
+++ openlp/plugins/presentations/lib/mediaitem.py	2014-03-31 20:08:43 +0000
@@ -263,6 +263,7 @@
         file_type = os.path.splitext(filename)[1][1:]
         if not self.display_type_combo_box.currentText():
             return False
+        service_item.add_capability(ItemCapabilities.CanEditTitle)
         if (file_type == 'pdf' or file_type == 'xps') and context != ServiceItemContext.Service:
             service_item.add_capability(ItemCapabilities.CanMaintain)
             service_item.add_capability(ItemCapabilities.CanPreview)

=== modified file 'tests/interfaces/openlp_core_ui/test_servicemanager.py'
--- tests/interfaces/openlp_core_ui/test_servicemanager.py	2014-03-14 22:08:44 +0000
+++ tests/interfaces/openlp_core_ui/test_servicemanager.py	2014-03-31 20:08:43 +0000
@@ -313,6 +313,7 @@
             self.service_manager.notes_action.setVisible = MagicMock()
             self.service_manager.time_action.setVisible = MagicMock()
             self.service_manager.auto_start_action.setVisible = MagicMock()
+            self.service_manager.rename_action.setVisible = MagicMock()
 
             # WHEN: Show the context menu.
             self.service_manager.context_menu(q_point)
@@ -329,6 +330,8 @@
                 'The action should be set invisible.'
             self.service_manager.auto_start_action.setVisible.assert_called_with(True), \
                 'The action should be set visible.'
+            self.service_manager.rename_action.setVisible.assert_called_once_with(False), \
+                'The action should be set invisible.'
 
     def click_on_new_service_test(self):
         """


Follow ups