openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #00027
[Merge] lp:~trb143/openlp/ThemeManager2 into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/ThemeManager2 into lp:openlp.
Requested reviews:
openlp.org Core (openlp-core)
Add Theme Editing (Start of)
Changes to XML handling for Themes
Add Theme event handling for plugins so they know when the theme list has changed
--
https://code.launchpad.net/~trb143/openlp/ThemeManager2/+merge/5460
Your team openlp.org Core is subscribed to branch lp:openlp.
=== modified file 'openlp.pyw'
--- openlp.pyw 2009-03-10 16:46:25 +0000
+++ openlp.pyw 2009-04-10 05:59:40 +0000
@@ -26,29 +26,37 @@
from openlp.core.lib import Receiver
logging.basicConfig(level=logging.DEBUG,
- format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
- datefmt='%m-%d %H:%M',
- filename='openlp.log',
- filemode='w')
+ format=u'%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
+ datefmt=u'%m-%d %H:%M',
+ filename=u'openlp.log',
+ filemode=u'w')
from openlp.core.resources import *
from openlp.core.ui import MainWindow, SplashScreen
class OpenLP(QtGui.QApplication):
+ global log
+ log=logging.getLogger(u'OpenLP Application')
+ log.info(u'Application Loaded')
def run(self):
#provide a listener for widgets to reqest a screen update.
QtCore.QObject.connect(Receiver.get_receiver(),
- QtCore.SIGNAL('openlpprocessevents'), self.processEvents)
+ QtCore.SIGNAL(u'openlpprocessevents'), self.processEvents)
- self.setApplicationName('openlp.org')
- self.setApplicationVersion('1.9.0')
+ self.setApplicationName(u'openlp.org')
+ self.setApplicationVersion(u'1.9.0')
self.splash = SplashScreen()
self.splash.show()
# make sure Qt really display the splash screen
self.processEvents()
- # start tha main app window
- self.main_window = MainWindow()
+ screens = []
+ # Decide how many screens we have and their size
+ for i in range (0 , self.desktop().numScreens()):
+ screens.insert(i, (i+1, self.desktop().availableGeometry(i+1)))
+ log.info(u'Screen %d found with resolution %s', i+1, self.desktop().availableGeometry(i+1))
+ # start the main app window
+ self.main_window = MainWindow(screens)
self.main_window.show()
# now kill the splashscreen
self.splash.finish(self.main_window.main_window)
=== modified file 'openlp/core/lib/themexmlhandler.py'
--- openlp/core/lib/themexmlhandler.py 2009-04-07 19:45:21 +0000
+++ openlp/core/lib/themexmlhandler.py 2009-04-11 07:33:45 +0000
@@ -52,23 +52,30 @@
background.setAttribute(u'type', u'solid')
self.theme.appendChild(background)
- color = self.theme_xml.createElement(u'color')
+ color = self.theme_xml.createElement(u'color1')
bkc = self.theme_xml.createTextNode(bkcolor)
color.appendChild(bkc)
background.appendChild(color)
+ color = self.theme_xml.createElement(u'color2')
+ background.appendChild(color)
+
+ color = self.theme_xml.createElement(u'direction')
+ background.appendChild(color)
+
+
def add_background_gradient(self, startcolor, endcolor, direction):
background = self.theme_xml.createElement(u'background')
background.setAttribute(u'mode', u'opaque')
- background.setAttribute(u'type', u'Gradient')
+ background.setAttribute(u'type', u'gradient')
self.theme.appendChild(background)
- color = self.theme_xml.createElement(u'startColor')
+ color = self.theme_xml.createElement(u'color1')
bkc = self.theme_xml.createTextNode(startcolor)
color.appendChild(bkc)
background.appendChild(color)
- color = self.theme_xml.createElement(u'endColor')
+ color = self.theme_xml.createElement(u'color2')
bkc = self.theme_xml.createTextNode(endcolor)
color.appendChild(bkc)
background.appendChild(color)
@@ -89,7 +96,7 @@
color.appendChild(bkc)
background.appendChild(color)
- def add_font(self, fontname, fontcolor, fontproportion, fonttype=u'main'):
+ def add_font(self, fontname, fontcolor, fontproportion, override, fonttype=u'main', xpos=0, ypos=0 ,width=0, height=0):
background = self.theme_xml.createElement(u'font')
background.setAttribute(u'type',fonttype)
self.theme.appendChild(background)
@@ -109,6 +116,14 @@
name.appendChild(fn)
background.appendChild(name)
+ name = self.theme_xml.createElement(u'location')
+ name.setAttribute(u'override',override)
+ name.setAttribute(u'x',str(xpos))
+ name.setAttribute(u'y',str(ypos))
+ name.setAttribute(u'width',str(width))
+ name.setAttribute(u'height',str(height))
+ background.appendChild(name)
+
def add_display(self, shadow, shadowColor, outline, outlineColor, horizontal, vertical, wrap):
background = self.theme_xml.createElement(u'display')
self.theme.appendChild(background)
=== modified file 'openlp/core/render.py'
--- openlp/core/render.py 2009-04-06 18:45:45 +0000
+++ openlp/core/render.py 2009-04-11 07:33:45 +0000
@@ -23,7 +23,7 @@
from PyQt4 import QtGui, QtCore, Qt
from copy import copy
-from interpolate import interpolate
+#from interpolate import interpolate
class Renderer:
@@ -116,9 +116,10 @@
retval=self._render_lines(words)
return retval
- def set_text_rectangle(self, rect):
+ def set_text_rectangle(self, rect_main, rect_footer):
""" Sets the rectangle within which text should be rendered"""
- self._rect=rect
+ self._rect=rect_main
+ self._rect_footer=rect_footer
def _render_background(self):
assert(self._theme)
@@ -127,8 +128,8 @@
p=QtGui.QPainter()
p.begin(self._paint)
if self._theme.background_type == u'solid':
- p.fillRect(self._paint.rect(), QtGui.QColor(self._theme.background_color))
- elif self._theme.background_type == u'Gradient' : # gradient
+ p.fillRect(self._paint.rect(), QtGui.QColor(self._theme.background_color1))
+ elif self._theme.background_type == u'gradient' : # gradient
gradient = None
if self._theme.background_direction == u'vertical':
w = int(self._paint.width())/2
@@ -141,8 +142,8 @@
h = int(self._paint.height())/2
gradient = QtGui.QRadialGradient(w, h, w) # Circular
- gradient.setColorAt(0, QtGui.QColor(self._theme.background_startColor))
- gradient.setColorAt(1, QtGui.QColor(self._theme.background_endColor))
+ gradient.setColorAt(0, QtGui.QColor(self._theme.background_color1))
+ gradient.setColorAt(1, QtGui.QColor(self._theme.background_color2))
p.setBrush(QtGui.QBrush(gradient))
rectPath = QtGui.QPainterPath()
@@ -230,29 +231,40 @@
return retval
- def _render_lines(self, lines):
+ def _correctAlignment(self, rect, bbox):
+ x=rect.left()
+ if int(self._theme.display_verticalAlign) == 0: # top align
+ y = rect.top()
+ elif int(self._theme.display_verticalAlign) == 1: # bottom align
+ y=rect.bottom()-bbox.height()
+ elif int(t.display_verticalAlign) == 2: # centre align
+ y=rect.top()+(rect.height()-bbox.height())/2
+ else:
+ assert(0, u'Invalid value for theme.VerticalAlign:%s' % self._theme.display_verticalAlign)
+ return x, y
+
+ def _render_lines(self, lines, lines1=None):
"""render a set of lines according to the theme, return bounding box"""
#log.debug(u'_render_lines %s', lines)
- bbox=self._render_lines_unaligned(lines)
+ bbox=self._render_lines_unaligned(lines, False) # Main font
+ if lines1 is not None:
+ bbox1=self._render_lines_unaligned(lines1, True) # Footer Font
- t=self._theme
- x=self._rect.left()
- if int(t.display_verticalAlign) == 0: # top align
- y = self._rect.top()
- elif int(t.display_verticalAlign) == 1: # bottom align
- y=self._rect.bottom()-bbox.height()
- elif int(t.display_verticalAlign) == 2: # centre align
- y=self._rect.top()+(self._rect.height()-bbox.height())/2
- else:
- assert(0, u'Invalid value for theme.VerticalAlign:%s' % t.display_verticalAlign)
+ # put stuff on background so need to reset before doing the job properly.
self._render_background()
- bbox=self._render_lines_unaligned(lines, (x,y))
+ x, y = self._correctAlignment(self._rect, bbox)
+ bbox=self._render_lines_unaligned(lines, False, (x,y))
+
+ if lines1 is not None:
+ x, y = self._correctAlignment(self._rect_footer, bbox1)
+ bbox=self._render_lines_unaligned(lines1, True, (x,y) )
+
log.debug(u'render lines DONE')
return bbox
- def _render_lines_unaligned(self, lines, tlcorner=(0,0)):
+ def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)):
"""Given a list of lines to render, render each one in turn
(using the _render_single_line fn - which may result in going
@@ -269,7 +281,7 @@
continue
# render after current bottom, but at original left edge
# keep track of right edge to see which is biggest
- (thisx, bry) = self._render_single_line(line, (x,bry))
+ (thisx, bry) = self._render_single_line(line, footer, (x,bry))
if (thisx > brx):
brx=thisx
retval=QtCore.QRect(x,y,brx-x, bry-y)
@@ -283,7 +295,7 @@
return retval
- def _render_single_line(self, line, tlcorner=(0,0)):
+ def _render_single_line(self, line, footer, tlcorner=(0,0)):
"""render a single line of words onto the DC, top left corner
specified.
@@ -307,7 +319,7 @@
lines=[]
maxx=self._rect.width(); maxy=self._rect.height();
while (len(words)>0):
- w,h=self._get_extent_and_render(thisline)
+ w,h=self._get_extent_and_render(thisline, footer)
rhs=w+x
if rhs < maxx-self._right_margin:
lines.append(thisline)
@@ -327,7 +339,7 @@
for linenum in range(len(lines)):
line=lines[linenum]
#find out how wide line is
- w,h=self._get_extent_and_render(line, tlcorner=(x,y), draw=False)
+ w,h=self._get_extent_and_render(line, footer, tlcorner=(x,y), draw=False)
if t.display_shadow:
w+=self._shadow_offset
@@ -351,20 +363,20 @@
rightextent=x+w
# now draw the text, and any outlines/shadows
if t.display_shadow:
- self._get_extent_and_render(line, tlcorner=(x+self._shadow_offset,y+self._shadow_offset),
+ self._get_extent_and_render(line, footer,tlcorner=(x+self._shadow_offset,y+self._shadow_offset),
draw=True, color = t.display_shadow_color)
if t.display_outline:
- self._get_extent_and_render(line, (x+self._outline_offset,y), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, (x,y+self._outline_offset), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, (x,y-self._outline_offset), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, (x-self._outline_offset,y), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x+self._outline_offset,y), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x,y+self._outline_offset), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x,y-self._outline_offset), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x-self._outline_offset,y), draw=True, color = t.display_outline_color)
if self._outline_offset > 1:
- self._get_extent_and_render(line, (x+self._outline_offset,y+self._outline_offset), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, (x-self._outline_offset,y+self._outline_offset), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, (x+self._outline_offset,y-self._outline_offset), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, (x-self._outline_offset,y-self._outline_offset), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x+self._outline_offset,y+self._outline_offset), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x-self._outline_offset,y+self._outline_offset), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x+self._outline_offset,y-self._outline_offset), draw=True, color = t.display_outline_color)
+ self._get_extent_and_render(line, footer,(x-self._outline_offset,y-self._outline_offset), draw=True, color = t.display_outline_color)
- self._get_extent_and_render(line, tlcorner=(x,y), draw=True)
+ self._get_extent_and_render(line, footer,tlcorner=(x,y), draw=True)
# log.debug(u'Line %2d: Render '%s' at (%d, %d) wh=(%d,%d)' % ( linenum, line, x, y,w,h)
y += h
if linenum == 0:
@@ -381,7 +393,7 @@
return brcorner
# xxx this is what to override for an SDL version
- def _get_extent_and_render(self, line, tlcorner=(0,0), draw=False, color=None, footer=False):
+ def _get_extent_and_render(self, line, footer, tlcorner=(0,0), draw=False, color=None):
"""Find bounding box of text - as render_single_line.
If draw is set, actually draw the text to the current DC as well
=== added file 'openlp/core/ui/amendthemedialog.py'
--- openlp/core/ui/amendthemedialog.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/amendthemedialog.py 2009-04-11 05:43:52 +0000
@@ -0,0 +1,392 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'amendthemedialog.ui'
+#
+# Created: Fri Apr 10 20:38:33 2009
+# by: PyQt4 UI code generator 4.4.4
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_AmendThemeDialog(object):
+ def setupUi(self, AmendThemeDialog):
+ AmendThemeDialog.setObjectName("AmendThemeDialog")
+ AmendThemeDialog.resize(752, 533)
+ icon = QtGui.QIcon()
+ icon.addPixmap(QtGui.QPixmap(":/icon/openlp.org-icon-32.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ AmendThemeDialog.setWindowIcon(icon)
+ self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeDialog)
+ self.ThemeButtonBox.setGeometry(QtCore.QRect(580, 500, 156, 26))
+ self.ThemeButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
+ self.ThemeButtonBox.setObjectName("ThemeButtonBox")
+ self.layoutWidget = QtGui.QWidget(AmendThemeDialog)
+ self.layoutWidget.setGeometry(QtCore.QRect(50, 20, 441, 41))
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.ThemeNameLabel = QtGui.QLabel(self.layoutWidget)
+ self.ThemeNameLabel.setObjectName("ThemeNameLabel")
+ self.horizontalLayout.addWidget(self.ThemeNameLabel)
+ self.ThemeNameEdit = QtGui.QLineEdit(self.layoutWidget)
+ self.ThemeNameEdit.setObjectName("ThemeNameEdit")
+ self.horizontalLayout.addWidget(self.ThemeNameEdit)
+ self.widget = QtGui.QWidget(AmendThemeDialog)
+ self.widget.setGeometry(QtCore.QRect(31, 71, 721, 411))
+ self.widget.setObjectName("widget")
+ self.horizontalLayout_2 = QtGui.QHBoxLayout(self.widget)
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.LeftSide = QtGui.QWidget(self.widget)
+ self.LeftSide.setObjectName("LeftSide")
+ self.tabWidget = QtGui.QTabWidget(self.LeftSide)
+ self.tabWidget.setGeometry(QtCore.QRect(0, 0, 341, 401))
+ self.tabWidget.setObjectName("tabWidget")
+ self.BackgroundTab = QtGui.QWidget()
+ self.BackgroundTab.setObjectName("BackgroundTab")
+ self.layoutWidget1 = QtGui.QWidget(self.BackgroundTab)
+ self.layoutWidget1.setGeometry(QtCore.QRect(10, 10, 321, 351))
+ self.layoutWidget1.setObjectName("layoutWidget1")
+ self.gridLayout = QtGui.QGridLayout(self.layoutWidget1)
+ self.gridLayout.setObjectName("gridLayout")
+ self.BackgroundLabel = QtGui.QLabel(self.layoutWidget1)
+ self.BackgroundLabel.setObjectName("BackgroundLabel")
+ self.gridLayout.addWidget(self.BackgroundLabel, 0, 0, 1, 2)
+ self.BackgroundComboBox = QtGui.QComboBox(self.layoutWidget1)
+ self.BackgroundComboBox.setObjectName("BackgroundComboBox")
+ self.BackgroundComboBox.addItem(QtCore.QString())
+ self.BackgroundComboBox.addItem(QtCore.QString())
+ self.gridLayout.addWidget(self.BackgroundComboBox, 0, 2, 1, 2)
+ self.BackgroundTypeLabel = QtGui.QLabel(self.layoutWidget1)
+ self.BackgroundTypeLabel.setObjectName("BackgroundTypeLabel")
+ self.gridLayout.addWidget(self.BackgroundTypeLabel, 1, 0, 1, 2)
+ self.BackgroundTypeComboBox = QtGui.QComboBox(self.layoutWidget1)
+ self.BackgroundTypeComboBox.setObjectName("BackgroundTypeComboBox")
+ self.BackgroundTypeComboBox.addItem(QtCore.QString())
+ self.BackgroundTypeComboBox.addItem(QtCore.QString())
+ self.BackgroundTypeComboBox.addItem(QtCore.QString())
+ self.gridLayout.addWidget(self.BackgroundTypeComboBox, 1, 2, 1, 2)
+ self.Color1Label = QtGui.QLabel(self.layoutWidget1)
+ self.Color1Label.setObjectName("Color1Label")
+ self.gridLayout.addWidget(self.Color1Label, 2, 0, 1, 1)
+ self.Color1PushButton = QtGui.QPushButton(self.layoutWidget1)
+ self.Color1PushButton.setObjectName("Color1PushButton")
+ self.gridLayout.addWidget(self.Color1PushButton, 2, 2, 1, 2)
+ self.Color2Label = QtGui.QLabel(self.layoutWidget1)
+ self.Color2Label.setObjectName("Color2Label")
+ self.gridLayout.addWidget(self.Color2Label, 3, 0, 1, 1)
+ self.Color2PushButton = QtGui.QPushButton(self.layoutWidget1)
+ self.Color2PushButton.setObjectName("Color2PushButton")
+ self.gridLayout.addWidget(self.Color2PushButton, 3, 2, 1, 2)
+ self.ImageLabel = QtGui.QLabel(self.layoutWidget1)
+ self.ImageLabel.setObjectName("ImageLabel")
+ self.gridLayout.addWidget(self.ImageLabel, 4, 0, 1, 1)
+ self.ImageLineEdit = QtGui.QLineEdit(self.layoutWidget1)
+ self.ImageLineEdit.setObjectName("ImageLineEdit")
+ self.gridLayout.addWidget(self.ImageLineEdit, 4, 1, 1, 2)
+ self.ImagePushButton = QtGui.QPushButton(self.layoutWidget1)
+ icon1 = QtGui.QIcon()
+ icon1.addPixmap(QtGui.QPixmap(":/services/service_open.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.ImagePushButton.setIcon(icon1)
+ self.ImagePushButton.setObjectName("ImagePushButton")
+ self.gridLayout.addWidget(self.ImagePushButton, 4, 3, 1, 1)
+ self.GradientLabel = QtGui.QLabel(self.layoutWidget1)
+ self.GradientLabel.setObjectName("GradientLabel")
+ self.gridLayout.addWidget(self.GradientLabel, 5, 0, 1, 1)
+ self.GradientComboBox = QtGui.QComboBox(self.layoutWidget1)
+ self.GradientComboBox.setObjectName("GradientComboBox")
+ self.GradientComboBox.addItem(QtCore.QString())
+ self.GradientComboBox.addItem(QtCore.QString())
+ self.GradientComboBox.addItem(QtCore.QString())
+ self.gridLayout.addWidget(self.GradientComboBox, 5, 2, 1, 2)
+ self.tabWidget.addTab(self.BackgroundTab, "")
+ self.FontMainTab = QtGui.QWidget()
+ self.FontMainTab.setObjectName("FontMainTab")
+ self.MainFontGroupBox = QtGui.QGroupBox(self.FontMainTab)
+ self.MainFontGroupBox.setGeometry(QtCore.QRect(20, 10, 307, 119))
+ self.MainFontGroupBox.setObjectName("MainFontGroupBox")
+ self.gridLayout_2 = QtGui.QGridLayout(self.MainFontGroupBox)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.MainFontlabel = QtGui.QLabel(self.MainFontGroupBox)
+ self.MainFontlabel.setObjectName("MainFontlabel")
+ self.gridLayout_2.addWidget(self.MainFontlabel, 0, 0, 1, 1)
+ self.MainFontComboBox = QtGui.QFontComboBox(self.MainFontGroupBox)
+ self.MainFontComboBox.setObjectName("MainFontComboBox")
+ self.gridLayout_2.addWidget(self.MainFontComboBox, 0, 1, 1, 2)
+ self.MainFontColorLabel = QtGui.QLabel(self.MainFontGroupBox)
+ self.MainFontColorLabel.setObjectName("MainFontColorLabel")
+ self.gridLayout_2.addWidget(self.MainFontColorLabel, 1, 0, 1, 1)
+ self.MainFontColorPushButton = QtGui.QPushButton(self.MainFontGroupBox)
+ self.MainFontColorPushButton.setObjectName("MainFontColorPushButton")
+ self.gridLayout_2.addWidget(self.MainFontColorPushButton, 1, 2, 1, 1)
+ self.MainFontSize = QtGui.QLabel(self.MainFontGroupBox)
+ self.MainFontSize.setObjectName("MainFontSize")
+ self.gridLayout_2.addWidget(self.MainFontSize, 2, 0, 1, 1)
+ self.MainFontSizeLineEdit = QtGui.QLineEdit(self.MainFontGroupBox)
+ self.MainFontSizeLineEdit.setObjectName("MainFontSizeLineEdit")
+ self.gridLayout_2.addWidget(self.MainFontSizeLineEdit, 2, 1, 1, 1)
+ self.MainFontlSlider = QtGui.QSlider(self.MainFontGroupBox)
+ self.MainFontlSlider.setProperty("value", QtCore.QVariant(15))
+ self.MainFontlSlider.setMaximum(40)
+ self.MainFontlSlider.setOrientation(QtCore.Qt.Horizontal)
+ self.MainFontlSlider.setTickPosition(QtGui.QSlider.TicksBelow)
+ self.MainFontlSlider.setTickInterval(5)
+ self.MainFontlSlider.setObjectName("MainFontlSlider")
+ self.gridLayout_2.addWidget(self.MainFontlSlider, 2, 2, 1, 1)
+ self.FooterFontGroupBox = QtGui.QGroupBox(self.FontMainTab)
+ self.FooterFontGroupBox.setGeometry(QtCore.QRect(20, 160, 301, 190))
+ self.FooterFontGroupBox.setObjectName("FooterFontGroupBox")
+ self.verticalLayout = QtGui.QVBoxLayout(self.FooterFontGroupBox)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.FontMainUseDefault = QtGui.QCheckBox(self.FooterFontGroupBox)
+ self.FontMainUseDefault.setTristate(False)
+ self.FontMainUseDefault.setObjectName("FontMainUseDefault")
+ self.verticalLayout.addWidget(self.FontMainUseDefault)
+ self.horizontalLayout_3 = QtGui.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ self.FontMainXLabel = QtGui.QLabel(self.FooterFontGroupBox)
+ self.FontMainXLabel.setObjectName("FontMainXLabel")
+ self.horizontalLayout_3.addWidget(self.FontMainXLabel)
+ self.FontMainXEdit = QtGui.QLineEdit(self.FooterFontGroupBox)
+ self.FontMainXEdit.setObjectName("FontMainXEdit")
+ self.horizontalLayout_3.addWidget(self.FontMainXEdit)
+ self.verticalLayout.addLayout(self.horizontalLayout_3)
+ self.horizontalLayout_4 = QtGui.QHBoxLayout()
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
+ self.FontMainYLabel = QtGui.QLabel(self.FooterFontGroupBox)
+ self.FontMainYLabel.setObjectName("FontMainYLabel")
+ self.horizontalLayout_4.addWidget(self.FontMainYLabel)
+ self.FontMainYEdit = QtGui.QLineEdit(self.FooterFontGroupBox)
+ self.FontMainYEdit.setObjectName("FontMainYEdit")
+ self.horizontalLayout_4.addWidget(self.FontMainYEdit)
+ self.verticalLayout.addLayout(self.horizontalLayout_4)
+ self.horizontalLayout_5 = QtGui.QHBoxLayout()
+ self.horizontalLayout_5.setObjectName("horizontalLayout_5")
+ self.FontMainWidthLabel = QtGui.QLabel(self.FooterFontGroupBox)
+ self.FontMainWidthLabel.setObjectName("FontMainWidthLabel")
+ self.horizontalLayout_5.addWidget(self.FontMainWidthLabel)
+ self.FontMainWidthEdit = QtGui.QLineEdit(self.FooterFontGroupBox)
+ self.FontMainWidthEdit.setObjectName("FontMainWidthEdit")
+ self.horizontalLayout_5.addWidget(self.FontMainWidthEdit)
+ self.verticalLayout.addLayout(self.horizontalLayout_5)
+ self.horizontalLayout_6 = QtGui.QHBoxLayout()
+ self.horizontalLayout_6.setObjectName("horizontalLayout_6")
+ self.FontMainHeightLabel = QtGui.QLabel(self.FooterFontGroupBox)
+ self.FontMainHeightLabel.setObjectName("FontMainHeightLabel")
+ self.horizontalLayout_6.addWidget(self.FontMainHeightLabel)
+ self.FontMainHeightEdit = QtGui.QLineEdit(self.FooterFontGroupBox)
+ self.FontMainHeightEdit.setObjectName("FontMainHeightEdit")
+ self.horizontalLayout_6.addWidget(self.FontMainHeightEdit)
+ self.verticalLayout.addLayout(self.horizontalLayout_6)
+ self.tabWidget.addTab(self.FontMainTab, "")
+ self.FontFooterTab = QtGui.QWidget()
+ self.FontFooterTab.setObjectName("FontFooterTab")
+ self.FooterFontGroupBox_2 = QtGui.QGroupBox(self.FontFooterTab)
+ self.FooterFontGroupBox_2.setGeometry(QtCore.QRect(20, 160, 301, 190))
+ self.FooterFontGroupBox_2.setObjectName("FooterFontGroupBox_2")
+ self.verticalLayout_2 = QtGui.QVBoxLayout(self.FooterFontGroupBox_2)
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
+ self.FontMainUseDefault_2 = QtGui.QCheckBox(self.FooterFontGroupBox_2)
+ self.FontMainUseDefault_2.setTristate(False)
+ self.FontMainUseDefault_2.setObjectName("FontMainUseDefault_2")
+ self.verticalLayout_2.addWidget(self.FontMainUseDefault_2)
+ self.horizontalLayout_7 = QtGui.QHBoxLayout()
+ self.horizontalLayout_7.setObjectName("horizontalLayout_7")
+ self.FontFooterXLabel = QtGui.QLabel(self.FooterFontGroupBox_2)
+ self.FontFooterXLabel.setObjectName("FontFooterXLabel")
+ self.horizontalLayout_7.addWidget(self.FontFooterXLabel)
+ self.FontFooterXEdit = QtGui.QLineEdit(self.FooterFontGroupBox_2)
+ self.FontFooterXEdit.setObjectName("FontFooterXEdit")
+ self.horizontalLayout_7.addWidget(self.FontFooterXEdit)
+ self.verticalLayout_2.addLayout(self.horizontalLayout_7)
+ self.horizontalLayout_8 = QtGui.QHBoxLayout()
+ self.horizontalLayout_8.setObjectName("horizontalLayout_8")
+ self.FontFooterYLabel = QtGui.QLabel(self.FooterFontGroupBox_2)
+ self.FontFooterYLabel.setObjectName("FontFooterYLabel")
+ self.horizontalLayout_8.addWidget(self.FontFooterYLabel)
+ self.FontFooterYEdit = QtGui.QLineEdit(self.FooterFontGroupBox_2)
+ self.FontFooterYEdit.setObjectName("FontFooterYEdit")
+ self.horizontalLayout_8.addWidget(self.FontFooterYEdit)
+ self.verticalLayout_2.addLayout(self.horizontalLayout_8)
+ self.horizontalLayout_9 = QtGui.QHBoxLayout()
+ self.horizontalLayout_9.setObjectName("horizontalLayout_9")
+ self.FontFooterWidthLabel = QtGui.QLabel(self.FooterFontGroupBox_2)
+ self.FontFooterWidthLabel.setObjectName("FontFooterWidthLabel")
+ self.horizontalLayout_9.addWidget(self.FontFooterWidthLabel)
+ self.FontFooterWidthEdit = QtGui.QLineEdit(self.FooterFontGroupBox_2)
+ self.FontFooterWidthEdit.setObjectName("FontFooterWidthEdit")
+ self.horizontalLayout_9.addWidget(self.FontFooterWidthEdit)
+ self.verticalLayout_2.addLayout(self.horizontalLayout_9)
+ self.horizontalLayout_10 = QtGui.QHBoxLayout()
+ self.horizontalLayout_10.setObjectName("horizontalLayout_10")
+ self.FontFooterHeightLabel = QtGui.QLabel(self.FooterFontGroupBox_2)
+ self.FontFooterHeightLabel.setObjectName("FontFooterHeightLabel")
+ self.horizontalLayout_10.addWidget(self.FontFooterHeightLabel)
+ self.FontFooterHeightEdit = QtGui.QLineEdit(self.FooterFontGroupBox_2)
+ self.FontFooterHeightEdit.setObjectName("FontFooterHeightEdit")
+ self.horizontalLayout_10.addWidget(self.FontFooterHeightEdit)
+ self.verticalLayout_2.addLayout(self.horizontalLayout_10)
+ self.FooterFontGroupBox_3 = QtGui.QGroupBox(self.FontFooterTab)
+ self.FooterFontGroupBox_3.setGeometry(QtCore.QRect(20, 10, 307, 119))
+ self.FooterFontGroupBox_3.setObjectName("FooterFontGroupBox_3")
+ self.gridLayout_3 = QtGui.QGridLayout(self.FooterFontGroupBox_3)
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.FontFooterlabel = QtGui.QLabel(self.FooterFontGroupBox_3)
+ self.FontFooterlabel.setObjectName("FontFooterlabel")
+ self.gridLayout_3.addWidget(self.FontFooterlabel, 0, 0, 1, 1)
+ self.FontFooterComboBox = QtGui.QFontComboBox(self.FooterFontGroupBox_3)
+ self.FontFooterComboBox.setObjectName("FontFooterComboBox")
+ self.gridLayout_3.addWidget(self.FontFooterComboBox, 0, 1, 1, 2)
+ self.FontFooterColorLabel = QtGui.QLabel(self.FooterFontGroupBox_3)
+ self.FontFooterColorLabel.setObjectName("FontFooterColorLabel")
+ self.gridLayout_3.addWidget(self.FontFooterColorLabel, 1, 0, 1, 1)
+ self.FontFooterColorPushButton = QtGui.QPushButton(self.FooterFontGroupBox_3)
+ self.FontFooterColorPushButton.setObjectName("FontFooterColorPushButton")
+ self.gridLayout_3.addWidget(self.FontFooterColorPushButton, 1, 2, 1, 1)
+ self.FontFooterSizeLabel = QtGui.QLabel(self.FooterFontGroupBox_3)
+ self.FontFooterSizeLabel.setObjectName("FontFooterSizeLabel")
+ self.gridLayout_3.addWidget(self.FontFooterSizeLabel, 2, 0, 1, 1)
+ self.FontFooterSizeLineEdit = QtGui.QLineEdit(self.FooterFontGroupBox_3)
+ self.FontFooterSizeLineEdit.setObjectName("FontFooterSizeLineEdit")
+ self.gridLayout_3.addWidget(self.FontFooterSizeLineEdit, 2, 1, 1, 1)
+ self.FontFooterSlider = QtGui.QSlider(self.FooterFontGroupBox_3)
+ self.FontFooterSlider.setProperty("value", QtCore.QVariant(15))
+ self.FontFooterSlider.setMaximum(40)
+ self.FontFooterSlider.setOrientation(QtCore.Qt.Horizontal)
+ self.FontFooterSlider.setTickPosition(QtGui.QSlider.TicksBelow)
+ self.FontFooterSlider.setTickInterval(5)
+ self.FontFooterSlider.setObjectName("FontFooterSlider")
+ self.gridLayout_3.addWidget(self.FontFooterSlider, 2, 2, 1, 1)
+ self.tabWidget.addTab(self.FontFooterTab, "")
+ self.OptionsTab = QtGui.QWidget()
+ self.OptionsTab.setObjectName("OptionsTab")
+ self.ShadowGroupBox = QtGui.QGroupBox(self.OptionsTab)
+ self.ShadowGroupBox.setGeometry(QtCore.QRect(20, 10, 301, 80))
+ self.ShadowGroupBox.setObjectName("ShadowGroupBox")
+ self.layoutWidget2 = QtGui.QWidget(self.ShadowGroupBox)
+ self.layoutWidget2.setGeometry(QtCore.QRect(10, 20, 281, 58))
+ self.layoutWidget2.setObjectName("layoutWidget2")
+ self.formLayout = QtGui.QFormLayout(self.layoutWidget2)
+ self.formLayout.setObjectName("formLayout")
+ self.ShadowCheckBox = QtGui.QCheckBox(self.layoutWidget2)
+ self.ShadowCheckBox.setObjectName("ShadowCheckBox")
+ self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.ShadowCheckBox)
+ self.ShadowColorLabel = QtGui.QLabel(self.layoutWidget2)
+ self.ShadowColorLabel.setObjectName("ShadowColorLabel")
+ self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.ShadowColorLabel)
+ self.ShadowColorPushButton = QtGui.QPushButton(self.layoutWidget2)
+ self.ShadowColorPushButton.setObjectName("ShadowColorPushButton")
+ self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.ShadowColorPushButton)
+ self.AlignmentGroupBox = QtGui.QGroupBox(self.OptionsTab)
+ self.AlignmentGroupBox.setGeometry(QtCore.QRect(10, 200, 321, 161))
+ self.AlignmentGroupBox.setObjectName("AlignmentGroupBox")
+ self.gridLayout_4 = QtGui.QGridLayout(self.AlignmentGroupBox)
+ self.gridLayout_4.setObjectName("gridLayout_4")
+ self.HorizontalLabel = QtGui.QLabel(self.AlignmentGroupBox)
+ self.HorizontalLabel.setObjectName("HorizontalLabel")
+ self.gridLayout_4.addWidget(self.HorizontalLabel, 0, 0, 1, 1)
+ self.HorizontalComboBox = QtGui.QComboBox(self.AlignmentGroupBox)
+ self.HorizontalComboBox.setObjectName("HorizontalComboBox")
+ self.HorizontalComboBox.addItem(QtCore.QString())
+ self.HorizontalComboBox.addItem(QtCore.QString())
+ self.HorizontalComboBox.addItem(QtCore.QString())
+ self.gridLayout_4.addWidget(self.HorizontalComboBox, 0, 1, 1, 1)
+ self.VerticalLabel = QtGui.QLabel(self.AlignmentGroupBox)
+ self.VerticalLabel.setObjectName("VerticalLabel")
+ self.gridLayout_4.addWidget(self.VerticalLabel, 1, 0, 1, 1)
+ self.VerticalComboBox = QtGui.QComboBox(self.AlignmentGroupBox)
+ self.VerticalComboBox.setObjectName("VerticalComboBox")
+ self.VerticalComboBox.addItem(QtCore.QString())
+ self.VerticalComboBox.addItem(QtCore.QString())
+ self.VerticalComboBox.addItem(QtCore.QString())
+ self.gridLayout_4.addWidget(self.VerticalComboBox, 1, 1, 1, 1)
+ self.OutlineGroupBox = QtGui.QGroupBox(self.OptionsTab)
+ self.OutlineGroupBox.setGeometry(QtCore.QRect(20, 110, 301, 80))
+ self.OutlineGroupBox.setObjectName("OutlineGroupBox")
+ self.layoutWidget_3 = QtGui.QWidget(self.OutlineGroupBox)
+ self.layoutWidget_3.setGeometry(QtCore.QRect(10, 20, 281, 58))
+ self.layoutWidget_3.setObjectName("layoutWidget_3")
+ self.OutlineformLayout = QtGui.QFormLayout(self.layoutWidget_3)
+ self.OutlineformLayout.setObjectName("OutlineformLayout")
+ self.OutlineCheckBox = QtGui.QCheckBox(self.layoutWidget_3)
+ self.OutlineCheckBox.setObjectName("OutlineCheckBox")
+ self.OutlineformLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.OutlineCheckBox)
+ self.OutlineColorLabel = QtGui.QLabel(self.layoutWidget_3)
+ self.OutlineColorLabel.setObjectName("OutlineColorLabel")
+ self.OutlineformLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.OutlineColorLabel)
+ self.OutlineColorPushButton = QtGui.QPushButton(self.layoutWidget_3)
+ self.OutlineColorPushButton.setObjectName("OutlineColorPushButton")
+ self.OutlineformLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.OutlineColorPushButton)
+ self.tabWidget.addTab(self.OptionsTab, "")
+ self.horizontalLayout_2.addWidget(self.LeftSide)
+ self.RightSide = QtGui.QWidget(self.widget)
+ self.RightSide.setObjectName("RightSide")
+ self.ThemePreview = QtGui.QLabel(self.RightSide)
+ self.ThemePreview.setGeometry(QtCore.QRect(20, 60, 311, 271))
+ self.ThemePreview.setFrameShape(QtGui.QFrame.Box)
+ self.ThemePreview.setFrameShadow(QtGui.QFrame.Raised)
+ self.ThemePreview.setLineWidth(2)
+ self.ThemePreview.setScaledContents(True)
+ self.ThemePreview.setObjectName("ThemePreview")
+ self.horizontalLayout_2.addWidget(self.RightSide)
+
+ self.retranslateUi(AmendThemeDialog)
+ self.tabWidget.setCurrentIndex(0)
+ QtCore.QMetaObject.connectSlotsByName(AmendThemeDialog)
+
+ def retranslateUi(self, AmendThemeDialog):
+ AmendThemeDialog.setWindowTitle(QtGui.QApplication.translate("AmendThemeDialog", "Theme Maintance", None, QtGui.QApplication.UnicodeUTF8))
+ self.ThemeNameLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Theme Name", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Background:", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundComboBox.setItemText(0, QtGui.QApplication.translate("AmendThemeDialog", "Opaque", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundComboBox.setItemText(1, QtGui.QApplication.translate("AmendThemeDialog", "Transparent", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundTypeLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Background Type:", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundTypeComboBox.setItemText(0, QtGui.QApplication.translate("AmendThemeDialog", "Solid Color", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundTypeComboBox.setItemText(1, QtGui.QApplication.translate("AmendThemeDialog", "Gradient", None, QtGui.QApplication.UnicodeUTF8))
+ self.BackgroundTypeComboBox.setItemText(2, QtGui.QApplication.translate("AmendThemeDialog", "Image", None, QtGui.QApplication.UnicodeUTF8))
+ self.Color1Label.setText(QtGui.QApplication.translate("AmendThemeDialog", "<Color1>", None, QtGui.QApplication.UnicodeUTF8))
+ self.Color2Label.setText(QtGui.QApplication.translate("AmendThemeDialog", "<Color2>", None, QtGui.QApplication.UnicodeUTF8))
+ self.ImageLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Image:", None, QtGui.QApplication.UnicodeUTF8))
+ self.GradientLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Gradient :", None, QtGui.QApplication.UnicodeUTF8))
+ self.GradientComboBox.setItemText(0, QtGui.QApplication.translate("AmendThemeDialog", "Horizontal", None, QtGui.QApplication.UnicodeUTF8))
+ self.GradientComboBox.setItemText(1, QtGui.QApplication.translate("AmendThemeDialog", "Vertical", None, QtGui.QApplication.UnicodeUTF8))
+ self.GradientComboBox.setItemText(2, QtGui.QApplication.translate("AmendThemeDialog", "Circular", None, QtGui.QApplication.UnicodeUTF8))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.BackgroundTab), QtGui.QApplication.translate("AmendThemeDialog", "Background", None, QtGui.QApplication.UnicodeUTF8))
+ self.MainFontGroupBox.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Main Font", None, QtGui.QApplication.UnicodeUTF8))
+ self.MainFontlabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Font:", None, QtGui.QApplication.UnicodeUTF8))
+ self.MainFontColorLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Font Color", None, QtGui.QApplication.UnicodeUTF8))
+ self.MainFontSize.setText(QtGui.QApplication.translate("AmendThemeDialog", "Size:", None, QtGui.QApplication.UnicodeUTF8))
+ self.FooterFontGroupBox.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Display Location", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontMainUseDefault.setText(QtGui.QApplication.translate("AmendThemeDialog", "Use default location", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontMainXLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "X Position:", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontMainYLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Y Position:", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontMainWidthLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Width", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontMainHeightLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Height", None, QtGui.QApplication.UnicodeUTF8))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.FontMainTab), QtGui.QApplication.translate("AmendThemeDialog", "Font Main", None, QtGui.QApplication.UnicodeUTF8))
+ self.FooterFontGroupBox_2.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Display Location", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontMainUseDefault_2.setText(QtGui.QApplication.translate("AmendThemeDialog", "Use default location", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterXLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "X Position:", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterYLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Y Position:", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterWidthLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Width", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterHeightLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Height", None, QtGui.QApplication.UnicodeUTF8))
+ self.FooterFontGroupBox_3.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Footer Font", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterlabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Font:", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterColorLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Font Color", None, QtGui.QApplication.UnicodeUTF8))
+ self.FontFooterSizeLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Size:", None, QtGui.QApplication.UnicodeUTF8))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.FontFooterTab), QtGui.QApplication.translate("AmendThemeDialog", "Font Footer", None, QtGui.QApplication.UnicodeUTF8))
+ self.ShadowGroupBox.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Shadow", None, QtGui.QApplication.UnicodeUTF8))
+ self.ShadowCheckBox.setText(QtGui.QApplication.translate("AmendThemeDialog", "Use Shadow", None, QtGui.QApplication.UnicodeUTF8))
+ self.ShadowColorLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Shadow Color:", None, QtGui.QApplication.UnicodeUTF8))
+ self.AlignmentGroupBox.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Alignment", None, QtGui.QApplication.UnicodeUTF8))
+ self.HorizontalLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Horizontal Align:", None, QtGui.QApplication.UnicodeUTF8))
+ self.HorizontalComboBox.setItemText(0, QtGui.QApplication.translate("AmendThemeDialog", "Left", None, QtGui.QApplication.UnicodeUTF8))
+ self.HorizontalComboBox.setItemText(1, QtGui.QApplication.translate("AmendThemeDialog", "Right", None, QtGui.QApplication.UnicodeUTF8))
+ self.HorizontalComboBox.setItemText(2, QtGui.QApplication.translate("AmendThemeDialog", "Center", None, QtGui.QApplication.UnicodeUTF8))
+ self.VerticalLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Vertical Align:", None, QtGui.QApplication.UnicodeUTF8))
+ self.VerticalComboBox.setItemText(0, QtGui.QApplication.translate("AmendThemeDialog", "Top", None, QtGui.QApplication.UnicodeUTF8))
+ self.VerticalComboBox.setItemText(1, QtGui.QApplication.translate("AmendThemeDialog", "Middle", None, QtGui.QApplication.UnicodeUTF8))
+ self.VerticalComboBox.setItemText(2, QtGui.QApplication.translate("AmendThemeDialog", "Bottom", None, QtGui.QApplication.UnicodeUTF8))
+ self.OutlineGroupBox.setTitle(QtGui.QApplication.translate("AmendThemeDialog", "Outline", None, QtGui.QApplication.UnicodeUTF8))
+ self.OutlineCheckBox.setText(QtGui.QApplication.translate("AmendThemeDialog", "Use Outline", None, QtGui.QApplication.UnicodeUTF8))
+ self.OutlineColorLabel.setText(QtGui.QApplication.translate("AmendThemeDialog", "Outline Color:", None, QtGui.QApplication.UnicodeUTF8))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.OptionsTab), QtGui.QApplication.translate("AmendThemeDialog", "Alignment", None, QtGui.QApplication.UnicodeUTF8))
+
=== added file 'openlp/core/ui/amendthemeform.py'
--- openlp/core/ui/amendthemeform.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/amendthemeform.py 2009-04-11 15:16:02 +0000
@@ -0,0 +1,229 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+"""
+OpenLP - Open Source Lyrics Projection
+Copyright (c) 2008 Raoul Snyman
+Portions copyright (c) 2008 Martin Thompson, Tim Bentley,
+
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; version 2 of the License.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+Place, Suite 330, Boston, MA 02111-1307 USA
+"""
+import logging
+import os, os.path
+
+from PyQt4 import QtCore, QtGui
+from PyQt4.QtGui import QColor, QFont
+from openlp.core.lib import ThemeXML
+from openlp.core import fileToXML
+from openlp.core import Renderer
+from openlp.core import translate
+
+from amendthemedialog import Ui_AmendThemeDialog
+
+log = logging.getLogger(u'AmendThemeForm')
+
+class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
+
+ def __init__(self, parent=None):
+ QtGui.QDialog.__init__(self, parent)
+ self.setupUi(self)
+
+ #define signals
+ #Exits
+ QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL("accepted()"), self.accept)
+ QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL("rejected()"), self.close)
+ #Buttons
+ QtCore.QObject.connect(self.Color1PushButton ,
+ QtCore.SIGNAL("pressed()"), self.onColor1PushButtonClicked)
+ QtCore.QObject.connect(self.Color2PushButton ,
+ QtCore.SIGNAL("pressed()"), self.onColor2PushButtonClicked)
+ QtCore.QObject.connect(self.MainFontColorPushButton,
+ QtCore.SIGNAL("pressed()"), self.onMainFontColorPushButtonClicked)
+ QtCore.QObject.connect(self.FontFooterColorPushButton,
+ QtCore.SIGNAL("pressed()"), self.onFontFooterColorPushButtonClicked)
+ #Combo boxes
+ QtCore.QObject.connect(self.BackgroundComboBox,
+ QtCore.SIGNAL("activated(int)"), self.onBackgroundComboBoxSelected)
+ QtCore.QObject.connect(self.BackgroundTypeComboBox,
+ QtCore.SIGNAL("activated(int)"), self.onBackgroundTypeComboBoxSelected)
+ QtCore.QObject.connect(self.GradientComboBox,
+ QtCore.SIGNAL("activated(int)"), self.onGradientComboBoxSelected)
+
+
+ def accept(self):
+ return QtGui.QDialog.accept(self)
+
+ def themePath(self, path):
+ self.path = path
+
+ def loadTheme(self, theme):
+ self.theme = ThemeXML()
+ if theme == None:
+ self.theme.parse(self.baseTheme())
+ else:
+ xml_file = os.path.join(self.path, theme, theme+u'.xml')
+ xml = fileToXML(xml_file)
+ self.theme.parse(xml)
+ self.paintUi(self.theme)
+ self.generateImage(self.theme)
+
+ def onGradientComboBoxSelected(self):
+ if self.GradientComboBox.currentIndex() == 0: # Horizontal
+ self.theme.background_direction = u'horizontal'
+ elif self.GradientComboBox.currentIndex() == 1: # vertical
+ self.theme.background_direction = u'vertical'
+ else:
+ self.theme.background_direction = u'circular'
+ self.stateChanging(self.theme)
+ self.generateImage(self.theme)
+
+ def onBackgroundComboBoxSelected(self):
+ if self.BackgroundComboBox.currentIndex() == 0: # Opaque
+ self.theme.background_mode = u'opaque'
+ else:
+ self.theme.background_mode = u'transparent'
+ self.stateChanging(self.theme)
+ self.generateImage(self.theme)
+
+ def onBackgroundTypeComboBoxSelected(self):
+ if self.BackgroundTypeComboBox.currentIndex() == 0: # Solid
+ self.theme.background_type = u'solid'
+ elif self.BackgroundTypeComboBox.currentIndex() == 1: # Gradient
+ self.theme.background_type = u'gradient'
+ if self.theme.background_direction == None: # never defined
+ self.theme.background_direction = u'horizontal'
+ self.theme.background_color2 = u'#000000'
+ else:
+ self.theme.background_type = u'image'
+ self.stateChanging(self.theme)
+ self.generateImage(self.theme)
+
+ def onColor1PushButtonClicked(self):
+ self.theme.background_color1 = QtGui.QColorDialog.getColor(
+ QColor(self.theme.background_color1), self).name()
+ self.Color1PushButton.setStyleSheet(
+ 'background-color: %s' % str(self.theme.background_color1))
+
+ self.generateImage(self.theme)
+
+ def onColor2PushButtonClicked(self):
+ self.theme.background_color2 = QtGui.QColorDialog.getColor(
+ QColor(self.theme.background_color2), self).name()
+ self.Color2PushButton.setStyleSheet(
+ 'background-color: %s' % str(self.theme.background_color2))
+
+ self.generateImage(self.theme)
+
+ def onMainFontColorPushButtonClicked(self):
+ self.theme.font_main_color = QtGui.QColorDialog.getColor(
+ QColor(self.theme.font_main_color), self).name()
+
+ self.MainFontColorPushButton.setStyleSheet(
+ 'background-color: %s' % str(self.theme.font_main_color))
+ self.generateImage(self.theme)
+
+ def onFontFooterColorPushButtonClicked(self):
+ self.theme.font_footer_color = QtGui.QColorDialog.getColor(
+ QColor(self.theme.font_footer_color), self).name()
+
+ self.FontFooterColorPushButton.setStyleSheet(
+ 'background-color: %s' % str(self.theme.font_footer_color))
+ self.generateImage(self.theme)
+
+ def baseTheme(self):
+ log.debug(u'base Theme')
+ newtheme = ThemeXML()
+ newtheme.new_document(u'New Theme')
+ newtheme.add_background_solid(str(u'#000000'))
+ newtheme.add_font(str(QFont().family()), str(u'#FFFFFF'), str(30), u'False')
+ newtheme.add_font(str(QFont().family()), str(u'#FFFFFF'), str(12), u'False', u'footer')
+ newtheme.add_display(str(False), str(u'#FFFFFF'), str(False), str(u'#FFFFFF'),
+ str(0), str(0), str(0))
+
+ return newtheme.extract_xml()
+
+ def paintUi(self, theme):
+ print theme # leave as helpful for initial development
+ self.stateChanging(theme)
+ self.BackgroundTypeComboBox.setCurrentIndex(0)
+ self.BackgroundComboBox.setCurrentIndex(0)
+ self.GradientComboBox.setCurrentIndex(0)
+ self.MainFontColorPushButton.setStyleSheet(
+ 'background-color: %s' % str(theme.font_main_color))
+ self.FontFooterColorPushButton.setStyleSheet(
+ 'background-color: %s' % str(theme.font_footer_color))
+
+ def stateChanging(self, theme):
+ if theme.background_type == u'solid':
+ self.Color1PushButton.setStyleSheet(
+ 'background-color: %s' % str(theme.background_color1))
+ self.Color1Label.setText(translate(u'ThemeManager', u'Background Font:'))
+ self.Color1Label.setVisible(True)
+ self.Color1PushButton.setVisible(True)
+ self.Color2Label.setVisible(False)
+ self.Color2PushButton.setVisible(False)
+ elif theme.background_type == u'gradient':
+ self.Color1PushButton.setStyleSheet(
+ 'background-color: %s' % str(theme.background_color1))
+ self.Color2PushButton.setStyleSheet(
+ 'background-color: %s' % str(theme.background_color2))
+ self.Color1Label.setText(translate(u'ThemeManager', u'First Color:'))
+ self.Color2Label.setText(translate(u'ThemeManager', u'Second Color:'))
+ self.Color1Label.setVisible(True)
+ self.Color1PushButton.setVisible(True)
+ self.Color2Label.setVisible(True)
+ self.Color2PushButton.setVisible(True)
+ else: # must be image
+ self.Color1Label.setVisible(False)
+ self.Color1PushButton.setVisible(False)
+ self.Color2Label.setVisible(False)
+ self.Color2PushButton.setVisible(False)
+
+ def generateImage(self, theme):
+ log.debug(u'generateImage %s ', theme)
+ #theme = ThemeXML()
+ #theme.parse(theme_xml)
+ #print theme
+ size=QtCore.QSize(800,600)
+ frame=TstFrame(size)
+ frame=frame
+ paintdest=frame.GetPixmap()
+ r=Renderer()
+ r.set_paint_dest(paintdest)
+
+ r.set_theme(theme) # set default theme
+ r._render_background()
+ r.set_text_rectangle(QtCore.QRect(0,0, size.width()-1, size.height()-1), QtCore.QRect(10,560, size.width()-1, size.height()-1))
+
+ lines=[]
+ lines.append(u'Amazing Grace!')
+ lines.append(u'How sweet the sound')
+ lines.append(u'To save a wretch like me;')
+ lines.append(u'I once was lost but now am found,')
+ lines.append(u'Was blind, but now I see.')
+ lines1=[]
+ lines1.append(u'Amazing Grace (John Newton)' )
+ lines1.append(u'CCLI xxx (c)Openlp.org')
+
+ answer=r._render_lines(lines, lines1)
+
+ self.ThemePreview.setPixmap(frame.GetPixmap())
+
+class TstFrame:
+ def __init__(self, size):
+ """Create the DemoPanel."""
+ self.width=size.width();
+ self.height=size.height();
+ # create something to be painted into
+ self._Buffer = QtGui.QPixmap(self.width, self.height)
+ def GetPixmap(self):
+ return self._Buffer
=== modified file 'openlp/core/ui/generaltab.py'
--- openlp/core/ui/generaltab.py 2009-03-01 14:36:49 +0000
+++ openlp/core/ui/generaltab.py 2009-04-10 05:59:40 +0000
@@ -28,8 +28,9 @@
"""
GeneralTab is the general settings tab in the settings dialog.
"""
- def __init__(self):
+ def __init__(self, screen_list):
SettingsTab.__init__(self, translate(u'GeneralTab', u'General'))
+ self.screen_list = screen_list
def setupUi(self):
self.setObjectName(u'GeneralTab')
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2009-04-06 18:45:45 +0000
+++ openlp/core/ui/mainwindow.py 2009-04-09 18:50:20 +0000
@@ -37,12 +37,13 @@
log=logging.getLogger(u'MainWindow')
log.info(u'MainWindow loaded')
- def __init__(self):
+ def __init__(self, screens):
self.main_window = QtGui.QMainWindow()
+ self.screen_list = screens
self.EventManager = EventManager()
self.alert_form = AlertForm()
self.about_form = AboutForm()
- self.settings_form = SettingsForm()
+ self.settings_form = SettingsForm(self.screen_list)
pluginpath = os.path.split(os.path.abspath(__file__))[0]
pluginpath = os.path.abspath(os.path.join(pluginpath, '..', '..','plugins'))
=== modified file 'openlp/core/ui/settingsform.py'
--- openlp/core/ui/settingsform.py 2009-03-23 19:17:07 +0000
+++ openlp/core/ui/settingsform.py 2009-04-09 18:50:20 +0000
@@ -31,18 +31,18 @@
class SettingsForm(QtGui.QDialog, Ui_SettingsDialog):
- def __init__(self, parent=None):
+ def __init__(self, screen_list, parent=None):
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
# General tab
- self.GeneralTab = GeneralTab()
+ self.GeneralTab = GeneralTab(screen_list)
self.addTab(self.GeneralTab)
# Themes tab
self.ThemesTab = ThemesTab()
self.addTab(self.ThemesTab)
# Alert tab
self.AlertsTab = AlertsTab()
- self.addTab(self.AlertsTab)
+ self.addTab(self.AlertsTab)
def addTab(self, tab):
log.info(u'Inserting %s' % tab.title())
=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py 2009-04-07 19:45:21 +0000
+++ openlp/core/ui/thememanager.py 2009-04-11 15:16:02 +0000
@@ -128,7 +128,11 @@
for i in self.items:
yield i
- def item(self, row):
+ def getValue(self, index):
+ row = index.row()
+ return self.items[row]
+
+ def getItem(self, row):
log.info(u'Get Item:%d -> %s' %(row, str(self.items)))
return self.items[row]
@@ -177,6 +181,7 @@
self.themelist= []
self.path = os.path.join(ConfigHelper.get_data_path(), u'themes')
self.checkThemesExists(self.path)
+ self.amendThemeForm.themePath(self.path)
def setEventManager(self, eventManager):
self.eventManager = eventManager
@@ -186,7 +191,10 @@
self.amendThemeForm.exec_()
def onEditTheme(self):
- self.amendThemeForm.loadTheme(theme)
+ items = self.ThemeListView.selectedIndexes()
+ for item in items:
+ data = self.Theme_data.getValue(item)
+ self.amendThemeForm.loadTheme(data[3])
self.amendThemeForm.exec_()
def onDeleteTheme(self):
@@ -276,8 +284,8 @@
else:
newtheme.add_background_image(str(t.BackgroundParameter1))
- newtheme.add_font(str(t.FontName), str(t.FontColor.name()), str(t.FontProportion * 2))
- newtheme.add_font(str(t.FontName), str(t.FontColor.name()), str(12), u'footer')
+ newtheme.add_font(str(t.FontName), str(t.FontColor.name()), str(t.FontProportion * 2), u'False')
+ newtheme.add_font(str(t.FontName), str(t.FontColor.name()), str(12), u'False', u'footer')
outline = False
shadow = False
if t.Shadow == 1:
@@ -302,7 +310,7 @@
r.set_theme(theme) # set default theme
r._render_background()
- r.set_text_rectangle(QtCore.QRect(0,0, size.width()-1, size.height()-1))
+ r.set_text_rectangle(QtCore.QRect(0,0, size.width()-1, size.height()-1), QtCore.QRect(10,560, size.width()-1, size.height()-1))
lines=[]
lines.append(u'Amazing Grace!')
@@ -310,17 +318,18 @@
lines.append(u'To save a wretch like me;')
lines.append(u'I once was lost but now am found,')
lines.append(u'Was blind, but now I see.')
+ lines1=[]
+ lines1.append(u'Amazing Grace (John Newton)' )
+ lines1.append(u'CCLI xxx (c)Openlp.org')
- answer=r._render_lines(lines)
- r._get_extent_and_render(u'Amazing Grace (John Newton) ', (10, 560), True, None, True)
- r._get_extent_and_render(u'CCLI xxx (c)Openlp.org', (10, 580), True, None, True)
+ answer=r._render_lines(lines, lines1)
im=frame.GetPixmap().toImage()
- testpathname=os.path.join(dir, name+u'.png')
- if os.path.exists(testpathname):
- os.unlink(testpathname)
- im.save(testpathname, u'png')
- log.debug(u'Theme image written to %s',testpathname)
+ samplepathname=os.path.join(dir, name+u'.png')
+ if os.path.exists(samplepathname):
+ os.unlink(samplepathname)
+ im.save(samplepathname, u'png')
+ log.debug(u'Theme image written to %s',samplepathname)
class TstFrame:
=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py 2009-03-22 07:13:34 +0000
+++ openlp/plugins/bibles/bibleplugin.py 2009-04-10 06:06:41 +0000
@@ -24,7 +24,8 @@
from PyQt4.QtGui import *
from openlp.core.resources import *
-from openlp.core.lib import Plugin
+from openlp.core.lib import Plugin, Event
+from openlp.core.lib import EventType
from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem
from openlp.plugins.bibles.lib.tables import *
@@ -76,4 +77,13 @@
def onBibleNewClick(self):
self.bibleimportform = BibleImportForm(self.config, self.biblemanager, self)
self.bibleimportform.exec_()
- pass
+ pass
+
+ def handle_event(self, event):
+ """
+ Handle the event contained in the event object.
+ """
+ log.debug(u'Handle event called with event %s'%event.event_type)
+ if event.event_type == EventType.ThemeListChanged:
+ log.debug(u'New Theme request received')
+ #self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
=== modified file 'openlp/plugins/custom/customplugin.py'
--- openlp/plugins/custom/customplugin.py 2009-04-07 19:03:36 +0000
+++ openlp/plugins/custom/customplugin.py 2009-04-10 06:06:41 +0000
@@ -56,7 +56,7 @@
"""
Handle the event contained in the event object.
"""
- log.debug(u'Handle event called with event %s' %event.event_type)
+ log.debug(u'Handle event called with event %s'%event.event_type)
if event.event_type == EventType.ThemeListChanged:
log.debug(u'New Theme request received')
self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2009-03-22 07:13:34 +0000
+++ openlp/plugins/songs/songsplugin.py 2009-04-10 06:06:41 +0000
@@ -22,7 +22,8 @@
from PyQt4 import QtCore, QtGui
from openlp.core.resources import *
-from openlp.core.lib import Plugin
+from openlp.core.lib import Plugin, Event
+from openlp.core.lib import EventType
from openlp.plugins.songs.lib import SongManager, SongsTab, SongMediaItem
from openlp.plugins.songs.forms import OpenLPImportForm, OpenSongExportForm, \
OpenSongImportForm, OpenLPExportForm
@@ -122,3 +123,12 @@
def onExportOpenSongItemClicked(self):
self.opensong_export_form.show()
+
+ def handle_event(self, event):
+ """
+ Handle the event contained in the event object.
+ """
+ log.debug(u'Handle event called with event %s'%event.event_type)
+ if event.event_type == EventType.ThemeListChanged:
+ log.debug(u'New Theme request received')
+ #self.edit_custom_form.loadThemes(self.theme_manager.getThemes())
=== added file 'resources/forms/amendthemedialog.ui'
--- resources/forms/amendthemedialog.ui 1970-01-01 00:00:00 +0000
+++ resources/forms/amendthemedialog.ui 2009-04-11 05:43:52 +0000
@@ -0,0 +1,729 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AmendThemeDialog</class>
+ <widget class="QWidget" name="AmendThemeDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>752</width>
+ <height>533</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Theme Maintance</string>
+ </property>
+ <property name="windowIcon">
+ <iconset resource="../images/openlp-2.qrc">
+ <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
+ </property>
+ <widget class="QDialogButtonBox" name="ThemeButtonBox">
+ <property name="geometry">
+ <rect>
+ <x>580</x>
+ <y>500</y>
+ <width>156</width>
+ <height>26</height>
+ </rect>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ <widget class="QWidget" name="layoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>50</x>
+ <y>20</y>
+ <width>441</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="ThemeNameLabel">
+ <property name="text">
+ <string>Theme Name</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="ThemeNameEdit"/>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="">
+ <property name="geometry">
+ <rect>
+ <x>31</x>
+ <y>71</y>
+ <width>721</width>
+ <height>411</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QWidget" name="LeftSide" native="true">
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>341</width>
+ <height>401</height>
+ </rect>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="BackgroundTab">
+ <attribute name="title">
+ <string>Background</string>
+ </attribute>
+ <widget class="QWidget" name="layoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>321</width>
+ <height>351</height>
+ </rect>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="BackgroundLabel">
+ <property name="text">
+ <string>Background:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" colspan="2">
+ <widget class="QComboBox" name="BackgroundComboBox">
+ <item>
+ <property name="text">
+ <string>Opaque</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Transparent</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QLabel" name="BackgroundTypeLabel">
+ <property name="text">
+ <string>Background Type:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2">
+ <widget class="QComboBox" name="BackgroundTypeComboBox">
+ <item>
+ <property name="text">
+ <string>Solid Color</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Gradient</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Image</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="Color1Label">
+ <property name="text">
+ <string><Color1></string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2">
+ <widget class="QPushButton" name="Color1PushButton">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="Color2Label">
+ <property name="text">
+ <string><Color2></string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" colspan="2">
+ <widget class="QPushButton" name="Color2PushButton">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="ImageLabel">
+ <property name="text">
+ <string>Image:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2">
+ <widget class="QLineEdit" name="ImageLineEdit"/>
+ </item>
+ <item row="4" column="3">
+ <widget class="QPushButton" name="ImagePushButton">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../images/openlp-2.qrc">
+ <normaloff>:/services/service_open.png</normaloff>:/services/service_open.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="GradientLabel">
+ <property name="text">
+ <string>Gradient :</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2" colspan="2">
+ <widget class="QComboBox" name="GradientComboBox">
+ <item>
+ <property name="text">
+ <string>Horizontal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Vertical</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Circular</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <widget class="QWidget" name="FontMainTab">
+ <attribute name="title">
+ <string>Font Main</string>
+ </attribute>
+ <widget class="QGroupBox" name="MainFontGroupBox">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>307</width>
+ <height>119</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Main Font</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="MainFontlabel">
+ <property name="text">
+ <string>Font:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2">
+ <widget class="QFontComboBox" name="MainFontComboBox"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="MainFontColorLabel">
+ <property name="text">
+ <string>Font Color</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QPushButton" name="MainFontColorPushButton">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="MainFontSize">
+ <property name="text">
+ <string>Size:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="MainFontSizeLineEdit"/>
+ </item>
+ <item row="2" column="2">
+ <widget class="QSlider" name="MainFontlSlider">
+ <property name="value">
+ <number>15</number>
+ </property>
+ <property name="maximum">
+ <number>40</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition">
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ <property name="tickInterval">
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QGroupBox" name="FooterFontGroupBox">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>160</y>
+ <width>301</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Display Location</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QCheckBox" name="FontMainUseDefault">
+ <property name="text">
+ <string>Use default location</string>
+ </property>
+ <property name="tristate">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="FontMainXLabel">
+ <property name="text">
+ <string>X Position:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontMainXEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QLabel" name="FontMainYLabel">
+ <property name="text">
+ <string>Y Position:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontMainYEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="QLabel" name="FontMainWidthLabel">
+ <property name="text">
+ <string>Width</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontMainWidthEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="QLabel" name="FontMainHeightLabel">
+ <property name="text">
+ <string>Height</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontMainHeightEdit"/>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <widget class="QWidget" name="FontFooterTab">
+ <attribute name="title">
+ <string>Font Footer</string>
+ </attribute>
+ <widget class="QGroupBox" name="FooterFontGroupBox_2">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>160</y>
+ <width>301</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Display Location</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="FontMainUseDefault_2">
+ <property name="text">
+ <string>Use default location</string>
+ </property>
+ <property name="tristate">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_7">
+ <item>
+ <widget class="QLabel" name="FontFooterXLabel">
+ <property name="text">
+ <string>X Position:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontFooterXEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_8">
+ <item>
+ <widget class="QLabel" name="FontFooterYLabel">
+ <property name="text">
+ <string>Y Position:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontFooterYEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_9">
+ <item>
+ <widget class="QLabel" name="FontFooterWidthLabel">
+ <property name="text">
+ <string>Width</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontFooterWidthEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_10">
+ <item>
+ <widget class="QLabel" name="FontFooterHeightLabel">
+ <property name="text">
+ <string>Height</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="FontFooterHeightEdit"/>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QGroupBox" name="FooterFontGroupBox_3">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>307</width>
+ <height>119</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Footer Font</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QLabel" name="FontFooterlabel">
+ <property name="text">
+ <string>Font:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2">
+ <widget class="QFontComboBox" name="FontFooterComboBox"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="FontFooterColorLabel">
+ <property name="text">
+ <string>Font Color</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QPushButton" name="FontFooterColorPushButton">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="FontFooterSizeLabel">
+ <property name="text">
+ <string>Size:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="FontFooterSizeLineEdit"/>
+ </item>
+ <item row="2" column="2">
+ <widget class="QSlider" name="FontFooterSlider">
+ <property name="value">
+ <number>15</number>
+ </property>
+ <property name="maximum">
+ <number>40</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="tickPosition">
+ <enum>QSlider::TicksBelow</enum>
+ </property>
+ <property name="tickInterval">
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <widget class="QWidget" name="OptionsTab">
+ <attribute name="title">
+ <string>Alignment</string>
+ </attribute>
+ <widget class="QGroupBox" name="ShadowGroupBox">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>301</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Shadow</string>
+ </property>
+ <widget class="QWidget" name="layoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>281</width>
+ <height>58</height>
+ </rect>
+ </property>
+ <layout class="QFormLayout" name="formLayout">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="ShadowCheckBox">
+ <property name="text">
+ <string>Use Shadow</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="ShadowColorLabel">
+ <property name="text">
+ <string>Shadow Color:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="ShadowColorPushButton">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <widget class="QGroupBox" name="AlignmentGroupBox">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>200</y>
+ <width>321</width>
+ <height>161</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Alignment</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="0">
+ <widget class="QLabel" name="HorizontalLabel">
+ <property name="text">
+ <string>Horizontal Align:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="HorizontalComboBox">
+ <item>
+ <property name="text">
+ <string>Left</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Right</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Center</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="VerticalLabel">
+ <property name="text">
+ <string>Vertical Align:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="VerticalComboBox">
+ <item>
+ <property name="text">
+ <string>Top</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Middle</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Bottom</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QGroupBox" name="OutlineGroupBox">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>110</y>
+ <width>301</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Outline</string>
+ </property>
+ <widget class="QWidget" name="layoutWidget_3">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>281</width>
+ <height>58</height>
+ </rect>
+ </property>
+ <layout class="QFormLayout" name="OutlineformLayout">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="OutlineCheckBox">
+ <property name="text">
+ <string>Use Outline</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="OutlineColorLabel">
+ <property name="text">
+ <string>Outline Color:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="OutlineColorPushButton">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="RightSide" native="true">
+ <widget class="QLabel" name="ThemePreview">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>60</y>
+ <width>311</width>
+ <height>271</height>
+ </rect>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <property name="lineWidth">
+ <number>2</number>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <resources>
+ <include location="../images/openlp-2.qrc"/>
+ </resources>
+ <connections/>
+</ui>
Follow ups