← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol-hush/openlp/printServiceOrder into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol-hush/openlp/printServiceOrder into lp:openlp.

Requested reviews:
  Raoul Snyman (raoul-snyman)
  Tim Bentley (trb143)

For more details, see:
https://code.launchpad.net/~googol-hush/openlp/printServiceOrder/+merge/48813

Hello!

- removed the error box, when no service item is in the service (as suggested by superfly)
- added the possibility to include the "playing time" of media items
- moved setting from advanced tab to the dialog
- added a dialog with preview function. It provides the following settings:
  a) print text (slides)
  b) print notes
  c) print playing time
(When the user actually prints the service, the settings are saved.)
- ability to enter Custom Service Notes.

Here a screenshot of the dialog: http://img62.imageshack.us/f/serviceprint.png/
Cheers

Edit:
Thanks to gushie!
-- 
https://code.launchpad.net/~googol-hush/openlp/printServiceOrder/+merge/48813
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/resources.py'
--- openlp/core/resources.py	2010-12-28 21:12:20 +0000
+++ openlp/core/resources.py	2011-02-07 17:34:58 +0000
@@ -59057,6 +59057,50 @@
 \xc0\x0d\xeb\xbb\x09\xa9\xe7\x73\xdb\x56\x33\x63\xec\x68\x8d\xff\
 \xab\x13\xff\xc6\xbf\x7b\x12\xeb\x18\x4c\xd6\x48\xe1\x00\x00\x00\
 \x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x96\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
+\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x13\x49\x44\
+\x41\x54\x38\x8d\xa5\xd2\x3f\x68\x53\x71\x10\x07\xf0\xef\xfb\x93\
+\xd7\x97\x94\x98\x98\xff\x6d\xda\x47\x0d\xa5\x29\x94\x42\xc1\x41\
+\x90\xb8\x39\x24\xa3\x5b\x20\x83\x99\xdc\x92\xd9\x04\x0a\x4a\x41\
+\xb7\x0e\xa6\x4b\x17\x87\x68\x10\xa2\x74\x10\x4c\xc0\xa9\x92\x0e\
+\x05\x47\x1b\xcc\xd0\xc1\xfa\xa7\x1a\x5f\xf0\x97\x7f\x25\x6d\xf3\
+\xde\xef\x1c\x24\x10\x63\x02\x2d\x1e\xdc\x70\x70\x7c\x38\xee\x4e\
+\x20\x22\xfc\x4f\xc8\xc3\x45\x2e\x97\xf3\x5a\x2c\x96\x07\x44\x14\
+\x21\xa2\x25\x00\x35\x22\xaa\x70\xce\x37\x52\xa9\x94\x3e\x0e\x10\
+\x06\x13\xec\xec\xec\xdc\x36\x0c\xa3\x60\xb1\x28\xaf\x6d\x57\x5c\
+\x6f\x1d\xee\x99\x7a\xa7\xd9\x98\x6d\x36\x8e\x23\xa6\xd1\xbf\x03\
+\x20\x11\x8f\xc7\x77\xc7\x02\xe5\x72\xd9\x2b\x49\xd2\xc1\xb4\xc3\
+\x7f\xff\xaa\x16\x3e\x1c\x6d\xfa\xf5\xa5\x16\x3a\x61\xf5\x47\x9c\
+\xf3\xb5\x58\x2c\xf6\xd7\x24\x32\x00\x78\x3c\x9e\x87\xb2\xa2\xbe\
+\x83\x73\xb1\x7d\x76\x4e\xbe\x51\xc0\xe6\x0f\x77\xa6\x24\x94\xc8\
+\x3c\x5f\x07\x90\xfe\x07\x50\x14\xe5\x66\x5f\x75\xbd\x04\x21\xe8\
+\xb7\x4b\x0b\x00\x84\x41\x03\x09\xe0\x8d\xae\xf9\x49\xb2\xfb\x0e\
+\xa5\x9e\x1e\x1f\xbb\x44\xc6\x58\xd8\x3a\x3b\xe7\x74\xdb\xa4\xc5\
+\xe4\xd6\x87\x84\xc3\x2a\x92\xc3\x2a\x01\x00\x3a\xa7\xa6\xf0\xf8\
+\xee\xca\x73\xbd\xa7\x1e\x9f\x33\xb6\x3c\x09\xa8\xc9\xae\xb6\xe7\
+\x5b\x4b\x3d\x7b\x72\x6f\xe5\x0d\x00\x41\x04\x08\x00\x88\x40\xdf\
+\x9b\xfd\x33\xe1\xb4\x3d\xcf\x18\xab\x4d\x02\x2a\x9e\xae\x7e\x9d\
+\xab\xde\xd6\xd7\x66\xbf\x47\x04\x0e\x80\x64\x11\x0a\x11\x20\x00\
+\x5e\xe5\xe4\x67\x80\x31\x56\x19\x05\x44\x00\xa8\xd7\xeb\x1b\xef\
+\xf7\xf7\x16\xdc\x42\x6b\x46\x11\x10\x22\x8e\x6b\x44\x08\x9d\x1a\
+\x70\x13\xc1\xe7\x93\xdb\x4b\xfb\x7b\xbb\x6b\x85\x42\x61\x7b\x2c\
+\x90\xc9\x64\x74\xc6\x58\xe2\xd5\xb3\x6d\x1f\xe9\x07\x96\xa0\xda\
+\xf5\x68\x76\x73\x6e\x5e\xed\x06\xa7\xd8\x47\xd7\x8b\xa7\x5b\x21\
+\x4d\xd3\xa6\x35\x4d\x2b\x49\x92\x14\x18\x06\x84\xe1\x57\x4e\xa7\
+\xd3\x5e\xc3\x30\xd6\x01\xdc\x02\xb0\x0c\xa0\x06\xa0\x52\xad\x56\
+\xb7\x39\xe7\xa5\x6c\x36\xab\x15\x8b\xc5\xcf\xf9\x7c\xfe\x86\x69\
+\x9a\x3f\xfe\x9c\x89\xe8\x42\xe9\x74\x3a\x03\x91\x48\xe4\xa8\x54\
+\x2a\x51\x32\x99\x3c\x12\x45\x31\x40\x44\x17\x07\x26\x21\x97\x02\
+\x46\x91\x68\x34\xba\x79\x69\x60\x80\xac\xae\xae\x6e\x12\x11\x7e\
+\x03\x8e\x46\x80\xd0\x09\xab\x9e\x3e\x00\x00\x00\x00\x49\x45\x4e\
+\x44\xae\x42\x60\x82\
 \x00\x00\x02\xd6\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -59326,6 +59370,53 @@
 \x64\x7b\x50\x80\x2c\x83\xa4\x3c\x0a\x90\x04\x00\x22\x75\x40\x01\
 \xd9\xb4\x9c\x69\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \
