Theme Image and Presentation fixes

bzr-revno: 609
This commit is contained in:
Tim Bentley 2009-10-18 16:12:28 +01:00
commit 1cfa0e560b
9 changed files with 60 additions and 52 deletions

View File

@ -250,7 +250,7 @@ class Plugin(object):
""" """
Called by the plugin to remove toolbar Called by the plugin to remove toolbar
""" """
self.mediadock.removeDock(self.name) self.mediadock.remove_dock(self.name)
self.settings.removeTab(self.name) self.settings.removeTab(self.name)
def insert_toolbox_item(self): def insert_toolbox_item(self):
@ -258,6 +258,6 @@ class Plugin(object):
Called by plugin to replace toolbar Called by plugin to replace toolbar
""" """
if self.media_item is not None: if self.media_item is not None:
self.mediadock.insertDock(self.media_item, self.icon, self.weight) self.mediadock.insert_dock(self.media_item, self.icon, self.weight)
if self.settings_tab is not None: if self.settings_tab is not None:
self.settings.insertTab(self.settings_tab, self.weight) self.settings.insertTab(self.settings_tab, self.weight)

View File

@ -140,7 +140,7 @@ class PluginManager(object):
if plugin.media_item is not None: if plugin.media_item is not None:
log.debug(u'Inserting media manager item from %s' % \ log.debug(u'Inserting media manager item from %s' % \
plugin.name) plugin.name)
mediadock.addDock(plugin.media_item, plugin.icon, plugin.weight) mediadock.add_dock(plugin.media_item, plugin.icon, plugin.weight)
def hook_settings_tabs(self, settingsform=None): def hook_settings_tabs(self, settingsform=None):
""" """

View File

@ -90,6 +90,8 @@ class ThemeXML(object):
The path name to be added. The path name to be added.
""" """
if self.background_filename is not None and path is not None: if self.background_filename is not None and path is not None:
self.theme_name = self.theme_name.rstrip().lstrip()
self.background_filename = self.background_filename.rstrip().lstrip()
self.background_filename = os.path.join(path, self.theme_name, self.background_filename = os.path.join(path, self.theme_name,
self.background_filename) self.background_filename)

View File

@ -108,6 +108,7 @@ class MainDisplay(DisplayLabel):
Sets up the screen on a particular screen. Sets up the screen on a particular screen.
@param (integer) screen This is the screen number. @param (integer) screen This is the screen number.
""" """
log.debug(u'Setup %s for %s ' %(self.screens, screenNumber) )
screen = self.screens[screenNumber] screen = self.screens[screenNumber]
if screen[u'number'] != screenNumber: if screen[u'number'] != screenNumber:
# We will most probably never actually hit this bit, but just in # We will most probably never actually hit this bit, but just in

View File

@ -24,19 +24,19 @@
import logging import logging
log = logging.getLogger(u'MediaDockManager') log = logging.getLogger(u'media_dockManager')
class MediaDockManager(object): class MediaDockManager(object):
def __init__(self, mediaDock): def __init__(self, media_dock):
self.mediaDock = mediaDock self.media_dock = media_dock
def addDock(self, media_item, icon, weight): def add_dock(self, media_item, icon, weight):
log.info(u'Adding %s dock' % media_item.title) log.info(u'Adding %s dock' % media_item.title)
id = self.mediaDock.addItem( id = self.media_dock.addItem(
media_item, icon, media_item.title) media_item, icon, media_item.title)
def insertDock(self, media_item, icon, weight): def insert_dock(self, media_item, icon, weight):
""" """
This should insert a dock item at a given location This should insert a dock item at a given location
This does not work as it gives a Segmentation error. This does not work as it gives a Segmentation error.
@ -44,18 +44,18 @@ class MediaDockManager(object):
""" """
log.debug(u'Inserting %s dock' % media_item.title) log.debug(u'Inserting %s dock' % media_item.title)
match = False match = False
for dock_index in range(0, self.mediaDock.count()): for dock_index in range(0, self.media_dock.count()):
if self.mediaDock.widget(dock_index).ConfigSection == media_item.title.lower(): if self.media_dock.widget(dock_index).ConfigSection == media_item.title.lower():
match = True match = True
break break
if not match: if not match:
self.mediaDock.addItem(media_item, icon, media_item.title) self.media_dock.addItem(media_item, icon, media_item.title)
def removeDock(self, name): def remove_dock(self, name):
log.debug(u'remove %s dock' % name) log.debug(u'remove %s dock' % name)
for dock_index in range(0, self.mediaDock.count()): for dock_index in range(0, self.media_dock.count()):
if self.mediaDock.widget(dock_index) is not None: if self.media_dock.widget(dock_index) is not None:
if self.mediaDock.widget(dock_index).ConfigSection == name.lower(): if self.media_dock.widget(dock_index).ConfigSection == name.lower():
self.mediaDock.widget(dock_index).hide() self.media_dock.widget(dock_index).hide()
self.mediaDock.removeItem(dock_index) self.media_dock.removeItem(dock_index)

