コード例 #1
0
    def create_from_service_item(self, item):
        """
        Create a custom slide from a text service item

        :param item:  the service item to be converted to a Custom item
        """
        custom = CustomSlide()
        custom.title = item.title
        if item.theme:
            custom.theme_name = item.theme
        else:
            custom.theme_name = ''
        footer = ' '.join(item.raw_footer)
        if footer:
            if footer.startswith(item.title):
                custom.credits = footer[len(item.title) + 1:]
            else:
                custom.credits = footer
        else:
            custom.credits = ''
        custom_xml = CustomXMLBuilder()
        for (idx, slide) in enumerate(item._raw_frames):
            custom_xml.add_verse_to_lyrics('custom', str(idx + 1), slide['raw_slide'])
        custom.text = str(custom_xml.extract_xml(), 'utf-8')
        self.plugin.db_manager.save_object(custom)
        self.on_search_text_button_clicked()
コード例 #2
0
 def save_custom(self):
     """
     Saves the custom.
     """
     if not self._validate():
         return False
     sxml = CustomXMLBuilder()
     for count in range(self.slide_list_view.count()):
         sxml.add_verse_to_lyrics('custom', str(count + 1), self.slide_list_view.item(count).text())
     self.custom_slide.title = self.title_edit.text()
     self.custom_slide.text = str(sxml.extract_xml(), 'utf-8')
     self.custom_slide.credits = self.credit_edit.text()
     self.custom_slide.theme_name = self.theme_combo_box.currentText()
     success = self.manager.save_object(self.custom_slide)
     self.media_item.auto_select_id = self.custom_slide.id
     return success
コード例 #3
0
 def add_slide(self, item_title, html_details, theme_name):
     custom_slide = CustomSlide()
     custom_slide.title = item_title
     sxml = CustomXMLBuilder()
     slide_content = ''
     if html_details is None:
         slide_content = item_title
     else:
         # we need non-html here, but the input is html
         slide_content = self._process_details(html_details)
     sxml.add_verse_to_lyrics('custom', str(1), slide_content)
     custom_slide.text = str(sxml.extract_xml(), 'utf-8')
     custom_slide.credits = 'pco'
     custom_slide.theme_name = theme_name
     custom = Registry().get('custom')
     custom_db_manager = custom.plugin.db_manager
     custom_db_manager.save_object(custom_slide)
     return custom_slide.id