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()
def create_from_service_item(self, item): """ Create a custom slide from a text service item """ custom = CustomSlide() custom.title = item.title if item.theme: custom.theme_name = item.theme else: custom.theme_name = u'' footer = u' '.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 = u'' custom_xml = CustomXMLBuilder() for (idx, slide) in enumerate(item._raw_frames): custom_xml.add_verse_to_lyrics(u'custom', unicode(idx + 1), slide['raw_slide']) custom.text = unicode(custom_xml.extract_xml(), u'utf-8') self.plugin.manager.save_object(custom) self.onSearchTextButtonClicked() if item.name.lower() == u'custom': Receiver.send_message(u'service_item_update', u'%s:%s:%s' % (custom.id, item.unique_identifier, False))
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
def saveCustom(self): """ Saves the custom. """ if not self._validate(): return False sxml = CustomXMLBuilder() for count in range(self.slideListView.count()): sxml.add_verse_to_lyrics(u'custom', unicode(count + 1), self.slideListView.item(count).text()) self.customSlide.title = self.titleEdit.text() self.customSlide.text = unicode(sxml.extract_xml(), u'utf-8') self.customSlide.credits = self.creditEdit.text() self.customSlide.theme_name = self.themeComboBox.currentText() success = self.manager.save_object(self.customSlide) self.mediaitem.autoSelectId = self.customSlide.id return success
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