View File

@ -153,6 +153,7 @@ class ThemeManager(QtGui.QWidget):
def onAddTheme(self): def onAddTheme(self):
self.amendThemeForm.loadTheme(None) self.amendThemeForm.loadTheme(None)
self.saveThemeName = u''
self.amendThemeForm.exec_() self.amendThemeForm.exec_()
def onEditTheme(self): def onEditTheme(self):
@ -160,6 +161,7 @@ class ThemeManager(QtGui.QWidget):
if item is not None: if item is not None:
self.amendThemeForm.loadTheme( self.amendThemeForm.loadTheme(
unicode(item.data(QtCore.Qt.UserRole).toString())) unicode(item.data(QtCore.Qt.UserRole).toString()))
self.saveThemeName = unicode(item.data(QtCore.Qt.UserRole).toString())
self.amendThemeForm.exec_() self.amendThemeForm.exec_()
def onDeleteTheme(self): def onDeleteTheme(self):
@ -412,23 +414,26 @@ class ThemeManager(QtGui.QWidget):
os.mkdir(os.path.join(self.path, name)) os.mkdir(os.path.join(self.path, name))
theme_file = os.path.join(theme_dir, name + u'.xml') theme_file = os.path.join(theme_dir, name + u'.xml')
log.debug(theme_file) log.debug(theme_file)
result = QtGui.QMessageBox.Yes result = QtGui.QMessageBox.Yes
if os.path.exists(theme_file): if self.saveThemeName != name:
result = QtGui.QMessageBox.question( if os.path.exists(theme_file):
self, result = QtGui.QMessageBox.question(
translate(u'ThemeManager', u'Theme Exists'), self,
translate(u'ThemeManager', u'A theme with this name already exists, would you like to overwrite it?'), translate(u'ThemeManager', u'Theme Exists'),
(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No), translate(u'ThemeManager', u'A theme with this name already exists, would you like to overwrite it?'),
QtGui.QMessageBox.No) (QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
else:
result == QtGui.QMessageBox.Yes
if result == QtGui.QMessageBox.Yes: if result == QtGui.QMessageBox.Yes:
# Save the theme, overwriting the existing theme if necessary. # Save the theme, overwriting the existing theme if necessary.
outfile = open(theme_file, u'w') outfile = open(theme_file, u'w')
outfile.write(theme_pretty_xml) outfile.write(theme_pretty_xml)
outfile.close() outfile.close()
if image_from is not None and image_from != image_to: if image_from is not None and image_from != image_to:
print "if", image_from
print "it", image_to
shutil.copyfile(image_from, image_to) shutil.copyfile(image_from, image_to)
self.generateAndSaveImage(self.path, name, theme_xml) self.generateAndSaveImage(self.path, name, theme_xml)
self.loadThemes() self.loadThemes()
else: else:

View File

@ -110,9 +110,9 @@ class BiblesTab(SettingsTab):
self.BibleThemeComboBox.setObjectName(u'BibleThemeComboBox') self.BibleThemeComboBox.setObjectName(u'BibleThemeComboBox')
self.BibleThemeComboBox.addItem(QtCore.QString()) self.BibleThemeComboBox.addItem(QtCore.QString())
self.BibleThemeLayout.addWidget(self.BibleThemeComboBox) self.BibleThemeLayout.addWidget(self.BibleThemeComboBox)
self.BibleDuelCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox) self.BibleDualCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox)
self.BibleDuelCheckBox.setObjectName(u'BibleDuelCheckBox') self.BibleDualCheckBox.setObjectName(u'BibleDualCheckBox')
self.VerseDisplayLayout.addWidget(self.BibleDuelCheckBox, 3, 0, 1, 1) self.VerseDisplayLayout.addWidget(self.BibleDualCheckBox, 3, 0, 1, 1)
self.VerseDisplayLayout.addWidget(self.BibleThemeWidget, 4, 0, 1, 1) self.VerseDisplayLayout.addWidget(self.BibleThemeWidget, 4, 0, 1, 1)
self.ChangeNoteLabel = QtGui.QLabel(self.VerseDisplayGroupBox) self.ChangeNoteLabel = QtGui.QLabel(self.VerseDisplayGroupBox)
self.ChangeNoteLabel.setObjectName(u'ChangeNoteLabel') self.ChangeNoteLabel.setObjectName(u'ChangeNoteLabel')
@ -141,9 +141,9 @@ class BiblesTab(SettingsTab):
QtCore.QObject.connect(self.LayoutStyleComboBox, QtCore.QObject.connect(self.LayoutStyleComboBox,
QtCore.SIGNAL(u'activated(int)'), QtCore.SIGNAL(u'activated(int)'),
self.onLayoutStyleComboBoxChanged) self.onLayoutStyleComboBoxChanged)
QtCore.QObject.connect(self.BibleDuelCheckBox, QtCore.QObject.connect(self.BibleDualCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'), QtCore.SIGNAL(u'stateChanged(int)'),
self.onBibleDuelCheckBox) self.onBibleDualCheckBox)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'update_themes'), self.updateThemeList) QtCore.SIGNAL(u'update_themes'), self.updateThemeList)
@ -174,8 +174,8 @@ class BiblesTab(SettingsTab):
3, translate(u'SettingsForm', u'[ and ]')) 3, translate(u'SettingsForm', u'[ and ]'))
self.ChangeNoteLabel.setText(translate(u'SettingsForm', self.ChangeNoteLabel.setText(translate(u'SettingsForm',
u'Note:\nChanges don\'t affect verses already in the service')) u'Note:\nChanges don\'t affect verses already in the service'))
self.BibleDuelCheckBox.setText( self.BibleDualCheckBox.setText(
translate(u'SettingsForm', u'Display Duel Bible Verses')) translate(u'SettingsForm', u'Display Dual Bible Verses'))
def onBibleThemeComboBoxChanged(self): def onBibleThemeComboBoxChanged(self):
self.bible_theme = self.BibleThemeComboBox.currentText() self.bible_theme = self.BibleThemeComboBox.currentText()
@ -192,7 +192,7 @@ class BiblesTab(SettingsTab):
if check_state == QtCore.Qt.Checked: if check_state == QtCore.Qt.Checked:
self.show_new_chapters = True self.show_new_chapters = True
def onBibleDuelCheckBox(self, check_state): def onBibleDualCheckBox(self, check_state):
self.duel_bibles = False self.duel_bibles = False
# we have a set value convert to True/False # we have a set value convert to True/False
if check_state == QtCore.Qt.Checked: if check_state == QtCore.Qt.Checked:
@ -207,11 +207,11 @@ class BiblesTab(SettingsTab):
self.config.get_config(u'verse layout style', u'0')) self.config.get_config(u'verse layout style', u'0'))
self.bible_theme = self.config.get_config(u'bible theme', u'0') self.bible_theme = self.config.get_config(u'bible theme', u'0')
self.duel_bibles = str_to_bool( self.duel_bibles = str_to_bool(
self.config.get_config(u'duel bibles', u'True')) self.config.get_config(u'dual bibles', u'True'))
self.NewChaptersCheckBox.setChecked(self.show_new_chapters) self.NewChaptersCheckBox.setChecked(self.show_new_chapters)
self.DisplayStyleComboBox.setCurrentIndex(self.display_style) self.DisplayStyleComboBox.setCurrentIndex(self.display_style)
self.LayoutStyleComboBox.setCurrentIndex(self.layout_style) self.LayoutStyleComboBox.setCurrentIndex(self.layout_style)
self.BibleDuelCheckBox.setChecked(self.duel_bibles) self.BibleDualCheckBox.setChecked(self.duel_bibles)
def save(self): def save(self):
self.config.set_config( self.config.set_config(
@ -220,7 +220,7 @@ class BiblesTab(SettingsTab):
u'display brackets', unicode(self.display_style)) u'display brackets', unicode(self.display_style))
self.config.set_config( self.config.set_config(
u'verse layout style', unicode(self.layout_style)) u'verse layout style', unicode(self.layout_style))
self.config.set_config(u'duel bibles', unicode(self.duel_bibles)) self.config.set_config(u'dual bibles', unicode(self.duel_bibles))
self.config.set_config(u'bible theme', unicode(self.bible_theme)) self.config.set_config(u'bible theme', unicode(self.bible_theme))
def updateThemeList(self, theme_list): def updateThemeList(self, theme_list):

