fixed #1046508 (OSError on changing theme background image)

bzr-revno: 2052
Fixes: https://launchpad.net/bugs/1046508
This commit is contained in:
Andreas Preikschat 2012-09-06 09:42:29 +02:00
commit 2196539d69
1 changed files with 4 additions and 3 deletions

View File

@ -281,9 +281,9 @@ class ThemeManager(QtGui.QWidget):
for plugin in self.mainwindow.pluginManager.plugins: for plugin in self.mainwindow.pluginManager.plugins:
if plugin.usesTheme(old_theme_name): if plugin.usesTheme(old_theme_name):
plugin.renameTheme(old_theme_name, new_theme_name) plugin.renameTheme(old_theme_name, new_theme_name)
self.loadThemes()
self.mainwindow.renderer.update_theme( self.mainwindow.renderer.update_theme(
new_theme_name, old_theme_name) new_theme_name, old_theme_name)
self.loadThemes()
def onCopyTheme(self): def onCopyTheme(self):
""" """
@ -314,6 +314,7 @@ class ThemeManager(QtGui.QWidget):
theme_data.theme_name = new_theme_name theme_data.theme_name = new_theme_name
theme_data.extend_image_filename(self.path) theme_data.extend_image_filename(self.path)
self.saveTheme(theme_data, save_from, save_to) self.saveTheme(theme_data, save_from, save_to)
self.loadThemes()
def onEditTheme(self): def onEditTheme(self):
""" """
@ -331,6 +332,7 @@ class ThemeManager(QtGui.QWidget):
self.themeForm.exec_(True) self.themeForm.exec_(True)
self.oldBackgroundImage = None self.oldBackgroundImage = None
self.mainwindow.renderer.update_theme(theme.theme_name) self.mainwindow.renderer.update_theme(theme.theme_name)
self.loadThemes()
def onDeleteTheme(self): def onDeleteTheme(self):
""" """
@ -345,10 +347,10 @@ class ThemeManager(QtGui.QWidget):
row = self.themeListWidget.row(item) row = self.themeListWidget.row(item)
self.themeListWidget.takeItem(row) self.themeListWidget.takeItem(row)
self.deleteTheme(theme) self.deleteTheme(theme)
self.mainwindow.renderer.update_theme(theme, only_delete=True)
# As we do not reload the themes, push out the change. Reload the # As we do not reload the themes, push out the change. Reload the
# list as the internal lists and events need to be triggered. # list as the internal lists and events need to be triggered.
self._pushThemes() self._pushThemes()
self.mainwindow.renderer.update_theme(theme, only_delete=True)
def deleteTheme(self, theme): def deleteTheme(self, theme):
""" """
@ -672,7 +674,6 @@ class ThemeManager(QtGui.QWidget):
theme.background_filename, theme.background_filename,
ImageSource.Theme, QtGui.QColor(theme.background_border_color)) ImageSource.Theme, QtGui.QColor(theme.background_border_color))
self.mainwindow.imageManager.processUpdates() self.mainwindow.imageManager.processUpdates()
self.loadThemes()
def _writeTheme(self, theme, image_from, image_to): def _writeTheme(self, theme, image_from, image_to):
""" """