+\x00\x00\x02\xcc\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
+\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x49\x49\x44\
+\x41\x54\x38\x8d\xa5\xd2\x3f\x68\x13\x71\x14\x07\xf0\x77\xf7\xcb\
+\xdd\xa5\xa9\xf9\x63\xee\xf2\xb7\x7a\x48\x94\x24\x5a\x02\xdd\x0a\
+\x31\xdd\x1c\xda\x49\x1c\x94\x40\x06\x33\xb9\x25\x93\x43\x1b\xa8\
+\x28\x05\x1d\x94\x0e\xa6\x4b\x17\x85\x6a\x10\x8a\x64\x10\x4c\xc0\
+\xa9\x92\x0e\x01\x17\xc5\xa6\xcd\x50\x87\xaa\xad\xa6\x69\xfb\xcb\
+\x9f\xc6\xe6\xcf\xfd\xee\x39\x15\xb4\xa6\xd0\xe2\x83\x37\xbc\xe5\
+\xc3\xf7\x3d\x1e\x87\x88\xf0\x3f\x65\xf8\x73\x48\xa7\xd3\x0e\x41\
+\x10\xee\x23\x62\x04\x11\xfd\x00\x50\x46\xc4\x82\xae\xeb\x33\x89\
+\x44\xa2\xda\x0f\xe0\x0e\x13\x64\xb3\xd9\x6b\x9a\xa6\x65\x04\x41\
+\x7c\x63\xb2\xd8\xdf\x59\x65\x4f\xa5\x59\xdb\xf1\xd6\x76\xb6\x22\
+\x4c\xeb\xdd\x00\x80\x58\x34\x1a\x5d\xea\x0b\xe4\xf3\x79\x07\x21\
+\x64\x65\xd0\xea\x9a\x3c\xab\x06\xd6\x05\xc2\x89\xf2\xa0\xe1\xca\
+\x6e\x4b\x5b\xed\x31\xec\xee\x7d\x2b\xfb\x5a\xb4\xf2\x50\xd7\xf5\
+\x91\x89\x89\x89\xbf\x92\xf0\x00\x00\x8a\xa2\x3c\x70\xb8\x3c\xef\
+\x4d\x6e\x7f\xa3\xd3\x45\xa7\x59\x22\xe1\x9b\x8f\x3f\x3e\x31\x4b\
+\x24\xdc\xe9\xa2\xd3\xe4\x0a\x34\xed\x8a\x2b\x27\xcb\xf2\xf4\xd1\
+\x04\x3c\x00\x80\x28\x8a\x61\x66\xb4\x7f\x62\x08\x43\xca\x19\x72\
+\x55\x20\x10\xb2\x9a\x38\x14\x08\x84\x64\x33\x09\x03\x07\x43\xc4\
+\xec\x5c\x97\x24\x69\xac\xef\x11\x29\xa5\x81\x01\xef\x39\x9b\x6c\
+\x22\x97\xe2\x73\x9f\x63\xd6\x01\x1e\x4d\x12\xe9\xdd\x7d\xbe\x7a\
+\xbd\xd9\x66\xdc\xa3\xdb\xc3\x2f\xab\x07\xc6\xad\x2e\xa5\xc1\xe3\
+\x80\xb2\xc1\xde\x50\x36\xeb\xc6\xce\xd3\x3b\xc3\x6f\x2d\x46\xa2\
+\xdc\xcb\xac\x8d\xce\xc4\x2e\x17\x1b\x07\x6c\xe7\x47\xad\xd7\xe1\
+\xda\x8d\xf3\x94\xd2\x72\xdf\x15\x28\xa5\x05\xdc\xaf\xfa\x75\x44\
+\xf5\x7b\xad\xa7\xef\xb6\x34\xd6\x6c\x33\x7e\xef\x97\xc6\x6f\xd6\
+\x7b\x5c\x97\xe9\x0e\x6c\x6d\x5f\xa4\x94\x16\xfa\x02\x95\x4a\x65\
+\xe6\x43\x71\xf9\x82\xcc\xd5\x3d\x22\x07\xbe\xed\x06\xb3\x4c\xde\
+\x0a\x7e\xd9\xac\x33\x0e\x11\x9c\x4e\x43\xc3\x5f\x5c\x5e\x1a\xc9\
+\x64\x32\xf3\x7d\x81\xa9\xa9\xa9\x2a\xa5\x34\xf6\xfa\xc5\xbc\x13\
+\xab\x2b\x82\x5b\x6c\xda\x07\xa0\x63\xf5\x8a\x4d\x8f\x44\xd7\xec\
+\xaf\x9e\xcd\xf9\x54\x55\x1d\x54\x55\x35\x47\x08\x71\xff\xf3\x07\
+\x87\x95\x4c\x26\x1d\x9a\xa6\x4d\x03\xc0\x18\x00\x04\x01\xa0\x0c\
+\x00\x85\x52\xa9\x34\xaf\xeb\x7a\x2e\x95\x4a\xa9\x8b\x8b\x8b\x5f\
+\x17\x16\x16\x46\x19\x63\x3f\x01\x00\x00\x11\x4f\xd4\x36\x9b\xcd\
+\x1d\x89\x44\x36\x72\xb9\x1c\xc6\xe3\xf1\x0d\x9e\xe7\xdd\x88\x78\
+\x72\xe0\x38\xe4\x54\xc0\x51\x64\x7c\x7c\x7c\xf6\xd4\xc0\x21\x12\
+\x0a\x85\x66\x11\x11\x7e\x03\xde\x44\x9c\x21\xea\xec\x77\x3e\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
 \x00\x00\x02\x74\
 \x89\
 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -59998,6 +60089,11 @@
 \x00\x67\
 \x00\x65\x00\x6e\x00\x65\x00\x72\x00\x61\x00\x6c\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\
 \x00\x67\
