Tim Bentley has proposed merging lp:~trb143/openlp/bugfixes into lp:openlp.
Requested reviews: openlp.org Core (openlp-core) New version of previous merge Fixes and New feature time: - Bibles now can have verse per slide - Themes can have bold fonts. - Http biles now tell you when downloading - Http bibles stop at end of chapter(oops) - Fix song migration bug - Fix Theme deletion bug -- https://code.launchpad.net/~trb143/openlp/bugfixes/+merge/9656 Your team openlp.org Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/renderer.py' --- openlp/core/lib/renderer.py 2009-07-21 20:04:27 +0000 +++ openlp/core/lib/renderer.py 2009-08-03 19:49:21 +0000 @@ -556,15 +556,21 @@ """ Set the fonts from the current theme settings. """ + footer_weight = 50 + if self._theme.font_footer_weight == u'Bold': + footer_weight = 75 self.footerFont = QtGui.QFont(self._theme.font_footer_name, int(self._theme.font_footer_proportion), # size - QtGui.QFont.Normal, # weight - 0)# italic + int(footer_weight), # weight + self._theme.font_footer_italics)# italic self.footerFont.setPixelSize(int(self._theme.font_footer_proportion)) + main_weight = 50 + if self._theme.font_main_weight == u'Bold': + main_weight = 75 self.mainFont = QtGui.QFont(self._theme.font_main_name, int(self._theme.font_main_proportion), # size - QtGui.QFont.Normal, # weight - 0)# italic + int(main_weight), # weight + self._theme.font_main_italics)# italic self.mainFont.setPixelSize(int(self._theme.font_main_proportion)) def _get_extent_and_render(self, line, footer, tlcorner=(0, 0), draw=False, color=None): === modified file 'openlp/core/lib/themexmlhandler.py' --- openlp/core/lib/themexmlhandler.py 2009-07-10 13:16:15 +0000 +++ openlp/core/lib/themexmlhandler.py 2009-08-03 19:49:21 +0000 @@ -46,12 +46,16 @@ <name>Arial</name> <color>#000000</color> <proportion>30</proportion> + <weight>Normal</weight> + <italics>False</italics> <location override="False" x="0" y="0" width="0" height="0"/> </font> <font type="footer"> <name>Arial</name> <color>#000000</color> <proportion>12</proportion> + <weight>Normal</weight> + <italics>False</italics> <location override="False" x="0" y="0" width="0" height="0"/> </font> <display> @@ -157,7 +161,7 @@ #Create Filename element self.child_element(background, u'filename', filename) - def add_font(self, name, color, proportion, override, fonttype=u'main', + def add_font(self, name, color, proportion, override, fonttype=u'main', weight=u'Bold', italics=False, xpos=0, ypos=0, width=0, height=0): """ Add a Font. @@ -177,6 +181,12 @@ ``fonttype`` The type of font, ``main`` or ``footer``. Defaults to ``main``. + ``weight`` + The weight of then font Defaults to 50 Normal + + ``italics`` + Does the font render to italics Defaults to 0 Normal + ``xpos`` The X position of the text block. @@ -198,8 +208,10 @@ self.child_element(background, u'color', color) #Create Proportion name element self.child_element(background, u'proportion', proportion) - #Create Proportion name element - self.child_element(background, u'proportion', proportion) + #Create weight name element + self.child_element(background, u'weight', weight) + #Create italics name element + self.child_element(background, u'italics', italics) #Create Location element element = self.theme_xml.createElement(u'location') element.setAttribute(u'override',override) @@ -329,14 +341,17 @@ setattr(self, master + element.tag + u'_'+ e[0], e[1]) else: field = master + e[0] - e1 = e[1] if e[1] == u'True' or e[1] == u'False': - e1 = str_to_bool(e[1]) - setattr(self, field, e1) + setattr(self, field, str_to_bool(e[1])) + else: + setattr(self, field, e[1]) else: if element.tag is not None: field = master + element.tag - setattr(self, field, element.text) + if element.text == u'True' or element.text == u'False': + setattr(self, field, str_to_bool(element.text)) + else: + setattr(self, field, element.text) def __str__(self): """ === modified file 'openlp/core/ui/amendthemedialog.py' --- openlp/core/ui/amendthemedialog.py 2009-06-16 18:21:24 +0000 +++ openlp/core/ui/amendthemedialog.py 2009-08-01 18:03:07 +0000 @@ -165,6 +165,16 @@ self.FontMainSizeSpinBox.setMaximum(999) self.FontMainSizeSpinBox.setObjectName(u'FontMainSizeSpinBox') self.MainFontLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.FontMainSizeSpinBox) + self.FontMainWeightComboBox = QtGui.QComboBox(self.FontMainGroupBox) + self.FontMainWeightComboBox.setObjectName("FontMainWeightComboBox") + self.FontMainWeightComboBox.addItem(QtCore.QString()) + self.FontMainWeightComboBox.addItem(QtCore.QString()) + self.FontMainWeightComboBox.addItem(QtCore.QString()) + self.FontMainWeightComboBox.addItem(QtCore.QString()) + self.MainFontLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.FontMainWeightComboBox) + self.FontMainWeightLabel = QtGui.QLabel(self.FontMainGroupBox) + self.FontMainWeightLabel.setObjectName("FontMainWeightLabel") + self.MainFontLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.FontMainWeightLabel) self.MainLeftLayout.addWidget(self.FontMainGroupBox) spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.MainLeftLayout.addItem(spacerItem1) @@ -292,6 +302,16 @@ self.FontFooterSizeSpinBox.setMaximum(999) self.FontFooterSizeSpinBox.setObjectName(u'FontFooterSizeSpinBox') self.FooterFontLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.FontFooterSizeSpinBox) + self.FontFooterWeightComboBox = QtGui.QComboBox(self.FooterFontGroupBox) + self.FontFooterWeightComboBox.setObjectName("FontFooterWeightComboBox") + self.FontFooterWeightComboBox.addItem(QtCore.QString()) + self.FontFooterWeightComboBox.addItem(QtCore.QString()) + self.FontFooterWeightComboBox.addItem(QtCore.QString()) + self.FontFooterWeightComboBox.addItem(QtCore.QString()) + self.FooterFontLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.FontFooterWeightComboBox) + self.FontFooterWeightLabel = QtGui.QLabel(self.FooterFontGroupBox) + self.FontFooterWeightLabel.setObjectName("FontFooterWeightLabel") + self.FooterFontLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.FontFooterWeightLabel) self.FooterLeftLayout.addWidget(self.FooterFontGroupBox) spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.FooterLeftLayout.addItem(spacerItem3) @@ -550,6 +570,11 @@ self.FontMainColorLabel.setText(translate(u'AmendThemeDialog', u'Font Color:')) self.FontMainSize.setText(translate(u'AmendThemeDialog', u'Size:')) self.FontMainSizeSpinBox.setSuffix(translate(u'AmendThemeDialog', u'pt')) + self.FontMainWeightComboBox.setItemText(0, translate("AmendThemeDialog", u'Normal')) + self.FontMainWeightComboBox.setItemText(1, translate("AmendThemeDialog", u'Bold')) + self.FontMainWeightComboBox.setItemText(2, translate("AmendThemeDialog", u'Italics')) + self.FontMainWeightComboBox.setItemText(3, translate("AmendThemeDialog", u'Bold/Italics')) + self.FontMainWeightLabel.setText(translate("AmendThemeDialog", u'Font Weight:')) self.MainLocationGroupBox.setTitle(translate(u'AmendThemeDialog', u'Display Location')) self.DefaultLocationLabel.setText(translate(u'AmendThemeDialog', u'Use Default Location:')) self.FontMainXLabel.setText(translate(u'AmendThemeDialog', u'X Position:')) @@ -566,6 +591,11 @@ self.FontFooterColorLabel.setText(translate(u'AmendThemeDialog', u'Font Color:')) self.FontFooterSizeLabel.setText(translate(u'AmendThemeDialog', u'Size:')) self.FontFooterSizeSpinBox.setSuffix(translate(u'AmendThemeDialog', u'pt')) + self.FontFooterWeightComboBox.setItemText(0, translate("AmendThemeDialog", u'Normal')) + self.FontFooterWeightComboBox.setItemText(1, translate("AmendThemeDialog", u'Bold')) + self.FontFooterWeightComboBox.setItemText(2, translate("AmendThemeDialog", u'Italics')) + self.FontFooterWeightComboBox.setItemText(3, translate("AmendThemeDialog", u'Bold/Italics')) + self.FontFooterWeightLabel.setText(translate("AmendThemeDialog", u'Font Weight:')) self.LocationFooterGroupBox.setTitle(translate(u'AmendThemeDialog', u'Display Location')) self.FontFooterDefaultLabel.setText(translate(u'AmendThemeDialog', u'Use Default Location:')) self.FontFooterXLabel.setText(translate(u'AmendThemeDialog', u'X Position:')) === modified file 'openlp/core/ui/amendthemeform.py' --- openlp/core/ui/amendthemeform.py 2009-07-14 19:41:44 +0000 +++ openlp/core/ui/amendthemeform.py 2009-08-03 19:49:21 +0000 @@ -53,7 +53,6 @@ QtCore.SIGNAL(u'pressed()'), self.onShadowColorPushButtonClicked) QtCore.QObject.connect(self.ImageToolButton, QtCore.SIGNAL(u'pressed()'), self.onImageToolButtonClicked) - #Combo boxes QtCore.QObject.connect(self.BackgroundComboBox, QtCore.SIGNAL(u'activated(int)'), self.onBackgroundComboBoxSelected) @@ -63,13 +62,17 @@ QtCore.SIGNAL(u'activated(int)'), self.onGradientComboBoxSelected) QtCore.QObject.connect(self.FontMainComboBox, QtCore.SIGNAL(u'activated(int)'), self.onFontMainComboBoxSelected) + QtCore.QObject.connect(self.FontMainWeightComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onFontMainWeightComboBoxSelected) QtCore.QObject.connect(self.FontFooterComboBox, QtCore.SIGNAL(u'activated(int)'), self.onFontFooterComboBoxSelected) + QtCore.QObject.connect(self.FontFooterWeightComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onFontFooterWeightComboBoxSelected) QtCore.QObject.connect(self.HorizontalComboBox, QtCore.SIGNAL(u'activated(int)'), self.onHorizontalComboBoxSelected) QtCore.QObject.connect(self.VerticalComboBox, QtCore.SIGNAL(u'activated(int)'), self.onVerticalComboBoxSelected) - + #Spin boxes QtCore.QObject.connect(self.FontMainSizeSpinBox, QtCore.SIGNAL(u'editingFinished()'), self.onFontMainSizeSpinBoxChanged) QtCore.QObject.connect(self.FontFooterSizeSpinBox, @@ -118,10 +121,12 @@ new_theme.add_font(unicode(self.theme.font_main_name), unicode(self.theme.font_main_color), unicode(self.theme.font_main_proportion), unicode(self.theme.font_main_override), u'main', + unicode(self.theme.font_main_weight), unicode(self.theme.font_main_italics), unicode(self.theme.font_main_x), unicode(self.theme.font_main_y), unicode(self.theme.font_main_width), unicode(self.theme.font_main_height)) new_theme.add_font(unicode(self.theme.font_footer_name), unicode(self.theme.font_footer_color), unicode(self.theme.font_footer_proportion), unicode(self.theme.font_footer_override), u'footer', + unicode(self.theme.font_footer_weight), unicode(self.theme.font_footer_italics), unicode(self.theme.font_footer_x), unicode(self.theme.font_footer_y), unicode(self.theme.font_footer_width), unicode(self.theme.font_footer_height) ) new_theme.add_display(unicode(self.theme.display_shadow), unicode(self.theme.display_shadow_color), @@ -159,6 +164,21 @@ self.theme.font_main_name = self.FontMainComboBox.currentFont().family() self.previewTheme(self.theme) + def onFontMainWeightComboBoxSelected(self, value): + if value ==0: + self.theme.font_main_weight = u'Normal' + self.theme.font_main_italics = False + elif value == 1: + self.theme.font_main_weight = u'Bold' + self.theme.font_main_italics = False + elif value == 2: + self.theme.font_main_weight = u'Normal' + self.theme.font_main_italics = True + else: + self.theme.font_main_weight = u'Bold' + self.theme.font_main_italics = True + self.previewTheme(self.theme) + def onFontMainColorPushButtonClicked(self): self.theme.font_main_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.theme.font_main_color), self).name() @@ -217,6 +237,21 @@ self.theme.font_footer_name = self.FontFooterComboBox.currentFont().family() self.previewTheme(self.theme) + def onFontFooterWeightComboBoxSelected(self, value): + if value == 0: + self.theme.font_footer_weight = u'Normal' + self.theme.font_footer_italics = False + elif value == 1: + self.theme.font_footer_weight = u'Bold' + self.theme.font_footer_italics = False + elif value == 2: + self.theme.font_footer_weight = u'Normal' + self.theme.font_footer_italics = True + else: + self.theme.font_footer_weight = u'Bold' + self.theme.font_footer_italics = True + self.previewTheme(self.theme) + def onFontFooterColorPushButtonClicked(self): self.theme.font_footer_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.theme.font_footer_color), self).name() @@ -410,11 +445,28 @@ self.GradientComboBox.setCurrentIndex(2) self.FontMainSizeSpinBox.setValue(int(self.theme.font_main_proportion)) + if not self.theme.font_main_italics and self.theme.font_main_weight == u'Normal': + self.FontMainWeightComboBox.setCurrentIndex(0) + elif not self.theme.font_main_italics and self.theme.font_main_weight == u'Bold': + self.FontMainWeightComboBox.setCurrentIndex(1) + elif self.theme.font_main_italics and self.theme.font_main_weight == u'Normal': + self.FontMainWeightComboBox.setCurrentIndex(2) + else: + self.FontMainWeightComboBox.setCurrentIndex(3) + self.FontMainXSpinBox.setValue(int(self.theme.font_main_x)) self.FontMainYSpinBox.setValue(int(self.theme.font_main_y)) self.FontMainWidthSpinBox.setValue(int(self.theme.font_main_width)) self.FontMainHeightSpinBox.setValue(int(self.theme.font_main_height)) self.FontFooterSizeSpinBox.setValue(int(self.theme.font_footer_proportion)) + if not self.theme.font_footer_italics and self.theme.font_footer_weight == u'Normal': + self.FontFooterWeightComboBox.setCurrentIndex(0) + elif not self.theme.font_footer_italics and self.theme.font_footer_weight == u'Bold': + self.FontFooterWeightComboBox.setCurrentIndex(1) + elif self.theme.font_footer_italics and self.theme.font_footer_weight == u'Normal': + self.FontFooterWeightComboBox.setCurrentIndex(2) + else: + self.FontFooterWeightComboBox.setCurrentIndex(3) self.FontFooterXSpinBox.setValue(int(self.theme.font_footer_x)) self.FontFooterYSpinBox.setValue(int(self.theme.font_footer_y)) self.FontFooterWidthSpinBox.setValue(int(self.theme.font_footer_width)) @@ -529,7 +581,6 @@ else: self.ShadowColorPushButton.setEnabled(False) - def previewTheme(self, theme): if self.allowPreview: frame = self.thememanager.generateImage(theme) === modified file 'openlp/core/ui/servicemanager.py' --- openlp/core/ui/servicemanager.py 2009-07-21 20:04:27 +0000 +++ openlp/core/ui/servicemanager.py 2009-08-02 16:13:59 +0000 @@ -300,7 +300,7 @@ Used when moving items as the move takes place in supporting array, and when regenerating all the items due to theme changes """ - #Correct order of idems in array + #Correct order of items in array count = 1 for item in self.serviceItems: item[u'order'] = count @@ -398,7 +398,7 @@ """ Set the theme for the current service """ - self.service_theme = self.ThemeComboBox.currentText() + self.service_theme = unicode(self.ThemeComboBox.currentText()) self.parent.RenderManager.set_service_theme(self.service_theme) self.config.set_config(u'theme service theme', self.service_theme) self.regenerateServiceItems() === modified file 'openlp/core/ui/thememanager.py' --- openlp/core/ui/thememanager.py 2009-07-06 16:34:13 +0000 +++ openlp/core/ui/thememanager.py 2009-08-02 16:13:59 +0000 @@ -100,6 +100,10 @@ except: #if not present do not worry pass + #As we do not reload the themes push out the change + self.parent.EventManager.post_event(Event(EventType.ThemeListChanged)) + self.parent.ServiceManagerContents.updateThemeList(self.getThemes()) + self.parent.settingsForm.ThemesTab.updateThemeList(self.getThemes()) def onExportTheme(self): pass === modified file 'openlp/migration/migratesongs.py' --- openlp/migration/migratesongs.py 2009-07-18 07:30:26 +0000 +++ openlp/migration/migratesongs.py 2009-08-02 16:13:59 +0000 @@ -155,6 +155,8 @@ if bb is None: author = Author() author.display_name = authors_temp.authorname + author.first_name = u'' + author.last_name = u'' else: id = int(bb[0]) author = self.session.query(Author).get(bb[0]) === modified file 'openlp/plugins/bibles/lib/bibleHTTPimpl.py' --- openlp/plugins/bibles/lib/bibleHTTPimpl.py 2009-07-13 20:11:36 +0000 +++ openlp/plugins/bibles/lib/bibleHTTPimpl.py 2009-08-02 13:44:41 +0000 @@ -96,7 +96,7 @@ chapter - chapter number """ log.debug(u'get_bible_chapter %s,%s,%s,%s', version, bookid, bookname, chapter) - bookname = bookname.replace(u' ', '') + bookname = bookname.replace(u' ', u'') urlstring = u'http://bible.crosswalk.com/OnlineStudyBible/bible.cgi?word=%s+%d&version=%s' % (bookname, chapter, version) xml_string = self._get_web_text(urlstring, self.proxyurl) #log.debug(u'Return data %s', xml_string) @@ -151,8 +151,8 @@ verseText = xml_string[versePos: i] versePos = i #print verseText + #print self._clean_text(verseText) bible[verse] = self._clean_text(verseText) - #bible[verse] = verseText #log.debug( bible) return SearchResults(book_title, book_chapter, bible) === modified file 'openlp/plugins/bibles/lib/biblestab.py' --- openlp/plugins/bibles/lib/biblestab.py 2009-06-16 18:21:24 +0000 +++ openlp/plugins/bibles/lib/biblestab.py 2009-07-23 05:17:26 +0000 @@ -56,22 +56,9 @@ self.VerseDisplayLayout = QtGui.QGridLayout(self.VerseDisplayGroupBox) self.VerseDisplayLayout.setMargin(8) self.VerseDisplayLayout.setObjectName(u'VerseDisplayLayout') - self.VerseTypeWidget = QtGui.QWidget(self.VerseDisplayGroupBox) - self.VerseTypeWidget.setObjectName(u'VerseTypeWidget') - self.VerseTypeLayout = QtGui.QHBoxLayout(self.VerseTypeWidget) - self.VerseTypeLayout.setSpacing(8) - self.VerseTypeLayout.setMargin(0) - self.VerseTypeLayout.setObjectName(u'VerseTypeLayout') - self.VerseRadioButton = QtGui.QRadioButton(self.VerseTypeWidget) - self.VerseRadioButton.setObjectName(u'VerseRadioButton') - self.VerseTypeLayout.addWidget(self.VerseRadioButton) - self.ParagraphRadioButton = QtGui.QRadioButton(self.VerseTypeWidget) - self.ParagraphRadioButton.setObjectName(u'ParagraphRadioButton') - self.VerseTypeLayout.addWidget(self.ParagraphRadioButton) - self.VerseDisplayLayout.addWidget(self.VerseTypeWidget, 0, 0, 1, 1) self.NewChaptersCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox) self.NewChaptersCheckBox.setObjectName(u'NewChaptersCheckBox') - self.VerseDisplayLayout.addWidget(self.NewChaptersCheckBox, 1, 0, 1, 1) + self.VerseDisplayLayout.addWidget(self.NewChaptersCheckBox, 0, 0, 1, 1) self.DisplayStyleWidget = QtGui.QWidget(self.VerseDisplayGroupBox) self.DisplayStyleWidget.setObjectName(u'DisplayStyleWidget') self.DisplayStyleLayout = QtGui.QHBoxLayout(self.DisplayStyleWidget) @@ -88,7 +75,24 @@ self.DisplayStyleComboBox.addItem(QtCore.QString()) self.DisplayStyleComboBox.addItem(QtCore.QString()) self.DisplayStyleLayout.addWidget(self.DisplayStyleComboBox) - self.VerseDisplayLayout.addWidget(self.DisplayStyleWidget, 2, 0, 1, 1) + self.VerseDisplayLayout.addWidget(self.DisplayStyleWidget, 1, 0, 1, 1) + self.LayoutStyleWidget = QtGui.QWidget(self.VerseDisplayGroupBox) + self.LayoutStyleWidget.setObjectName(u'LayoutStyleWidget') + self.LayoutStyleLayout = QtGui.QHBoxLayout(self.LayoutStyleWidget) + self.LayoutStyleLayout.setSpacing(8) + self.LayoutStyleLayout.setMargin(0) + self.LayoutStyleLayout.setObjectName(u'LayoutStyleLayout') + self.LayoutStyleLabel = QtGui.QLabel(self.LayoutStyleWidget) + self.LayoutStyleLabel.setObjectName(u'LayoutStyleLabel') + self.LayoutStyleLayout.addWidget(self.LayoutStyleLabel) + self.LayoutStyleComboBox = QtGui.QComboBox(self.LayoutStyleWidget) + self.LayoutStyleComboBox.setObjectName(u'LayoutStyleComboBox') + self.LayoutStyleComboBox.addItem(QtCore.QString()) + self.LayoutStyleComboBox.addItem(QtCore.QString()) + self.LayoutStyleComboBox.addItem(QtCore.QString()) + self.LayoutStyleLayout.addWidget(self.LayoutStyleComboBox) + self.VerseDisplayLayout.addWidget(self.LayoutStyleWidget, 2, 0, 1, 1) + self.BibleThemeWidget = QtGui.QWidget(self.VerseDisplayGroupBox) self.BibleThemeWidget.setObjectName(u'BibleThemeWidget') self.BibleThemeLayout = QtGui.QHBoxLayout(self.BibleThemeWidget) @@ -136,22 +140,22 @@ QtCore.SIGNAL(u'stateChanged(int)'), self.onNewChaptersCheckBoxChanged) QtCore.QObject.connect(self.BibleSearchCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onBibleSearchCheckBoxChanged) - QtCore.QObject.connect(self.VerseRadioButton, - QtCore.SIGNAL(u'pressed()'), self.onVerseRadioButtonPressed) - QtCore.QObject.connect(self.ParagraphRadioButton, - QtCore.SIGNAL(u'pressed()'), self.onParagraphRadioButtonPressed) QtCore.QObject.connect(self.DisplayStyleComboBox, QtCore.SIGNAL(u'activated(int)'), self.onDisplayStyleComboBoxChanged) QtCore.QObject.connect(self.BibleThemeComboBox, QtCore.SIGNAL(u'activated(int)'), self.onBibleThemeComboBoxChanged) + QtCore.QObject.connect(self.LayoutStyleComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onLayoutStyleComboBoxChanged) def retranslateUi(self): self.VerseDisplayGroupBox.setTitle(translate(u'SettingsForm', u'Verse Display')) - self.VerseRadioButton.setText(translate(u'SettingsForm', u'Verse style')) - self.ParagraphRadioButton.setText(translate(u'SettingsForm', u'Paragraph style')) self.NewChaptersCheckBox.setText(translate(u'SettingsForm', u'Only show new chapter numbers')) + self.LayoutStyleLabel.setText(translate(u'SettingsForm', u'Layout Style:')) self.DisplayStyleLabel.setText(translate(u'SettingsForm', u'Display Style:')) self.BibleThemeLabel.setText(translate(u'SettingsForm', u'Bible Theme:')) + self.LayoutStyleComboBox.setItemText(0, translate(u'SettingsForm', u'verse per slide')) + self.LayoutStyleComboBox.setItemText(1, translate(u'SettingsForm', u'verse per line')) + self.LayoutStyleComboBox.setItemText(2, translate(u'SettingsForm', u'continuous')) self.DisplayStyleComboBox.setItemText(0, translate(u'SettingsForm', u'No brackets')) self.DisplayStyleComboBox.setItemText(1, translate(u'SettingsForm', u'( and )')) self.DisplayStyleComboBox.setItemText(2, translate(u'SettingsForm', u'{ and }')) @@ -166,11 +170,8 @@ def onDisplayStyleComboBoxChanged(self): self.display_style = self.DisplayStyleComboBox.currentIndex() - def onVerseRadioButtonPressed(self): - self.paragraph_style = False - - def onParagraphRadioButtonPressed(self): - self.paragraph_style = True + def onLayoutStyleComboBoxChanged(self): + self.layout_style = self.LayoutStyleComboBox.currentIndex() def onNewChaptersCheckBoxChanged(self): check_state = self.NewChaptersCheckBox.checkState() @@ -187,23 +188,20 @@ self.bible_search = True def load(self): - self.paragraph_style = str_to_bool(self.config.get_config(u'paragraph style', u'True')) self.show_new_chapters = str_to_bool(self.config.get_config(u'display new chapter', u'False')) self.display_style = int(self.config.get_config(u'display brackets', u'0')) + self.layout_style = int(self.config.get_config(u'verse layout style', u'0')) self.bible_theme = self.config.get_config(u'bible theme', u'0') self.bible_search = str_to_bool(self.config.get_config(u'search as type', u'True')) - if self.paragraph_style: - self.ParagraphRadioButton.setChecked(True) - else: - self.VerseRadioButton.setChecked(True) self.NewChaptersCheckBox.setChecked(self.show_new_chapters) self.DisplayStyleComboBox.setCurrentIndex(self.display_style) + self.LayoutStyleComboBox.setCurrentIndex(self.layout_style) self.BibleSearchCheckBox.setChecked(self.bible_search) def save(self): - self.config.set_config(u'paragraph style', unicode(self.paragraph_style)) self.config.set_config(u'display new chapter', unicode(self.show_new_chapters)) self.config.set_config(u'display brackets', unicode(self.display_style)) + self.config.set_config(u'verse layout style', unicode(self.layout_style)) self.config.set_config(u'search as type', unicode(self.bible_search)) self.config.set_config(u'bible theme', unicode(self.bible_theme)) @@ -220,4 +218,4 @@ # Not Found id = 0 self.bible_theme = u'' - self.BibleThemeComboBox.setCurrentIndex(id) \ No newline at end of file + self.BibleThemeComboBox.setCurrentIndex(id) === modified file 'openlp/plugins/bibles/lib/manager.py' --- openlp/plugins/bibles/lib/manager.py 2009-07-18 05:43:50 +0000 +++ openlp/plugins/bibles/lib/manager.py 2009-08-02 13:44:41 +0000 @@ -28,9 +28,7 @@ from bibleCSVimpl import BibleCSVImpl from bibleDBimpl import BibleDBImpl from bibleHTTPimpl import BibleHTTPImpl - -#from openlp.plugins.bibles.lib.tables import * -#from openlp.plugins.bibles.lib.classes import * +from openlp.core.lib import Receiver class BibleMode(object): Full = 1 @@ -68,6 +66,15 @@ self.dialogobject = None self.reload_bibles() + def set_media_manager(self, media): + """ + Sets the reference to the media manager. + + ``media`` + The reference to the media manager. + """ + self.media = media + def reload_bibles(self): log.debug(u'Reload bibles') files = self.config.get_files(self.bibleSuffix) @@ -228,8 +235,7 @@ Advanced Search, and when the mode is ``BibleMode.Partial`` this method returns all the bibles for the Quick Search. - ``mode`` - Defaults to ``BibleMode.Full``. The Bible mode. +c """ log.debug(u'get_bibles') bible_list = [] @@ -293,17 +299,24 @@ Returns a list of verses for a given Book, Chapter and ranges of verses. If the end verse(everse) is less then the start verse(sverse) then only one verse is returned - bible - Which bible to use. + + ``bible`` + The name of the bible to be used + Rest can be guessed at ! """ text = [] + self.media.setQuickMsg1(u'') + self.media.setQuickMsg2(u'') log.debug(u'get_verse_text %s,%s,%s,%s,%s,%s', bible, bookname, schapter, echapter, sverse, everse) - if not self.bible_http_cache[bible] == None: - # check to see if book/chapter exists + # check to see if book/chapter exists fow HTTP bibles and load cache if necessary + if self.bible_http_cache[bible] is not None: book= self.bible_db_cache[bible].get_bible_book(bookname) if book == None: + self.media.setQuickMsg1(u'Downloading') log.debug(u'get_verse_text : new book') - for chapter in range(schapter, echapter+1): + for chapter in range(schapter, echapter + 1): + self.media.setQuickMsg2(u'%s: %s'% (bookname, chapter)) search_results = self.bible_http_cache [bible].get_bible_chapter(bible, 0, bookname, chapter) if search_results.has_verselist() : ## We have found a book of the bible lets check to see if it was there. @@ -325,35 +338,39 @@ ## Book exists check chapter and texts only. v = self.bible_db_cache[bible].get_bible_chapter(book.id, chapter) if v == None: + self.media.setQuickMsg2(u'%s: %s'%(bookname, chapter)) self.bible_db_cache[bible].create_chapter(book.id, \ chapter, \ search_results.get_verselist()) else: log.debug(u'get_verse_text : old book') - for chapter in range(schapter, echapter+1): + for chapter in range(schapter, echapter + 1): v = self.bible_db_cache[bible].get_bible_chapter(book.id, chapter) if v == None: try: + self.media.setQuickMsg1(u'Downloading') + self.media.setQuickMsg2(u'%s: %s'% (bookname, chapter)) search_results = self.bible_http_cache [bible].get_bible_chapter(bible, book.id, bookname, chapter) - self.bible_db_cache[bible].create_chapter(book.id, \ - search_results.get_chapter(),\ - search_results.get_verselist()) + if search_results.has_verselist(): + self.bible_db_cache[bible].create_chapter(book.id, \ + search_results.get_chapter(),\ + search_results.get_verselist()) except : log.error(u'Errow thrown %s', sys.exc_info()[1]) - + #Now get verses from database if schapter == echapter: text = self.bible_db_cache[bible].get_bible_text(bookname, schapter, sverse, everse) else: for i in range (schapter, echapter + 1): if i == schapter: start = sverse - end = self.get_book_verse_count(bible, bookname,i )[0] + end = self.get_book_verse_count(bible, bookname, i) elif i == echapter: start = 1 end = everse else: start = 1 - end = self.get_book_verse_count(bible, bookname,i )[0] + end = self.get_book_verse_count(bible, bookname, i) txt = self.bible_db_cache[bible].get_bible_text(bookname, i, start, end) text.extend(txt) === modified file 'openlp/plugins/bibles/lib/mediaitem.py' --- openlp/plugins/bibles/lib/mediaitem.py 2009-07-13 20:11:36 +0000 +++ openlp/plugins/bibles/lib/mediaitem.py 2009-08-02 13:44:41 +0000 @@ -135,6 +135,12 @@ self.ClearQuickSearchComboBox = QtGui.QComboBox(self.QuickTab) self.ClearQuickSearchComboBox.setObjectName(u'ClearQuickSearchComboBox') self.QuickLayout.addWidget(self.ClearQuickSearchComboBox, 3, 1, 1, 1) + self.QuickMsg1 = QtGui.QLabel(self.QuickTab) + self.QuickMsg1.setObjectName(u'QuickSearchLabel') + self.QuickLayout.addWidget(self.QuickMsg1, 4, 0, 1, 1) + self.QuickMsg2 = QtGui.QLabel(self.QuickTab) + self.QuickMsg2.setObjectName(u'QuickSearchLabel') + self.QuickLayout.addWidget(self.QuickMsg2, 4, 1, 1, 1) self.SearchTabWidget.addTab(self.QuickTab, 'Quick') QuickSpacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) @@ -254,6 +260,14 @@ def initialise(self): log.debug(u'initialise') self.loadBibles() + self.parent.biblemanager.set_media_manager(self) + + def setQuickMsg1(self, text): + self.QuickMsg1.setText(translate(u'BibleMediaItem', unicode(text))) + + def setQuickMsg2(self, text): + self.QuickMsg2.setText(translate(u'BibleMediaItem', unicode(text))) + Receiver().send_message(u'openlpprocessevents') def loadBibles(self): log.debug(u'Loading Bibles') @@ -355,7 +369,7 @@ verse = unicode(self.search_results[0].verse) text = self.search_results[0].text #Paragraph style force new line per verse - if self.parent.bibles_tab.paragraph_style: + if self.parent.bibles_tab.layout_style == 1: text = text + u'\n\n' if self.parent.bibles_tab.display_style == 1: loc = self.formatVerse(old_chapter, chapter, verse, u'(u', u')') @@ -367,8 +381,13 @@ loc = self.formatVerse(old_chapter, chapter, verse, u'', u'') old_chapter = chapter bible_text = bible_text + u' '+ loc + u' '+ text + #if we are verse per slide then create slide + if self.parent.bibles_tab.layout_style == 0: + raw_slides.append(bible_text) + bible_text = u'' service_item.title = book + u' ' + loc footer = book + u' (' + self.version + u' ' + self.copyright +u')' + #If not found throws and error so add.s try: raw_footer.index(footer) except: @@ -377,7 +396,9 @@ service_item.theme = None else: service_item.theme = self.parent.bibles_tab.bible_theme - raw_slides.append(bible_text) + #if we are verse per slide we have already been added + if self.parent.bibles_tab.layout_style != 0: + raw_slides.append(bible_text) for slide in raw_slides: service_item.add_from_text(slide[:30], slide) service_item.raw_footer = raw_footer @@ -425,10 +446,6 @@ def displayResults(self, bible): for verse in self.search_results: - #bible_text = unicode(u' %s %d:%d (%s)'%(book , chap,vse, bible)) - #bible_verse = QtGui.QListWidgetItem(bible_text) - #bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(bible_text)) - #self.ListView.addItem(bible_verse) bible_text = u' %s %d:%d (%s)' % (verse.book.name, verse.chapter, verse.verse, bible) bible_verse = QtGui.QListWidgetItem(bible_text) === modified file 'openlp/plugins/songs/forms/editsongform.py' --- openlp/plugins/songs/forms/editsongform.py 2009-07-19 07:58:37 +0000 +++ openlp/plugins/songs/forms/editsongform.py 2009-08-02 16:13:59 +0000 @@ -48,16 +48,12 @@ QtCore.SIGNAL(u'clicked()'), self.onAuthorRemovefromSongItemClicked) QtCore.QObject.connect(self.AuthorsListView, QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onAuthorsListViewPressed) -# QtCore.QObject.connect(self.AddTopicButton, -# QtCore.SIGNAL(u'clicked()'), self.onAddTopicButtonClicked) QtCore.QObject.connect(self.AddTopicsToSongButton, QtCore.SIGNAL(u'clicked()'), self.onTopicAddtoSongItemClicked) QtCore.QObject.connect(self.TopicRemoveItem, QtCore.SIGNAL(u'clicked()'), self.onTopicRemovefromSongItemClicked) QtCore.QObject.connect(self.TopicsListView, QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onTopicListViewPressed) -# QtCore.QObject.connect(self.AddSongBookButton, -# QtCore.SIGNAL(u'clicked()'), self.onAddSongBookButtonClicked) QtCore.QObject.connect(self.CopyrightInsertItem, QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertItemTriggered) QtCore.QObject.connect(self.AddButton, @@ -75,9 +71,6 @@ # Create other objects and forms self.songmanager = songmanager self.eventmanager = eventmanager -# self.authors_form = AuthorsForm(self.songmanager) -# self.topics_form = TopicsForm(self.songmanager) -# self.song_book_form = SongBookForm(self.songmanager) self.verse_form = EditVerseForm() self.initialise() self.AuthorsListView.setSortingEnabled(False) @@ -253,30 +246,6 @@ row = self.TopicsListView.row(item) self.TopicsListView.takeItem(row) -# def onAddAuthorsButtonClicked(self): -# """ -# Slot documentation goes here. -# """ -# self.authors_form.load_form() -# self.authors_form.exec_() -# self.loadAuthors() -# -# def onAddTopicButtonClicked(self): -# """ -# Slot documentation goes here. -# """ -# self.topics_form.load_form() -# self.topics_form.exec_() -# self.loadTopics() -# -# def onAddSongBookButtonClicked(self): -# """ -# Slot documentation goes here. -# """ -# self.song_book_form.load_form() -# self.song_book_form.exec_() -# self.loadBooks() - def onSongBookComboChanged(self, item): if item == 0: self.song.song_book_id = 0
_______________________________________________ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp