Ejemplo n.º 1
0
    def load_custom(self, id, preview=False):
        """
        Called when editing or creating a new custom.

        :param id: The custom's id. If zero, then a new custom is created.
        :param preview: States whether the custom is edited while being previewed in the preview panel.
        """
        self.slide_list_view.clear()
        if id == 0:
            self.custom_slide = CustomSlide()
            self.title_edit.setText('')
            self.credit_edit.setText('')
            self.theme_combo_box.setCurrentIndex(0)
        else:
            self.custom_slide = self.manager.get_object(CustomSlide, id)
            self.title_edit.setText(self.custom_slide.title)
            self.credit_edit.setText(self.custom_slide.credits)
            custom_xml = CustomXMLParser(self.custom_slide.text)
            slide_list = custom_xml.get_verses()
            self.slide_list_view.addItems([slide[1] for slide in slide_list])
            theme = self.custom_slide.theme_name
            find_and_set_in_combo_box(self.theme_combo_box, theme)
        self.title_edit.setFocus()
        # If not preview hide the preview button.
        self.preview_button.setVisible(preview)
Ejemplo n.º 2
0
 def generate_slide_data(self, service_item, item=None, xml_version=False,
                         remote=False, context=ServiceItemContext.Service):
     """
     Generate the slide data. Needs to be implemented by the plugin.
     :param service_item: To be updated
     :param item: The custom database item to be used
     :param xml_version: No used
     :param remote: Is this triggered by the Preview Controller or Service Manager.
     :param context: Why is this item required to be build (Default Service).
     """
     item_id = self._get_id_of_item_to_generate(item, self.remote_custom)
     service_item.add_capability(ItemCapabilities.CanEdit)
     service_item.add_capability(ItemCapabilities.CanPreview)
     service_item.add_capability(ItemCapabilities.CanLoop)
     service_item.add_capability(ItemCapabilities.CanSoftBreak)
     service_item.add_capability(ItemCapabilities.OnLoadUpdate)
     custom_slide = self.plugin.db_manager.get_object(CustomSlide, item_id)
     title = custom_slide.title
     credit = custom_slide.credits
     service_item.edit_id = item_id
     theme = custom_slide.theme_name
     if theme:
         service_item.theme = theme
     custom_xml = CustomXMLParser(custom_slide.text)
     verse_list = custom_xml.get_verses()
     raw_slides = [verse[1] for verse in verse_list]
     service_item.title = title
     for slide in raw_slides:
         service_item.add_from_text(slide)
     if Settings().value(self.settings_section + '/display footer') or credit:
         service_item.raw_footer.append(' '.join([title, credit]))
     else:
         service_item.raw_footer.append('')
     return True