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)
def loadCustom(self, id, preview=False): """ Called when editing or creating a new custom. ``id`` The cutom's id. If zero, then a new custom is created. ``preview`` States whether the custom is edited while being previewed in the preview panel. """ self.slideListView.clear() if id == 0: self.customSlide = CustomSlide() self.titleEdit.setText(u'') self.creditEdit.setText(u'') self.themeComboBox.setCurrentIndex(0) else: self.customSlide = self.manager.get_object(CustomSlide, id) self.titleEdit.setText(self.customSlide.title) self.creditEdit.setText(self.customSlide.credits) customXML = CustomXMLParser(self.customSlide.text) slideList = customXML.get_verses() for slide in slideList: self.slideListView.addItem(slide[1]) theme = self.customSlide.theme_name find_and_set_in_combo_box(self.themeComboBox, theme) self.titleEdit.setFocus() # If not preview hide the preview button. self.previewButton.setVisible(preview)
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
def generateSlideData(self, service_item, item=None, xmlVersion=False, remote=False, context=ServiceItemContext.Service): item_id = self._getIdOfItemToGenerate(item, self.remoteCustom) 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) customSlide = self.plugin.manager.get_object(CustomSlide, item_id) title = customSlide.title credit = customSlide.credits service_item.edit_id = item_id theme = customSlide.theme_name if theme: service_item.theme = theme custom_xml = CustomXMLParser(customSlide.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.settingsSection + u'/display footer') or credit: service_item.raw_footer.append(u' '.join([title, credit])) else: service_item.raw_footer.append(u'') return True