+\x00\x14\
+\x09\xd9\xa5\x67\
+\x00\x67\
+\x00\x65\x00\x6e\x00\x65\x00\x72\x00\x61\x00\x6c\x00\x5f\x00\x7a\x00\x6f\x00\x6f\x00\x6d\x00\x5f\x00\x6f\x00\x75\x00\x74\x00\x2e\
+\x00\x70\x00\x6e\x00\x67\
 \x00\x10\
 \x02\x1c\xed\x07\
 \x00\x67\
@@ -60024,6 +60120,11 @@
 \x00\x67\
 \x00\x65\x00\x6e\x00\x65\x00\x72\x00\x61\x00\x6c\x00\x5f\x00\x65\x00\x6d\x00\x61\x00\x69\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\
 \
+\x00\x13\
+\x0e\x30\xb8\x47\
+\x00\x67\
+\x00\x65\x00\x6e\x00\x65\x00\x72\x00\x61\x00\x6c\x00\x5f\x00\x7a\x00\x6f\x00\x6f\x00\x6d\x00\x5f\x00\x69\x00\x6e\x00\x2e\x00\x70\
+\x00\x6e\x00\x67\
 \x00\x12\
 \x0d\x2c\x6d\x87\
 \x00\x67\
@@ -60046,35 +60147,37 @@
 
 qt_resource_struct = "\
 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x01\
-\x00\x00\x00\x98\x00\x02\x00\x00\x00\x06\x00\x00\x00\x70\
-\x00\x00\x00\x3a\x00\x02\x00\x00\x00\x04\x00\x00\x00\x6c\
-\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x69\
-\x00\x00\x00\x5e\x00\x02\x00\x00\x00\x14\x00\x00\x00\x55\
-\x00\x00\x00\x4e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x53\
-\x00\x00\x00\x84\x00\x02\x00\x00\x00\x09\x00\x00\x00\x4a\
-\x00\x00\x00\x14\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x3f\
-\x00\x00\x00\xa6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3c\
-\x00\x00\x00\xe2\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x30\
-\x00\x00\x00\x6e\x00\x02\x00\x00\x00\x03\x00\x00\x00\x2d\
-\x00\x00\x01\x04\x00\x02\x00\x00\x00\x03\x00\x00\x00\x2a\
-\x00\x00\x00\xcc\x00\x02\x00\x00\x00\x08\x00\x00\x00\x22\
-\x00\x00\x00\x26\x00\x02\x00\x00\x00\x04\x00\x00\x00\x1e\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x13\
+\x00\x00\x00\x98\x00\x02\x00\x00\x00\x06\x00\x00\x00\x72\
+\x00\x00\x00\x3a\x00\x02\x00\x00\x00\x04\x00\x00\x00\x6e\
+\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x6b\
+\x00\x00\x00\x5e\x00\x02\x00\x00\x00\x14\x00\x00\x00\x57\
+\x00\x00\x00\x4e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x55\
+\x00\x00\x00\x84\x00\x02\x00\x00\x00\x09\x00\x00\x00\x4c\
+\x00\x00\x00\x14\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x41\
+\x00\x00\x00\xa6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3e\
+\x00\x00\x00\xe2\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x32\
+\x00\x00\x00\x6e\x00\x02\x00\x00\x00\x03\x00\x00\x00\x2f\
+\x00\x00\x01\x04\x00\x02\x00\x00\x00\x03\x00\x00\x00\x2c\
+\x00\x00\x00\xcc\x00\x02\x00\x00\x00\x08\x00\x00\x00\x24\
+\x00\x00\x00\x26\x00\x02\x00\x00\x00\x04\x00\x00\x00\x20\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x13\
 \x00\x00\x00\xb8\x00\x02\x00\x00\x00\x03\x00\x00\x00\x10\
 \x00\x00\x06\x26\x00\x00\x00\x00\x00\x01\x00\x08\x78\xb3\
 \x00\x00\x05\xc2\x00\x00\x00\x00\x00\x01\x00\x03\x36\xef\
 \x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x05\xd7\xd1\
-\x00\x00\x10\xfe\x00\x00\x00\x00\x00\x01\x00\x0e\x62\x30\
+\x00\x00\x11\x2c\x00\x00\x00\x00\x00\x01\x00\x0e\x64\xca\
+\x00\x00\x10\xdc\x00\x00\x00\x00\x00\x01\x00\x0e\x5f\x6e\
+\x00\x00\x12\x1a\x00\x00\x00\x00\x00\x01\x00\x0e\x74\xa2\
+\x00\x00\x11\x9c\x00\x00\x00\x00\x00\x01\x00\x0e\x6c\x15\
+\x00\x00\x10\x84\x00\x00\x00\x00\x00\x01\x00\x0e\x5a\x36\
 \x00\x00\x10\xae\x00\x00\x00\x00\x00\x01\x00\x0e\x5c\xd4\
-\x00\x00\x11\xc0\x00\x00\x00\x00\x00\x01\x00\x0e\x6f\x38\
-\x00\x00\x11\x6e\x00\x00\x00\x00\x00\x01\x00\x0e\x69\x7b\
-\x00\x00\x10\x84\x00\x00\x00\x00\x00\x01\x00\x0e\x5a\x36\
-\x00\x00\x11\xec\x00\x00\x00\x00\x00\x01\x00\x0e\x72\x6b\
-\x00\x00\x11\x96\x00\x00\x00\x00\x00\x01\x00\x0e\x6c\xc0\
-\x00\x00\x10\xd4\x00\x00\x00\x00\x00\x01\x00\x0e\x5f\xae\
-\x00\x00\x12\x12\x00\x00\x00\x00\x00\x01\x00\x0e\x75\x3f\
-\x00\x00\x11\x4a\x00\x00\x00\x00\x00\x01\x00\x0e\x66\x7e\
-\x00\x00\x11\x24\x00\x00\x00\x00\x00\x01\x00\x0e\x64\x67\
+\x00\x00\x12\x46\x00\x00\x00\x00\x00\x01\x00\x0e\x77\xd5\
+\x00\x00\x11\xf0\x00\x00\x00\x00\x00\x01\x00\x0e\x72\x2a\
+\x00\x00\x11\x02\x00\x00\x00\x00\x00\x01\x00\x0e\x62\x48\
+\x00\x00\x12\x6c\x00\x00\x00\x00\x00\x01\x00\x0e\x7a\xa9\
+\x00\x00\x11\xc4\x00\x00\x00\x00\x00\x01\x00\x0e\x6f\x5a\
+\x00\x00\x11\x78\x00\x00\x00\x00\x00\x01\x00\x0e\x69\x18\
+\x00\x00\x11\x52\x00\x00\x00\x00\x00\x01\x00\x0e\x67\x01\
 \x00\x00\x0e\x10\x00\x00\x00\x00\x00\x01\x00\x0e\x33\xfc\
 \x00\x00\x0e\x44\x00\x00\x00\x00\x00\x01\x00\x0e\x37\x5e\
 \x00\x00\x0e\x6c\x00\x00\x00\x00\x00\x01\x00\x0e\x39\xfc\

