finish Theme handling corrections

Set Global Theme back in settings tab
This commit is contained in:
Tim Bentley 2009-08-07 20:05:00 +01:00
parent 23b13ede2d
commit 26a1658724
2 changed files with 26 additions and 1 deletions

View File

@ -68,6 +68,10 @@ class ThemeManager(QtGui.QWidget):
self.ThemeListWidget.setAlternatingRowColors(True)
self.ThemeListWidget.setIconSize(QtCore.QSize(88,50))
self.Layout.addWidget(self.ThemeListWidget)
#Signals
QtCore.QObject.connect(self.ThemeListWidget,
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.changeGlobal)
#Variables
self.themelist = []
self.path = os.path.join(ConfigHelper.get_data_path(), u'themes')
self.checkThemesExists(self.path)
@ -77,6 +81,21 @@ class ThemeManager(QtGui.QWidget):
self.servicePath = self.config.get_data_path()
self.global_theme = unicode(self.config.get_config(u'theme global theme', u''))
def changeGlobal(self, index):
for count in range (0, self.ThemeListWidget.count()):
item = self.ThemeListWidget.item(count)
oldName = item.text()
#reset the old name
if oldName != unicode(item.data(QtCore.Qt.UserRole).toString()):
self.ThemeListWidget.item(count).setText(unicode(item.data(QtCore.Qt.UserRole).toString()))
#Set the new name
if count == index.row():
self.global_theme = unicode(self.ThemeListWidget.item(count).text())
name = (u'(%s):%s' % (translate(u'ThemeManager', u'default'), self.global_theme))
self.ThemeListWidget.item(count).setText(name)
self.config.set_config(u'theme global theme', self.global_theme)
self.push_themes()
def onAddTheme(self):
self.amendThemeForm.loadTheme(None)
self.amendThemeForm.exec_()
@ -99,6 +118,7 @@ class ThemeManager(QtGui.QWidget):
translate(u'ThemeManager', u'You are unable to delete the default theme!'),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
else:
self.themelist.remove(theme)
th = theme + u'.png'
row = self.ThemeListWidget.row(item)
self.ThemeListWidget.takeItem(row)
@ -114,7 +134,7 @@ class ThemeManager(QtGui.QWidget):
pass
#As we do not reload the themes push out the change
#Reaload the list as the internal lists and events need to be triggered
self.loadThemes()
self.push_themes()
def onExportTheme(self):
pass
@ -156,6 +176,9 @@ class ThemeManager(QtGui.QWidget):
item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(textName))
self.ThemeListWidget.addItem(item_name)
self.themelist.append(textName)
self.push_themes()
def push_themes(self):
self.parent.EventManager.post_event(Event(EventType.ThemeListChanged))
self.parent.ServiceManagerContents.updateThemeList(self.getThemes())
self.parent.settingsForm.ThemesTab.updateThemeList(self.getThemes())

View File

@ -147,6 +147,8 @@ class ThemesTab(SettingsTab):
"""
Called from ThemeManager when the Themes have changed
"""
#reload as may have been triggered by the ThemeManager
self.global_theme = self.config.get_config(u'theme global theme', u'')
self.DefaultComboBox.clear()
for theme in theme_list:
self.DefaultComboBox.addItem(theme)