diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py
index bbed2b4a9..c752c6d7d 100644
--- a/openlp/core/lib/theme.py
+++ b/openlp/core/lib/theme.py
@@ -190,10 +190,11 @@ class ThemeXML(object):
self.background_filename = os.path.join(path, self.theme_name,
self.background_filename)
- def new_document(self, name):
+ def _new_document(self, name):
"""
Create a new theme XML document.
"""
+ self.theme_xml = Document()
self.theme = self.theme_xml.createElement(u'theme')
self.theme_xml.appendChild(self.theme)
self.theme.setAttribute(u'version', u'2.0')
@@ -218,10 +219,9 @@ class ThemeXML(object):
The color of the background.
"""
background = self.theme_xml.createElement(u'background')
- background.setAttribute(u'mode', u'opaque')
background.setAttribute(u'type', u'solid')
self.theme.appendChild(background)
- self.child_element(background, u'color', bkcolor)
+ self.child_element(background, u'color', unicode(bkcolor))
def add_background_gradient(self, startcolor, endcolor, direction):
"""
@@ -237,15 +237,14 @@ class ThemeXML(object):
The direction of the gradient.
"""
background = self.theme_xml.createElement(u'background')
- background.setAttribute(u'mode', u'opaque')
background.setAttribute(u'type', u'gradient')
self.theme.appendChild(background)
# Create startColor element
- self.child_element(background, u'startColor', startcolor)
+ self.child_element(background, u'startColor', unicode(startcolor))
# Create endColor element
- self.child_element(background, u'endColor', endcolor)
+ self.child_element(background, u'endColor', unicode(endcolor))
# Create direction element
- self.child_element(background, u'direction', direction)
+ self.child_element(background, u'direction', unicode(direction))
def add_background_image(self, filename):
"""
@@ -255,7 +254,6 @@ class ThemeXML(object):
The file name of the image.
"""
background = self.theme_xml.createElement(u'background')
- background.setAttribute(u'mode', u'opaque')
background.setAttribute(u'type', u'image')
self.theme.appendChild(background)
# Create Filename element
@@ -329,22 +327,22 @@ class ThemeXML(object):
# Create Font color element
self.child_element(background, u'color', color)
# Create Proportion name element
- self.child_element(background, u'size', proportion)
+ self.child_element(background, u'size', unicode(proportion))
# Create weight name element
- self.child_element(background, u'bold', bold)
+ self.child_element(background, u'bold', unicode(bold))
# Create italics name element
- self.child_element(background, u'italics', italics)
+ self.child_element(background, u'italics', unicode(italics))
# Create indentation name element
self.child_element(
background, u'line_adjustment', unicode(line_adjustment))
# Create Location element
element = self.theme_xml.createElement(u'location')
- element.setAttribute(u'override', override)
+ element.setAttribute(u'override', unicode(override))
if override == u'True':
- element.setAttribute(u'x', xpos)
- element.setAttribute(u'y', ypos)
- element.setAttribute(u'width', width)
- element.setAttribute(u'height', height)
+ element.setAttribute(u'x', unicode(xpos))
+ element.setAttribute(u'y', unicode(ypos))
+ element.setAttribute(u'width', unicode(width))
+ element.setAttribute(u'height', unicode(height))
background.appendChild(element)
# Shadow
element = self.theme_xml.createElement(u'shadow')
@@ -412,12 +410,14 @@ class ThemeXML(object):
"""
Print out the XML string.
"""
+ self._build_xml_from_attrs()
return self.theme_xml.toxml(u'utf-8').decode(u'utf-8')
def extract_formatted_xml(self):
"""
Pull out the XML string formatted for human consumption
"""
+ self._build_xml_from_attrs()
return self.theme_xml.toprettyxml(indent=u' ', newl=u'\n',
encoding=u'utf-8')
@@ -550,13 +550,16 @@ class ThemeXML(object):
s1 = re.sub(u'(.)([A-Z][a-z]+)', r'\1_\2', name)
return re.sub(u'([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
- def build_xml_from_attrs(self, ):
+ def _build_xml_from_attrs(self):
"""
Build the XML from the varables in the object
"""
- if self.background_type == BackgroundType.Solid:
+ self._new_document(self.theme_name)
+ if self.background_type == \
+ BackgroundType.to_string(BackgroundType.Solid):
self.add_background_solid(self.background_color)
- elif self.background_type == BackgroundType.Gradient:
+ elif self.background_type == \
+ BackgroundType.to_string(BackgroundType.Gradient):
self.add_background_gradient(
self.background_start_color,
self.background_end_color,
@@ -567,9 +570,9 @@ class ThemeXML(object):
self.add_background_image(filename)
self.add_font(self.font_main_name,
self.font_main_color,
- self.font_main_proportion,
+ self.font_main_size,
self.font_main_override, u'main',
- self.font_main_weight,
+ self.font_main_bold,
self.font_main_italics,
self.font_main_line_adjustment,
self.font_main_x,
@@ -584,9 +587,9 @@ class ThemeXML(object):
self.font_main_shadow_size)
self.add_font(self.font_footer_name,
self.font_footer_color,
- self.font_footer_proportion,
+ self.font_footer_size,
self.font_footer_override, u'footer',
- self.font_footer_weight,
+ self.font_footer_bold,
self.font_footer_italics,
0, # line adjustment
self.font_footer_x,
diff --git a/openlp/core/ui/themedialog.py b/openlp/core/ui/themedialog.py
index df487e6e4..25e73e530 100644
--- a/openlp/core/ui/themedialog.py
+++ b/openlp/core/ui/themedialog.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'themedialog.ui'
#
-# Created: Sat Oct 30 12:33:34 2010
+# Created: Thu Nov 4 18:12:37 2010
# by: PyQt4 UI code generator 4.7.4
#
# WARNING! All changes made in this file will be lost!
@@ -403,28 +403,26 @@ class Ui_ThemeDialog(object):
ThemeDialog.addPage(self.areaPositionPage)
self.previewPage = QtGui.QWizardPage()
self.previewPage.setObjectName("previewPage")
- self.previewLayout = QtGui.QGridLayout(self.previewPage)
- self.previewLayout.setMargin(20)
- self.previewLayout.setSpacing(8)
- self.previewLayout.setObjectName("previewLayout")
self.themeNameLabel = QtGui.QLabel(self.previewPage)
+ self.themeNameLabel.setGeometry(QtCore.QRect(20, 10, 82, 16))
self.themeNameLabel.setTextFormat(QtCore.Qt.PlainText)
self.themeNameLabel.setObjectName("themeNameLabel")
- self.previewLayout.addWidget(self.themeNameLabel, 0, 0, 1, 1)
self.previewLabel = QtGui.QLabel(self.previewPage)
+ self.previewLabel.setGeometry(QtCore.QRect(250, 60, 48, 16))
self.previewLabel.setAlignment(QtCore.Qt.AlignCenter)
self.previewLabel.setObjectName("previewLabel")
- self.previewLayout.addWidget(self.previewLabel, 2, 0, 1, 2)
self.themeNameEdit = QtGui.QLineEdit(self.previewPage)
+ self.themeNameEdit.setGeometry(QtCore.QRect(117, 4, 351, 23))
self.themeNameEdit.setObjectName("themeNameEdit")
- self.previewLayout.addWidget(self.themeNameEdit, 0, 1, 1, 1)
- self.previewBoxLayout = QtGui.QHBoxLayout()
- self.previewBoxLayout.setSpacing(0)
- self.previewBoxLayout.setContentsMargins(0, 0, -1, -1)
- self.previewBoxLayout.setObjectName("previewBoxLayout")
- spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
- self.previewBoxLayout.addItem(spacerItem2)
- self.previewBoxLabel = QtGui.QLabel(self.previewPage)
+ self.groupBox = QtGui.QGroupBox(self.previewPage)
+ self.groupBox.setGeometry(QtCore.QRect(40, 80, 464, 214))
+ self.groupBox.setTitle("")
+ self.groupBox.setObjectName("groupBox")
+ self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ spacerItem2 = QtGui.QSpacerItem(58, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+ self.horizontalLayout.addItem(spacerItem2)
+ self.previewBoxLabel = QtGui.QLabel(self.groupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -437,14 +435,14 @@ class Ui_ThemeDialog(object):
self.previewBoxLabel.setText("")
self.previewBoxLabel.setScaledContents(True)
self.previewBoxLabel.setObjectName("previewBoxLabel")
- self.previewBoxLayout.addWidget(self.previewBoxLabel)
- spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
- self.previewBoxLayout.addItem(spacerItem3)
- self.previewLayout.addLayout(self.previewBoxLayout, 3, 0, 1, 2)
+ self.horizontalLayout.addWidget(self.previewBoxLabel)
+ spacerItem3 = QtGui.QSpacerItem(78, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+ self.horizontalLayout.addItem(spacerItem3)
ThemeDialog.addPage(self.previewPage)
self.themeNameLabel.setBuddy(self.themeNameEdit)
self.retranslateUi(ThemeDialog)
+ QtCore.QObject.connect(ThemeDialog, QtCore.SIGNAL("accepted()"), ThemeDialog.accept)
QtCore.QMetaObject.connectSlotsByName(ThemeDialog)
def retranslateUi(self, ThemeDialog):
@@ -530,4 +528,3 @@ class Ui_ThemeDialog(object):
self.previewPage.setSubTitle(QtGui.QApplication.translate("ThemeDialog", "View the theme and save it replacing the current one or change the name to create a new theme", None, QtGui.QApplication.UnicodeUTF8))
self.themeNameLabel.setText(QtGui.QApplication.translate("ThemeDialog", "Theme name:", None, QtGui.QApplication.UnicodeUTF8))
self.previewLabel.setText(QtGui.QApplication.translate("ThemeDialog", "Preview", None, QtGui.QApplication.UnicodeUTF8))
-
diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py
index c5ea42519..c38715991 100644
--- a/openlp/core/ui/themeform.py
+++ b/openlp/core/ui/themeform.py
@@ -25,11 +25,12 @@
###############################################################################
import logging
+import os
from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate, theme, BackgroundType, BackgroundGradientType
-
+from openlp.core.utils import get_images_filter
from themedialog import Ui_ThemeDialog
log = logging.getLogger(__name__)
@@ -101,6 +102,90 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
QtCore.SIGNAL(u'stateChanged(int)'),
self.onFooterDefaultPositionCheckBox)
+ def setDefaults(self):
+ """
+ Set up display at start of theme edit.
+ """
+ self.restart()
+ self.setBackgroundTabValues()
+ self.setMainAreaTabValues()
+ self.setFooterAreaTabValues()
+ self.setAlignmentTabValues()
+ self.setPositionTabValues()
+ self.setPreviewTabValues()
+ # Set up field states
+ self.onOutlineCheckCheckBoxChanged(self.theme.font_main_outline)
+ self.onShadowCheckCheckBoxChanged(self.theme.font_main_shadow)
+
+ def registerFields(self):
+ """
+ Map field names to screen names,
+ """
+ self.backgroundPage.registerField(
+ u'background_type', self.backgroundTypeComboBox)
+ self.backgroundPage.registerField(
+ u'color_1', self.color1PushButton)
+ self.backgroundPage.registerField(
+ u'color_2', self.color2PushButton)
+ self.backgroundPage.registerField(
+ u'background_image', self.imageLineEdit)
+ self.backgroundPage.registerField(
+ u'gradient', self.gradientComboBox)
+ self.mainAreaPage.registerField(
+ u'mainFontComboBox', self.mainFontComboBox)
+ self.mainAreaPage.registerField(
+ u'mainColorPushButton', self.mainColorPushButton)
+ self.mainAreaPage.registerField(
+ u'mainSizeSpinBox', self.mainSizeSpinBox)
+ self.mainAreaPage.registerField(
+ u'lineSpacingSpinBox', self.lineSpacingSpinBox)
+ self.mainAreaPage.registerField(
+ u'outlineCheckBox', self.outlineCheckBox)
+ self.mainAreaPage.registerField(
+ u'outlineColorPushButton', self.outlineColorPushButton)
+ self.mainAreaPage.registerField(
+ u'outlineSizeSpinBox', self.outlineSizeSpinBox)
+ self.mainAreaPage.registerField(
+ u'shadowCheckBox', self.shadowCheckBox)
+ self.mainAreaPage.registerField(
+ u'boldCheckBox', self.boldCheckBox)
+ self.mainAreaPage.registerField(
+ u'italicsCheckBox', self.italicsCheckBox)
+ self.mainAreaPage.registerField(
+ u'shadowColorPushButton', self.shadowColorPushButton)
+ self.mainAreaPage.registerField(
+ u'shadowSizeSpinBox', self.shadowSizeSpinBox)
+ self.mainAreaPage.registerField(
+ u'footerSizeSpinBox', self.footerSizeSpinBox)
+ self.areaPositionPage.registerField(
+ u'mainDefaultPosition', self.mainDefaultPositionCheckBox)
+ self.areaPositionPage.registerField(
+ u'mainPositionX', self.mainXSpinBox)
+ self.areaPositionPage.registerField(
+ u'mainPositionY', self.mainYSpinBox)
+ self.areaPositionPage.registerField(
+ u'mainPositionWidth', self.mainWidthSpinBox)
+ self.areaPositionPage.registerField(
+ u'mainPositionHeight', self.mainHeightSpinBox)
+ self.areaPositionPage.registerField(
+ u'footerDefaultPosition', self.footerDefaultPositionCheckBox)
+ self.areaPositionPage.registerField(
+ u'footerPositionX', self.footerXSpinBox)
+ self.areaPositionPage.registerField(
+ u'footerPositionY', self.footerYSpinBox)
+ self.areaPositionPage.registerField(
+ u'footerPositionWidth', self.footerWidthSpinBox)
+ self.areaPositionPage.registerField(
+ u'footerPositionHeight', self.footerHeightSpinBox)
+ self.backgroundPage.registerField(
+ u'horizontal', self.horizontalComboBox)
+ self.backgroundPage.registerField(
+ u'vertical', self.verticalComboBox)
+ self.backgroundPage.registerField(
+ u'slideTransition', self.transitionsCheckBox)
+ self.backgroundPage.registerField(
+ u'name', self.themeNameEdit)
+
def onOutlineCheckCheckBoxChanged(self, state):
"""
Change state as Outline check box changed
@@ -149,7 +234,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
return QtGui.QWizard.exec_(self)
def initializePage(self, id):
- print id
if id == 0:
self.setBackgroundTabValues()
elif id == 1:
@@ -164,14 +248,13 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
frame = self.thememanager.generateImage(self.theme)
self.previewBoxLabel.setPixmap(QtGui.QPixmap.fromImage(frame))
- def validateCurrentPage(self):
- """
- Handle Tab specific code when moving between Tabs.
- """
- print "CURRENT id", self.currentId()
- # Preview Screen
- self.updateTheme()
- return True
+# def validateCurrentPage(self):
+# """
+# Handle Tab specific code when moving between Tabs.
+# """
+# # Preview Screen
+# self.updateTheme()
+# return True
def setBackgroundTabValues(self):
"""
@@ -326,90 +409,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
if len(self.theme.theme_name) > 1:
self.themeNameEdit.setEnabled(False)
- def setDefaults(self):
- """
- Set up display at start of theme edit.
- """
- self.restart()
- self.setBackgroundTabValues()
- self.setMainAreaTabValues()
- self.setFooterAreaTabValues()
- self.setAlignmentTabValues()
- self.setPositionTabValues()
- self.setPreviewTabValues()
- # Set up field states
- self.onOutlineCheckCheckBoxChanged(self.theme.font_main_outline)
- self.onShadowCheckCheckBoxChanged(self.theme.font_main_shadow)
-
- def registerFields(self):
- """
- Map field names to screen names,
- """
- self.backgroundPage.registerField(
- u'background_type', self.backgroundTypeComboBox)
- self.backgroundPage.registerField(
- u'color_1', self.color1PushButton)
- self.backgroundPage.registerField(
- u'color_2', self.color2PushButton)
- self.backgroundPage.registerField(
- u'background_image', self.imageLineEdit)
- self.backgroundPage.registerField(
- u'gradient', self.gradientComboBox)
- self.mainAreaPage.registerField(
- u'mainFontComboBox', self.mainFontComboBox)
- self.mainAreaPage.registerField(
- u'mainColorPushButton', self.mainColorPushButton)
- self.mainAreaPage.registerField(
- u'mainSizeSpinBox', self.mainSizeSpinBox)
- self.mainAreaPage.registerField(
- u'lineSpacingSpinBox', self.lineSpacingSpinBox)
- self.mainAreaPage.registerField(
- u'outlineCheckBox', self.outlineCheckBox)
- self.mainAreaPage.registerField(
- u'outlineColorPushButton', self.outlineColorPushButton)
- self.mainAreaPage.registerField(
- u'outlineSizeSpinBox', self.outlineSizeSpinBox)
- self.mainAreaPage.registerField(
- u'shadowCheckBox', self.shadowCheckBox)
- self.mainAreaPage.registerField(
- u'boldCheckBox', self.boldCheckBox)
- self.mainAreaPage.registerField(
- u'italicsCheckBox', self.italicsCheckBox)
- self.mainAreaPage.registerField(
- u'shadowColorPushButton', self.shadowColorPushButton)
- self.mainAreaPage.registerField(
- u'shadowSizeSpinBox', self.shadowSizeSpinBox)
- self.mainAreaPage.registerField(
- u'footerSizeSpinBox', self.footerSizeSpinBox)
- self.areaPositionPage.registerField(
- u'mainDefaultPosition', self.mainDefaultPositionCheckBox)
- self.areaPositionPage.registerField(
- u'mainPositionX', self.mainXSpinBox)
- self.areaPositionPage.registerField(
- u'mainPositionY', self.mainYSpinBox)
- self.areaPositionPage.registerField(
- u'mainPositionWidth', self.mainWidthSpinBox)
- self.areaPositionPage.registerField(
- u'mainPositionHeight', self.mainHeightSpinBox)
- self.areaPositionPage.registerField(
- u'footerDefaultPosition', self.footerDefaultPositionCheckBox)
- self.areaPositionPage.registerField(
- u'footerPositionX', self.footerXSpinBox)
- self.areaPositionPage.registerField(
- u'footerPositionY', self.footerYSpinBox)
- self.areaPositionPage.registerField(
- u'footerPositionWidth', self.footerWidthSpinBox)
- self.areaPositionPage.registerField(
- u'footerPositionHeight', self.footerHeightSpinBox)
- self.backgroundPage.registerField(
- u'horizontal', self.horizontalComboBox)
- self.backgroundPage.registerField(
- u'vertical', self.verticalComboBox)
- self.backgroundPage.registerField(
- u'slideTransition', self.transitionsCheckBox)
- self.backgroundPage.registerField(
- u'name', self.themeNameEdit)
-
def onBackgroundComboBox(self, index):
"""
Background style Combo box has changed.
@@ -448,7 +447,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
translate('OpenLP.ThemeForm', 'Select Image'), u'',
images_filter)
if filename:
- self.theme.background_filename = filename
+ self.theme.background_filename = unicode(filename)
self.setBackgroundTabValues()
def onMainFontComboBox(self):
@@ -486,10 +485,14 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
self.field(u'mainSizeSpinBox').toInt()[0]
self.theme.font_main_line_adjustment = \
self.field(u'lineSpacingSpinBox').toInt()[0]
- self.theme.font_main_outline = \
+ self.theme.font_main_outline_size = \
self.field(u'outlineSizeSpinBox').toInt()[0]
self.theme.font_main_shadow_size = \
self.field(u'shadowSizeSpinBox').toInt()[0]
+ self.theme.font_main_bold = \
+ self.field(u'boldCheckBox').toInt()[0]
+ self.theme.font_main_italics = \
+ self.field(u'italicsCheckBox').toInt()[0]
# footer page
self.theme.font_footer_name = \
unicode(self.footerFontComboBox.currentFont().family())
@@ -518,6 +521,26 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeDialog):
self.theme.theme_name = \
unicode(self.field(u'name').toString())
+ def accept(self):
+ """
+ Lets save the them as Finish has been pressed
+ """
+ if not unicode(self.field(u'name').toString()):
+ return
+ self.updateTheme()
+ save_from = None
+ save_to = None
+ if self.theme.background_type == \
+ BackgroundType.to_string(BackgroundType.Image):
+ filename = \
+ os.path.split(unicode(self.theme.background_filename))[1]
+ save_to = os.path.join(self.path, self.theme.theme_name, filename)
+ save_from = self.theme.background_filename
+ #theme_xml = self.theme.extract_xml()
+ #pretty_theme = self.theme.extract_formatted_xml()
+ if self.thememanager.saveTheme(self.theme, save_from, save_to):
+ return QtGui.QDialog.accept(self)
+
def _colorButton(self, field):
"""
Handle Color buttons
diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py
index debbcb582..588c20f22 100644
--- a/openlp/core/ui/thememanager.py
+++ b/openlp/core/ui/thememanager.py
@@ -299,7 +299,8 @@ class ThemeManager(QtGui.QWidget):
# confirm deletion
answer = QtGui.QMessageBox.question(self,
translate('OpenLP.ThemeManager', 'Delete Confirmation'),
- translate('OpenLP.ThemeManager', 'Delete theme?'),
+ unicode(translate('OpenLP.ThemeManager', 'Delete %s theme?'))
+ % theme,
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No), QtGui.QMessageBox.No)
if answer == QtGui.QMessageBox.No:
@@ -628,13 +629,14 @@ class ThemeManager(QtGui.QWidget):
unicode(theme.WrapStyle), unicode(0))
return newtheme.extract_xml()
- def saveTheme(self, name, theme_xml, theme_pretty_xml, image_from,
- image_to):
+ def saveTheme(self, theme, image_from, image_to):
"""
Called by thememaintenance Dialog to save the theme
and to trigger the reload of the theme list
"""
- log.debug(u'saveTheme %s %s', name, theme_xml)
+ name = theme.theme_name
+ theme_pretty_xml = theme.extract_formatted_xml()
+ log.debug(u'saveTheme %s %s', name, theme_pretty_xml)
theme_dir = os.path.join(self.path, name)
if not os.path.exists(theme_dir):
os.mkdir(os.path.join(self.path, name))
@@ -683,7 +685,7 @@ class ThemeManager(QtGui.QWidget):
unicode(image_to).encode(encoding))
except IOError:
log.exception(u'Failed to save theme image')
- self.generateAndSaveImage(self.path, name, theme_xml)
+ self.generateAndSaveImage(self.path, name, theme)
self.loadThemes()
# Check if we need to set a new service theme
if editedServiceTheme:
@@ -713,9 +715,10 @@ class ThemeManager(QtGui.QWidget):
# the theme or to cancel the theme dialog completely.
return False
- def generateAndSaveImage(self, dir, name, theme_xml):
- log.debug(u'generateAndSaveImage %s %s %s', dir, name, theme_xml)
- theme = self.createThemeFromXml(theme_xml, dir)
+ def generateAndSaveImage(self, dir, name, theme):
+ log.debug(u'generateAndSaveImage %s %s', dir, name)
+ #theme = self.createThemeFromXml(theme_xml, dir)
+ theme_xml = theme.extract_xml()
frame = self.generateImage(theme)
samplepathname = os.path.join(self.path, name + u'.png')
if os.path.exists(samplepathname):
diff --git a/resources/forms/themedialog.ui b/resources/forms/themedialog.ui
index 445b6c74b..130a1ab8d 100644
--- a/resources/forms/themedialog.ui
+++ b/resources/forms/themedialog.ui
@@ -983,110 +983,123 @@ p, li { white-space: pre-wrap; }
View the theme and save it replacing the current one or change the name to create a new theme
-
-
- 20
+
+
+
+ 20
+ 10
+ 82
+ 16
+
-
- 8
+
+ Theme name:
- -
-
-
- Theme name:
-
-
- Qt::PlainText
-
-
- themeNameEdit
-
-
-
- -
-
-
- Preview
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- -
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 300
- 200
-
-
-
- QFrame::WinPanel
-
-
- QFrame::Sunken
-
-
- 1
-
-
-
-
-
- true
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
+
+ Qt::PlainText
+
+
+ themeNameEdit
+
+
+
+
+
+ 250
+ 60
+ 48
+ 16
+
+
+
+ Preview
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ 117
+ 4
+ 351
+ 23
+
+
+
+
+
+
+ 40
+ 80
+ 464
+ 214
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 58
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 300
+ 200
+
+
+
+ QFrame::WinPanel
+
+
+ QFrame::Sunken
+
+
+ 1
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 78
+ 20
+
+
+
+
+
+
@@ -1094,5 +1107,22 @@ p, li { white-space: pre-wrap; }
-
+
+
+ ThemeDialog
+ accepted()
+ ThemeDialog
+ accept()
+
+
+ 455
+ 368
+
+
+ 483
+ 401
+
+
+
+