=== modified file 'openlp/core/ui/advancedtab.py'
--- openlp/core/ui/advancedtab.py	2011-02-01 19:16:51 +0000
+++ openlp/core/ui/advancedtab.py	2011-02-07 17:34:58 +0000
@@ -80,16 +80,6 @@
         self.hideMouseCheckBox.setObjectName(u'hideMouseCheckBox')
         self.hideMouseLayout.addWidget(self.hideMouseCheckBox)
         self.leftLayout.addWidget(self.hideMouseGroupBox)
-        self.serviceOrderGroupBox = QtGui.QGroupBox(self.leftColumn)
-        self.serviceOrderGroupBox.setObjectName(u'serviceOrderGroupBox')
-        self.serviceOrderLayout = QtGui.QVBoxLayout(self.serviceOrderGroupBox)
-        self.serviceOrderLayout.setObjectName(u'serviceOrderLayout')
-        self.detailedServicePrintCheckBox = QtGui.QCheckBox(
-            self.serviceOrderGroupBox)
-        self.detailedServicePrintCheckBox.setObjectName(
-            u'detailedServicePrintCheckBox')
-        self.serviceOrderLayout.addWidget(self.detailedServicePrintCheckBox)
-        self.leftLayout.addWidget(self.serviceOrderGroupBox)
 #        self.sharedDirGroupBox = QtGui.QGroupBox(self.leftColumn)
 #        self.sharedDirGroupBox.setObjectName(u'sharedDirGroupBox')
 #        self.sharedDirLayout = QtGui.QFormLayout(self.sharedDirGroupBox)
@@ -139,11 +129,6 @@
             'Mouse Cursor'))
         self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab',
             'Hide the mouse cursor when moved over the display window'))
-        self.serviceOrderGroupBox.setTitle(translate('OpenLP.AdvancedTab',
-            'Service Order Print'))
-        self.detailedServicePrintCheckBox.setText(
-            translate('OpenLP.AdvancedTab',
-            'Print slide texts and service item notes as well'))
 #        self.sharedDirGroupBox.setTitle(
 #            translate('AdvancedTab', 'Central Data Store'))
 #        self.sharedCheckBox.setText(
@@ -179,8 +164,6 @@
             QtCore.QVariant(True)).toBool())
         self.hideMouseCheckBox.setChecked(
             settings.value(u'hide mouse', QtCore.QVariant(False)).toBool())
-        self.detailedServicePrintCheckBox.setChecked(settings.value(
-            u'detailed service print', QtCore.QVariant(False)).toBool())
         settings.endGroup()
 
     def save(self):