View File

@ -208,7 +208,7 @@ class BibleMediaItem(MediaManagerItem):
def configUpdated(self): def configUpdated(self):
if str_to_bool( if str_to_bool(
self.parent.config.get_config(u'duel bibles', u'False')): self.parent.config.get_config(u'dual bibles', u'False')):
self.AdvancedSecondBibleComboBox.setVisible(True) self.AdvancedSecondBibleComboBox.setVisible(True)
self.QuickSecondBibleComboBox.setVisible(True) self.QuickSecondBibleComboBox.setVisible(True)
else: else:

View File

@ -51,19 +51,19 @@ class PresentationPlugin(Plugin):
Create the settings Tab Create the settings Tab
""" """
return PresentationTab(self.controllers) return PresentationTab(self.controllers)
#
# def can_be_disabled(self): def can_be_disabled(self):
# return True return True
#
# def initialise(self): def initialise(self):
# log.info(u'Presentations Initialising') log.info(u'Presentations Initialising')
# Plugin.initialise(self) Plugin.initialise(self)
# self.insert_toolbox_item() self.insert_toolbox_item()
#
# def finalise(self): def finalise(self):
# log.info(u'Plugin Finalise') log.info(u'Plugin Finalise')
# Plugin.finalise(self) Plugin.finalise(self)
# self.remove_toolbox_item() self.remove_toolbox_item()
def get_media_manager_item(self): def get_media_manager_item(self):
""" """