@@ -201,8 +184,6 @@
             QtCore.QVariant(self.enableAutoCloseCheckBox.isChecked()))
         settings.setValue(u'hide mouse',
             QtCore.QVariant(self.hideMouseCheckBox.isChecked()))
-        settings.setValue(u'detailed service print',
-            QtCore.QVariant(self.detailedServicePrintCheckBox.isChecked()))
         settings.endGroup()
 
 #    def onSharedCheckBoxChanged(self, checked):

=== added file 'openlp/core/ui/printserviceorderdialog.py'
--- openlp/core/ui/printserviceorderdialog.py	1970-01-01 00:00:00 +0000
+++ openlp/core/ui/printserviceorderdialog.py	2011-02-07 17:34:58 +0000
@@ -0,0 +1,137 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2011 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael      #
+# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian      #
+# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble,    #
+# Carsten Tinggaard, Frode Woldsund                                           #
+# --------------------------------------------------------------------------- #
+# 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                          #
+###############################################################################
+
+from PyQt4 import QtCore, QtGui
+
+from openlp.core.lib import build_icon, translate, SpellTextEdit
+
+class Ui_PrintServiceOrderDialog(object):
+    def setupUi(self, printServiceOrderDialog):
+        printServiceOrderDialog.setObjectName(u'printServiceOrderDialog')
+        self.dialogLayout = QtGui.QGridLayout(printServiceOrderDialog)
+        self.dialogLayout.setObjectName(u'dialogLayout')
+        self.perviewLayout = QtGui.QVBoxLayout()
+        self.perviewLayout.setObjectName(u'perviewLayout')
+        self.previewLabel = QtGui.QLabel(printServiceOrderDialog)
+        self.previewLabel.setSizePolicy(
+            QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
+        self.previewLabel.setObjectName(u'previewLabel')
+        self.perviewLayout.addWidget(self.previewLabel)
+        self.previewWidget = QtGui.QPrintPreviewWidget(
+            self.printer, self, QtCore.Qt.Widget)
+        self.previewWidget.setEnabled(True)
+        self.previewWidget.setSizePolicy(
+            QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding)
+        self.previewWidget.setObjectName(u'previewWidget')
+        # Give the previewWidget a fixed size, to prevent resizing when clicking
+        # the zoom buttons.
+        self.previewWidget.setFixedWidth(350)
+        self.perviewLayout.addWidget(self.previewWidget)
+        self.dialogLayout.addLayout(self.perviewLayout, 0, 0, 1, 1)
+        self.settingsLayout = QtGui.QVBoxLayout()
+        self.settingsLayout.setObjectName(u'settingsLayout')
+        self.serviceTitleLayout = QtGui.QGridLayout()
+        self.serviceTitleLayout.setObjectName(u'serviceTitleLayout')
+        self.serviceTitleLineEdit = QtGui.QLineEdit(printServiceOrderDialog)
+        self.serviceTitleLineEdit.setSizePolicy(
+            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
+        self.serviceTitleLineEdit.setObjectName(u'serviceTitleLineEdit')
+        self.serviceTitleLayout.addWidget(self.serviceTitleLineEdit, 1, 1, 1, 1)
+        self.serviceTitleLabel = QtGui.QLabel(printServiceOrderDialog)
+        self.serviceTitleLabel.setSizePolicy(
+            QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
+        self.serviceTitleLabel.setObjectName(u'serviceTitleLabel')
+        self.serviceTitleLayout.addWidget(self.serviceTitleLabel, 1, 0, 1, 1)
+        self.settingsLayout.addLayout(self.serviceTitleLayout)
+        self.printSlideTextCheckBox = QtGui.QCheckBox(printServiceOrderDialog)
+        self.printSlideTextCheckBox.setObjectName(u'printSlideTextCheckBox')
+        self.settingsLayout.addWidget(self.printSlideTextCheckBox)
+        self.printNotesCheckBox = QtGui.QCheckBox(printServiceOrderDialog)
+        self.printNotesCheckBox.setObjectName(u'printNotesCheckBox')
+        self.settingsLayout.addWidget(self.printNotesCheckBox)
+        self.printMetaDataCheckBox = QtGui.QCheckBox(printServiceOrderDialog)
+        self.printMetaDataCheckBox.setObjectName(u'printMetaDataCheckBox')
+        self.settingsLayout.addWidget(self.printMetaDataCheckBox)
+        spacerItem = QtGui.QSpacerItem(20, 40,
+            QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.settingsLayout.addItem(spacerItem)
+        self.customNotesLabel = QtGui.QLabel(self)
+        self.customNotesLabel.setObjectName(u'customNotesLabel')
+        self.settingsLayout.addWidget(self.customNotesLabel)
+        self.customNoteEdit = SpellTextEdit(self)
+        self.customNoteEdit.setObjectName(u'customNoteEdit')
+        self.settingsLayout.addWidget(self.customNoteEdit)
+        self.dialogLayout.addLayout(self.settingsLayout, 0, 3, 1, 1)
+        self.buttonLayout = QtGui.QHBoxLayout()
+        self.buttonLayout.setObjectName(u'buttonLayout')
+        spacerItem = QtGui.QSpacerItem(40, 20,
+            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.buttonLayout.addItem(spacerItem)
+        self.cancelButton = QtGui.QPushButton(printServiceOrderDialog)
+        self.cancelButton.setObjectName(u'cancelButton')
+        self.buttonLayout.addWidget(self.cancelButton)
+        self.printButton = QtGui.QPushButton(printServiceOrderDialog)
+        self.printButton.setObjectName(u'printButton')
+        self.buttonLayout.addWidget(self.printButton)
+        self.dialogLayout.addLayout(self.buttonLayout, 1, 3, 1, 1)
+        self.zoomButtonLayout = QtGui.QHBoxLayout()
+        self.zoomButtonLayout.setObjectName(u'zoomButtonLayout')
+        spacerItem = QtGui.QSpacerItem(40, 20,
+            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.zoomButtonLayout.addItem(spacerItem)
+        self.zoomOutButton = QtGui.QToolButton(printServiceOrderDialog)
+        self.zoomOutButton.setIcon(
+            build_icon(u':/general/general_zoom_out.png'))
+        self.zoomOutButton.setObjectName(u'zoomOutButton')
+        self.zoomButtonLayout.addWidget(self.zoomOutButton)
+        self.zoomInButton = QtGui.QToolButton(printServiceOrderDialog)
+        self.zoomInButton.setIcon(build_icon(u':/general/general_zoom_in.png'))
+        self.zoomInButton.setObjectName(u'zoomInButton')
+        self.zoomButtonLayout.addWidget(self.zoomInButton)
+        self.dialogLayout.addLayout(self.zoomButtonLayout, 1, 0, 1, 1)
+        self.retranslateUi(printServiceOrderDialog)
+        QtCore.QMetaObject.connectSlotsByName(printServiceOrderDialog)
+
+    def retranslateUi(self, printServiceOrderDialog):
+        printServiceOrderDialog.setWindowTitle(
+            translate('OpenLP.PrintServiceOrderForm', 'Print Service Order'))
+        self.previewLabel.setText(
+            translate('OpenLP.ServiceManager', '<b>Preview:</b>'))
+        self.printSlideTextCheckBox.setText(translate(
+            'OpenLP.PrintServiceOrderForm', 'Include slide text if avaialbe'))
+        self.printNotesCheckBox.setText(translate(
+            'OpenLP.PrintServiceOrderForm', 'Include service item notes'))
+        self.printMetaDataCheckBox.setText(
+            translate('OpenLP.PrintServiceOrderForm',
+            'Include play lenght of media items'))
+        self.serviceTitleLabel.setText(translate(
+            'OpenLP.PrintServiceOrderForm', 'Title:'))
+        self.serviceTitleLineEdit.setText(translate('OpenLP.ServiceManager',
+            'Service Order Sheet'))
+        self.printButton.setText(translate('OpenLP.ServiceManager', 'Print'))
+        self.cancelButton.setText(translate('OpenLP.ServiceManager', 'Cancel'))
+        self.customNotesLabel.setText(
+            translate('OpenLP.ServiceManager', '<b>Custom Service Notes:</b>'))

=== added file 'openlp/core/ui/printserviceorderform.py'
--- openlp/core/ui/printserviceorderform.py	1970-01-01 00:00:00 +0000
+++ openlp/core/ui/printserviceorderform.py	2011-02-07 17:34:58 +0000
@@ -0,0 +1,184 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2011 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael      #
+# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian      #
+# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble,    #
+# Carsten Tinggaard, Frode Woldsund                                           #
+# --------------------------------------------------------------------------- #
+# 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 datetime
+import mutagen
+import os
+
+from PyQt4 import QtCore, QtGui
+
+from openlp.core.lib import translate
+from openlp.core.ui.printserviceorderdialog import Ui_PrintServiceOrderDialog
+
+class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog):
+    def __init__(self, parent, serviceManager):
+        """
+        Constructor
+        """
+        QtGui.QDialog.__init__(self, parent)
+        self.serviceManager = serviceManager
+        self.printer = QtGui.QPrinter()
+        self.printDialog = QtGui.QPrintDialog(self.printer, self)
+        self.document = QtGui.QTextDocument()
+        self.setupUi(self)
+        # Load the settings for the dialog.
+        settings = QtCore.QSettings()
+        settings.beginGroup(u'advanced')
+        self.printSlideTextCheckBox.setChecked(settings.value(
+            u'print slide text', QtCore.QVariant(False)).toBool())
+        self.printMetaDataCheckBox.setChecked(settings.value(
+            u'print file meta data', QtCore.QVariant(False)).toBool())
+        self.printNotesCheckBox.setChecked(settings.value(
+            u'print notes', QtCore.QVariant(False)).toBool())
+        settings.endGroup()
+        # Signals
+        QtCore.QObject.connect(self.printButton,
+            QtCore.SIGNAL(u'clicked()'), self.printServiceOrder)
+        QtCore.QObject.connect(self.zoomOutButton,
+            QtCore.SIGNAL(u'clicked()'), self.zoomOut)
+        QtCore.QObject.connect(self.zoomInButton,
+            QtCore.SIGNAL(u'clicked()'), self.zoomIn)
+        QtCore.QObject.connect(self.previewWidget,
+            QtCore.SIGNAL(u'paintRequested(QPrinter *)'), self.paintRequested)
+        QtCore.QObject.connect(self.serviceTitleLineEdit,
+            QtCore.SIGNAL(u'textChanged(const QString)'),
+            self.updatePreviewText)
+        QtCore.QObject.connect(self.printSlideTextCheckBox,
+            QtCore.SIGNAL(u'stateChanged(int)'), self.updatePreviewText)
+        QtCore.QObject.connect(self.printNotesCheckBox,
+            QtCore.SIGNAL(u'stateChanged(int)'), self.updatePreviewText)
+        QtCore.QObject.connect(self.printMetaDataCheckBox,
+            QtCore.SIGNAL(u'stateChanged(int)'), self.updatePreviewText)
+        QtCore.QObject.connect(self.customNoteEdit,
+            QtCore.SIGNAL(u'textChanged()'), self.updatePreviewText)
+        QtCore.QObject.connect(self.cancelButton,
+            QtCore.SIGNAL(u'clicked()'), self.reject)
+        self.updatePreviewText()
+
+    def updatePreviewText(self):
+        """
+        Creates the html text and updates the html of *self.document*.
+        """
+        text = u''
+        if self.serviceTitleLineEdit.text():
+            text += u'<h2>%s</h2>' % unicode(self.serviceTitleLineEdit.text())
+        for item in self.serviceManager.serviceItems:
+            item = item[u'service_item']
+            # Add the title of the service item.
+            text += u'<h4><img src="%s" /> %s</h4>' % (item.icon,
+                item.get_display_title())
+            # Add slide text of the service item.
+            if self.printSlideTextCheckBox.isChecked():
+                if item.is_text():
+                    # Add the text of the service item.
+                    for slide in item.get_frames():
+                        text += u'<p>' + slide[u'text'] + u'</p>'
+                elif item.is_image():
+                    # Add the image names of the service item.
+                    text += u'<ol>'
+                    for slide in range(len(item.get_frames())):
+                        text += u'<li><p>%s</p></li>' % \
+                            item.get_frame_title(slide)
+                    text += u'</ol>'
+                if item.foot_text:
+                    # add footer
+                    text += u'<p>%s</p>' % item.foot_text
+            # Add service items' notes.
+            if self.printNotesCheckBox.isChecked():
+                if item.notes:
+                    text += u'<p><b>%s</b></p>%s' % (translate(
+                        'OpenLP.ServiceManager', 'Notes:'),
+                        item.notes.replace(u'\n', u'<br />'))
+            # Add play length of media files.
+            if item.is_media() and self.printMetaDataCheckBox.isChecked():
+                path = os.path.join(item.get_frames()[0][u'path'],
+                    item.get_frames()[0][u'title'])
+                if not os.path.isfile(path):
+                    continue
+                file = mutagen.File(path)
+                if file is not None:
+                    length = int(file.info.length)
+                    text += u'<p><b>%s</b> %s</p>' % (translate(
+                        'OpenLP.ServiceManager', u'Playing time:'),
+                        unicode(datetime.timedelta(seconds=length)))
+        if self.customNoteEdit.toPlainText():
+            text += u'<h4>%s</h4>%s' % (translate('OpenLP.ServiceManager',
+                u'Custom Service Notes:'), self.customNoteEdit.toPlainText())
+        self.document.setHtml(text)
+        self.previewWidget.updatePreview()
+
+    def paintRequested(self, printer):
+        """
+        Paint the preview of the *self.document*.
+
+        ``printer``
+            A *QPrinter* object.
+        """
+        self.document.print_(printer)
+
+    def printServiceOrder(self):
+        """
+        Called, when the *printButton* is clicked. Opens the *printDialog*.
+        """
+        if not self.printDialog.exec_():
+            return
+        # Print the document.
+        self.document.print_(self.printer)
+        self.accept()
+
+    def zoomIn(self):
+        """
+        Called when *zoomInButton* is clicked.
+        """
+        self.previewWidget.zoomIn()
+
+    def zoomOut(self):
+        """
+        Called when *zoomOutButton* is clicked.
+        """
+        self.previewWidget.zoomOut()
+
+    def accept(self):
+        """
+        Save the settings and close the dialog.
+        """
+        # Save the settings for this dialog.
+        settings = QtCore.QSettings()
+        settings.beginGroup(u'advanced')
+        settings.setValue(u'print slide text',
+            QtCore.QVariant(self.printSlideTextCheckBox.isChecked()))
+        settings.setValue(u'print file meta data',
+            QtCore.QVariant(self.printMetaDataCheckBox.isChecked()))
+        settings.setValue(u'print notes',
+            QtCore.QVariant(self.printNotesCheckBox.isChecked()))
+        settings.endGroup()
+        # Close the dialog.
+        return QtGui.QDialog.accept(self)
+
+    def reject(self):
+        """
+        Close the dialog, do not print the service and do not save the settings.
+        """
+        return QtGui.QDialog.reject(self)

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2011-02-03 18:48:41 +0000
+++ openlp/core/ui/servicemanager.py	2011-02-07 17:34:58 +0000
@@ -23,10 +23,9 @@
 # with this program; if not, write to the Free Software Foundation, Inc., 59  #
 # Temple Place, Suite 330, Boston, MA 02111-1307 USA                          #
 ###############################################################################
-
+import cPickle
+import logging
 import os
-import logging
-import cPickle
 import zipfile
 
 log = logging.getLogger(__name__)
@@ -38,6 +37,7 @@
     ThemeLevel
 from openlp.core.lib.ui import critical_error_message_box
 from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm
+from openlp.core.ui.printserviceorderform import PrintServiceOrderForm
 from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \
     split_filename
 
@@ -67,8 +67,8 @@
 
 class ServiceManager(QtGui.QWidget):
     """
-    Manages the services.  This involves taking text strings from plugins and
-    adding them to the service.  This service can then be zipped up with all
+    Manages the services. This involves taking text strings from plugins and
+    adding them to the service. This service can then be zipped up with all
     the resources used into one OSZ file for use on any OpenLP v2 installation.
     Also handles the UI tasks of moving things up and down etc.
     """
@@ -391,7 +391,7 @@
         return QtGui.QMessageBox.question(self.mainwindow,
             translate('OpenLP.ServiceManager', 'Modified Service'),
             translate('OpenLP.ServiceManager', 'The current service has '
-            'been modified.  Would you like to save this service?'),
+            'been modified. Would you like to save this service?'),
             QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard |
             QtGui.QMessageBox.Cancel, QtGui.QMessageBox.Save)
 
@@ -1187,41 +1187,5 @@
         """
         Print a Service Order Sheet.
         """
-        if not self.serviceItems:
-            critical_error_message_box(
-                message=translate('OpenLP.ServiceManager',
-                'There is no service item in this service.'))
-            return
-        printDialog = QtGui.QPrintDialog()
-        if not printDialog.exec_():
-            return
-        text = u'<h2>%s</h2>' % translate('OpenLP.ServiceManager',
-            'Service Order Sheet')
-        for item in self.serviceItems:
-            item = item[u'service_item']
-            # add the title
-            text += u'<h4><img src="%s" /> %s</h4>' % (item.icon,
-                item.get_display_title())
-            if not QtCore.QSettings().value(u'advanced' +
-                u'/detailed service print', QtCore.QVariant(True)).toBool():
-                continue
-            if item.is_text():
-                # Add the text of the service item.
-                for slide in item.get_frames():
-                    text += u'<p>' + slide[u'text'] + u'</p>'
-            elif item.is_image():
-                # Add the image names of the service item.
-                text += u'<ol>'
-                for slide in range(len(item.get_frames())):
-                    text += u'<li><p>%s</p></li>' % item.get_frame_title(slide)
-                text += u'</ol>'
-            if item.foot_text:
-                # add footer
-                text += u'<p>%s</p>' % item.foot_text
-            if item.notes:
-                # add notes
-                text += u'<p><b>%s</b> %s</p>' % (translate(
-                    'OpenLP.ServiceManager', 'Notes:'), item.notes)
-        serviceDocument = QtGui.QTextDocument()
-        serviceDocument.setHtml(text)
-        serviceDocument.print_(printDialog.printer())
+        settingDialog = PrintServiceOrderForm(self.mainwindow, self)
+        settingDialog.exec_()

=== added file 'resources/forms/printserviceorderdialog.ui'
--- resources/forms/printserviceorderdialog.ui	1970-01-01 00:00:00 +0000
+++ resources/forms/printserviceorderdialog.ui	2011-02-07 17:34:58 +0000
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>494</width>
+    <height>426</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout_3">
+   <item>
+    <layout class="QGridLayout" name="dialogLayout">
+     <item row="0" column="3">
+      <layout class="QVBoxLayout" name="settingsLayout">
+       <item>
+        <layout class="QGridLayout" name="serviceTitleLayout">
+         <item row="1" column="1">
+          <widget class="QLineEdit" name="serviceTitleLineEdit">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="serviceTitleLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>Service Title:</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="printSlideTextCheckBox">
+         <property name="text">
+          <string>Include slide text if avaialbe</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="printNotesCheckBox">
+         <property name="text">
+          <string>Include service item notes</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="printMetaDataCheckBox">
+         <property name="text">
+          <string>Include play lenght of media items</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="spacer_2">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="customNotesLabel">
+         <property name="text">
+          <string>&lt;b&gt;Custom Notes:&lt;/b&gt;</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QTextEdit" name="customNoteEdit"/>
+       </item>
+      </layout>
+     </item>
+     <item row="1" column="3">
+      <layout class="QHBoxLayout" name="buttonLayout">
+       <item>
+        <spacer name="spacer_3">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QPushButton" name="cancelButton">
+         <property name="text">
+          <string>Cancel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="printButton">
+         <property name="text">
+          <string>Print</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="1" column="0">
+      <layout class="QHBoxLayout" name="zoomButtonLayout">
+       <item>
+        <spacer name="spacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QToolButton" name="zoomOutButton">
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset resource="../images/openlp-2.qrc">
+           <normaloff>:/general/general_zoom_out.png</normaloff>:/general/general_zoom_out.png</iconset>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="zoomInButton">
+         <property name="icon">
+          <iconset resource="../images/openlp-2.qrc">
+           <normaloff>:/general/general_zoom_in.png</normaloff>:/general/general_zoom_in.png</iconset>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="0" column="0">
+      <layout class="QVBoxLayout" name="perviewLayout">
+       <item>
+        <widget class="QLabel" name="previewLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Preview:</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QWidget" name="previewWidget" native="true">
+         <property name="enabled">
+          <bool>true</bool>
+         </property>
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="minimumSize">
+          <size>
+           <width>0</width>
+           <height>0</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+  </layout>
+  <zorder></zorder>
+ </widget>
+ <resources>
+  <include location="../images/openlp-2.qrc"/>
+ </resources>
+ <connections/>
+</ui>

=== added file 'resources/images/general_zoom_in.png'
Binary files resources/images/general_zoom_in.png	1970-01-01 00:00:00 +0000 and resources/images/general_zoom_in.png	2011-02-07 17:34:58 +0000 differ
=== added file 'resources/images/general_zoom_out.png'
Binary files resources/images/general_zoom_out.png	1970-01-01 00:00:00 +0000 and resources/images/general_zoom_out.png	2011-02-07 17:34:58 +0000 differ
=== modified file 'resources/images/openlp-2.qrc'
--- resources/images/openlp-2.qrc	2010-12-28 21:12:20 +0000
+++ resources/images/openlp-2.qrc	2011-02-07 17:34:58 +0000
@@ -41,6 +41,8 @@
     <file>general_export.png</file>
     <file>general_import.png</file>
     <file>general_new.png</file>
+    <file>general_zoom_out.png</file>
+    <file>general_zoom_in.png</file>
     <file>general_open.png</file>
     <file>general_save.png</file>
     <file>general_email.png</file>


Follow ups