← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~raoul-snyman/openlp/i18n into lp:openlp

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/i18n into lp:openlp.

    Requested reviews:
    OpenLP Core (openlp-core)

-- 
https://code.launchpad.net/~raoul-snyman/openlp/i18n/+merge/13884
Your team OpenLP Core is subscribed to branch lp:openlp.
=== added directory 'i18n'
=== added file 'i18n/openlp_en.ts'
--- i18n/openlp_en.ts	1970-01-01 00:00:00 +0000
+++ i18n/openlp_en.ts	2009-10-24 07:35:24 +0000
@@ -0,0 +1,991 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="1.1">
+  <context>
+    <name>BibleMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/mediaitem.py" line="131"/>
+      <source>Quick</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AlertsTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/alertstab.py" line="36"/>
+      <source>Alerts</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/alertstab.py" line="151"/>
+      <source>Font</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpexportdialog.py" line="291"/>
+      <source>Author</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="579"/>
+      <source>Vertical</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AlertForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/alertform.py" line="97"/>
+      <source>Display</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SplashScreen</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/splashscreen.py" line="32"/>
+      <source>Starting</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>MediaManagerItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/lib/mediamanageritem.py" line="215"/>
+      <source>New</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>EditCustomForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/custom/forms/editcustomform.py" line="119"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="640"/>
+      <source>Center</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>TestMediaManager:</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/test/test_mediamanageritem.py" line="74"/>
+      <source>Item2</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AboutForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/about.py" line="167"/>
+      <source>License</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>TestMediaManager:</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/test/test_mediamanageritem.py" line="72"/>
+      <source>Item1</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_MainWindow</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="394"/>
+      <source>English</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="588"/>
+      <source>pt</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongimportdialog.py" line="107"/>
+      <source>Close</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="643"/>
+      <source>Middle</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="568"/>
+      <source>Opaque</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_customEditDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/custom/forms/editcustomdialog.py" line="154"/>
+      <source>Clear</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/custom/forms/editcustomdialog.py" line="150"/>
+      <source>Save</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BibleImportForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/forms/bibleimportform.py" line="187"/>
+      <source>Information</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongexportdialog.py" line="293"/>
+      <source>Lyrics</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_customEditDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/custom/forms/editcustomdialog.py" line="152"/>
+      <source>Delete</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpimportdialog.py" line="304"/>
+      <source>Close</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>ImageTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/images/lib/imagetab.py" line="66"/>
+      <source>sec</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongexportdialog.py" line="304"/>
+      <source>Close</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BibleMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/mediaitem.py" line="263"/>
+      <source>Clear</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongexportdialog.py" line="291"/>
+      <source>Author</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_PluginViewDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/plugindialog.py" line="108"/>
+      <source>Inactive</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpimportdialog.py" line="303"/>
+      <source>Import</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_MainWindow</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="372"/>
+      <source>F9</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="361"/>
+      <source>F8</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_SongMaintenanceDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songmaintenancedialog.py" line="212"/>
+      <source>Topics</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="638"/>
+      <source>Left</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongMaintenanceForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songmaintenanceform.py" line="134"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="642"/>
+      <source>Top</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_MainWindow</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="380"/>
+      <source>F7</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="636"/>
+      <source>Alignment</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>MediaManagerItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/lib/mediamanageritem.py" line="249"/>
+      <source>Add</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BibleMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/mediaitem.py" line="250"/>
+      <source>Search</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_SongMaintenanceDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songmaintenancedialog.py" line="215"/>
+      <source>Edit</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="441"/>
+      <source>Theme</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongsPlugin</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/songsplugin.py" line="116"/>
+      <source>OpenSong</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>MediaManagerItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/lib/mediamanageritem.py" line="222"/>
+      <source>Edit</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/lib/mediamanageritem.py" line="208"/>
+      <source>Load</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="644"/>
+      <source>Bottom</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_BibleImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/forms/bibleimportdialog.py" line="250"/>
+      <source>NIV</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="573"/>
+      <source>Image</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>GeneralTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/generaltab.py" line="170"/>
+      <source>Screen</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>ThemeManager</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/thememanager.py" line="166"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="590"/>
+      <source>Normal</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AlertsTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/alertstab.py" line="156"/>
+      <source>s</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpexportdialog.py" line="304"/>
+      <source>Close</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpimportdialog.py" line="291"/>
+      <source>Author</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BiblesTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/biblestab.py" line="45"/>
+      <source>Bibles</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AuditDetailDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/audit/forms/auditdetaildialog.py" line="163"/>
+      <source>Summary</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_BibleImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/forms/bibleimportdialog.py" line="234"/>
+      <source>Import</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongBookForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songbookform.py" line="51"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpimportdialog.py" line="294"/>
+      <source>Title</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_PluginViewDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/plugindialog.py" line="104"/>
+      <source>TextLabel</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AboutForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/about.py" line="182"/>
+      <source>Contribute</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>GeneralTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/generaltab.py" line="136"/>
+      <source>Monitors</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="591"/>
+      <source>Bold</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>TopicsForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/topicsform.py" line="50"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SlideController</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/slidecontroller.py" line="107"/>
+      <source>Preview</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpexportdialog.py" line="303"/>
+      <source>Export</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BibleMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/mediaitem.py" line="264"/>
+      <source>Keep</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="639"/>
+      <source>Right</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="446"/>
+      <source>Comments</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AboutForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/about.py" line="181"/>
+      <source>Credits</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AlertForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/alertform.py" line="98"/>
+      <source>Cancel</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AuthorsForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/authorsform.py" line="78"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongexportdialog.py" line="303"/>
+      <source>Export</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>MediaManagerItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/lib/mediamanageritem.py" line="237"/>
+      <source>Preview</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_SettingsDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/settingsdialog.py" line="57"/>
+      <source>Settings</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BibleMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/mediaitem.py" line="597"/>
+      <source>Information</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpexportdialog.py" line="293"/>
+      <source>Lyrics</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>ImageTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/images/lib/imagetab.py" line="34"/>
+      <source>Images</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="578"/>
+      <source>Horizontal</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="580"/>
+      <source>Circular</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="434"/>
+      <source>Topic</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BibleMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/mediaitem.py" line="209"/>
+      <source>Advanced</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>MediaTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/media/lib/mediatab.py" line="35"/>
+      <source>Media</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AboutForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/about.py" line="183"/>
+      <source>Close</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="423"/>
+      <source>Edit</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpimportdialog.py" line="293"/>
+      <source>Lyrics</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="601"/>
+      <source>px</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="425"/>
+      <source>Delete</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongexportdialog.py" line="294"/>
+      <source>Title</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>ThemesTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/themestab.py" line="37"/>
+      <source>Themes</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="429"/>
+      <source>Authors</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_BibleImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/forms/bibleimportdialog.py" line="251"/>
+      <source>KJV</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_SongMaintenanceDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songmaintenancedialog.py" line="211"/>
+      <source>Authors</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AuditDetailDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/audit/forms/auditdetaildialog.py" line="164"/>
+      <source>Detailed</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_SongMaintenanceDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songmaintenancedialog.py" line="216"/>
+      <source>Delete</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SlideController</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/slidecontroller.py" line="175"/>
+      <source>s</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/lib/mediaitem.py" line="136"/>
+      <source>Titles</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/lib/mediaitem.py" line="132"/>
+      <source>Clear</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_BibleImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/forms/bibleimportdialog.py" line="248"/>
+      <source>Crosswalk</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_customEditDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/custom/forms/editcustomdialog.py" line="146"/>
+      <source>Edit</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>PresentationTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/presentations/lib/presentationtab.py" line="101"/>
+      <source>available</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>ThemeManager</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/thememanager.py" line="120"/>
+      <source>default</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>EditSongForm</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongform.py" line="399"/>
+      <source>Error</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_SongMaintenanceDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/songmaintenancedialog.py" line="214"/>
+      <source>Add</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_BibleImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/forms/bibleimportdialog.py" line="235"/>
+      <source>Cancel</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenLPExportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/openlpexportdialog.py" line="294"/>
+      <source>Title</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>GeneralTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/generaltab.py" line="37"/>
+      <source>General</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/generaltab.py" line="172"/>
+      <source>primary</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="648"/>
+      <source>Preview</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SlideController</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/slidecontroller.py" line="105"/>
+      <source>Live</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>AlertsTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/alertstab.py" line="157"/>
+      <source>Preview</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>BiblesTab</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/bibles/lib/biblestab.py" line="159"/>
+      <source>continuous</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="569"/>
+      <source>Transparent</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/lib/mediaitem.py" line="133"/>
+      <source>Search</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_OpenSongImportDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/opensongimportdialog.py" line="106"/>
+      <source>Import</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="583"/>
+      <source>Background</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_EditSongDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/forms/editsongdialog.py" line="422"/>
+      <source>Add</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/lib/mediaitem.py" line="137"/>
+      <source>Lyrics</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>MediaManagerItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/lib/mediamanageritem.py" line="229"/>
+      <source>Delete</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_MainWindow</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="377"/>
+      <source>F11</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="366"/>
+      <source>F10</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AuditDetailDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/audit/forms/auditdetaildialog.py" line="167"/>
+      <source>to</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_MainWindow</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/mainwindow.py" line="347"/>
+      <source>F12</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>SongMediaItem</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/plugins/songs/lib/mediaitem.py" line="138"/>
+      <source>Authors</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_PluginViewDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/plugindialog.py" line="107"/>
+      <source>Active</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+  <context>
+    <name>Ui_AmendThemeDialog</name>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="592"/>
+      <source>Italics</source>
+      <translation type="unfinished"></translation>
+    </message>
+    <message>
+      <location filename="/home/raoul/Projects/openlp/i18n/openlp/core/ui/amendthemedialog.py" line="572"/>
+      <source>Gradient</source>
+      <translation type="unfinished"></translation>
+    </message>
+  </context>
+
+</TS>

=== modified file 'openlp-1to2-converter.py'
--- openlp-1to2-converter.py	2009-10-20 16:54:56 +0000
+++ openlp-1to2-converter.py	2009-10-24 07:35:24 +0000
@@ -1,5 +1,27 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten      #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# 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 sys
 import os

=== added file 'openlp-get-strings.py'
--- openlp-get-strings.py	1970-01-01 00:00:00 +0000
+++ openlp-get-strings.py	2009-10-24 07:35:24 +0000
@@ -0,0 +1,98 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten      #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# 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 os
+import sys
+import re
+
+ts_file = u"""<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="1.1">
+%s
+</TS>
+"""
+ts_context = u"""  <context>
+    <name>%s</name>
+%s  </context>
+"""
+ts_message = u"""    <message>
+      <location filename="%s" line="%d"/>
+      <source>%s</source>
+      <translation type="unfinished"></translation>
+    </message>
+"""
+find_trUtf8 = re.compile(r"trUtf8\(u'([\w]+)'\)", re.UNICODE)
+strings = {}
+
+def parse_file(filename):
+    global strings
+    file = open(filename, u'r')
+    class_name = u''
+    line_number = 0
+    for line in file:
+        line_number += 1
+        if line[:5] == u'class':
+            class_name = line[6:line.find(u'(')]
+            continue
+        for match in find_trUtf8.finditer(line):
+            key = u'%s-%s' % (class_name, match.group(1))
+            if not key in strings:
+                strings[key] = [class_name, filename, line_number, match.group(1)]
+    file.close()
+
+def write_file(filename):
+    global strings
+    translation_file = u''
+    translation_contexts = []
+    translation_messages = []
+    class_name = strings[strings.keys()[0]][0]
+    current_context = u''
+    for key, translation in strings.iteritems():
+        if class_name != translation[0]:
+            current_context = ts_context % (class_name, u''.join(translation_messages))
+            translation_contexts.append(current_context)
+            translation_messages = []
+            class_name = translation[0]
+        translation_messages.append(ts_message % (translation[1], translation[2], translation[3]))
+    current_context = ts_context % (class_name, u''.join(translation_messages))
+    translation_contexts.append(current_context)
+    translation_file = ts_file % (u''.join(translation_contexts))
+    file = open(filename, u'w')
+    file.write(translation_file)
+    file.close()
+
+def main():
+    start_dir = u'/home/raoul/Projects/openlp/i18n'
+    for root, dirs, files in os.walk(start_dir):
+        for file in files:
+            if file.endswith(u'.py'):
+                print u'Parsing "%s"' % file
+                parse_file(os.path.join(root, file))
+    print u'Generating TS file...',
+    write_file(os.path.join(start_dir, u'i18n', u'openlp_en.ts'))
+    print u'done.'
+
+if __name__ == u'__main__':
+    main()

=== modified file 'openlp/core/lib/mediamanageritem.py'
--- openlp/core/lib/mediamanageritem.py	2009-10-17 18:52:42 +0000
+++ openlp/core/lib/mediamanageritem.py	2009-10-24 07:35:24 +0000
@@ -205,72 +205,50 @@
         ## File Button ##
         if self.hasFileIcon:
             self.addToolbarButton(
-                translate(
-                    self.TranslationContext, u'Load %s' % self.PluginTextShort),
-                translate(
-                    self.TranslationContext,
-                    u'Load a new %s' % self.PluginTextShort),
-                u':%s_load.png' % self.IconPath,
-                self.onFileClick,
-                u'%sFileItem' %self.PluginTextShort)
+                u'%s %s' % (self.trUtf8(u'Load'), self.PluginTextShort),
+                u'%s %s' % (self.trUtf8(u'Load a new'), self.PluginTextShort),
+                u':%s_load.png' % self.IconPath, self.onFileClick,
+                u'%sFileItem' % self.PluginTextShort)
         ## New Button ##
         if self.hasNewIcon:
             self.addToolbarButton(
-                translate(
-                    self.TranslationContext, u'New %s' % self.PluginTextShort),
-                translate(
-                    self.TranslationContext,
-                    u'Add a new %s' % self.PluginTextShort),
-                u':%s_new.png' % self.IconPath,
-                self.onNewClick,
+                u'%s %s' % (self.trUtf8(u'New'), self.PluginTextShort),
+                u'%s %s' % (self.trUtf8(u'Add a new'), self.PluginTextShort),
+                u':%s_new.png' % self.IconPath, self.onNewClick,
                 u'%sNewItem' % self.PluginTextShort)
         ## Edit Button ##
         if self.hasEditIcon:
             self.addToolbarButton(
-                translate(
-                    self.TranslationContext, u'Edit %s' % self.PluginTextShort),
-                translate(
-                    self.TranslationContext,
-                    u'Edit the selected %s' % self.PluginTextShort),
-                u':%s_edit.png' % self.IconPath,
-                self.onEditClick,
+                u'%s %s' % (self.trUtf8(u'Edit'), self.PluginTextShort),
+                u'%s %s' % (self.trUtf8(u'Edit the selected'), self.PluginTextShort),
+                u':%s_edit.png' % self.IconPath, self.onEditClick,
                 u'%sEditItem' %  self.PluginTextShort)
         ## Delete Button ##
         if self.hasDeleteIcon:
             self.addToolbarButton(
-                translate(
-                    self.TranslationContext, u'Delete %s' % self.PluginTextShort),
-                translate(self.TranslationContext, u'Delete the selected item'),
-                u':%s_delete.png' % self.IconPath,
-                self.onDeleteClick,
+                u'%s %s' % (self.trUtf8(u'Delete'), self.PluginTextShort),
+                self.trUtf8(u'Delete the selected item'),
+                u':%s_delete.png' % self.IconPath, self.onDeleteClick,
                 u'%sDeleteItem' % self.PluginTextShort)
         ## Separator Line ##
         self.addToolbarSeparator()
         ## Preview ##
         self.addToolbarButton(
-            translate(
-                self.TranslationContext, u'Preview %s' % self.PluginTextShort),
-            translate(self.TranslationContext, u'Preview the selected item'),
-            u':/system/system_preview.png',
-            self.onPreviewClick,
+            u'%s %s' % (self.trUtf8(u'Preview'), self.PluginTextShort),
+            self.trUtf8(u'Preview the selected item'),
+            u':/system/system_preview.png', self.onPreviewClick,
             u'PreviewItem')
         ## Live  Button ##
         self.addToolbarButton(
-            translate(self.TranslationContext, u'Go Live'),
-            translate(self.TranslationContext, u'Send the selected item live'),
-            u':/system/system_live.png',
-            self.onLiveClick,
+            self.trUtf8(u'Go Live'),
+            self.trUtf8(u'Send the selected item live'),
+            u':/system/system_live.png', self.onLiveClick,
             u'LiveItem')
         ## Add to service Button ##
         self.addToolbarButton(
-            translate(
-                self.TranslationContext,
-                u'Add %s to Service' % self.PluginTextShort),
-            translate(
-                self.TranslationContext,
-                u'Add the selected item(s) to the service'),
-            u':/system/system_add.png',
-            self.onAddClick,
+            u'%s %s %s' % (self.trUtf8(u'Add'), self.trUtf8(u'to Service'), self.PluginTextShort),
+            self.trUtf8(u'Add the selected item(s) to the service'),
+            u':/system/system_add.png', self.onAddClick,
             u'%sAddServiceItem' % self.PluginTextShort)
 
     def addListViewToToolBar(self):
@@ -283,33 +261,34 @@
             QtGui.QAbstractItemView.ExtendedSelection)
         self.ListView.setAlternatingRowColors(True)
         self.ListView.setDragEnabled(True)
-        self.ListView.setObjectName(self.PluginTextShort+u'ListView')
+        self.ListView.setObjectName(u'%sListView' % self.PluginTextShort)
         #Add tp PageLayout
         self.PageLayout.addWidget(self.ListView)
         #define and add the context menu
         self.ListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
         if self.hasEditIcon:
-            self.ListView.addAction(contextMenuAction(self.ListView,
-                u':' +self.IconPath+u'_new.png',
-                translate(self.TranslationContext,
-                u'&Edit ' + self.PluginTextShort),
-                self.onEditClick))
+            self.ListView.addAction(
+                contextMenuAction(
+                    self.ListView, u':%s_new.png' % self.IconPath,
+                    u'%s %s' % (self.trUtf8(u'&Edit'), self.PluginTextShort),
+                    self.onEditClick))
             self.ListView.addAction(contextMenuSeparator(self.ListView))
-        self.ListView.addAction(contextMenuAction(
-            self.ListView, u':/system/system_preview.png',
-            translate(self.TranslationContext,
-                u'&Preview ' + self.PluginTextShort),
-            self.onPreviewClick))
-        self.ListView.addAction(contextMenuAction(
-            self.ListView, u':/system/system_live.png',
-            translate(self.TranslationContext, u'&Show Live'),
-            self.onLiveClick))
-        self.ListView.addAction(contextMenuAction(
-            self.ListView, u':/system/system_add.png',
-            translate(self.TranslationContext, u'&Add to Service'),
-            self.onAddClick))
-        QtCore.QObject.connect(self.ListView,
-           QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onPreviewClick)
+        self.ListView.addAction(
+            contextMenuAction(
+                self.ListView, u':/system/system_preview.png',
+                u'%s %s' % (self.trUtf8(u'&Preview'), self.PluginTextShort),
+                self.onPreviewClick))
+        self.ListView.addAction(
+            contextMenuAction(
+                self.ListView, u':/system/system_live.png',
+                self.trUtf8(u'&Show Live'), self.onLiveClick))
+        self.ListView.addAction(
+            contextMenuAction(
+                self.ListView, u':/system/system_add.png',
+                self.trUtf8(u'&Add to Service'), self.onAddClick))
+        QtCore.QObject.connect(
+            self.ListView, QtCore.SIGNAL(u'doubleClicked(QModelIndex)'),
+            self.onPreviewClick)
 
     def initialise(self):
         """
@@ -332,10 +311,9 @@
         pass
 
     def onFileClick(self):
-        files = QtGui.QFileDialog.getOpenFileNames(None,
-            translate(self.TranslationContext, self.OnNewPrompt),
-            self.parent.config.get_last_dir(),
-            self.OnNewFileMasks)
+        files = QtGui.QFileDialog.getOpenFileNames(
+            self, self.trUtf8(self.OnNewPrompt),
+            self.parent.config.get_last_dir(), self.OnNewFileMasks)
         log.info(u'New files(s)%s', unicode(files))
         if len(files) > 0:
             self.loadList(files)
@@ -354,22 +332,24 @@
         return filelist
 
     def loadList(self, list):
-        raise NotImplementedError(
-            u'MediaManagerItem.loadList needs to be defined by the plugin')
+        raise NotImplementedError(u'MediaManagerItem.loadList needs to be '
+            u'defined by the plugin')
 
     def onNewClick(self):
-        raise NotImplementedError(
-            u'MediaManagerItem.onNewClick needs to be defined by the plugin')
+        raise NotImplementedError(u'MediaManagerItem.onNewClick needs to be '
+            u'defined by the plugin')
 
     def onEditClick(self):
-        raise NotImplementedError(
-            u'MediaManagerItem.onEditClick needs to be defined by the plugin')
+        raise NotImplementedError(u'MediaManagerItem.onEditClick needs to be '
+            u'defined by the plugin')
 
     def onDeleteClick(self):
-        raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to be defined by the plugin')
+        raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to '
+            u'be defined by the plugin')
 
     def generateSlideData(self, item):
-        raise NotImplementedError(u'MediaManagerItem.generateSlideData needs to be defined by the plugin')
+        raise NotImplementedError(u'MediaManagerItem.generateSlideData needs '
+            u'to be defined by the plugin')
 
     def onPreviewClick(self):
         log.debug(self.PluginTextShort + u' Preview Requested')

=== modified file 'openlp/core/lib/settingstab.py'
--- openlp/core/lib/settingstab.py	2009-09-29 12:51:38 +0000
+++ openlp/core/lib/settingstab.py	2009-10-24 07:35:24 +0000
@@ -44,7 +44,9 @@
             to write to when the ``save`` method is called.
         """
         QtGui.QWidget.__init__(self)
-        self.tabTitle = title
+        self.tabTitle = self.trUtf8(title)
+        # Use the line below when pulling the translation template file.
+        #self.tabTitle = title
         self.setupUi()
         self.retranslateUi()
         self.initialise()

=== modified file 'openlp/core/test/test_mediamanageritem.py'
--- openlp/core/test/test_mediamanageritem.py	2009-09-25 00:43:42 +0000
+++ openlp/core/test/test_mediamanageritem.py	2009-10-24 07:35:24 +0000
@@ -31,31 +31,31 @@
         self.main_window.resize(200, 600)
         self.MediaManagerDock = QtGui.QDockWidget(self.main_window)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
-	    QtGui.QSizePolicy.Expanding)
+        QtGui.QSizePolicy.Expanding)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
         sizePolicy.setHeightForWidth(
-	    self.MediaManagerDock.sizePolicy().hasHeightForWidth())
+        self.MediaManagerDock.sizePolicy().hasHeightForWidth())
         self.MediaManagerDock.setSizePolicy(sizePolicy)
         icon = QtGui.QIcon()
         icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
-	    QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.MediaManagerDock.setWindowIcon(icon)
         self.MediaManagerDock.setFloating(False)
         self.MediaManagerContents = QtGui.QWidget()
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
-	    QtGui.QSizePolicy.Expanding)
+        QtGui.QSizePolicy.Expanding)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
         sizePolicy.setHeightForWidth(
-	    self.MediaManagerContents.sizePolicy().hasHeightForWidth())
+        self.MediaManagerContents.sizePolicy().hasHeightForWidth())
         self.MediaManagerContents.setSizePolicy(sizePolicy)
         self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
         self.MediaManagerLayout.setContentsMargins(0, 2, 0, 0)
         self.MediaToolBox = QtGui.QToolBox(self.MediaManagerContents)
         self.MediaManagerDock.setWidget(self.MediaManagerContents)
         self.main_window.addDockWidget(QtCore.Qt.DockWidgetArea(1),
-	    self.MediaManagerDock)
+        self.MediaManagerDock)
         self.MediaManagerLayout.addWidget(self.MediaToolBox)
     def test1(self):
         log=logging.getLogger(u'test1')
@@ -68,10 +68,10 @@
         i1.addToolbarButton(u'Test1', u'Test1', None)
         i2.addToolbar()
         i2.addToolbarButton(u'Test2', u'Test2', None)
-        self.MediaToolBox.setItemText(self.MediaToolBox.indexOf(i1),
-	    translate(u'main_window', u'Item1'))
-        self.MediaToolBox.setItemText(self.MediaToolBox.indexOf(i2),
-	    translate(u'main_window', u'Item2'))
+        self.MediaToolBox.setItemText(
+            self.MediaToolBox.indexOf(i1), self.trUtf8(u'Item1'))
+        self.MediaToolBox.setItemText(
+            self.MediaToolBox.indexOf(i2), self.trUtf8(u'Item2'))
         log.info(u'Show window')
         self.main_window.show()
         log.info(u'End')

=== modified file 'openlp/core/ui/about.py'
--- openlp/core/ui/about.py	2009-09-29 17:18:18 +0000
+++ openlp/core/ui/about.py	2009-10-24 07:35:24 +0000
@@ -94,6 +94,9 @@
         self.License3Label.setWordWrap(True)
         self.License3Label.setObjectName(u'License3Label')
         self.LicenseTabLayout.addWidget(self.License3Label)
+        self.LicenseSpacer = QtGui.QSpacerItem(20, 40,
+            QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.LicenseTabLayout.addItem(self.LicenseSpacer)
         self.AboutNotebook.addTab(self.LicenseTab, u'License')
         self.CreditsTab = QtGui.QWidget()
         self.CreditsTab.setObjectName(u'CreditsTab')
@@ -138,21 +141,31 @@
         """
         Set up translation
         """
-        AboutForm.setWindowTitle(translate(u'AboutDialog', u'About openlp.org'))
-        self.CopyrightLabel.setText(translate(u'AboutDialog',
-            u'Copyright (c) 2004-2009 openlp.org Foundation'))
-        self.AboutAuthors.setText(translate(u'AboutDialog',
-            u'openlp.org is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below.'))
-        self.License1Label.setText(translate(u'AboutDialog',
-            u'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; either version 2 of the License, or (at your option) any later version.'))
-        self.License2Label.setText(translate(u'AboutDialog',
-            u'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.'))
-        self.License3Label.setText(translate(u'AboutDialog',
-            u'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.'))
+        AboutForm.setWindowTitle(self.trUtf8(u'About openlp.org'))
+        self.CopyrightLabel.setText(
+            self.trUtf8(u'Copyright \xa9 2004-2009 openlp.org Foundation'))
+        self.AboutAuthors.setText(self.trUtf8(
+            u'openlp.org is written and maintained by volunteers. If you would '
+            u'like to see more free Christian software being written, please '
+            u'consider contributing by using the button below.'))
+        self.License1Label.setText(self.trUtf8(
+            u'This program is free software; you can redistribute it and/or '
+            u'modify it under the terms of the GNU General Public License as '
+            u'published by the Free Software Foundation; either version 2 of '
+            u'the License, or (at your option) any later version.'))
+        self.License2Label.setText(self.trUtf8(
+            u'You should have received a copy of the GNU General Public '
+            u'License along with this program; if not, write to the Free '
+            u'Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, '
+            u'MA 02111-1307 USA.'))
+        self.License3Label.setText(self.trUtf8(
+            u'This program is distributed in the hope that it will be useful, '
+            u'but WITHOUT ANY WARRANTY; without even the implied warranty of '
+            u'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU '
+            u'General Public License for more details.'))
         self.AboutNotebook.setTabText(
-            self.AboutNotebook.indexOf(self.LicenseTab),
-            translate(u'AboutDialog', u'License'))
-        self.CreditsTextEdit.setPlainText(translate(u'AboutDialog',
+            self.AboutNotebook.indexOf(self.LicenseTab), self.trUtf8(u'License'))
+        self.CreditsTextEdit.setPlainText(self.trUtf8(
             u'Project Lead\n'
             u'    Raoul \"superfly\" Snyman\n'
             u'\n'
@@ -165,11 +178,10 @@
             u'    Jon \"Meths\" Tibble\n'
             u'    Carsten \"catini\" Tingaard'))
         self.AboutNotebook.setTabText(
-            self.AboutNotebook.indexOf(self.CreditsTab),
-            translate(u'AboutDialog', u'Credits'))
-        self.ContributeButton.setText(translate(u'AboutDialog', u'Contribute'))
-        self.CloseButton.setText(translate(u'AboutDialog', u'Close'))
-        self.extContributeItem.setText(translate(u'AboutDialog', u'&Contribute'))
+            self.AboutNotebook.indexOf(self.CreditsTab), self.trUtf8(u'Credits'))
+        self.ContributeButton.setText(self.trUtf8(u'Contribute'))
+        self.CloseButton.setText(self.trUtf8(u'Close'))
+        self.extContributeItem.setText(self.trUtf8(u'&Contribute'))
 
     def onContributeButtonClicked(self):
         """
@@ -178,3 +190,4 @@
         import webbrowser
         url = "http://www.openlp.org/en/documentation/introduction/contributing.html";
         webbrowser.open_new(url)
+

=== modified file 'openlp/core/ui/alertform.py'
--- openlp/core/ui/alertform.py	2009-10-01 23:43:16 +0000
+++ openlp/core/ui/alertform.py	2009-10-24 07:35:24 +0000
@@ -92,10 +92,10 @@
         QtCore.QMetaObject.connectSlotsByName(AlertForm)
 
     def retranslateUi(self, AlertForm):
-        AlertForm.setWindowTitle(translate(u'AlertForm', u'Alert Message'))
-        self.AlertEntryLabel.setText(translate(u'AlertForm', u'Alert Text:'))
-        self.DisplayButton.setText(translate(u'AlertForm', u'Display'))
-        self.CancelButton.setText(translate(u'AlertForm', u'Cancel'))
+        AlertForm.setWindowTitle(self.trUtf8(u'Alert Message'))
+        self.AlertEntryLabel.setText(self.trUtf8(u'Alert Text:'))
+        self.DisplayButton.setText(self.trUtf8(u'Display'))
+        self.CancelButton.setText(self.trUtf8(u'Cancel'))
 
     def onDisplayClicked(self):
         self.parent.mainDisplay.displayAlert(self.AlertEntryEditItem.text())

=== modified file 'openlp/core/ui/alertstab.py'
--- openlp/core/ui/alertstab.py	2009-09-21 17:56:36 +0000
+++ openlp/core/ui/alertstab.py	2009-10-24 07:35:24 +0000
@@ -31,10 +31,11 @@
     AlertsTab is the alerts settings tab in the settings dialog.
     """
     def __init__(self):
+        SettingsTab.__init__(self, u'Alerts', u'Alerts')
+        # Use the line below when pulling the translation template file.
+        #SettingsTab.__init__(self, self.trUtf8(u'Alerts'), u'Alerts')
         self.font_color = '#ffffff'
         self.bg_color = '#660000'
-        SettingsTab.__init__(
-            self, translate(u'AlertsTab', u'Alerts'), u'Alerts')
 
     def setupUi(self):
         self.setObjectName(u'AlertsTab')
@@ -147,16 +148,14 @@
             QtCore.SIGNAL(u'valueChanged(int)'), self.onTimeoutSpinBoxChanged)
 
     def retranslateUi(self):
-        self.FontGroupBox.setTitle(translate(u'AlertsTab', u'Font'))
-        self.FontLabel.setText(translate(u'AlertsTab', u'Font Name:'))
-        self.FontColorLabel.setText(translate(u'AlertsTab', u'Font Color:'))
-        self.BackgroundColorLabel.setText(
-            translate(u'AlertsTab', u'Background Color:'))
-        self.TimeoutLabel.setText(translate(u'AlertsTab', u'Alert timeout:'))
-        self.TimeoutSpinBox.setSuffix(translate(u'AlertsTab', u's'))
-        self.PreviewGroupBox.setTitle(translate(u'AlertsTab', u'Preview'))
-        self.FontPreview.setText(
-            translate(u'AlertsTab', u'openlp.org 2.0 rocks!'))
+        self.FontGroupBox.setTitle(self.trUtf8(u'Font'))
+        self.FontLabel.setText(self.trUtf8(u'Font Name:'))
+        self.FontColorLabel.setText(self.trUtf8(u'Font Color:'))
+        self.BackgroundColorLabel.setText(self.trUtf8(u'Background Color:'))
+        self.TimeoutLabel.setText(self.trUtf8(u'Alert timeout:'))
+        self.TimeoutSpinBox.setSuffix(self.trUtf8(u's'))
+        self.PreviewGroupBox.setTitle(self.trUtf8(u'Preview'))
+        self.FontPreview.setText(self.trUtf8(u'openlp.org 2.0 rocks!'))
 
     def onBackgroundColorButtonClicked(self):
         self.bg_color = QtGui.QColorDialog.getColor(

=== modified file 'openlp/core/ui/amendthemedialog.py'
--- openlp/core/ui/amendthemedialog.py	2009-10-22 19:03:08 +0000
+++ openlp/core/ui/amendthemedialog.py	2009-10-24 07:35:24 +0000
@@ -562,79 +562,87 @@
         AmendThemeDialog.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox)
 
     def retranslateUi(self, AmendThemeDialog):
-        AmendThemeDialog.setWindowTitle(translate(u'AmendThemeDialog', u'Theme Maintenance'))
-        self.ThemeNameLabel.setText(translate(u'AmendThemeDialog', u'Theme Name:'))
-        self.BackgroundLabel.setText(translate(u'AmendThemeDialog', u'Background:'))
-        self.BackgroundComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Opaque'))
-        self.BackgroundComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Transparent'))
-        self.BackgroundTypeLabel.setText(translate(u'AmendThemeDialog', u'Background Type:'))
-        self.BackgroundTypeComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Solid Color'))
-        self.BackgroundTypeComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Gradient'))
-        self.BackgroundTypeComboBox.setItemText(2, translate(u'AmendThemeDialog', u'Image'))
-        self.Color1Label.setText(translate(u'AmendThemeDialog', u'<Color1>'))
-        self.Color2Label.setText(translate(u'AmendThemeDialog', u'<Color2>'))
-        self.ImageLabel.setText(translate(u'AmendThemeDialog', u'Image:'))
-        self.GradientLabel.setText(translate(u'AmendThemeDialog', u'Gradient :'))
-        self.GradientComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Horizontal'))
-        self.GradientComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Vertical'))
-        self.GradientComboBox.setItemText(2, translate(u'AmendThemeDialog', u'Circular'))
-        self.ThemeTabWidget.setTabText(self.ThemeTabWidget.indexOf(self.BackgroundTab), translate(u'AmendThemeDialog', u'Background'))
-        self.FontMainGroupBox.setTitle(translate(u'AmendThemeDialog', u'Main Font'))
-        self.FontMainlabel.setText(translate(u'AmendThemeDialog', u'Font:'))
-        self.FontMainColorLabel.setText(translate(u'AmendThemeDialog', u'Font Color:'))
-        self.FontMainSize.setText(translate(u'AmendThemeDialog', u'Size:'))
-        self.FontMainSizeSpinBox.setSuffix(translate(u'AmendThemeDialog', u'pt'))
-        self.FontMainWrapIndentationLabel.setText(translate(u'AmendThemeDialog', u'Wrap Indentation'))
-        self.FontMainWeightComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Normal'))
-        self.FontMainWeightComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Bold'))
-        self.FontMainWeightComboBox.setItemText(2, translate(u'AmendThemeDialog', u'Italics'))
-        self.FontMainWeightComboBox.setItemText(3, translate(u'AmendThemeDialog', u'Bold/Italics'))
-        self.FontMainWeightLabel.setText(translate("AmendThemeDialog", u'Font Weight:'))
-        self.MainLocationGroupBox.setTitle(translate(u'AmendThemeDialog', u'Display Location'))
-        self.DefaultLocationLabel.setText(translate(u'AmendThemeDialog', u'Use Default Location:'))
-        self.FontMainXLabel.setText(translate(u'AmendThemeDialog', u'X Position:'))
-        self.FontMainYLabel.setText(translate(u'AmendThemeDialog', u'Y Position:'))
-        self.FontMainWidthLabel.setText(translate(u'AmendThemeDialog', u'Width:'))
-        self.FontMainHeightLabel.setText(translate(u'AmendThemeDialog', u'Height:'))
-        self.FontMainXSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.FontMainYSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.FontMainWidthSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.FontMainHeightSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.ThemeTabWidget.setTabText(self.ThemeTabWidget.indexOf(self.FontMainTab), translate(u'AmendThemeDialog', u'Font Main'))
-        self.FooterFontGroupBox.setTitle(translate(u'AmendThemeDialog', u'Footer Font'))
-        self.FontFooterLabel.setText(translate(u'AmendThemeDialog', u'Font:'))
-        self.FontFooterColorLabel.setText(translate(u'AmendThemeDialog', u'Font Color:'))
-        self.FontFooterSizeLabel.setText(translate(u'AmendThemeDialog', u'Size:'))
-        self.FontFooterSizeSpinBox.setSuffix(translate(u'AmendThemeDialog', u'pt'))
-        self.FontFooterWeightComboBox.setItemText(0, translate("AmendThemeDialog", u'Normal'))
-        self.FontFooterWeightComboBox.setItemText(1, translate("AmendThemeDialog", u'Bold'))
-        self.FontFooterWeightComboBox.setItemText(2, translate("AmendThemeDialog", u'Italics'))
-        self.FontFooterWeightComboBox.setItemText(3, translate("AmendThemeDialog", u'Bold/Italics'))
-        self.FontFooterWeightLabel.setText(translate("AmendThemeDialog", u'Font Weight:'))
-        self.LocationFooterGroupBox.setTitle(translate(u'AmendThemeDialog', u'Display Location'))
-        self.FontFooterDefaultLabel.setText(translate(u'AmendThemeDialog', u'Use Default Location:'))
-        self.FontFooterXLabel.setText(translate(u'AmendThemeDialog', u'X Position:'))
-        self.FontFooterYLabel.setText(translate(u'AmendThemeDialog', u'Y Position:'))
-        self.FontFooterWidthLabel.setText(translate(u'AmendThemeDialog', u'Width:'))
-        self.FontFooterHeightLabel.setText(translate(u'AmendThemeDialog', u'Height:'))
-        self.FontFooterXSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.FontFooterYSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.FontFooterWidthSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.FontFooterHeightSpinBox.setSuffix(translate(u'AmendThemeDialog', u'px'))
-        self.ThemeTabWidget.setTabText(self.ThemeTabWidget.indexOf(self.FontFooterTab), translate(u'AmendThemeDialog', u'Font Footer'))
-        self.ShadowGroupBox.setTitle(translate(u'AmendThemeDialog', u'Shadow && Outline'))
-        self.OutlineColorLabel.setText(translate(u'AmendThemeDialog', u'Outline Color:'))
-        self.OutlineEnabledLabel.setText(translate(u'AmendThemeDialog', u'Show Outline:'))
-        self.ShadowColorLabel.setText(translate(u'AmendThemeDialog', u'Shadow Color:'))
-        self.ShadowEnabledLabel.setText(translate(u'AmendThemeDialog', u'Show Shadow:'))
-        self.AlignmentGroupBox.setTitle(translate(u'AmendThemeDialog', u'Alignment'))
-        self.HorizontalLabel.setText(translate(u'AmendThemeDialog', u'Horizontal Align:'))
-        self.HorizontalComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Left'))
-        self.HorizontalComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Right'))
-        self.HorizontalComboBox.setItemText(2, translate(u'AmendThemeDialog', u'Center'))
-        self.VerticalLabel.setText(translate(u'AmendThemeDialog', u'Vertical Align:'))
-        self.VerticalComboBox.setItemText(0, translate(u'AmendThemeDialog', u'Top'))
-        self.VerticalComboBox.setItemText(1, translate(u'AmendThemeDialog', u'Middle'))
-        self.VerticalComboBox.setItemText(2, translate(u'AmendThemeDialog', u'Bottom'))
-        self.ThemeTabWidget.setTabText(self.ThemeTabWidget.indexOf(self.OtherOptionsTab), translate(u'AmendThemeDialog', u'Other Options'))
-        self.PreviewGroupBox.setTitle(translate(u'AmendThemeDialog', u'Preview'))
+        AmendThemeDialog.setWindowTitle(self.trUtf8(u'Theme Maintenance'))
+        self.ThemeNameLabel.setText(self.trUtf8(u'Theme Name:'))
+        self.BackgroundLabel.setText(self.trUtf8(u'Background:'))
+        self.BackgroundComboBox.setItemText(0, self.trUtf8(u'Opaque'))
+        self.BackgroundComboBox.setItemText(1, self.trUtf8(u'Transparent'))
+        self.BackgroundTypeLabel.setText(self.trUtf8(u'Background Type:'))
+        self.BackgroundTypeComboBox.setItemText(0, self.trUtf8(u'Solid Color'))
+        self.BackgroundTypeComboBox.setItemText(1, self.trUtf8(u'Gradient'))
+        self.BackgroundTypeComboBox.setItemText(2, self.trUtf8(u'Image'))
+        self.Color1Label.setText(self.trUtf8(u'<Color1>'))
+        self.Color2Label.setText(self.trUtf8(u'<Color2>'))
+        self.ImageLabel.setText(self.trUtf8(u'Image:'))
+        self.GradientLabel.setText(self.trUtf8(u'Gradient :'))
+        self.GradientComboBox.setItemText(0, self.trUtf8(u'Horizontal'))
+        self.GradientComboBox.setItemText(1, self.trUtf8(u'Vertical'))
+        self.GradientComboBox.setItemText(2, self.trUtf8(u'Circular'))
+        self.ThemeTabWidget.setTabText(
+            self.ThemeTabWidget.indexOf(self.BackgroundTab),
+            self.trUtf8(u'Background'))
+        self.FontMainGroupBox.setTitle(self.trUtf8(u'Main Font'))
+        self.FontMainlabel.setText(self.trUtf8(u'Font:'))
+        self.FontMainColorLabel.setText(self.trUtf8(u'Font Color:'))
+        self.FontMainSize.setText(self.trUtf8(u'Size:'))
+        self.FontMainSizeSpinBox.setSuffix(self.trUtf8(u'pt'))
+        self.FontMainWrapIndentationLabel.setText(self.trUtf8(u'Wrap Indentation'))
+        self.FontMainWeightComboBox.setItemText(0, self.trUtf8(u'Normal'))
+        self.FontMainWeightComboBox.setItemText(1, self.trUtf8(u'Bold'))
+        self.FontMainWeightComboBox.setItemText(2, self.trUtf8(u'Italics'))
+        self.FontMainWeightComboBox.setItemText(3, self.trUtf8(u'Bold/Italics'))
+        self.FontMainWeightLabel.setText(self.trUtf8(u'Font Weight:'))
+        self.MainLocationGroupBox.setTitle(self.trUtf8(u'Display Location'))
+        self.DefaultLocationLabel.setText(self.trUtf8(u'Use Default Location:'))
+        self.FontMainXLabel.setText(self.trUtf8(u'X Position:'))
+        self.FontMainYLabel.setText(self.trUtf8(u'Y Position:'))
+        self.FontMainWidthLabel.setText(self.trUtf8(u'Width:'))
+        self.FontMainHeightLabel.setText(self.trUtf8(u'Height:'))
+        self.FontMainXSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.FontMainYSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.FontMainWidthSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.FontMainHeightSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.ThemeTabWidget.setTabText(
+            self.ThemeTabWidget.indexOf(self.FontMainTab),
+            self.trUtf8(u'Font Main'))
+        self.FooterFontGroupBox.setTitle(self.trUtf8(u'Footer Font'))
+        self.FontFooterLabel.setText(self.trUtf8(u'Font:'))
+        self.FontFooterColorLabel.setText(self.trUtf8(u'Font Color:'))
+        self.FontFooterSizeLabel.setText(self.trUtf8(u'Size:'))
+        self.FontFooterSizeSpinBox.setSuffix(self.trUtf8(u'pt'))
+        self.FontFooterWeightComboBox.setItemText(0, self.trUtf8(u'Normal'))
+        self.FontFooterWeightComboBox.setItemText(1, self.trUtf8(u'Bold'))
+        self.FontFooterWeightComboBox.setItemText(2, self.trUtf8(u'Italics'))
+        self.FontFooterWeightComboBox.setItemText(3, self.trUtf8(u'Bold/Italics'))
+        self.FontFooterWeightLabel.setText(self.trUtf8(u'Font Weight:'))
+        self.LocationFooterGroupBox.setTitle(self.trUtf8(u'Display Location'))
+        self.FontFooterDefaultLabel.setText(self.trUtf8(u'Use Default Location:'))
+        self.FontFooterXLabel.setText(self.trUtf8(u'X Position:'))
+        self.FontFooterYLabel.setText(self.trUtf8(u'Y Position:'))
+        self.FontFooterWidthLabel.setText(self.trUtf8(u'Width:'))
+        self.FontFooterHeightLabel.setText(self.trUtf8(u'Height:'))
+        self.FontFooterXSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.FontFooterYSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.FontFooterWidthSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.FontFooterHeightSpinBox.setSuffix(self.trUtf8(u'px'))
+        self.ThemeTabWidget.setTabText(
+            self.ThemeTabWidget.indexOf(self.FontFooterTab),
+            self.trUtf8(u'Font Footer'))
+        self.ShadowGroupBox.setTitle(self.trUtf8(u'Shadow && Outline'))
+        self.OutlineColorLabel.setText(self.trUtf8(u'Outline Color:'))
+        self.OutlineEnabledLabel.setText(self.trUtf8(u'Show Outline:'))
+        self.ShadowColorLabel.setText(self.trUtf8(u'Shadow Color:'))
+        self.ShadowEnabledLabel.setText(self.trUtf8(u'Show Shadow:'))
+        self.AlignmentGroupBox.setTitle(self.trUtf8(u'Alignment'))
+        self.HorizontalLabel.setText(self.trUtf8(u'Horizontal Align:'))
+        self.HorizontalComboBox.setItemText(0, self.trUtf8(u'Left'))
+        self.HorizontalComboBox.setItemText(1, self.trUtf8(u'Right'))
+        self.HorizontalComboBox.setItemText(2, self.trUtf8(u'Center'))
+        self.VerticalLabel.setText(self.trUtf8(u'Vertical Align:'))
+        self.VerticalComboBox.setItemText(0, self.trUtf8(u'Top'))
+        self.VerticalComboBox.setItemText(1, self.trUtf8(u'Middle'))
+        self.VerticalComboBox.setItemText(2, self.trUtf8(u'Bottom'))
+        self.ThemeTabWidget.setTabText(
+            self.ThemeTabWidget.indexOf(self.OtherOptionsTab),
+            self.trUtf8(u'Other Options'))
+        self.PreviewGroupBox.setTitle(self.trUtf8(u'Preview'))

=== modified file 'openlp/core/ui/amendthemeform.py'
--- openlp/core/ui/amendthemeform.py	2009-10-23 16:10:09 +0000
+++ openlp/core/ui/amendthemeform.py	2009-10-24 07:35:24 +0000
@@ -199,7 +199,8 @@
         self.previewTheme(self.theme)
 
     def onImageToolButtonClicked(self):
-        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file')
+        filename = QtGui.QFileDialog.getOpenFileName(
+            self, self.trUtf8('Open file'))
         if filename != u'':
             self.ImageLineEdit.setText(filename)
             self.theme.background_filename = filename
@@ -592,8 +593,7 @@
             if theme.background_type == u'solid':
                 self.Color1PushButton.setStyleSheet(
                     u'background-color: %s' % unicode(theme.background_color))
-                self.Color1Label.setText(translate(u'ThemeManager',
-                    u'Background Color:'))
+                self.Color1Label.setText(self.trUtf8(u'Background Color:'))
                 self.Color1Label.setVisible(True)
                 self.Color1PushButton.setVisible(True)
                 self.Color2Label.setVisible(False)
@@ -608,10 +608,8 @@
                     % unicode(theme.background_startColor))
                 self.Color2PushButton.setStyleSheet(u'background-color: %s' \
                     % unicode(theme.background_endColor))
-                self.Color1Label.setText(translate(u'ThemeManager',
-                    u'First  Color:'))
-                self.Color2Label.setText(translate(u'ThemeManager',
-                    u'Second Color:'))
+                self.Color1Label.setText(self.trUtf8(u'First  Color:'))
+                self.Color2Label.setText(self.trUtf8(u'Second Color:'))
                 self.Color1Label.setVisible(True)
                 self.Color1PushButton.setVisible(True)
                 self.Color2Label.setVisible(True)
@@ -676,10 +674,14 @@
                          self.theme.font_main_italics)# italic
             mainFont.setPixelSize(int(self.theme.font_main_proportion))
             metrics = QtGui.QFontMetrics(mainFont)
+<<<<<<< TREE
             page_length = (int(self.FontMainHeightSpinBox.value()) / metrics.height() - 2 ) - 1
             log.debug(u'Page Length  area height %s , metrics %s , lines %s' %
                       (int(self.FontMainHeightSpinBox.value()), metrics.height(), page_length ))
+=======
+            page_length = (int(self.FontMainHeightSpinBox.value()) / metrics.height() - 2) - 1
+>>>>>>> MERGE-SOURCE
             self.FontMainLinesPageLabel.setText(
-                translate(u'ThemeManager', u'Slide Height is %s rows' % page_length  ))
+                self.trUtf8(u'Slide Height is %s rows') % page_length)
             frame = self.thememanager.generateImage(theme)
             self.ThemePreview.setPixmap(QtGui.QPixmap.fromImage(frame))

=== modified file 'openlp/core/ui/generaltab.py'
--- openlp/core/ui/generaltab.py	2009-10-19 16:18:32 +0000
+++ openlp/core/ui/generaltab.py	2009-10-24 07:35:24 +0000
@@ -32,7 +32,9 @@
     """
     def __init__(self, screen_list):
         self.screen_list = screen_list
-        SettingsTab.__init__(self, translate(u'GeneralTab', u'General'), u'General')
+        SettingsTab.__init__(self, u'General', u'General')
+        # Use this line when pulling the translation template
+        #SettingsTab.__init__(self, self.trUtf8(u'General'), u'General')
 
     def setupUi(self):
         self.setObjectName(u'GeneralTab')
@@ -131,16 +133,16 @@
             QtCore.SIGNAL(u'editingFinished()'), self.onPasswordEditLostFocus)
 
     def retranslateUi(self):
-        self.MonitorGroupBox.setTitle(translate(u'GeneralTab', u'Monitors'))
-        self.MonitorLabel.setText(translate(u'GeneralTab', u'Select monitor for output display:'))
-        self.StartupGroupBox.setTitle(translate(u'GeneralTab', u'Application Startup'))
-        self.WarningCheckBox.setText(translate(u'GeneralTab', u'Show blank screen warning'))
-        self.AutoOpenCheckBox.setText(translate(u'GeneralTab', u'Automatically open the last service'))
-        self.ShowSplashCheckBox.setText(translate(u'GeneralTab', u'Show the splash screen'))
-        self.CCLIGroupBox.setTitle(translate(u'GeneralTab', u'CCLI Details'))
-        self.NumberLabel.setText(translate(u'GeneralTab', u'CCLI Number:'))
-        self.UsernameLabel.setText(translate(u'GeneralTab', u'SongSelect Username:'))
-        self.PasswordLabel.setText(translate(u'GeneralTab', u'SongSelect Password:'))
+        self.MonitorGroupBox.setTitle(self.trUtf8(u'Monitors'))
+        self.MonitorLabel.setText(self.trUtf8(u'Select monitor for output display:'))
+        self.StartupGroupBox.setTitle(self.trUtf8(u'Application Startup'))
+        self.WarningCheckBox.setText(self.trUtf8(u'Show blank screen warning'))
+        self.AutoOpenCheckBox.setText(self.trUtf8(u'Automatically open the last service'))
+        self.ShowSplashCheckBox.setText(self.trUtf8(u'Show the splash screen'))
+        self.CCLIGroupBox.setTitle(self.trUtf8(u'CCLI Details'))
+        self.NumberLabel.setText(self.trUtf8(u'CCLI Number:'))
+        self.UsernameLabel.setText(self.trUtf8(u'SongSelect Username:'))
+        self.PasswordLabel.setText(self.trUtf8(u'SongSelect Password:'))
 
     def onMonitorComboBoxChanged(self):
         self.MonitorNumber = self.MonitorComboBox.currentIndex()
@@ -165,11 +167,9 @@
 
     def load(self):
         for screen in self.screen_list:
-            screen_name = translate(u'GeneralTab', u'Screen') + u' ' + \
-                unicode(screen[u'number'] + 1)
+            screen_name = u'%s %d' % (self.trUtf8(u'Screen'), screen[u'number'] + 1)
             if screen[u'primary']:
-                screen_name = screen_name + u' (' + \
-                    translate(u'GeneralTab', u'primary') + u')'
+                screen_name = u'%s (%s)' % (self.trUtf8(u'primary'), screen_name)
             self.MonitorComboBox.addItem(screen_name)
         # Get the configs
         self.MonitorNumber = int(self.config.get_config(u'Monitor', u'0'))

=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py	2009-10-21 04:57:45 +0000
+++ openlp/core/ui/mainwindow.py	2009-10-24 07:35:24 +0000
@@ -307,114 +307,98 @@
         """
         Set up the translation system
         """
-        MainWindow.mainTitle = translate(u'mainWindow', u'OpenLP 2.0')
-        MainWindow.defaultThemeText = translate(u'mainWindow',
+        MainWindow.mainTitle = self.trUtf8(u'OpenLP 2.0')
+        MainWindow.defaultThemeText = self.trUtf8(
             'Default Theme: ')
         MainWindow.setWindowTitle(MainWindow.mainTitle)
-        self.FileMenu.setTitle(translate(u'mainWindow', u'&File'))
-        self.FileImportMenu.setTitle(translate(u'mainWindow', u'&Import'))
-        self.FileExportMenu.setTitle(translate(u'mainWindow', u'&Export'))
-        self.OptionsMenu.setTitle(translate(u'mainWindow', u'&Options'))
-        self.OptionsViewMenu.setTitle(translate(u'mainWindow', u'&View'))
-        self.ViewModeMenu.setTitle(translate(u'mainWindow', u'M&ode'))
-        self.OptionsLanguageMenu.setTitle(translate(u'mainWindow',
+        self.FileMenu.setTitle(self.trUtf8(u'&File'))
+        self.FileImportMenu.setTitle(self.trUtf8(u'&Import'))
+        self.FileExportMenu.setTitle(self.trUtf8(u'&Export'))
+        self.OptionsMenu.setTitle(self.trUtf8(u'&Options'))
+        self.OptionsViewMenu.setTitle(self.trUtf8(u'&View'))
+        self.ViewModeMenu.setTitle(self.trUtf8(u'M&ode'))
+        self.OptionsLanguageMenu.setTitle(self.trUtf8(
             u'&Language'))
-        self.ToolsMenu.setTitle(translate(u'mainWindow', u'&Tools'))
-        self.HelpMenu.setTitle(translate(u'mainWindow', u'&Help'))
+        self.ToolsMenu.setTitle(self.trUtf8(u'&Tools'))
+        self.HelpMenu.setTitle(self.trUtf8(u'&Help'))
         self.MediaManagerDock.setWindowTitle(
-            translate(u'mainWindow', u'Media Manager'))
+            self.trUtf8(u'Media Manager'))
         self.ServiceManagerDock.setWindowTitle(
-            translate(u'mainWindow', u'Service Manager'))
+            self.trUtf8(u'Service Manager'))
         self.ThemeManagerDock.setWindowTitle(
-            translate(u'mainWindow', u'Theme Manager'))
-        self.FileNewItem.setText(translate(u'mainWindow', u'&New'))
-        self.FileNewItem.setToolTip(translate(u'mainWindow', u'New Service'))
-        self.FileNewItem.setStatusTip(
-            translate(u'mainWindow', u'Create a new Service'))
-        self.FileNewItem.setShortcut(translate(u'mainWindow', u'Ctrl+N'))
-        self.FileOpenItem.setText(translate(u'mainWindow', u'&Open'))
-        self.FileOpenItem.setToolTip(translate(u'mainWindow', u'Open Service'))
-        self.FileOpenItem.setStatusTip(
-            translate(u'mainWindow', u'Open an existing service'))
-        self.FileOpenItem.setShortcut(translate(u'mainWindow', u'Ctrl+O'))
-        self.FileSaveItem.setText(translate(u'mainWindow', u'&Save'))
-        self.FileSaveItem.setToolTip(translate(u'mainWindow', u'Save Service'))
+            self.trUtf8(u'Theme Manager'))
+        self.FileNewItem.setText(self.trUtf8(u'&New'))
+        self.FileNewItem.setToolTip(self.trUtf8(u'New Service'))
+        self.FileNewItem.setStatusTip(self.trUtf8(u'Create a new Service'))
+        self.FileNewItem.setShortcut(self.trUtf8(u'Ctrl+N'))
+        self.FileOpenItem.setText(self.trUtf8(u'&Open'))
+        self.FileOpenItem.setToolTip(self.trUtf8(u'Open Service'))
+        self.FileOpenItem.setStatusTip(self.trUtf8(u'Open an existing service'))
+        self.FileOpenItem.setShortcut(self.trUtf8(u'Ctrl+O'))
+        self.FileSaveItem.setText(self.trUtf8(u'&Save'))
+        self.FileSaveItem.setToolTip(self.trUtf8(u'Save Service'))
         self.FileSaveItem.setStatusTip(
-            translate(u'mainWindow', u'Save the current service to disk'))
-        self.FileSaveItem.setShortcut(translate(u'mainWindow', u'Ctrl+S'))
-        self.FileSaveAsItem.setText(translate(u'mainWindow', u'Save &As...'))
-        self.FileSaveAsItem.setToolTip(
-            translate(u'mainWindow', u'Save Service As'))
-        self.FileSaveAsItem.setStatusTip(translate(u'mainWindow',
-            u'Save the current service under a new name'))
-        self.FileSaveAsItem.setShortcut(translate(u'mainWindow', u'F12'))
-        self.FileExitItem.setText(translate(u'mainWindow', u'E&xit'))
-        self.FileExitItem.setStatusTip(translate(u'mainWindow', u'Quit OpenLP'))
-        self.FileExitItem.setShortcut(translate(u'mainWindow', u'Alt+F4'))
-        self.ImportThemeItem.setText(translate(u'mainWindow', u'&Theme'))
-        self.ImportLanguageItem.setText(translate(u'mainWindow', u'&Language'))
-        self.ExportThemeItem.setText(translate(u'mainWindow', u'&Theme'))
-        self.ExportLanguageItem.setText(translate(u'mainWindow', u'&Language'))
-        self.actionLook_Feel.setText(translate(u'mainWindow', u'Look && &Feel'))
-        self.OptionsSettingsItem.setText(translate(u'mainWindow', u'&Settings'))
-        self.ViewMediaManagerItem.setText(
-            translate(u'mainWindow', u'&Media Manager'))
-        self.ViewMediaManagerItem.setToolTip(
-            translate(u'mainWindow', u'Toggle Media Manager'))
-        self.ViewMediaManagerItem.setStatusTip(translate(u'mainWindow',
-            u'Toggle the visibility of the Media Manager'))
-        self.ViewMediaManagerItem.setShortcut(translate(u'mainWindow', u'F8'))
-        self.ViewThemeManagerItem.setText(
-            translate(u'mainWindow', u'&Theme Manager'))
-        self.ViewThemeManagerItem.setToolTip(
-            translate(u'mainWindow', u'Toggle Theme Manager'))
-        self.ViewThemeManagerItem.setStatusTip(translate(u'mainWindow',
-            u'Toggle the visibility of the Theme Manager'))
-        self.ViewThemeManagerItem.setShortcut(translate(u'mainWindow', u'F10'))
-        self.ViewServiceManagerItem.setText(
-            translate(u'mainWindow', u'&Service Manager'))
+            self.trUtf8(u'Save the current service to disk'))
+        self.FileSaveItem.setShortcut(self.trUtf8(u'Ctrl+S'))
+        self.FileSaveAsItem.setText(self.trUtf8(u'Save &As...'))
+        self.FileSaveAsItem.setToolTip(self.trUtf8(u'Save Service As'))
+        self.FileSaveAsItem.setStatusTip(
+            self.trUtf8(u'Save the current service under a new name'))
+        self.FileSaveAsItem.setShortcut(self.trUtf8(u'F12'))
+        self.FileExitItem.setText(self.trUtf8(u'E&xit'))
+        self.FileExitItem.setStatusTip(self.trUtf8(u'Quit OpenLP'))
+        self.FileExitItem.setShortcut(self.trUtf8(u'Alt+F4'))
+        self.ImportThemeItem.setText(self.trUtf8(u'&Theme'))
+        self.ImportLanguageItem.setText(self.trUtf8(u'&Language'))
+        self.ExportThemeItem.setText(self.trUtf8(u'&Theme'))
+        self.ExportLanguageItem.setText(self.trUtf8(u'&Language'))
+        self.actionLook_Feel.setText(self.trUtf8(u'Look && &Feel'))
+        self.OptionsSettingsItem.setText(self.trUtf8(u'&Settings'))
+        self.ViewMediaManagerItem.setText(self.trUtf8(u'&Media Manager'))
+        self.ViewMediaManagerItem.setToolTip(self.trUtf8(u'Toggle Media Manager'))
+        self.ViewMediaManagerItem.setStatusTip(
+            self.trUtf8(u'Toggle the visibility of the Media Manager'))
+        self.ViewMediaManagerItem.setShortcut(self.trUtf8(u'F8'))
+        self.ViewThemeManagerItem.setText(self.trUtf8(u'&Theme Manager'))
+        self.ViewThemeManagerItem.setToolTip(self.trUtf8(u'Toggle Theme Manager'))
+        self.ViewThemeManagerItem.setStatusTip(
+            self.trUtf8(u'Toggle the visibility of the Theme Manager'))
+        self.ViewThemeManagerItem.setShortcut(self.trUtf8(u'F10'))
+        self.ViewServiceManagerItem.setText(self.trUtf8(u'&Service Manager'))
         self.ViewServiceManagerItem.setToolTip(
-            translate(u'mainWindow', u'Toggle Service Manager'))
-        self.ViewServiceManagerItem.setStatusTip(translate(u'mainWindow',
-            u'Toggle the visibility of the Service Manager'))
-        self.ViewServiceManagerItem.setShortcut(translate(u'mainWindow', u'F9'))
-        self.action_Preview_Panel.setText(
-            translate(u'mainWindow', u'&Preview Panel'))
-        self.action_Preview_Panel.setToolTip(
-            translate(u'mainWindow', u'Toggle Preview Panel'))
-        self.action_Preview_Panel.setStatusTip(translate(u'mainWindow',
-            u'Toggle the visibility of the Preview Panel'))
-        self.action_Preview_Panel.setShortcut(translate(u'mainWindow', u'F11'))
-        self.ToolsAlertItem.setText(translate(u'mainWindow', u'&Alert'))
-        self.ToolsAlertItem.setStatusTip(
-            translate(u'mainWindow', u'Show an alert message'))
-        self.ToolsAlertItem.setShortcut(translate(u'mainWindow', u'F7'))
-        self.PluginItem.setText(translate(u'mainWindow', u'&Plugin List'))
-        self.PluginItem.setStatusTip(
-            translate(u'mainWindow', u'List the Plugins'))
-        self.PluginItem.setShortcut(translate(u'mainWindow', u'Alt+F7'))
-        self.HelpDocumentationItem.setText(
-            translate(u'mainWindow', u'&User Guide'))
-        self.HelpAboutItem.setText(translate(u'mainWindow', u'&About'))
+            self.trUtf8(u'Toggle Service Manager'))
+        self.ViewServiceManagerItem.setStatusTip(
+            self.trUtf8(u'Toggle the visibility of the Service Manager'))
+        self.ViewServiceManagerItem.setShortcut(self.trUtf8(u'F9'))
+        self.action_Preview_Panel.setText(self.trUtf8(u'&Preview Panel'))
+        self.action_Preview_Panel.setToolTip(self.trUtf8(u'Toggle Preview Panel'))
+        self.action_Preview_Panel.setStatusTip(
+            self.trUtf8(u'Toggle the visibility of the Preview Panel'))
+        self.action_Preview_Panel.setShortcut(self.trUtf8(u'F11'))
+        self.ToolsAlertItem.setText(self.trUtf8(u'&Alert'))
+        self.ToolsAlertItem.setStatusTip(self.trUtf8(u'Show an alert message'))
+        self.ToolsAlertItem.setShortcut(self.trUtf8(u'F7'))
+        self.PluginItem.setText(self.trUtf8(u'&Plugin List'))
+        self.PluginItem.setStatusTip(self.trUtf8(u'List the Plugins'))
+        self.PluginItem.setShortcut(self.trUtf8(u'Alt+F7'))
+        self.HelpDocumentationItem.setText(self.trUtf8(u'&User Guide'))
+        self.HelpAboutItem.setText(self.trUtf8(u'&About'))
         self.HelpAboutItem.setStatusTip(
-            translate(u'mainWindow', u'More information about OpenLP'))
-        self.HelpAboutItem.setShortcut(translate(u'mainWindow', u'Ctrl+F1'))
-        self.HelpOnlineHelpItem.setText(
-            translate(u'mainWindow', u'&Online Help'))
-        self.HelpWebSiteItem.setText(translate(u'mainWindow', u'&Web Site'))
-        self.LanguageTranslateItem.setText(
-            translate(u'mainWindow', u'&Translate'))
-        self.LanguageTranslateItem.setStatusTip(translate(u'mainWindow',
-            u'Translate the interface to your language'))
-        self.LanguageEnglishItem.setText(translate(u'mainWindow', u'English'))
-        self.LanguageEnglishItem.setStatusTip(translate(u'mainWindow',
-            u'Set the interface language to English'))
-        self.ToolsAddToolItem.setText(translate(u'mainWindow', u'&Add Tool...'))
-        self.ToolsAddToolItem.setStatusTip(translate(u'mainWindow',
-            u'Add an application to the list of tools'))
-        self.action_Preview_Panel.setText(
-            translate(u'mainWindow', u'&Preview Pane'))
-        self.ModeLiveItem.setText(translate(u'mainWindow', u'&Live'))
+            self.trUtf8(u'More information about OpenLP'))
+        self.HelpAboutItem.setShortcut(self.trUtf8(u'Ctrl+F1'))
+        self.HelpOnlineHelpItem.setText(self.trUtf8(u'&Online Help'))
+        self.HelpWebSiteItem.setText(self.trUtf8(u'&Web Site'))
+        self.LanguageTranslateItem.setText(self.trUtf8(u'&Translate'))
+        self.LanguageTranslateItem.setStatusTip(
+            self.trUtf8(u'Translate the interface to your language'))
+        self.LanguageEnglishItem.setText(self.trUtf8(u'English'))
+        self.LanguageEnglishItem.setStatusTip(
+            self.trUtf8(u'Set the interface language to English'))
+        self.ToolsAddToolItem.setText(self.trUtf8(u'&Add Tool...'))
+        self.ToolsAddToolItem.setStatusTip(
+            self.trUtf8(u'Add an application to the list of tools'))
+        self.action_Preview_Panel.setText(self.trUtf8(u'&Preview Pane'))
+        self.ModeLiveItem.setText(self.trUtf8(u'&Live'))
 
 
 class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
@@ -546,9 +530,9 @@
         version = check_latest_version(self.generalConfig, applicationVersion)
         if applicationVersion != version:
             QtGui.QMessageBox.question(None,
-                translate(u'mainWindow', u'OpenLP version Updated'),
-                translate(u'mainWindow', u'OpenLP version %s has been updated to version %s'
-                    % (applicationVersion, version)),
+                self.trUtf8(u'OpenLP version Updated'),
+                self.trUtf8(u'OpenLP version %s has been updated to version %s')
+                    % (applicationVersion, version),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok),
                 QtGui.QMessageBox.Ok)
             self.generalConfig.set_config(u'Application version', version)
@@ -584,8 +568,8 @@
         if str_to_bool(self.generalConfig.get_config(u'Screen Blank', False)) \
         and str_to_bool(self.generalConfig.get_config(u'Blank Warning', False)):
             QtGui.QMessageBox.question(None,
-                translate(u'mainWindow', u'OpenLP Main Display Blanked'),
-                translate(u'mainWindow', u'The Main Display has been blanked out'),
+                self.trUtf8(u'OpenLP Main Display Blanked'),
+                self.trUtf8(u'The Main Display has been blanked out'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok),
                 QtGui.QMessageBox.Ok)
             self.LiveController.blackPushButton.setChecked(True)
@@ -624,8 +608,8 @@
         """
         if self.serviceNotSaved == True:
             ret = QtGui.QMessageBox.question(None,
-                translate(u'mainWindow', u'Save Changes to Service?'),
-                translate(u'mainWindow', u'Your service has changed, do you want to save those changes?'),
+                self.trUtf8(u'Save Changes to Service?'),
+                self.trUtf8(u'Your service has changed, do you want to save those changes?'),
                 QtGui.QMessageBox.StandardButtons(
                     QtGui.QMessageBox.Cancel |
                     QtGui.QMessageBox.Discard |

=== modified file 'openlp/core/ui/plugindialog.py'
--- openlp/core/ui/plugindialog.py	2009-10-06 21:07:12 +0000
+++ openlp/core/ui/plugindialog.py	2009-10-24 07:35:24 +0000
@@ -93,25 +93,17 @@
         self.PluginLayout.addWidget(self.PluginListButtonBox)
 
         self.retranslateUi(PluginViewDialog)
-        QtCore.QObject.connect(
-            self.PluginListButtonBox,
-            QtCore.SIGNAL(u'accepted()'),
-            PluginViewDialog.close)
+        QtCore.QObject.connect(self.PluginListButtonBox,
+            QtCore.SIGNAL(u'accepted()'), PluginViewDialog.close)
         QtCore.QMetaObject.connectSlotsByName(PluginViewDialog)
 
     def retranslateUi(self, PluginViewDialog):
-        PluginViewDialog.setWindowTitle(
-            translate(u'PluginViewDialog', u'Plugin List'))
-        self.PluginInfoGroupBox.setTitle(
-            translate(u'PluginViewDialog', u'Plugin Details'))
-        self.VersionLabel.setText(
-            translate(u'PluginViewDialog', u'Version:'))
-        self.VersionNumberLabel.setText(
-            translate(u'PluginViewDialog', u'TextLabel'))
-        self.AboutLabel.setText(translate(u'PluginViewDialog', u'About:'))
-        self.StatusLabel.setText(translate(u'PluginViewDialog', u'Status:'))
-        self.StatusComboBox.setItemText(
-            0, translate(u'PluginViewDialog', u'Active'))
-        self.StatusComboBox.setItemText(
-            1, translate(u'PluginViewDialog', u'Inactive'))
+        PluginViewDialog.setWindowTitle(self.trUtf8(u'Plugin List'))
+        self.PluginInfoGroupBox.setTitle(self.trUtf8(u'Plugin Details'))
+        self.VersionLabel.setText(self.trUtf8(u'Version:'))
+        self.VersionNumberLabel.setText(self.trUtf8(u'TextLabel'))
+        self.AboutLabel.setText(self.trUtf8(u'About:'))
+        self.StatusLabel.setText(self.trUtf8(u'Status:'))
+        self.StatusComboBox.setItemText(0, self.trUtf8(u'Active'))
+        self.StatusComboBox.setItemText(1, self.trUtf8(u'Inactive'))
 

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2009-10-18 14:53:04 +0000
+++ openlp/core/ui/servicemanager.py	2009-10-24 07:35:24 +0000
@@ -116,25 +116,22 @@
         self.Layout.setMargin(0)
         # Create the top toolbar
         self.Toolbar = OpenLPToolbar(self)
-        self.Toolbar.addToolbarButton(u'New Service',
-            u':/services/service_new.png',
-            translate(u'ServiceManager', u'Create a new service'),
-            self.onNewService)
-        self.Toolbar.addToolbarButton(u'Open Service',
-            u':/services/service_open.png',
-            translate(u'ServiceManager', u'Load an existing service'),
-            self.onLoadService)
-        self.Toolbar.addToolbarButton(u'Save Service',
-            u':/services/service_save.png',
-            translate(u'ServiceManager', u'Save this service'),
-            self.onSaveService)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'New Service'), u':/services/service_new.png',
+            self.trUtf8(u'Create a new service'), self.onNewService)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'Open Service'), u':/services/service_open.png',
+            self.trUtf8(u'Load an existing service'), self.onLoadService)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'Save Service'), u':/services/service_save.png',
+            self.trUtf8(u'Save this service'), self.onSaveService)
         self.Toolbar.addSeparator()
-        self.ThemeLabel = QtGui.QLabel(translate(u'ServiceManager', u'Theme:'),
+        self.ThemeLabel = QtGui.QLabel(self.trUtf8(u'Theme:'),
             self)
         self.ThemeLabel.setMargin(3)
         self.Toolbar.addWidget(self.ThemeLabel)
         self.ThemeComboBox = QtGui.QComboBox(self.Toolbar)
-        self.ThemeComboBox.setToolTip(translate(u'ServiceManager',
+        self.ThemeComboBox.setToolTip(self.trUtf8(
             u'Select a theme for the service'))
         self.ThemeComboBox.setSizeAdjustPolicy(
             QtGui.QComboBox.AdjustToContents)
@@ -162,37 +159,34 @@
             QtCore.Qt.ActionsContextMenu)
         self.ServiceManagerList.addAction(contextMenuAction(
             self.ServiceManagerList, ':/system/system_preview.png',
-            translate(u'ServiceManager',u'&Preview Verse'), self.makePreview))
+            self.trUtf8(u'&Preview Verse'), self.makePreview))
         self.ServiceManagerList.addAction(contextMenuAction(
             self.ServiceManagerList, ':/system/system_live.png',
-            translate(u'ServiceManager',u'&Show Live'), self.makeLive))
+            self.trUtf8(u'&Show Live'), self.makeLive))
         self.ServiceManagerList.addAction(contextMenuSeparator(
             self.ServiceManagerList))
         self.ServiceManagerList.addAction(contextMenuAction(
             self.ServiceManagerList, ':/services/service_delete',
-            translate(u'ServiceManager',u'&Remove from Service'),
-            self.onDeleteFromService))
+            self.trUtf8(u'&Remove from Service'), self.onDeleteFromService))
         self.Layout.addWidget(self.ServiceManagerList)
         # Add the bottom toolbar
         self.OrderToolbar = OpenLPToolbar(self)
-        self.OrderToolbar.addToolbarButton(u'Move to top',
-            u':/services/service_top.png',
-            translate(u'ServiceManager', u'Move to top'), self.onServiceTop)
-        self.OrderToolbar.addToolbarButton(u'Move up',
-            u':/services/service_up.png',
-            translate(u'ServiceManager', u'Move up order'), self.onServiceUp)
-        self.OrderToolbar.addToolbarButton(u'Move down',
-            u':/services/service_down.png',
-            translate(u'ServiceManager', u'Move down order'),
-            self.onServiceDown)
-        self.OrderToolbar.addToolbarButton(u'Move to bottom',
-            u':/services/service_bottom.png',
-            translate(u'ServiceManager', u'Move to end'), self.onServiceEnd)
+        self.OrderToolbar.addToolbarButton(
+            self.trUtf8(u'Move to top'), u':/services/service_top.png',
+            self.trUtf8(u'Move to top'), self.onServiceTop)
+        self.OrderToolbar.addToolbarButton(
+            self.trUtf8(u'Move up'), u':/services/service_up.png',
+            self.trUtf8(u'Move up order'), self.onServiceUp)
+        self.OrderToolbar.addToolbarButton(
+            self.trUtf8(u'Move down'), u':/services/service_down.png',
+            self.trUtf8(u'Move down order'), self.onServiceDown)
+        self.OrderToolbar.addToolbarButton(
+            self.trUtf8(u'Move to bottom'), u':/services/service_bottom.png',
+            self.trUtf8(u'Move to end'), self.onServiceEnd)
         self.OrderToolbar.addSeparator()
-        self.OrderToolbar.addToolbarButton(u'Delete From Service',
-            u':/services/service_delete.png',
-            translate(u'ServiceManager', u'Delete From Service'),
-            self.onDeleteFromService)
+        self.OrderToolbar.addToolbarButton(
+            self.trUtf8(u'Delete >From Service'), u':/services/service_delete.png',
+            self.trUtf8(u'Delete From Service'), self.onDeleteFromService)
         self.Layout.addWidget(self.OrderToolbar)
         # Connect up our signals and slots
         QtCore.QObject.connect(self.ThemeComboBox,
@@ -429,10 +423,9 @@
         if lastService:
             filename = self.config.get_last_dir()
         else:
-            filename = QtGui.QFileDialog.getOpenFileName(self,
-                translate(u'ThemeManager', u'Open Service'),
-                self.config.get_last_dir(),
-                u'Services (*.osz)')
+            filename = QtGui.QFileDialog.getOpenFileName(
+                self, self.trUtf8(u'Open Service'),
+                self.config.get_last_dir(), u'Services (*.osz)')
         filename = unicode(filename)
         name = filename.split(os.path.sep)
         if filename != u'':

=== modified file 'openlp/core/ui/settingsdialog.py'
--- openlp/core/ui/settingsdialog.py	2009-09-08 19:58:05 +0000
+++ openlp/core/ui/settingsdialog.py	2009-10-24 07:35:24 +0000
@@ -54,4 +54,4 @@
         QtCore.QMetaObject.connectSlotsByName(SettingsDialog)
 
     def retranslateUi(self, SettingsDialog):
-        SettingsDialog.setWindowTitle(translate(u'SettingsDialog', u'Settings'))
+        SettingsDialog.setWindowTitle(self.trUtf8(u'Settings'))

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2009-10-23 22:47:22 +0000
+++ openlp/core/ui/slidecontroller.py	2009-10-24 07:35:24 +0000
@@ -87,7 +87,11 @@
         self.isLive = isLive
         self.parent = parent
         self.image_list = [
-            u'Start Loop', u'Stop Loop', u'Loop Separator', u'Image SpinBox']
+            self.trUtf8(u'Start Loop'),
+            self.trUtf8(u'Stop Loop'),
+            #self.trUtf8(u'Loop Separator'),
+            self.trUtf8(u'Image SpinBox')
+        ]
         self.timer_id = 0
         self.commandItem = None
         self.Panel = QtGui.QWidget(parent.ControlSplitter)
@@ -98,9 +102,9 @@
         # Type label for the top of the slide controller
         self.TypeLabel = QtGui.QLabel(self.Panel)
         if self.isLive:
-            self.TypeLabel.setText(u'<strong>%s</strong>' % translate(u'SlideController', u'Live'))
+            self.TypeLabel.setText(u'<strong>%s</strong>' % self.trUtf8(u'Live'))
         else:
-            self.TypeLabel.setText(u'<strong>%s</strong>' % translate(u'SlideController', u'Preview'))
+            self.TypeLabel.setText(u'<strong>%s</strong>' % self.trUtf8(u'Preview'))
         self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter)
         self.PanelLayout.addWidget(self.TypeLabel)
         # Splitter
@@ -135,46 +139,40 @@
             self.Toolbar.sizePolicy().hasHeightForWidth())
         self.Toolbar.setSizePolicy(sizeToolbarPolicy)
         if self.isLive:
-            self.Toolbar.addToolbarButton(u'First Slide',
-                u':/slides/slide_first.png',
-                translate(u'SlideController', u'Move to first'),
-                self.onSlideSelectedFirst)
-        self.Toolbar.addToolbarButton(u'Previous Slide',
-            u':/slides/slide_previous.png',
-            translate(u'SlideController', u'Move to previous'),
-            self.onSlideSelectedPrevious)
-        self.Toolbar.addToolbarButton(u'Next Slide',
-            u':/slides/slide_next.png',
-            translate(u'SlideController', u'Move to next'),
-            self.onSlideSelectedNext)
+            self.Toolbar.addToolbarButton(
+                self.trUtf8(u'First Slide'), u':/slides/slide_first.png',
+                self.trUtf8(u'Move to first'), self.onSlideSelectedFirst)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'Previous Slide'), u':/slides/slide_previous.png',
+            self.trUtf8(u'Move to previous'), self.onSlideSelectedPrevious)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'Next Slide'), u':/slides/slide_next.png',
+            self.trUtf8(u'Move to next'), self.onSlideSelectedNext)
         if self.isLive:
-            self.Toolbar.addToolbarButton(u'Last Slide',
-                u':/slides/slide_last.png',
-                translate(u'SlideController', u'Move to last'),
-                self.onSlideSelectedLast)
+            self.Toolbar.addToolbarButton(
+                self.trUtf8(u'Last Slide'), u':/slides/slide_last.png',
+                self.trUtf8(u'Move to last'), self.onSlideSelectedLast)
         if self.isLive:
             self.Toolbar.addToolbarSeparator(u'Close Separator')
             self.blackPushButton = self.Toolbar.addPushButton(
                 u':/slides/slide_close.png')
         if not self.isLive:
             self.Toolbar.addToolbarSeparator(u'Close Separator')
-            self.Toolbar.addToolbarButton(u'Go Live',
-                u':/system/system_live.png',
-                translate(u'SlideController', u'Move to live'),
-                self.onGoLive)
+            self.Toolbar.addToolbarButton(
+                self.trUtf8(u'Go Live'), u':/system/system_live.png',
+                self.trUtf8(u'Move to live'), self.onGoLive)
         if isLive:
             self.Toolbar.addToolbarSeparator(u'Loop Separator')
-            self.Toolbar.addToolbarButton(u'Start Loop',
-                u':/media/media_time.png',
-                translate(u'SlideController', u'Start continuous loop'),
-                self.onStartLoop)
-            self.Toolbar.addToolbarButton(u'Stop Loop',
-                u':/media/media_stop.png',
-                translate(u'SlideController', u'Stop continuous loop'),
-                self.onStopLoop)
+            self.Toolbar.addToolbarButton(
+                self.trUtf8(u'Start Loop'),  u':/media/media_time.png',
+                self.trUtf8(u'Start continuous loop'), self.onStartLoop)
+            self.Toolbar.addToolbarButton(
+                self.trUtf8(u'Stop Loop'), u':/media/media_stop.png',
+                self.trUtf8(u'Stop continuous loop'), self.onStopLoop)
             self.DelaySpinBox = QtGui.QSpinBox()
-            self.Toolbar.addToolbarWidget(u'Image SpinBox', self.DelaySpinBox)
-            self.DelaySpinBox.setSuffix(translate(u'SlideController', u's'))
+            self.Toolbar.addToolbarWidget(
+                self.trUtf8(u'Image SpinBox'), self.DelaySpinBox)
+            self.DelaySpinBox.setSuffix(self.trUtf8(u's'))
 
         self.ControllerLayout.addWidget(self.Toolbar)
         # Screen preview area

=== modified file 'openlp/core/ui/splashscreen.py'
--- openlp/core/ui/splashscreen.py	2009-09-29 02:54:32 +0000
+++ openlp/core/ui/splashscreen.py	2009-10-24 07:35:24 +0000
@@ -29,8 +29,8 @@
     def __init__(self, version):
         self.splash_screen = QtGui.QSplashScreen()
         self.setupUi()
-        starting = translate(u'SplashScreen', u'Starting')
-        self.message = starting + u'..... ' + version
+        self.message = self.splash_screen.trUtf8(u'Starting')\
+            + u'..... ' + version
 
     def setupUi(self):
         self.splash_screen.setObjectName(u'splash_screen')
@@ -57,7 +57,7 @@
 
     def retranslateUi(self):
         self.splash_screen.setWindowTitle(
-            translate(u'splash_screen', u'Splash Screen'))
+            self.splash_screen.trUtf8(u'Splash Screen'))
 
     def show(self):
         self.splash_screen.show()

=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py	2009-10-22 19:03:08 +0000
+++ openlp/core/ui/thememanager.py	2009-10-24 07:35:24 +0000
@@ -53,25 +53,21 @@
         self.amendThemeForm = AmendThemeForm(self)
         self.Toolbar = OpenLPToolbar(self)
         self.Toolbar.addToolbarButton(
-            translate(u'ThemeManager', u'New Theme'), u':/themes/theme_new.png',
-            translate(u'ThemeManager', u'Create a new theme'), self.onAddTheme)
-        self.Toolbar.addToolbarButton(
-            translate(u'ThemeManager', u'Edit Theme'),
-            u':/themes/theme_edit.png',
-            translate(u'ThemeManager', u'Edit a theme'), self.onEditTheme)
-        self.Toolbar.addToolbarButton(
-            translate(u'ThemeManager', u'Delete Theme'),
-            u':/themes/theme_delete.png',
-            translate(u'ThemeManager', u'Delete a theme'), self.onDeleteTheme)
+            self.trUtf8(u'New Theme'), u':/themes/theme_new.png',
+            self.trUtf8(u'Create a new theme'), self.onAddTheme)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'Edit Theme'), u':/themes/theme_edit.png',
+            self.trUtf8(u'Edit a theme'), self.onEditTheme)
+        self.Toolbar.addToolbarButton(
+            self.trUtf8(u'Delete Theme'), u':/themes/theme_delete.png',
+            self.trUtf8(u'Delete a theme'), self.onDeleteTheme)
         self.Toolbar.addSeparator()
         self.Toolbar.addToolbarButton(
-            translate(u'ThemeManager', u'Import Theme'),
-            u':/themes/theme_import.png',
-            translate(u'ThemeManager', u'Import a theme'), self.onImportTheme)
+            self.trUtf8(u'Import Theme'), u':/themes/theme_import.png',
+            self.trUtf8(u'Import a theme'), self.onImportTheme)
         self.Toolbar.addToolbarButton(
-            translate(u'ThemeManager', u'Export Theme'),
-            u':/themes/theme_export.png',
-            translate(u'ThemeManager', u'Export a theme'), self.onExportTheme)
+            self.trUtf8(u'Export Theme'), u':/themes/theme_export.png',
+            self.trUtf8(u'Export a theme'), self.onExportTheme)
         self.ThemeWidget = QtGui.QWidgetAction(self.Toolbar)
         self.Layout.addWidget(self.Toolbar)
         self.ThemeListWidget = QtGui.QListWidget(self)
@@ -79,23 +75,19 @@
         self.ThemeListWidget.setIconSize(QtCore.QSize(88,50))
         self.Layout.addWidget(self.ThemeListWidget)
         self.ThemeListWidget.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
-        self.ThemeListWidget.addAction(contextMenuAction(self.ThemeListWidget,
-            u':/themes/theme_edit.png',
-            translate(u'ThemeManager', u'Edit a theme'),
-            self.onEditTheme))
+        self.ThemeListWidget.addAction(
+            contextMenuAction(self.ThemeListWidget, u':/themes/theme_edit.png',
+            self.trUtf8(u'Edit a theme'), self.onEditTheme))
         self.ThemeListWidget.addAction(contextMenuSeparator(self.ThemeListWidget))
-        self.ThemeListWidget.addAction(contextMenuAction(self.ThemeListWidget,
-            u':/themes/theme_delete.png',
-            translate(u'ThemeManager', u'Delete theme'),
-            self.onDeleteTheme))
-        self.ThemeListWidget.addAction(contextMenuAction(self.ThemeListWidget,
-            u':/themes/theme_export.png',
-            translate(u'ThemeManager', u'Make Global'),
-            self.changeGlobalFromScreen))
-        self.ThemeListWidget.addAction(contextMenuAction(self.ThemeListWidget,
-            u':/themes/theme_export.png',
-            translate(u'ThemeManager', u'Export theme'),
-            self.onExportTheme))
+        self.ThemeListWidget.addAction(
+            contextMenuAction(self.ThemeListWidget, u':/themes/theme_delete.png',
+            self.trUtf8(u'Delete theme'), self.onDeleteTheme))
+        self.ThemeListWidget.addAction(
+            contextMenuAction(self.ThemeListWidget, u':/themes/theme_export.png',
+            self.trUtf8(u'Make Global'), self.changeGlobalFromScreen))
+        self.ThemeListWidget.addAction(
+            contextMenuAction(self.ThemeListWidget, u':/themes/theme_export.png',
+            self.trUtf8(u'Export theme'), self.onExportTheme))
         self.ThemeListWidget.addAction(contextMenuSeparator(self.ThemeListWidget))
         #Signals
         QtCore.QObject.connect(self.ThemeListWidget,
@@ -125,8 +117,7 @@
                 self.ThemeListWidget.item(count).setText(newName)
             #Set the new name
             if themeName == newName:
-                name = u'%s (%s)' % (newName, translate(u'ThemeManager',
-                    u'default'))
+                name = u'%s (%s)' % (newName, self.trUtf8(u'default'))
                 self.ThemeListWidget.item(count).setText(name)
 
     def changeGlobalFromScreen(self, index = -1):
@@ -143,12 +134,11 @@
             if count == selected_row:
                 self.global_theme = unicode(
                     self.ThemeListWidget.item(count).text())
-                name = u'%s (%s)' % (self.global_theme,
-                    translate(u'ThemeManager', u'default'))
+                name = u'%s (%s)' % (self.global_theme, self.trUtf8(u'default'))
                 self.ThemeListWidget.item(count).setText(name)
                 self.config.set_config(u'theme global theme', self.global_theme)
-                Receiver().send_message(u'update_global_theme',
-                    self.global_theme)
+                Receiver().send_message(
+                    u'update_global_theme', self.global_theme)
                 self.pushThemes()
 
     def onAddTheme(self):
@@ -172,10 +162,9 @@
             theme = unicode(item.text())
             # should be the same unless default
             if theme != unicode(item.data(QtCore.Qt.UserRole).toString()):
-                QtGui.QMessageBox.critical(self,
-                    translate(u'ThemeManager', u'Error'),
-                    translate(u'ThemeManager',
-                        u'You are unable to delete the default theme!'),
+                QtGui.QMessageBox.critical(
+                    self, self.trUtf8(u'Error'),
+                    self.trUtf8(u'You are unable to delete the default theme!'),
                     QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             else:
                 self.themelist.remove(theme)
@@ -203,15 +192,13 @@
         """
         item = self.ThemeListWidget.currentItem()
         if item is None:
-            QtGui.QMessageBox.critical(self,
-                translate(u'ThemeManager', u'Error'),
-                translate(u'ThemeManager',
-                    u'You have not selected a theme!'),
+            QtGui.QMessageBox.critical(self, self.trUtf8(u'Error'),
+                self.trUtf8(u'You have not selected a theme!'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             return
         theme = unicode(item.data(QtCore.Qt.UserRole).toString())
         path = QtGui.QFileDialog.getExistingDirectory(self,
-            u'Save Theme - (%s)' %  theme,
+            self.trUtf8(u'Save Theme - (%s)') %  theme,
             self.config.get_last_dir(1) )
         path = unicode(path)
         if path != u'':
@@ -226,10 +213,9 @@
             zip.close()
 
     def onImportTheme(self):
-        files = QtGui.QFileDialog.getOpenFileNames(self,
-            translate(u'ThemeManager', u'Select Theme Import File'),
-            self.config.get_last_dir(),
-            u'Theme (*.*)')
+        files = QtGui.QFileDialog.getOpenFileNames(
+            self, self.trUtf8(u'Select Theme Import File'),
+            self.config.get_last_dir(), u'Theme (*.*)')
         log.info(u'New Themes %s', unicode(files))
         if len(files) > 0:
             for file in files:
@@ -256,7 +242,7 @@
                         textName = os.path.splitext(name)[0]
                         if textName == self.global_theme:
                             name = u'%s (%s)' % (textName,
-                                translate(u'ThemeManager', u'default'))
+                                self.trUtf8(u'default'))
                         else:
                             name = textName
                         item_name = QtGui.QListWidgetItem(name)
@@ -281,7 +267,7 @@
             xml = file_to_xml(xml_file)
         except:
             newtheme = ThemeXML()
-            newtheme.new_document(u'New Theme')
+            newtheme.new_document(self.trUtf8(u'New Theme'))
             newtheme.add_background_solid(unicode(u'#000000'))
             newtheme.add_font(unicode(QtGui.QFont().family()),
                 unicode(u'#FFFFFF'), unicode(30), u'False')
@@ -312,10 +298,9 @@
         try:
             zip = zipfile.ZipFile(filename)
         except:
-            QtGui.QMessageBox.critical(self,
-                translate(u'ThemeManager', u'Error'),
-                translate(u'ThemeManager',
-                    u'File is not a valid theme!'),
+            QtGui.QMessageBox.critical(
+                self, self.trUtf8(u'Error'),
+                self.trUtf8(u'File is not a valid theme!'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             return
         filexml = None
@@ -418,9 +403,9 @@
         if self.saveThemeName != name:
             if os.path.exists(theme_file):
                 result = QtGui.QMessageBox.question(
-                    self,
-                    translate(u'ThemeManager', u'Theme Exists'),
-                    translate(u'ThemeManager', u'A theme with this name already exists, would you like to overwrite it?'),
+                    self, self.trUtf8(u'Theme Exists'),
+                    self.trUtf8(u'A theme with this name already exists, '
+                        u'would you like to overwrite it?'),
                     (QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
                     QtGui.QMessageBox.No)
             else:
@@ -469,7 +454,7 @@
     def baseTheme(self):
         log.debug(u'base theme created')
         newtheme = ThemeXML()
-        newtheme.new_document(u'New Theme')
+        newtheme.new_document(self.trUtf8(u'New Theme'))
         newtheme.add_background_solid(unicode(u'#000000'))
         newtheme.add_font(unicode(QtGui.QFont().family()), unicode(u'#FFFFFF'),
             unicode(30), u'False')

=== modified file 'openlp/core/ui/themestab.py'
--- openlp/core/ui/themestab.py	2009-09-21 17:56:36 +0000
+++ openlp/core/ui/themestab.py	2009-10-24 07:35:24 +0000
@@ -32,8 +32,9 @@
     """
     def __init__(self, parent):
         self.parent = parent
-        SettingsTab.__init__(
-            self, translate(u'ThemesTab', u'Themes'), u'Themes')
+        SettingsTab.__init__(self, u'Themes', u'Themes')
+        # Use the line below when pulling the translation template file.
+        #SettingsTab.__init__(self, self.trUtf8(u'Themes'), u'Themes')
 
     def setupUi(self):
         self.setObjectName(u'ThemesTab')
@@ -105,17 +106,21 @@
             QtCore.SIGNAL(u'update_themes'), self.updateThemeList)
 
     def retranslateUi(self):
-        self.GlobalGroupBox.setTitle(translate(u'ThemesTab', u'Global theme'))
-        self.LevelGroupBox.setTitle(translate(u'ThemesTab', u'Theme level'))
-        self.SongLevelRadioButton.setText(
-            translate(u'ThemesTab', u'Song level'))
-        self.SongLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from each song in the database. If a song doesn\'t have a theme associated with it, then use the service\'s theme. If the service doesn\'t have a theme, then use the global theme.'))
-        self.ServiceLevelRadioButton.setText(
-            translate(u'ThemesTab', u'Service level'))
-        self.ServiceLevelLabel.setText(translate(u'ThemesTab', u'Use the theme from the service, overriding any of the individual songs\' themes. If the service doesn\'t have a theme, then use the global theme.'))
-        self.GlobalLevelRadioButton.setText(
-            translate(u'ThemesTab', u'Global level'))
-        self.GlobalLevelLabel.setText(translate(u'ThemesTab', u'Use the global theme, overriding any themes associated with either the service or the songs.'))
+        self.GlobalGroupBox.setTitle(self.trUtf8(u'Global theme'))
+        self.LevelGroupBox.setTitle(self.trUtf8(u'Theme level'))
+        self.SongLevelRadioButton.setText(self.trUtf8(u'Song level'))
+        self.SongLevelLabel.setText(self.trUtf8(u'Use the theme from each song '
+            u'in the database. If a song doesn\'t have a theme associated with '
+            u'it, then use the service\'s theme. If the service doesn\'t have '
+            u'a theme, then use the global theme.'))
+        self.ServiceLevelRadioButton.setText(self.trUtf8(u'Service level'))
+        self.ServiceLevelLabel.setText(self.trUtf8(u'Use the theme from the '
+            u'service, overriding any of the individual songs\' themes. If the '
+            u'service doesn\'t have a theme, then use the global theme.'))
+        self.GlobalLevelRadioButton.setText(self.trUtf8(u'Global level'))
+        self.GlobalLevelLabel.setText(self.trUtf8(u'Use the global theme, '
+            u'overriding any themes associated with either the service or the '
+            u'songs.'))
 
     def load(self):
         self.global_style = self.config.get_config(
@@ -137,17 +142,17 @@
         Receiver().send_message(u'update_global_theme', self.global_theme )
 
     def onSongLevelButtonPressed(self):
-        self.global_style= u'Song'
+        self.global_style = u'Song'
         self.parent.RenderManager.set_global_theme(
             self.global_theme, self.global_style)
 
     def onServiceLevelButtonPressed(self):
-        self.global_style= u'Service'
+        self.global_style = u'Service'
         self.parent.RenderManager.set_global_theme(
             self.global_theme, self.global_style)
 
     def onGlobalLevelButtonPressed(self):
-        self.global_style= u'Global'
+        self.global_style = u'Global'
         self.parent.RenderManager.set_global_theme(
             self.global_theme, self.global_style)
 

=== modified file 'openlp/plugins/audit/auditplugin.py'
--- openlp/plugins/audit/auditplugin.py	2009-10-11 11:08:47 +0000
+++ openlp/plugins/audit/auditplugin.py	2009-10-24 07:35:24 +0000
@@ -62,21 +62,18 @@
         self.toolsMenu = tools_menu
         self.AuditMenu = QtGui.QMenu(tools_menu)
         self.AuditMenu.setObjectName(u'AuditMenu')
-        self.AuditMenu.setTitle(
-            translate(u'AuditPlugin', u'&Audit'))
+        self.AuditMenu.setTitle(tools_menu.trUtf8(u'&Audit'))
          #Audit Delete
         self.AuditDelete = QtGui.QAction(tools_menu)
-        self.AuditDelete.setText(
-            translate(u'AuditPlugin', u'Audit &Delete'))
+        self.AuditDelete.setText(tools_menu.trUtf8(u'Audit &Delete'))
         self.AuditDelete.setStatusTip(
-            translate(u'AuditPlugin', u'Delete all audit data to sepecified date'))
+            tools_menu.trUtf8(u'Delete all audit data to sepecified date'))
         self.AuditDelete.setObjectName(u'AuditDelete')
         #Audit Report
         self.AuditReport = QtGui.QAction(tools_menu)
-        self.AuditReport.setText(
-            translate(u'AuditPlugin', u'Au&dit &Extract'))
+        self.AuditReport.setText(tools_menu.trUtf8(u'Au&dit &Extract'))
         self.AuditReport.setStatusTip(
-            translate(u'AuditPlugin', u'Generate Extracts on Audit Data'))
+            tools_menu.trUtf8(u'Generate Extracts on Audit Data'))
         self.AuditReport.setObjectName(u'AuditReport')
         #Audit activation
         AuditIcon = buildIcon(u':/tools/tools_alert.png')
@@ -84,10 +81,10 @@
         self.AuditStatus.setIcon(AuditIcon)
         self.AuditStatus.setCheckable(True)
         self.AuditStatus.setChecked(False)
-        self.AuditStatus.setText(translate(u'AuditPlugin', u'A&udit Status'))
+        self.AuditStatus.setText(tools_menu.trUtf8(u'A&udit Status'))
         self.AuditStatus.setStatusTip(
-            translate(u'AuditPlugin', u'Start/Stop live song auditing'))
-        self.AuditStatus.setShortcut(translate(u'AuditPlugin', u'F4'))
+            tools_menu.trUtf8(u'Start/Stop live song auditing'))
+        self.AuditStatus.setShortcut(u'F4')
         self.AuditStatus.setObjectName(u'AuditStatus')
         #Add Menus together
         self.toolsMenu.addAction(self.AuditMenu.menuAction())
@@ -166,4 +163,6 @@
         self.auditdetailform.exec_()
 
     def about(self):
-        return u'<b>Audit Plugin</b> <br>This plugin records the use of songs and when they have been used during a live service'
+        about_text = u'<b>Audit Plugin</b><br />This plugin records the use '\
+            u'of songs and when they have been used during a live service'
+        return about_text

=== modified file 'openlp/plugins/audit/forms/auditdeletedialog.py'
--- openlp/plugins/audit/forms/auditdeletedialog.py	2009-10-11 11:08:47 +0000
+++ openlp/plugins/audit/forms/auditdeletedialog.py	2009-10-24 07:35:24 +0000
@@ -11,29 +11,35 @@
 
 class Ui_AuditDeleteDialog(object):
     def setupUi(self, AuditDeleteDialog):
-        AuditDeleteDialog.setObjectName("AuditDeleteDialog")
+        AuditDeleteDialog.setObjectName(u'AuditDeleteDialog')
         AuditDeleteDialog.resize(291, 243)
         self.layoutWidget = QtGui.QWidget(AuditDeleteDialog)
         self.layoutWidget.setGeometry(QtCore.QRect(20, 10, 247, 181))
-        self.layoutWidget.setObjectName("layoutWidget")
+        self.layoutWidget.setObjectName(u'layoutWidget')
         self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget)
-        self.verticalLayout.setObjectName("verticalLayout")
+        self.verticalLayout.setObjectName(u'verticalLayout')
         self.DeleteCalendar = QtGui.QCalendarWidget(self.layoutWidget)
         self.DeleteCalendar.setFirstDayOfWeek(QtCore.Qt.Sunday)
         self.DeleteCalendar.setGridVisible(True)
-        self.DeleteCalendar.setVerticalHeaderFormat(QtGui.QCalendarWidget.NoVerticalHeader)
-        self.DeleteCalendar.setObjectName("DeleteCalendar")
+        self.DeleteCalendar.setVerticalHeaderFormat(
+            QtGui.QCalendarWidget.NoVerticalHeader)
+        self.DeleteCalendar.setObjectName(u'DeleteCalendar')
         self.verticalLayout.addWidget(self.DeleteCalendar)
         self.buttonBox = QtGui.QDialogButtonBox(AuditDeleteDialog)
         self.buttonBox.setGeometry(QtCore.QRect(30, 210, 245, 25))
-        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
-        self.buttonBox.setObjectName("buttonBox")
+        self.buttonBox.setStandardButtons(
+            QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
+        self.buttonBox.setObjectName(u'buttonBox')
 
         self.retranslateUi(AuditDeleteDialog)
-        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), AuditDeleteDialog.accept)
-        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), AuditDeleteDialog.close)
+        QtCore.QObject.connect(
+            self.buttonBox, QtCore.SIGNAL(u'accepted()'),
+            AuditDeleteDialog.accept)
+        QtCore.QObject.connect(
+            self.buttonBox, QtCore.SIGNAL(u'rejected()'),
+            AuditDeleteDialog.close)
         QtCore.QMetaObject.connectSlotsByName(AuditDeleteDialog)
 
     def retranslateUi(self, AuditDeleteDialog):
-        AuditDeleteDialog.setWindowTitle(QtGui.QApplication.translate("AuditDeleteDialog", "Audit Delete ", None, QtGui.QApplication.UnicodeUTF8))
+        AuditDeleteDialog.setWindowTitle(self.trUtf8(u'Audit Delete'))
 

=== modified file 'openlp/plugins/audit/forms/auditdeleteform.py'
--- openlp/plugins/audit/forms/auditdeleteform.py	2009-10-12 04:43:02 +0000
+++ openlp/plugins/audit/forms/auditdeleteform.py	2009-10-24 07:35:24 +0000
@@ -44,8 +44,8 @@
 
     def accept(self):
         ret = QtGui.QMessageBox.question(self,
-            translate(u'mainWindow', u'Delete Selected Audit Events?'),
-            translate(u'mainWindow', u'Are you sure you want to delete selected Audit Data?'),
+            self.trUtf8(u'Delete Selected Audit Events?'),
+            self.trUtf8(u'Are you sure you want to delete selected Audit Data?'),
             QtGui.QMessageBox.StandardButtons(
                 QtGui.QMessageBox.Ok |
                 QtGui.QMessageBox.Cancel),

=== modified file 'openlp/plugins/audit/forms/auditdetaildialog.py'
--- openlp/plugins/audit/forms/auditdetaildialog.py	2009-10-11 11:08:47 +0000
+++ openlp/plugins/audit/forms/auditdetaildialog.py	2009-10-24 07:35:24 +0000
@@ -11,157 +11,171 @@
 
 class Ui_AuditDetailDialog(object):
     def setupUi(self, AuditDetailDialog):
-        AuditDetailDialog.setObjectName("AuditDetailDialog")
+        AuditDetailDialog.setObjectName(u'AuditDetailDialog')
         AuditDetailDialog.resize(593, 501)
         self.buttonBox = QtGui.QDialogButtonBox(AuditDetailDialog)
         self.buttonBox.setGeometry(QtCore.QRect(420, 470, 170, 25))
-        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
-        self.buttonBox.setObjectName("buttonBox")
+        self.buttonBox.setStandardButtons(
+            QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
+        self.buttonBox.setObjectName(u'buttonBox')
         self.FileGroupBox = QtGui.QGroupBox(AuditDetailDialog)
         self.FileGroupBox.setGeometry(QtCore.QRect(10, 370, 571, 70))
-        self.FileGroupBox.setObjectName("FileGroupBox")
+        self.FileGroupBox.setObjectName(u'FileGroupBox')
         self.verticalLayout_4 = QtGui.QVBoxLayout(self.FileGroupBox)
-        self.verticalLayout_4.setObjectName("verticalLayout_4")
+        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
         self.horizontalLayout = QtGui.QHBoxLayout()
-        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.horizontalLayout.setObjectName(u'horizontalLayout')
         self.FileLineEdit = QtGui.QLineEdit(self.FileGroupBox)
-        self.FileLineEdit.setObjectName("FileLineEdit")
+        self.FileLineEdit.setObjectName(u'FileLineEdit')
         self.horizontalLayout.addWidget(self.FileLineEdit)
         self.SaveFilePushButton = QtGui.QPushButton(self.FileGroupBox)
         icon = QtGui.QIcon()
-        icon.addPixmap(QtGui.QPixmap(":/exports/export_load.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        icon.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'),
+            QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.SaveFilePushButton.setIcon(icon)
-        self.SaveFilePushButton.setObjectName("SaveFilePushButton")
+        self.SaveFilePushButton.setObjectName(u'SaveFilePushButton')
         self.horizontalLayout.addWidget(self.SaveFilePushButton)
         self.verticalLayout_4.addLayout(self.horizontalLayout)
         self.layoutWidget = QtGui.QWidget(AuditDetailDialog)
         self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 561, 361))
-        self.layoutWidget.setObjectName("layoutWidget")
+        self.layoutWidget.setObjectName(u'layoutWidget')
         self.verticalLayout_3 = QtGui.QVBoxLayout(self.layoutWidget)
-        self.verticalLayout_3.setObjectName("verticalLayout_3")
+        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
         self.ReportTypeGroup = QtGui.QGroupBox(self.layoutWidget)
-        self.ReportTypeGroup.setObjectName("ReportTypeGroup")
+        self.ReportTypeGroup.setObjectName(u'ReportTypeGroup')
         self.layoutWidget1 = QtGui.QWidget(self.ReportTypeGroup)
         self.layoutWidget1.setGeometry(QtCore.QRect(50, 40, 481, 23))
-        self.layoutWidget1.setObjectName("layoutWidget1")
+        self.layoutWidget1.setObjectName(u'layoutWidget1')
         self.ReportHorizontalLayout = QtGui.QHBoxLayout(self.layoutWidget1)
-        self.ReportHorizontalLayout.setObjectName("ReportHorizontalLayout")
+        self.ReportHorizontalLayout.setObjectName(u'ReportHorizontalLayout')
         self.SummaryReport = QtGui.QRadioButton(self.layoutWidget1)
-        self.SummaryReport.setObjectName("SummaryReport")
+        self.SummaryReport.setObjectName(u'SummaryReport')
         self.ReportHorizontalLayout.addWidget(self.SummaryReport)
         self.DetailedReport = QtGui.QRadioButton(self.layoutWidget1)
         self.DetailedReport.setChecked(True)
-        self.DetailedReport.setObjectName("DetailedReport")
+        self.DetailedReport.setObjectName(u'DetailedReport')
         self.ReportHorizontalLayout.addWidget(self.DetailedReport)
         self.verticalLayout_3.addWidget(self.ReportTypeGroup)
         self.DateRangeGroupBox = QtGui.QGroupBox(self.layoutWidget)
-        self.DateRangeGroupBox.setObjectName("DateRangeGroupBox")
+        self.DateRangeGroupBox.setObjectName(u'DateRangeGroupBox')
         self.verticalLayout_2 = QtGui.QVBoxLayout(self.DateRangeGroupBox)
-        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
         self.DateHorizontalLayout = QtGui.QHBoxLayout()
-        self.DateHorizontalLayout.setObjectName("DateHorizontalLayout")
+        self.DateHorizontalLayout.setObjectName(u'DateHorizontalLayout')
         self.FromDateEdit = QtGui.QDateEdit(self.DateRangeGroupBox)
         self.FromDateEdit.setCalendarPopup(True)
-        self.FromDateEdit.setObjectName("FromDateEdit")
+        self.FromDateEdit.setObjectName(u'FromDateEdit')
         self.DateHorizontalLayout.addWidget(self.FromDateEdit)
         self.To = QtGui.QLabel(self.DateRangeGroupBox)
-        self.To.setObjectName("To")
+        self.To.setObjectName(u'To')
         self.DateHorizontalLayout.addWidget(self.To)
         self.ToDateEdit = QtGui.QDateEdit(self.DateRangeGroupBox)
         self.ToDateEdit.setCalendarPopup(True)
-        self.ToDateEdit.setObjectName("ToDateEdit")
+        self.ToDateEdit.setObjectName(u'ToDateEdit')
         self.DateHorizontalLayout.addWidget(self.ToDateEdit)
         self.verticalLayout_2.addLayout(self.DateHorizontalLayout)
         self.verticalLayout_3.addWidget(self.DateRangeGroupBox)
         self.TimePeriodGroupBox = QtGui.QGroupBox(self.layoutWidget)
-        self.TimePeriodGroupBox.setObjectName("TimePeriodGroupBox")
+        self.TimePeriodGroupBox.setObjectName(u'TimePeriodGroupBox')
         self.verticalLayout = QtGui.QVBoxLayout(self.TimePeriodGroupBox)
-        self.verticalLayout.setObjectName("verticalLayout")
+        self.verticalLayout.setObjectName(u'verticalLayout')
         self.FirstHorizontalLayout = QtGui.QHBoxLayout()
-        self.FirstHorizontalLayout.setObjectName("FirstHorizontalLayout")
+        self.FirstHorizontalLayout.setObjectName(u'FirstHorizontalLayout')
         self.FirstCheckBox = QtGui.QCheckBox(self.TimePeriodGroupBox)
         self.FirstCheckBox.setChecked(True)
-        self.FirstCheckBox.setObjectName("FirstCheckBox")
+        self.FirstCheckBox.setObjectName(u'FirstCheckBox')
         self.FirstHorizontalLayout.addWidget(self.FirstCheckBox)
         self.FirstFromTimeEdit = QtGui.QTimeEdit(self.TimePeriodGroupBox)
         self.FirstFromTimeEdit.setTime(QtCore.QTime(9, 0, 0))
-        self.FirstFromTimeEdit.setObjectName("FirstFromTimeEdit")
+        self.FirstFromTimeEdit.setObjectName(u'FirstFromTimeEdit')
         self.FirstHorizontalLayout.addWidget(self.FirstFromTimeEdit)
         self.FirstTo = QtGui.QLabel(self.TimePeriodGroupBox)
-        self.FirstTo.setObjectName("FirstTo")
+        self.FirstTo.setObjectName(u'FirstTo')
         self.FirstHorizontalLayout.addWidget(self.FirstTo)
         self.FirstToTimeEdit = QtGui.QTimeEdit(self.TimePeriodGroupBox)
         self.FirstToTimeEdit.setCalendarPopup(True)
         self.FirstToTimeEdit.setTime(QtCore.QTime(10, 0, 0))
-        self.FirstToTimeEdit.setObjectName("FirstToTimeEdit")
+        self.FirstToTimeEdit.setObjectName(u'FirstToTimeEdit')
         self.FirstHorizontalLayout.addWidget(self.FirstToTimeEdit)
         self.verticalLayout.addLayout(self.FirstHorizontalLayout)
         self.SecondHorizontalLayout = QtGui.QHBoxLayout()
-        self.SecondHorizontalLayout.setObjectName("SecondHorizontalLayout")
+        self.SecondHorizontalLayout.setObjectName(u'SecondHorizontalLayout')
         self.SecondCheckBox = QtGui.QCheckBox(self.TimePeriodGroupBox)
         self.SecondCheckBox.setChecked(True)
-        self.SecondCheckBox.setObjectName("SecondCheckBox")
+        self.SecondCheckBox.setObjectName(u'SecondCheckBox')
         self.SecondHorizontalLayout.addWidget(self.SecondCheckBox)
         self.SecondFromTimeEdit = QtGui.QTimeEdit(self.TimePeriodGroupBox)
         self.SecondFromTimeEdit.setTime(QtCore.QTime(10, 45, 0))
-        self.SecondFromTimeEdit.setObjectName("SecondFromTimeEdit")
+        self.SecondFromTimeEdit.setObjectName(u'SecondFromTimeEdit')
         self.SecondHorizontalLayout.addWidget(self.SecondFromTimeEdit)
         self.SecondTo = QtGui.QLabel(self.TimePeriodGroupBox)
-        self.SecondTo.setObjectName("SecondTo")
+        self.SecondTo.setObjectName(u'SecondTo')
         self.SecondHorizontalLayout.addWidget(self.SecondTo)
         self.SecondToTimeEdit = QtGui.QTimeEdit(self.TimePeriodGroupBox)
-        self.SecondToTimeEdit.setObjectName("SecondToTimeEdit")
+        self.SecondToTimeEdit.setObjectName(u'SecondToTimeEdit')
         self.SecondHorizontalLayout.addWidget(self.SecondToTimeEdit)
         self.verticalLayout.addLayout(self.SecondHorizontalLayout)
         self.ThirdHorizontalLayout = QtGui.QHBoxLayout()
-        self.ThirdHorizontalLayout.setObjectName("ThirdHorizontalLayout")
+        self.ThirdHorizontalLayout.setObjectName(u'ThirdHorizontalLayout')
         self.ThirdCheckBox = QtGui.QCheckBox(self.TimePeriodGroupBox)
         self.ThirdCheckBox.setChecked(True)
-        self.ThirdCheckBox.setObjectName("ThirdCheckBox")
+        self.ThirdCheckBox.setObjectName(u'ThirdCheckBox')
         self.ThirdHorizontalLayout.addWidget(self.ThirdCheckBox)
         self.ThirdFromTimeEdit = QtGui.QTimeEdit(self.TimePeriodGroupBox)
         self.ThirdFromTimeEdit.setTime(QtCore.QTime(18, 30, 0))
-        self.ThirdFromTimeEdit.setObjectName("ThirdFromTimeEdit")
+        self.ThirdFromTimeEdit.setObjectName(u'ThirdFromTimeEdit')
         self.ThirdHorizontalLayout.addWidget(self.ThirdFromTimeEdit)
         self.ThirdTo = QtGui.QLabel(self.TimePeriodGroupBox)
-        self.ThirdTo.setObjectName("ThirdTo")
+        self.ThirdTo.setObjectName(u'ThirdTo')
         self.ThirdHorizontalLayout.addWidget(self.ThirdTo)
         self.ThirdToTimeEdit = QtGui.QTimeEdit(self.TimePeriodGroupBox)
         self.ThirdToTimeEdit.setTime(QtCore.QTime(19, 30, 0))
-        self.ThirdToTimeEdit.setObjectName("ThirdToTimeEdit")
+        self.ThirdToTimeEdit.setObjectName(u'ThirdToTimeEdit')
         self.ThirdHorizontalLayout.addWidget(self.ThirdToTimeEdit)
         self.verticalLayout.addLayout(self.ThirdHorizontalLayout)
         self.verticalLayout_3.addWidget(self.TimePeriodGroupBox)
 
         self.retranslateUi(AuditDetailDialog)
-        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), AuditDetailDialog.accept)
-        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), AuditDetailDialog.close)
-        QtCore.QObject.connect(self.FirstCheckBox, QtCore.SIGNAL("stateChanged(int)"), AuditDetailDialog.changeFirstService)
-        QtCore.QObject.connect(self.SecondCheckBox, QtCore.SIGNAL("stateChanged(int)"), AuditDetailDialog.changeSecondService)
-        QtCore.QObject.connect(self.ThirdCheckBox, QtCore.SIGNAL("stateChanged(int)"), AuditDetailDialog.changeThirdService)
-        QtCore.QObject.connect(self.SaveFilePushButton, QtCore.SIGNAL("pressed()"), AuditDetailDialog.defineOutputLocation)
+        QtCore.QObject.connect(
+            self.buttonBox, QtCore.SIGNAL(u'accepted()'),
+            AuditDetailDialog.accept)
+        QtCore.QObject.connect(
+            self.buttonBox, QtCore.SIGNAL(u'rejected()'),
+            AuditDetailDialog.close)
+        QtCore.QObject.connect(
+            self.FirstCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
+            AuditDetailDialog.changeFirstService)
+        QtCore.QObject.connect(
+            self.SecondCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
+            AuditDetailDialog.changeSecondService)
+        QtCore.QObject.connect(
+            self.ThirdCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
+            AuditDetailDialog.changeThirdService)
+        QtCore.QObject.connect(
+            self.SaveFilePushButton, QtCore.SIGNAL(u'pressed()'),
+            AuditDetailDialog.defineOutputLocation)
         QtCore.QMetaObject.connectSlotsByName(AuditDetailDialog)
 
     def retranslateUi(self, AuditDetailDialog):
-        AuditDetailDialog.setWindowTitle(QtGui.QApplication.translate("AuditDetailDialog", "Audit Detail Extraction", None, QtGui.QApplication.UnicodeUTF8))
-        self.FileGroupBox.setTitle(QtGui.QApplication.translate("AuditDetailDialog", "Report Location", None, QtGui.QApplication.UnicodeUTF8))
-        self.ReportTypeGroup.setTitle(QtGui.QApplication.translate("AuditDetailDialog", "Report Type", None, QtGui.QApplication.UnicodeUTF8))
-        self.SummaryReport.setText(QtGui.QApplication.translate("AuditDetailDialog", "Summary", None, QtGui.QApplication.UnicodeUTF8))
-        self.DetailedReport.setText(QtGui.QApplication.translate("AuditDetailDialog", "Detailed", None, QtGui.QApplication.UnicodeUTF8))
-        self.DateRangeGroupBox.setTitle(QtGui.QApplication.translate("AuditDetailDialog", "Select Date Range", None, QtGui.QApplication.UnicodeUTF8))
-        self.FromDateEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "dd/MM/yyyy", None, QtGui.QApplication.UnicodeUTF8))
-        self.To.setText(QtGui.QApplication.translate("AuditDetailDialog", "to", None, QtGui.QApplication.UnicodeUTF8))
-        self.ToDateEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "dd/MM/yyyy", None, QtGui.QApplication.UnicodeUTF8))
-        self.TimePeriodGroupBox.setTitle(QtGui.QApplication.translate("AuditDetailDialog", "Select Time Periods", None, QtGui.QApplication.UnicodeUTF8))
-        self.FirstCheckBox.setText(QtGui.QApplication.translate("AuditDetailDialog", "First Service", None, QtGui.QApplication.UnicodeUTF8))
-        self.FirstFromTimeEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "hh:mm AP", None, QtGui.QApplication.UnicodeUTF8))
-        self.FirstTo.setText(QtGui.QApplication.translate("AuditDetailDialog", "to", None, QtGui.QApplication.UnicodeUTF8))
-        self.FirstToTimeEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "hh:mm AP", None, QtGui.QApplication.UnicodeUTF8))
-        self.SecondCheckBox.setText(QtGui.QApplication.translate("AuditDetailDialog", "Second Service", None, QtGui.QApplication.UnicodeUTF8))
-        self.SecondFromTimeEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "hh:mm AP", None, QtGui.QApplication.UnicodeUTF8))
-        self.SecondTo.setText(QtGui.QApplication.translate("AuditDetailDialog", "to", None, QtGui.QApplication.UnicodeUTF8))
-        self.SecondToTimeEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "hh:mm AP", None, QtGui.QApplication.UnicodeUTF8))
-        self.ThirdCheckBox.setText(QtGui.QApplication.translate("AuditDetailDialog", "Third Service", None, QtGui.QApplication.UnicodeUTF8))
-        self.ThirdFromTimeEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "hh:mm AP", None, QtGui.QApplication.UnicodeUTF8))
-        self.ThirdTo.setText(QtGui.QApplication.translate("AuditDetailDialog", "to", None, QtGui.QApplication.UnicodeUTF8))
-        self.ThirdToTimeEdit.setDisplayFormat(QtGui.QApplication.translate("AuditDetailDialog", "hh:mm AP", None, QtGui.QApplication.UnicodeUTF8))
+        AuditDetailDialog.setWindowTitle(self.trUtf8(u'Audit Detail Extraction'))
+        self.FileGroupBox.setTitle(self.trUtf8(u'Report Location'))
+        self.ReportTypeGroup.setTitle(self.trUtf8(u'Report Type'))
+        self.SummaryReport.setText(self.trUtf8(u'Summary'))
+        self.DetailedReport.setText(self.trUtf8(u'Detailed'))
+        self.DateRangeGroupBox.setTitle(self.trUtf8(u'Select Date Range'))
+        self.FromDateEdit.setDisplayFormat(self.trUtf8(u'dd/MM/yyyy'))
+        self.To.setText(self.trUtf8(u'to'))
+        self.ToDateEdit.setDisplayFormat(self.trUtf8(u'dd/MM/yyyy'))
+        self.TimePeriodGroupBox.setTitle(self.trUtf8(u'Select Time Periods'))
+        self.FirstCheckBox.setText(self.trUtf8(u'First Service'))
+        self.FirstFromTimeEdit.setDisplayFormat(self.trUtf8(u'hh:mm AP'))
+        self.FirstTo.setText(self.trUtf8(u'to'))
+        self.FirstToTimeEdit.setDisplayFormat(self.trUtf8(u'hh:mm AP'))
+        self.SecondCheckBox.setText(self.trUtf8(u'Second Service'))
+        self.SecondFromTimeEdit.setDisplayFormat(self.trUtf8(u'hh:mm AP'))
+        self.SecondTo.setText(self.trUtf8(u'to'))
+        self.SecondToTimeEdit.setDisplayFormat(self.trUtf8(u'hh:mm AP'))
+        self.ThirdCheckBox.setText(self.trUtf8(u'Third Service'))
+        self.ThirdFromTimeEdit.setDisplayFormat(self.trUtf8(u'hh:mm AP'))
+        self.ThirdTo.setText(self.trUtf8(u'to'))
+        self.ThirdToTimeEdit.setDisplayFormat(self.trUtf8(u'hh:mm AP'))

=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py	2009-10-10 13:39:32 +0000
+++ openlp/plugins/bibles/bibleplugin.py	2009-10-24 07:35:24 +0000
@@ -73,7 +73,7 @@
         self.ImportBibleItem = QtGui.QAction(import_menu)
         self.ImportBibleItem.setObjectName(u'ImportBibleItem')
         import_menu.addAction(self.ImportBibleItem)
-        self.ImportBibleItem.setText(translate(u'BiblePlugin', u'&Bible'))
+        self.ImportBibleItem.setText(import_menu.trUtf8(u'&Bible'))
         # Signals and slots
         QtCore.QObject.connect(self.ImportBibleItem,
             QtCore.SIGNAL(u'triggered()'), self.onBibleNewClick)
@@ -83,7 +83,7 @@
         self.ExportBibleItem = QtGui.QAction(export_menu)
         self.ExportBibleItem.setObjectName(u'ExportBibleItem')
         export_menu.addAction(self.ExportBibleItem)
-        self.ExportBibleItem.setText(translate(u'BiblePlugin', u'&Bible'))
+        self.ExportBibleItem.setText(export_menu.trUtf8(u'&Bible'))
         self.ExportBibleItem.setVisible(False)
 
     def onBibleNewClick(self):
@@ -91,4 +91,8 @@
             self.media_item.onNewClick()
 
     def about(self):
-        return u'<b>Bible Plugin</b> <br>This plugin allows bible verse from different sources to be displayed on the screen during the service.<br><br>This is a core plugin and cannot be made inactive</b>'
+        about_text = u'<strong>Bible Plugin</strong><br />This plugin allows '\
+            u'bible verse from different sources to be displayed on the '\
+            u'screen during the service.<br /><br /><strong>This is a core '\
+            u'plugin and cannot be made inactive</strong>'
+        return about_text

=== modified file 'openlp/plugins/bibles/forms/bibleimportdialog.py'
--- openlp/plugins/bibles/forms/bibleimportdialog.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/bibles/forms/bibleimportdialog.py	2009-10-24 07:35:24 +0000
@@ -224,31 +224,34 @@
         BibleImportDialog.setTabOrder(self.CopyrightEdit, self.PermisionEdit)
 
     def retranslateUi(self, BibleImportDialog):
-        BibleImportDialog.setWindowTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'Bible Registration', None, QtGui.QApplication.UnicodeUTF8))
-        self.LicenceDetailsGroupBox.setTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'Licence Details', None, QtGui.QApplication.UnicodeUTF8))
-        self.VersionNameLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Version Name:', None, QtGui.QApplication.UnicodeUTF8))
-        self.CopyrightLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Copyright:', None, QtGui.QApplication.UnicodeUTF8))
-        self.PermisionLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Permission:', None, QtGui.QApplication.UnicodeUTF8))
-        self.ProgressGroupBox.setTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'Import Progress', None, QtGui.QApplication.UnicodeUTF8))
-        self.ProgressBar.setFormat(QtGui.QApplication.translate(u'BibleImportDialog', u'%p', None, QtGui.QApplication.UnicodeUTF8))
-        self.ImportButton.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Import', None, QtGui.QApplication.UnicodeUTF8))
-        self.CancelButton.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Cancel', None, QtGui.QApplication.UnicodeUTF8))
-        self.OSISGroupBox.setTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'OSIS Bible', None, QtGui.QApplication.UnicodeUTF8))
-        self.BibleNameLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Bible Name:', None, QtGui.QApplication.UnicodeUTF8))
-        self.LocatioLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'File Location:', None, QtGui.QApplication.UnicodeUTF8))
-        self.tabWidget.setTabText(self.tabWidget.indexOf(self.OsisTab), QtGui.QApplication.translate(u'BibleImportDialog', u'Osis (Sword) Imports', None, QtGui.QApplication.UnicodeUTF8))
-        self.CVSGroupBox.setTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'CVS Bible', None, QtGui.QApplication.UnicodeUTF8))
-        self.BooksLocationLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Books Location:', None, QtGui.QApplication.UnicodeUTF8))
-        self.VerseLocationLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Verse Location:', None, QtGui.QApplication.UnicodeUTF8))
-        self.tabWidget.setTabText(self.tabWidget.indexOf(self.CsvTab), QtGui.QApplication.translate(u'BibleImportDialog', u'CSV File Imports', None, QtGui.QApplication.UnicodeUTF8))
-        self.OptionsGroupBox.setTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'Download Options', None, QtGui.QApplication.UnicodeUTF8))
-        self.LocationLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Location:', None, QtGui.QApplication.UnicodeUTF8))
-        self.LocationComboBox.setItemText(0, QtGui.QApplication.translate(u'BibleImportDialog', u'Crosswalk', None, QtGui.QApplication.UnicodeUTF8))
-        self.BibleLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Bible:', None, QtGui.QApplication.UnicodeUTF8))
-        self.BibleComboBox.setItemText(1, QtGui.QApplication.translate(u'BibleImportDialog', u'NIV', None, QtGui.QApplication.UnicodeUTF8))
-        self.BibleComboBox.setItemText(2, QtGui.QApplication.translate(u'BibleImportDialog', u'KJV', None, QtGui.QApplication.UnicodeUTF8))
-        self.ProxyGroupBox.setTitle(QtGui.QApplication.translate(u'BibleImportDialog', u'Proxy Settings (Optional)', None, QtGui.QApplication.UnicodeUTF8))
-        self.AddressLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Proxy Address:', None, QtGui.QApplication.UnicodeUTF8))
-        self.UsernameLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Username:', None, QtGui.QApplication.UnicodeUTF8))
-        self.PasswordLabel.setText(QtGui.QApplication.translate(u'BibleImportDialog', u'Password:', None, QtGui.QApplication.UnicodeUTF8))
-        self.tabWidget.setTabText(self.tabWidget.indexOf(self.HttpTab), QtGui.QApplication.translate(u'BibleImportDialog', u'Web Downloads', None, QtGui.QApplication.UnicodeUTF8))
+        BibleImportDialog.setWindowTitle(self.trUtf8(u'Bible Registration'))
+        self.LicenceDetailsGroupBox.setTitle(self.trUtf8(u'Licence Details'))
+        self.VersionNameLabel.setText(self.trUtf8(u'Version Name:'))
+        self.CopyrightLabel.setText(self.trUtf8(u'Copyright:'))
+        self.PermisionLabel.setText(self.trUtf8(u'Permission:'))
+        self.ProgressGroupBox.setTitle(self.trUtf8(u'Import Progress'))
+        self.ProgressBar.setFormat(self.trUtf8(u'%p'))
+        self.ImportButton.setText(self.trUtf8(u'Import'))
+        self.CancelButton.setText(self.trUtf8(u'Cancel'))
+        self.OSISGroupBox.setTitle(self.trUtf8(u'OSIS Bible'))
+        self.BibleNameLabel.setText(self.trUtf8(u'Bible Name:'))
+        self.LocatioLabel.setText(self.trUtf8(u'File Location:'))
+        self.tabWidget.setTabText(self.tabWidget.indexOf(self.OsisTab),
+            self.trUtf8(u'Osis (Sword) Imports'))
+        self.CVSGroupBox.setTitle(self.trUtf8(u'CVS Bible'))
+        self.BooksLocationLabel.setText(self.trUtf8(u'Books Location:'))
+        self.VerseLocationLabel.setText(self.trUtf8(u'Verse Location:'))
+        self.tabWidget.setTabText(self.tabWidget.indexOf(self.CsvTab),
+            self.trUtf8(u'CSV File Imports'))
+        self.OptionsGroupBox.setTitle(self.trUtf8(u'Download Options'))
+        self.LocationLabel.setText(self.trUtf8(u'Location:'))
+        self.LocationComboBox.setItemText(0, self.trUtf8(u'Crosswalk'))
+        self.BibleLabel.setText(self.trUtf8(u'Bible:'))
+        self.BibleComboBox.setItemText(1, self.trUtf8(u'NIV'))
+        self.BibleComboBox.setItemText(2, self.trUtf8(u'KJV'))
+        self.ProxyGroupBox.setTitle(self.trUtf8(u'Proxy Settings (Optional)'))
+        self.AddressLabel.setText(self.trUtf8(u'Proxy Address:'))
+        self.UsernameLabel.setText(self.trUtf8(u'Username:'))
+        self.PasswordLabel.setText(self.trUtf8(u'Password:'))
+        self.tabWidget.setTabText(self.tabWidget.indexOf(self.HttpTab),
+            self.trUtf8(u'Web Downloads'))

=== modified file 'openlp/plugins/bibles/forms/bibleimportform.py'
--- openlp/plugins/bibles/forms/bibleimportform.py	2009-10-09 22:46:35 +0000
+++ openlp/plugins/bibles/forms/bibleimportform.py	2009-10-24 07:35:24 +0000
@@ -57,7 +57,7 @@
 
         filepath = os.path.split(os.path.abspath(__file__))[0]
         filepath = os.path.abspath(os.path.join(filepath, u'..',
-            u'resources',u'crosswalkbooks.csv'))
+            u'resources', u'crosswalkbooks.csv'))
         fbibles=open(filepath, 'r')
         self.bible_versions = {}
         self.BibleComboBox.clear()
@@ -101,21 +101,24 @@
 
 
     def onVersesFileButtonClicked(self):
-        filename = QtGui.QFileDialog.getOpenFileName(self, u'Open file',self.config.get_last_dir(1))
+        filename = QtGui.QFileDialog.getOpenFileName(
+            self, self.trUtf8(u'Open file'), self.config.get_last_dir(1))
         if filename != u'':
             self.VerseLocationEdit.setText(filename)
             self.config.set_last_dir(filename, 1)
             self.setCsv()
 
     def onBooksFileButtonClicked(self):
-        filename = QtGui.QFileDialog.getOpenFileName(self, u'Open file',self.config.get_last_dir(2))
+        filename = QtGui.QFileDialog.getOpenFileName(
+            self, self.trUtf8(u'Open file'), self.config.get_last_dir(2))
         if filename != u'':
             self.BooksLocationEdit.setText(filename)
             self.config.set_last_dir(filename, 2)
             self.setCsv()
 
     def onOsisFileButtonClicked(self):
-        filename = QtGui.QFileDialog.getOpenFileName(self, u'Open file',self.config.get_last_dir(3))
+        filename = QtGui.QFileDialog.getOpenFileName(
+            self, self.trUtf8(u'Open file'), self.config.get_last_dir(3))
         if filename != u'':
             self.OSISLocationEdit.setText(filename)
             self.config.set_last_dir(filename, 3)
@@ -157,18 +160,18 @@
 
     def onCancelButtonClicked(self):
         # tell import to stop
-        self.message = u'Bible import stopped'
+        self.message = self.trUtf8(u'Bible import stopped')
         Receiver().send_message(u'stop_import')
         # tell bibleplugin to reload the bibles
         Receiver().send_message(u'pre_load_bibles')
         self.close()
 
     def onImportButtonClicked(self):
-        message = u'Bible import completed'
+        message = self.trUtf8(u'Bible import completed')
         if self.biblemanager is not None:
             if not self.bible_type is None and \
                 len(self.BibleNameEdit.displayText()) > 0:
-                self.MessageLabel.setText(u'Import Started')
+                self.MessageLabel.setText(self.trUtf8(u'Import Started'))
                 self.ProgressBar.setMinimum(0)
                 self.setMax(65)
                 self.ProgressBar.setValue(0)
@@ -181,8 +184,7 @@
                 # tell bibleplugin to reload the bibles
                 Receiver().send_message(u'pre_load_bibles')
                 QtGui.QMessageBox.information(self,
-                    translate(u'BibleMediaItem', u'Information'),
-                    translate(u'BibleMediaItem', message))
+                    self.trUtf8(u'Information'), self.trUtf8(message))
 
     def setMax(self, max):
         log.debug(u'set Max %s', max)
@@ -191,8 +193,8 @@
 
     def incrementProgressBar(self, text ):
         log.debug(u'IncrementBar %s', text)
-        self.MessageLabel.setText(u'Import processing ' + text)
-        self.ProgressBar.setValue(self.ProgressBar.value()+1)
+        self.MessageLabel.setText(self.trUtf8(u'Import processing %s') % text)
+        self.ProgressBar.setValue(self.ProgressBar.value() + 1)
 
     def importBible(self):
         log.debug(u'Import Bible')
@@ -224,7 +226,7 @@
                 unicode(self.CopyrightEdit.displayText()),
                 unicode(self.PermisionEdit.displayText()))
         else:
-            message = u'Bible import failed'
+            message = self.trUtf8(u'Bible import failed')
         self.bible_type = None
         # free the screen state restrictions
         self.resetScreenFieldStates()

=== modified file 'openlp/plugins/bibles/lib/bibleOSISimpl.py'
--- openlp/plugins/bibles/lib/bibleOSISimpl.py	2009-09-28 17:45:14 +0000
+++ openlp/plugins/bibles/lib/bibleOSISimpl.py	2009-10-24 07:35:24 +0000
@@ -149,8 +149,8 @@
                         testament += 1
                     book_ptr = p[0]
                     book = self.bibledb.create_book(
-                        unicode(translate(u'BibleBooks', self.booksOfBible[p[0]])),
-                        unicode(translate(u'BibleBooks', self.abbrevOfBible[p[0]])),
+                        unicode(self.booksOfBible[p[0]]),
+                        unicode(self.abbrevOfBible[p[0]]),
                         testament)
                     dialogobject.incrementProgressBar(
                         self.booksOfBible[p[0]])

=== modified file 'openlp/plugins/bibles/lib/biblestab.py'
--- openlp/plugins/bibles/lib/biblestab.py	2009-10-18 06:26:36 +0000
+++ openlp/plugins/bibles/lib/biblestab.py	2009-10-24 07:35:24 +0000
@@ -41,8 +41,8 @@
         self.paragraph_style = True
         self.show_new_chapters = False
         self.display_style = 0
-        SettingsTab.__init__(
-            self, translate(u'BiblesTab', u'Bibles'), u'Bibles')
+        SettingsTab.__init__(self, u'Bibles', u'Bibles')
+        #SettingsTab.__init__(self, self.trUtf8(u'Bibles'), u'Bibles')
 
     def setupUi(self):
         self.setObjectName(u'BiblesTab')
@@ -130,52 +130,40 @@
         self.BibleRightLayout.setMargin(0)
         self.BibleLayout.addWidget(self.BibleRightWidget)
         # Signals and slots
-        QtCore.QObject.connect(self.NewChaptersCheckBox,
-            QtCore.SIGNAL(u'stateChanged(int)'),
+        QtCore.QObject.connect(
+            self.NewChaptersCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
             self.onNewChaptersCheckBoxChanged)
-        QtCore.QObject.connect(self.DisplayStyleComboBox,
-            QtCore.SIGNAL(u'activated(int)'),
+        QtCore.QObject.connect(
+            self.DisplayStyleComboBox, QtCore.SIGNAL(u'activated(int)'),
             self.onDisplayStyleComboBoxChanged)
-        QtCore.QObject.connect(self.BibleThemeComboBox,
-            QtCore.SIGNAL(u'activated(int)'), self.onBibleThemeComboBoxChanged)
-        QtCore.QObject.connect(self.LayoutStyleComboBox,
-            QtCore.SIGNAL(u'activated(int)'),
+        QtCore.QObject.connect(
+            self.BibleThemeComboBox, QtCore.SIGNAL(u'activated(int)'),
+            self.onBibleThemeComboBoxChanged)
+        QtCore.QObject.connect(
+            self.LayoutStyleComboBox, QtCore.SIGNAL(u'activated(int)'),
             self.onLayoutStyleComboBoxChanged)
-        QtCore.QObject.connect(self.BibleDualCheckBox,
-            QtCore.SIGNAL(u'stateChanged(int)'),
+        QtCore.QObject.connect(
+            self.BibleDualCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
             self.onBibleDualCheckBox)
         QtCore.QObject.connect(Receiver.get_receiver(),
             QtCore.SIGNAL(u'update_themes'), self.updateThemeList)
 
     def retranslateUi(self):
-        self.VerseDisplayGroupBox.setTitle(
-            translate(u'SettingsForm', u'Verse Display'))
-        self.NewChaptersCheckBox.setText(
-            translate(u'SettingsForm', u'Only show new chapter numbers'))
-        self.LayoutStyleLabel.setText(
-            translate(u'SettingsForm', u'Layout Style:'))
-        self.DisplayStyleLabel.setText(
-            translate(u'SettingsForm', u'Display Style:'))
-        self.BibleThemeLabel.setText(
-            translate(u'SettingsForm', u'Bible Theme:'))
-        self.LayoutStyleComboBox.setItemText(
-            0, translate(u'SettingsForm', u'verse per slide'))
-        self.LayoutStyleComboBox.setItemText(
-            1, translate(u'SettingsForm', u'verse per line'))
-        self.LayoutStyleComboBox.setItemText(
-            2, translate(u'SettingsForm', u'continuous'))
-        self.DisplayStyleComboBox.setItemText(
-            0, translate(u'SettingsForm', u'No brackets'))
-        self.DisplayStyleComboBox.setItemText(
-            1, translate(u'SettingsForm', u'( and )'))
-        self.DisplayStyleComboBox.setItemText(
-            2, translate(u'SettingsForm', u'{ and }'))
-        self.DisplayStyleComboBox.setItemText(
-            3, translate(u'SettingsForm', u'[ and ]'))
-        self.ChangeNoteLabel.setText(translate(u'SettingsForm',
-            u'Note:\nChanges don\'t affect verses already in the service'))
-        self.BibleDualCheckBox.setText(
-            translate(u'SettingsForm', u'Display Dual Bible Verses'))
+        self.VerseDisplayGroupBox.setTitle(self.trUtf8(u'Verse Display'))
+        self.NewChaptersCheckBox.setText(self.trUtf8(u'Only show new chapter numbers'))
+        self.LayoutStyleLabel.setText(self.trUtf8(u'Layout Style:'))
+        self.DisplayStyleLabel.setText(self.trUtf8(u'Display Style:'))
+        self.BibleThemeLabel.setText(self.trUtf8(u'Bible Theme:'))
+        self.LayoutStyleComboBox.setItemText(0, self.trUtf8(u'verse per slide'))
+        self.LayoutStyleComboBox.setItemText(1, self.trUtf8(u'verse per line'))
+        self.LayoutStyleComboBox.setItemText(2, self.trUtf8(u'continuous'))
+        self.DisplayStyleComboBox.setItemText(0, self.trUtf8(u'No brackets'))
+        self.DisplayStyleComboBox.setItemText(1, self.trUtf8(u'( and )'))
+        self.DisplayStyleComboBox.setItemText(2, self.trUtf8(u'{ and }'))
+        self.DisplayStyleComboBox.setItemText(3, self.trUtf8(u'[ and ]'))
+        self.ChangeNoteLabel.setText(
+            self.trUtf8(u'Note:\nChanges don\'t affect verses already in the service'))
+        self.BibleDualCheckBox.setText(self.trUtf8(u'Display Dual Bible Verses'))
 
     def onBibleThemeComboBoxChanged(self):
         self.bible_theme = self.BibleThemeComboBox.currentText()

=== modified file 'openlp/plugins/bibles/lib/manager.py'
--- openlp/plugins/bibles/lib/manager.py	2009-10-14 16:27:46 +0000
+++ openlp/plugins/bibles/lib/manager.py	2009-10-24 07:35:24 +0000
@@ -57,7 +57,7 @@
         """
         self.config = config
         log.debug(u'Bible Initialising')
-        self.web = translate(u'BibleManager', u'Web')
+        self.web = u'Web'
         # dict of bible database objects
         self.bible_db_cache = None
         # dict of bible http readers
@@ -352,8 +352,8 @@
             if book is None:
                 log.debug(u'get_verse_text : new book')
                 for chapter in range(schapter, echapter + 1):
-                    self.media.setQuickMessage \
-                        (u'Downloading %s: %s'% (bookname, chapter))
+                    self.media.setQuickMessage(
+                        self.trUtf8(u'Downloading %s: %s') % (bookname, chapter))
                     search_results = \
                         self.bible_http_cache[bible].get_bible_chapter(
                             bible, 0, bookname, chapter)
@@ -381,8 +381,9 @@
                             v = self.bible_db_cache[bible].get_bible_chapter(
                                 book.id, chapter)
                             if v is None:
-                                self.media.setQuickMessage \
-                                    (u'%Downloading %s: %s'% (bookname, chapter))
+                                self.media.setQuickMessage(
+                                    self.trUtf8(u'%Downloading %s: %s')\
+                                        % (bookname, chapter))
                                 self.bible_db_cache[bible].create_chapter(
                                     book.id, chapter,
                                     search_results.get_verselist())

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2009-10-21 16:54:59 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2009-10-24 07:35:24 +0000
@@ -128,7 +128,7 @@
         self.QuickMessage = QtGui.QLabel(self.QuickTab)
         self.QuickMessage.setObjectName(u'QuickMessage')
         self.QuickLayout.addWidget(self.QuickMessage, 6, 0, 1, 3)
-        self.SearchTabWidget.addTab(self.QuickTab, 'Quick')
+        self.SearchTabWidget.addTab(self.QuickTab, self.trUtf8(u'Quick'))
         QuickSpacerItem = QtGui.QSpacerItem(20, 35, QtGui.QSizePolicy.Minimum,
             QtGui.QSizePolicy.Expanding)
         self.QuickLayout.addItem(QuickSpacerItem, 6, 2, 1, 1)
@@ -206,7 +206,7 @@
         self.AdvancedMessage = QtGui.QLabel(self.AdvancedTab)
         self.AdvancedMessage.setObjectName(u'AdvancedMessage')
         self.AdvancedLayout.addWidget(self.AdvancedMessage, 8, 0, 1, 3)
-        self.SearchTabWidget.addTab(self.AdvancedTab, u'Advanced')
+        self.SearchTabWidget.addTab(self.AdvancedTab, self.trUtf8(u'Advanced'))
         # Add the search tab widget to the page layout
         self.PageLayout.addWidget(self.SearchTabWidget)
         # Combo Boxes
@@ -243,41 +243,27 @@
 
     def retranslateUi(self):
         log.debug(u'retranslateUi')
-        self.QuickVersionLabel.setText(
-            translate(u'BibleMediaItem', u'Version:'))
-        self.QuickSecondVersionLabel.setText(
-            translate(u'BibleMediaItem', u'Dual:'))
-        self.QuickSearchLabel.setText(
-            translate(u'BibleMediaItem', u'Search Type:'))
-        self.QuickSearchLabel.setText(translate(u'BibleMediaItem', u'Find:'))
-        self.QuickSearchButton.setText(translate(u'BibleMediaItem', u'Search'))
-        self.QuickClearLabel.setText(translate(u'BibleMediaItem', u'Results:'))
-        self.AdvancedVersionLabel.setText(
-            translate(u'BibleMediaItem', u'Version:'))
-        self.AdvancedSecondBibleLabel.setText(
-            translate(u'BibleMediaItem', u'Dual:'))
-        self.AdvancedBookLabel.setText(translate(u'BibleMediaItem', u'Book:'))
-        self.AdvancedChapterLabel.setText(
-            translate(u'BibleMediaItem', u'Chapter:'))
-        self.AdvancedVerseLabel.setText(translate(u'BibleMediaItem', u'Verse:'))
-        self.AdvancedFromLabel.setText(translate(u'BibleMediaItem', u'From:'))
-        self.AdvancedToLabel.setText(translate(u'BibleMediaItem', u'To:'))
-        self.AdvancedClearLabel.setText(
-            translate(u'BibleMediaItem', u'Results:'))
-        self.AdvancedSearchButton.setText(
-            translate(u'BibleMediaItem', u'Search'))
-        self.QuickSearchComboBox.addItem(
-            translate(u'BibleMediaItem', u'Verse Search'))
-        self.QuickSearchComboBox.addItem(
-            translate(u'BibleMediaItem', u'Text Search'))
-        self.ClearQuickSearchComboBox.addItem(
-            translate(u'BibleMediaItem', u'Clear'))
-        self.ClearQuickSearchComboBox.addItem(
-            translate(u'BibleMediaItem', u'Keep'))
-        self.ClearAdvancedSearchComboBox.addItem(
-            translate(u'BibleMediaItem', u'Clear'))
-        self.ClearAdvancedSearchComboBox.addItem(
-            translate(u'BibleMediaItem', u'Keep'))
+        self.QuickVersionLabel.setText(self.trUtf8(u'Version:'))
+        self.QuickSecondVersionLabel.setText(self.trUtf8(u'Dual:'))
+        self.QuickSearchLabel.setText(self.trUtf8(u'Search Type:'))
+        self.QuickSearchLabel.setText(self.trUtf8(u'Find:'))
+        self.QuickSearchButton.setText(self.trUtf8(u'Search'))
+        self.QuickClearLabel.setText(self.trUtf8(u'Results:'))
+        self.AdvancedVersionLabel.setText(self.trUtf8(u'Version:'))
+        self.AdvancedSecondBibleLabel.setText(self.trUtf8(u'Dual:'))
+        self.AdvancedBookLabel.setText(self.trUtf8(u'Book:'))
+        self.AdvancedChapterLabel.setText(self.trUtf8(u'Chapter:'))
+        self.AdvancedVerseLabel.setText(self.trUtf8(u'Verse:'))
+        self.AdvancedFromLabel.setText(self.trUtf8(u'From:'))
+        self.AdvancedToLabel.setText(self.trUtf8(u'To:'))
+        self.AdvancedClearLabel.setText(self.trUtf8(u'Results:'))
+        self.AdvancedSearchButton.setText(self.trUtf8(u'Search'))
+        self.QuickSearchComboBox.addItem(self.trUtf8(u'Verse Search'))
+        self.QuickSearchComboBox.addItem(self.trUtf8(u'Text Search'))
+        self.ClearQuickSearchComboBox.addItem(self.trUtf8(u'Clear'))
+        self.ClearQuickSearchComboBox.addItem(self.trUtf8(u'Keep'))
+        self.ClearAdvancedSearchComboBox.addItem(self.trUtf8(u'Clear'))
+        self.ClearAdvancedSearchComboBox.addItem(self.trUtf8(u'Keep'))
 
     def initialise(self):
         log.debug(u'bible manager initialise')
@@ -287,8 +273,8 @@
         log.debug(u'bible manager initialise complete')
 
     def setQuickMessage(self, text):
-        self.QuickMessage.setText(translate(u'BibleMediaItem', unicode(text)))
-        self.AdvancedMessage.setText(translate(u'BibleMediaItem', unicode(text)))
+        self.QuickMessage.setText(text)
+        self.AdvancedMessage.setText(text)
         Receiver().send_message(u'process_events')
         #minor delay to get the events processed
         time.sleep(0.1)
@@ -498,8 +484,7 @@
             book, 1)
         if self.verses == 0:
             self.AdvancedSearchButton.setEnabled(False)
-            self.AdvancedMessage.setText(
-                translate(u'BibleMediaItem', u'Bible not fully loaded'))
+            self.AdvancedMessage.setText(self.trUtf8(u'Bible not fully loaded'))
         else:
             self.AdvancedSearchButton.setEnabled(True)
             self.AdvancedMessage.setText(u'')
@@ -592,7 +577,7 @@
         if end_verse == u'':
             end_verse = 99
         if start_chapter == u'':
-            message = u'No chapter found for search criteria'
+            message = self.trUtf8(u'No chapter found for search criteria')
         log.debug(u'results = %s @ %s : %s @ %s : %s'% \
             (unicode(book), unicode(start_chapter), unicode(end_chapter),
             unicode(start_verse), unicode(end_verse)))
@@ -608,6 +593,5 @@
             self.version = unicode(self.parent.biblemanager.get_meta_data(
                 bible, u'Version').value)
         else:
-            QtGui.QMessageBox.information(self,
-                translate(u'BibleMediaItem', u'Information'),
-                translate(u'BibleMediaItem', message))
+            QtGui.QMessageBox.information(
+                self, self.trUtf8(u'Information'), message)

=== modified file 'openlp/plugins/custom/forms/editcustomdialog.py'
--- openlp/plugins/custom/forms/editcustomdialog.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/custom/forms/editcustomdialog.py	2009-10-24 07:35:24 +0000
@@ -78,7 +78,6 @@
         self.verticalLayout_2.setObjectName(u'verticalLayout_2')
         self.AddButton = QtGui.QPushButton(self.ButtonWidge)
         self.AddButton.setObjectName(u'AddButton')
-        self.AddButton.setToolTip(translate(u'customEditDialog', u'Add new slide at bottom'))
         self.verticalLayout_2.addWidget(self.AddButton)
         self.EditButton = QtGui.QPushButton(self.ButtonWidge)
         self.EditButton.setObjectName(u'EditButton')
@@ -138,22 +137,22 @@
         customEditDialog.setTabOrder(self.ThemeComboBox, self.buttonBox)
 
     def retranslateUi(self, customEditDialog):
-        self.UpButton.setToolTip(translate(u'customEditDialog', u'Move slide Up 1'))
-        self.DownButton.setToolTip(translate(u'customEditDialog', u'Move slide down 1'))
-        customEditDialog.setWindowTitle(translate(u'customEditDialog', 'Edit Custom Slides'))
-        self.TitleLabel.setText(translate(u'customEditDialog', 'Title:'))
-        self.AddButton.setText(translate(u'customEditDialog', 'Add New'))
-        self.AddButton.setToolTip(translate(u'customEditDialog', u'Add new slide at bottom'))
-        self.EditButton.setText(translate(u'customEditDialog', 'Edit'))
-        self.EditButton.setToolTip(translate(u'customEditDialog', u'Edit selected slide'))
-        self.EditAllButton.setText(translate(u'customEditDialog', 'Edit All'))
-        self.EditAllButton.setToolTip(translate(u'customEditDialog', u'Edit all slides'))
-        self.SaveButton.setText(translate(u'customEditDialog', 'Save'))
-        self.SaveButton.setToolTip(translate(u'customEditDialog', u'Replace edited slide'))
-        self.DeleteButton.setText(translate(u'customEditDialog', 'Delete'))
-        self.DeleteButton.setToolTip(translate(u'customEditDialog', u'Delete selected slide'))
-        self.ClearButton.setText(translate(u'customEditDialog', 'Clear'))
-        self.ClearButton.setToolTip(translate(u'customEditDialog', u'Clear edit area'))
-        self.ThemeLabel.setText(translate(u'customEditDialog', 'Theme:'))
-        self.ThemeComboBox.setToolTip(translate(u'customEditDialog', u'Set Theme for Slides'))
-        self.CreditLabel.setText(translate(u'customEditDialog', 'Credits:'))
+        self.UpButton.setToolTip(self.trUtf8(u'Move slide Up 1'))
+        self.DownButton.setToolTip(self.trUtf8(u'Move slide down 1'))
+        customEditDialog.setWindowTitle(self.trUtf8(u'Edit Custom Slides'))
+        self.TitleLabel.setText(self.trUtf8(u'Title:'))
+        self.AddButton.setText(self.trUtf8(u'Add New'))
+        self.AddButton.setToolTip(self.trUtf8(u'Add new slide at bottom'))
+        self.EditButton.setText(self.trUtf8(u'Edit'))
+        self.EditButton.setToolTip(self.trUtf8(u'Edit selected slide'))
+        self.EditAllButton.setText(self.trUtf8(u'Edit All'))
+        self.EditAllButton.setToolTip(self.trUtf8(u'Edit all slides'))
+        self.SaveButton.setText(self.trUtf8(u'Save'))
+        self.SaveButton.setToolTip(self.trUtf8(u'Replace edited slide'))
+        self.DeleteButton.setText(self.trUtf8(u'Delete'))
+        self.DeleteButton.setToolTip(self.trUtf8(u'Delete selected slide'))
+        self.ClearButton.setText(self.trUtf8(u'Clear'))
+        self.ClearButton.setToolTip(self.trUtf8(u'Clear edit area'))
+        self.ThemeLabel.setText(self.trUtf8(u'Theme:'))
+        self.ThemeComboBox.setToolTip(self.trUtf8(u'Set Theme for Slides'))
+        self.CreditLabel.setText(self.trUtf8(u'Credits:'))

=== modified file 'openlp/plugins/custom/forms/editcustomform.py'
--- openlp/plugins/custom/forms/editcustomform.py	2009-09-25 15:49:00 +0000
+++ openlp/plugins/custom/forms/editcustomform.py	2009-10-24 07:35:24 +0000
@@ -60,7 +60,6 @@
             QtCore.SIGNAL(u'pressed()'), self.onUpButtonPressed)
         QtCore.QObject.connect(self.DownButton,
             QtCore.SIGNAL(u'pressed()'), self.onDownButtonPressed)
-
         QtCore.QObject.connect(self.VerseListView,
             QtCore.SIGNAL(u'itemDoubleClicked(QListWidgetItem*)'),
             self.onVerseListViewSelected)
@@ -117,17 +116,15 @@
     def accept(self):
         valid, message = self._validate()
         if not valid:
-            QtGui.QMessageBox.critical(self,
-            translate(u'customEditDialog', u'Error'), message,
-            QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+            QtGui.QMessageBox.critical(self, self.trUtf8(u'Error'), message,
+                QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             return
         sxml = SongXMLBuilder()
         sxml.new_document()
         sxml.add_lyrics_to_song()
         count = 1
         for i in range (0, self.VerseListView.count()):
-            sxml.add_verse_to_lyrics(
-                u'custom', unicode(count),
+            sxml.add_verse_to_lyrics(u'custom', unicode(count),
                 unicode(self.VerseListView.item(i).text()))
             count += 1
         self.customSlide.title = unicode(self.TitleEdit.displayText())
@@ -229,11 +226,9 @@
     def _validate(self):
         if len(self.TitleEdit.displayText()) == 0:
             self.TitleEdit.setFocus()
-            return False, translate(
-                u'customEditDialog', u'You need to enter a title \n')
+            return False, self.trUtf8(u'You need to enter a title \n')
         # must have 1 slide
         if self.VerseListView.count() == 0:
             self.VerseTextEdit.setFocus()
-            return False, translate(
-                u'customEditDialog', u'You need to enter a slide \n')
+            return False, self.trUtf8(u'You need to enter a slide \n')
         return True,  u''

=== modified file 'openlp/plugins/images/lib/imagetab.py'
--- openlp/plugins/images/lib/imagetab.py	2009-10-07 05:09:35 +0000
+++ openlp/plugins/images/lib/imagetab.py	2009-10-24 07:35:24 +0000
@@ -31,7 +31,8 @@
     ImageTab is the Image settings tab in the settings dialog.
     """
     def __init__(self):
-        SettingsTab.__init__(self, translate(u'ImageTab', u'Images'), u'Image')
+        #SettingsTab.__init__(self, self.trUtf8(u'Images'), u'Image')
+        SettingsTab.__init__(self, u'Images', u'Image')
 
     def setupUi(self):
         self.setObjectName(u'ImageTab')
@@ -60,9 +61,9 @@
             QtCore.SIGNAL(u'valueChanged(int)'), self.onTimeoutSpinBoxChanged)
 
     def retranslateUi(self):
-        self.ImageSettingsGroupBox.setTitle(translate(u'ImageTab', u'Image Settings'))
-        self.TimeoutLabel.setText(translate(u'ImageTab', u'Slide Loop Delay:'))
-        self.TimeoutSpinBox.setSuffix(translate(u'ImageTab', u's'))
+        self.ImageSettingsGroupBox.setTitle(self.trUtf8(u'Image Settings'))
+        self.TimeoutLabel.setText(self.trUtf8(u'Slide Loop Delay:'))
+        self.TimeoutSpinBox.setSuffix(self.trUtf8(u'sec'))
 
     def onTimeoutSpinBoxChanged(self):
         self.loop_delay = self.TimeoutSpinBox.value()
@@ -73,7 +74,7 @@
 
     def save(self):
         self.config.set_config(u'loop delay', self.loop_delay)
-        Receiver().send_message(u'update_spin_delay', self.loop_delay )
+        Receiver().send_message(u'update_spin_delay', self.loop_delay)
 
     def postSetUp(self):
-        Receiver().send_message(u'update_spin_delay', self.loop_delay )
+        Receiver().send_message(u'update_spin_delay', self.loop_delay)

=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py	2009-10-09 22:46:35 +0000
+++ openlp/plugins/images/lib/mediaitem.py	2009-10-24 07:35:24 +0000
@@ -48,8 +48,6 @@
         self.PluginTextShort = u'Image'
         self.ConfigSection = u'images'
         self.IconPath = u'images/image'
-        self.OnNewPrompt = u'Select Image(s)'
-        self.OnNewFileMasks = u'Images (*.jpg *jpeg *.gif *.png *.bmp)'
         # this next is a class, not an instance of a class - it will
         # be instanced by the base MediaManagerItem
         self.ListViewWithDnD_class = ImageListView
@@ -58,6 +56,11 @@
         MediaManagerItem.__init__(self, parent, icon, title)
         self.overrideActive = False
 
+    def retranslateUi(self):
+        self.OnNewPrompt = self.trUtf8(u'Select Image(s)')
+        self.OnNewFileMasks = \
+            self.trUtf8(u'Images (*.jpg *jpeg *.gif *.png *.bmp)')
+
     def requiredIcons(self):
         MediaManagerItem.requiredIcons(self)
         self.hasFileIcon = True
@@ -94,9 +97,9 @@
         self.OverrideCheckBox.setObjectName(u'OverrideCheckBox')
         self.OverrideCheckBox.setCheckable(True)
         self.OverrideCheckBox.setChecked(False)
-        self.OverrideCheckBox.setText(translate(u'ImagePlugin', u'Override background'))
+        self.OverrideCheckBox.setText(self.trUtf8(u'Override background'))
         self.OverrideCheckBox.setStatusTip(
-            translate(u'ImageMedia', u'Allow background of live slide to be overridden'))
+            self.trUtf8(u'Allow background of live slide to be overridden'))
         self.OverrideLayout.addWidget(self.OverrideCheckBox)
         self.OverrideLabel = QtGui.QLabel(self.ImageWidget)
         self.OverrideLabel.setObjectName(u'OverrideLabel')
@@ -139,7 +142,7 @@
         items = self.ListView.selectedIndexes()
         if len(items) == 0:
             return False
-        service_item.title = u'Image(s)'
+        service_item.title = self.trUtf8(u'Image(s)')
         for item in items:
             bitem = self.ListView.item(item.row())
             filename = unicode((bitem.data(QtCore.Qt.UserRole)).toString())

=== modified file 'openlp/plugins/media/lib/mediatab.py'
--- openlp/plugins/media/lib/mediatab.py	2009-09-21 17:56:36 +0000
+++ openlp/plugins/media/lib/mediatab.py	2009-10-24 07:35:24 +0000
@@ -31,7 +31,8 @@
     mediaTab is the media settings tab in the settings dialog.
     """
     def __init__(self):
-        SettingsTab.__init__(self, translate(u'MediaTab', u'Media'), u'Media')
+        SettingsTab.__init__(self, u'Media', u'Media')
+        #SettingsTab.__init__(self, self.trUtf8(u'Media'), u'Media')
 
     def setupUi(self):
         self.setObjectName(u'MediaTab')
@@ -57,14 +58,10 @@
             QtCore.SIGNAL(u'stateChanged(int)'), self.onVMRCheckBoxChanged)
 
     def retranslateUi(self):
-        self.MediaModeGroupBox.setTitle(translate(u'MediaTab', u'Media Mode'))
-        self.UseVMRCheckBox.setText(
-            translate(u'MediaTab', u'Use Video Mode Rendering'))
-        self.UseVMRLabel.setText(translate(u'MediaTab', u'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd";>\n'
-            u'<html><head><meta name="qrichtext" content="1" /><style type="text/css">\n'
-            u'p, li { white-space: pre-wrap; }\n'
-            u'</style></head><body style="font-family:\'DejaVu Sans\'; font-size:10pt; font-weight:400; font-style:normal;">\n'
-            u'<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">No video preview available with VMR enabled</span></p></body></html>'))
+        self.MediaModeGroupBox.setTitle(self.trUtf8(u'Media Mode'))
+        self.UseVMRCheckBox.setText(self.trUtf8(u'Use Video Mode Rendering'))
+        self.UseVMRLabel.setText(
+            self.trUtf8(u'<em>No video preview available with VMR enabled</em>'))
 
     def onVMRCheckBoxChanged(self):
         use_vmr_mode = self.UseVMRCheckBox.checkState()

=== modified file 'openlp/plugins/presentations/lib/mediaitem.py'
--- openlp/plugins/presentations/lib/mediaitem.py	2009-10-16 23:34:56 +0000
+++ openlp/plugins/presentations/lib/mediaitem.py	2009-10-24 07:35:24 +0000
@@ -84,8 +84,7 @@
         self.DisplayTypeLabel = QtGui.QLabel(self.PresentationWidget)
         self.DisplayTypeLabel.setObjectName(u'SearchTypeLabel')
         self.DisplayLayout.addWidget(self.DisplayTypeLabel, 0, 0, 1, 1)
-        self.DisplayTypeLabel.setText(
-            translate(u'PresentationMediaItem', u'Present using:'))
+        self.DisplayTypeLabel.setText(self.trUtf8(u'Present using:'))
         # Add the Presentation widget to the page layout
         self.PageLayout.addWidget(self.PresentationWidget)
 
@@ -107,8 +106,9 @@
                 continue
             (path, filename) = os.path.split(unicode(file))
             if titles.count(filename) > 0:
-                QtGui.QMessageBox.critical(self, u'File exists',
-                    u'A presentation with that filename already exists.',
+                QtGui.QMessageBox.critical(
+                    self, self.trUtf8(u'File exists'),
+                    self.trUtf8(u'A presentation with that filename already exists.'),
                     QtGui.QMessageBox.Ok)
             else:
                 item_name = QtGui.QListWidgetItem(filename)

=== modified file 'openlp/plugins/presentations/lib/presentationtab.py'
--- openlp/plugins/presentations/lib/presentationtab.py	2009-10-01 23:43:16 +0000
+++ openlp/plugins/presentations/lib/presentationtab.py	2009-10-24 07:35:24 +0000
@@ -32,8 +32,7 @@
     """
     def __init__(self, controllers):
         self.controllers = controllers
-        SettingsTab.__init__(self,
-            translate(u'PresentationTab', u'Presentation'), u'Presentations')
+        SettingsTab.__init__(self, u'Presentation', u'Presentations')
 
     def setupUi(self):
         self.setObjectName(u'PresentationTab')
@@ -98,8 +97,8 @@
         for key in self.controllers:
             controller = self.controllers[key]
             checkbox = self.PresenterCheckboxes[controller.name]
-            checkbox.setText(translate(u'PresentationTab',
-                controller.name + u' available:'))
+            checkbox.setText(
+                u'%s %s:' % (controller.name, self.trUtf8(u'available')))
 
     def load(self):
         for key in self.controllers:

=== modified file 'openlp/plugins/remotes/lib/remotetab.py'
--- openlp/plugins/remotes/lib/remotetab.py	2009-10-03 07:25:41 +0000
+++ openlp/plugins/remotes/lib/remotetab.py	2009-10-24 07:35:24 +0000
@@ -27,8 +27,7 @@
     RemoteTab is the Remotes settings tab in the settings dialog.
     """
     def __init__(self):
-        SettingsTab.__init__(
-            self, translate(u'RemoteTab', u'Remotes'), u'Remotes')
+        SettingsTab.__init__(self, u'Remotes', u'Remotes')
 
     def setupUi(self):
         self.setObjectName(u'RemoteTab')
@@ -48,8 +47,7 @@
             0, QtGui.QFormLayout.LabelRole, self.RemoteModeGroupBox)
 
     def retranslateUi(self):
-        self.RemoteModeGroupBox.setTitle(
-            translate(u'RemoteTab', u'Remotes Receiver Port'))
+        self.RemoteModeGroupBox.setTitle(self.trUtf8(u'Remotes Receiver Port'))
 
     def load(self):
         self.RemotePortSpinBox.setValue(

=== modified file 'openlp/plugins/songs/forms/authorsdialog.py'
--- openlp/plugins/songs/forms/authorsdialog.py	2009-09-08 19:58:05 +0000
+++ openlp/plugins/songs/forms/authorsdialog.py	2009-10-24 07:35:24 +0000
@@ -73,11 +73,7 @@
         QtCore.QMetaObject.connectSlotsByName(AuthorsDialog)
 
     def retranslateUi(self, AuthorsDialog):
-        AuthorsDialog.setWindowTitle(
-            translate(u'AuthorsDialog', u'Author Maintenance'))
-        self.DisplayLabel.setText(
-            translate(u'AuthorsDialog', u'Display name:'))
-        self.FirstNameLabel.setText(
-            translate(u'AuthorsDialog', u'First name:'))
-        self.LastNameLabel.setText(
-            translate(u'AuthorsDialog', u'Last name:'))
+        AuthorsDialog.setWindowTitle(self.trUtf8(u'Author Maintenance'))
+        self.DisplayLabel.setText(self.trUtf8(u'Display name:'))
+        self.FirstNameLabel.setText(self.trUtf8(u'First name:'))
+        self.LastNameLabel.setText(self.trUtf8(u'Last name:'))

=== modified file 'openlp/plugins/songs/forms/authorsform.py'
--- openlp/plugins/songs/forms/authorsform.py	2009-09-08 19:58:05 +0000
+++ openlp/plugins/songs/forms/authorsform.py	2009-10-24 07:35:24 +0000
@@ -74,23 +74,25 @@
 
     def accept(self):
         if not self.FirstNameEdit.text():
-            QtGui.QMessageBox.critical(self,
-                translate(u'AuthorsDialog', u'Error'),
-                translate(u'AuthorsDialog', u'You need to type in the first name of the author.'),
+            QtGui.QMessageBox.critical(
+                self, self.trUtf8(u'Error'),
+                self.trUtf8(u'You need to type in the first name of the author.'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             self.FirstNameEdit.setFocus()
             return False
         elif not self.LastNameEdit.text():
-            QtGui.QMessageBox.critical(self,
-                translate(u'AuthorsDialog', u'Error'),
-                translate(u'AuthorsDialog', u'You need to type in the last name of the author.'),
+            QtGui.QMessageBox.critical(
+                self, self.trUtf8(u'Error'),
+                self.trUtf8(u'You need to type in the last name of the author.'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             self.LastNameEdit.setFocus()
             return False
         elif not self.DisplayEdit.text():
-            if QtGui.QMessageBox.critical(self,
-                    translate(u'AuthorsDialog', u'Error'),
-                    translate(u'AuthorsDialog', u'You haven\'t set a display name for the author, would you like me to combine the first and last names for you?'),
+            if QtGui.QMessageBox.critical(
+                    self, self.trUtf8(u'Error'),
+                    self.trUtf8(u'You haven\'t set a display name for the '
+                        u'author, would you like me to combine the first and '
+                        u'last names for you?'),
                     QtGui.QMessageBox.StandardButtons(
                         QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
                     ) == QtGui.QMessageBox.Yes:

=== modified file 'openlp/plugins/songs/forms/editsongdialog.py'
--- openlp/plugins/songs/forms/editsongdialog.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/forms/editsongdialog.py	2009-10-24 07:35:24 +0000
@@ -414,33 +414,37 @@
         EditSongDialog.setTabOrder(self.CommentsEdit, self.ButtonBox)
 
     def retranslateUi(self, EditSongDialog):
-        EditSongDialog.setWindowTitle(translate(u'EditSongDialog', u'Song Editor'))
-        self.TitleLabel.setText(translate(u'EditSongDialog', u'Title:'))
-        self.AlternativeTitleLabel.setText(translate(u'EditSongDialog', u'Alternative Title:'))
-        self.LyricsLabel.setText(translate(u'EditSongDialog', u'Lyrics:'))
-        self.VerseOrderLabel.setText(translate(u'EditSongDialog', u'Verse Order:'))
-        self.VerseAddButton.setText(translate(u'EditSongDialog', u'Add'))
-        self.VerseEditButton.setText(translate(u'EditSongDialog', u'Edit'))
-        self.VerseEditAllButton.setText(translate(u'EditSongDialog', u'Edit All'))
-        self.VerseDeleteButton.setText(translate(u'EditSongDialog', u'Delete'))
-        self.SongTabWidget.setTabText(self.SongTabWidget.indexOf(self.LyricsTab),
-            translate(u'EditSongDialog', u'Title && Lyrics'))
-        self.AuthorsGroupBox.setTitle(translate(u'EditSongDialog', u'Authors'))
-        self.AuthorAddButton.setText(translate(u'EditSongDialog', u'&Add to Song'))
-        self.AuthorRemoveButton.setText(translate(u'EditSongDialog', u'&Remove'))
-        self.MaintenanceButton.setText(translate(u'EditSongDialog', u'&Manage Authors, Topics, Books'))
-        self.TopicGroupBox.setTitle(translate(u'EditSongDialog', u'Topic'))
-        self.TopicAddButton.setText(translate(u'EditSongDialog', u'A&dd to Song'))
-        self.TopicRemoveButton.setText(translate(u'EditSongDialog', u'R&emove'))
-        self.SongBookGroup.setTitle(translate(u'EditSongDialog', u'Song Book'))
-        self.SongTabWidget.setTabText(self.SongTabWidget.indexOf(self.AuthorsTab),
-            translate(u'EditSongDialog', u'Authors, Topics && Book'))
-        self.ThemeGroupBox.setTitle(translate(u'EditSongDialog', u'Theme'))
-        self.ThemeAddButton.setText(translate(u'EditSongDialog', u'Add a Theme'))
-        self.CopyrightGroupBox.setTitle(translate(u'EditSongDialog', u'Copyright Information'))
-        self.CopyrightInsertButton.setText(translate(u'EditSongDialog', '©'))
-        self.CCLILabel.setText(translate(u'EditSongDialog', u'CCLI Number:'))
-        self.CommentsGroupBox.setTitle(translate(u'EditSongDialog', u'Comments'))
-        self.SongTabWidget.setTabText(self.SongTabWidget.indexOf(self.ThemeTab),
-            translate(u'EditSongDialog', u'Theme, Copyright Info && Comments'))
+        EditSongDialog.setWindowTitle(self.trUtf8(u'Song Editor'))
+        self.TitleLabel.setText(self.trUtf8(u'Title:'))
+        self.AlternativeTitleLabel.setText(self.trUtf8(u'Alternative Title:'))
+        self.LyricsLabel.setText(self.trUtf8(u'Lyrics:'))
+        self.VerseOrderLabel.setText(self.trUtf8(u'Verse Order:'))
+        self.VerseAddButton.setText(self.trUtf8(u'Add'))
+        self.VerseEditButton.setText(self.trUtf8(u'Edit'))
+        self.VerseEditAllButton.setText(self.trUtf8(u'Edit All'))
+        self.VerseDeleteButton.setText(self.trUtf8(u'Delete'))
+        self.SongTabWidget.setTabText(
+            self.SongTabWidget.indexOf(self.LyricsTab),
+            self.trUtf8(u'Title && Lyrics'))
+        self.AuthorsGroupBox.setTitle(self.trUtf8(u'Authors'))
+        self.AuthorAddButton.setText(self.trUtf8(u'&Add to Song'))
+        self.AuthorRemoveButton.setText(self.trUtf8(u'&Remove'))
+        self.MaintenanceButton.setText(
+            self.trUtf8(u'&Manage Authors, Topics, Books'))
+        self.TopicGroupBox.setTitle(self.trUtf8(u'Topic'))
+        self.TopicAddButton.setText(self.trUtf8(u'A&dd to Song'))
+        self.TopicRemoveButton.setText(self.trUtf8(u'R&emove'))
+        self.SongBookGroup.setTitle(self.trUtf8(u'Song Book'))
+        self.SongTabWidget.setTabText(
+            self.SongTabWidget.indexOf(self.AuthorsTab),
+            self.trUtf8(u'Authors, Topics && Book'))
+        self.ThemeGroupBox.setTitle(self.trUtf8(u'Theme'))
+        self.ThemeAddButton.setText(self.trUtf8(u'Add a Theme'))
+        self.CopyrightGroupBox.setTitle(self.trUtf8(u'Copyright Information'))
+        self.CopyrightInsertButton.setText(self.trUtf8(u'\xa9'))
+        self.CCLILabel.setText(self.trUtf8(u'CCLI Number:'))
+        self.CommentsGroupBox.setTitle(self.trUtf8(u'Comments'))
+        self.SongTabWidget.setTabText(
+            self.SongTabWidget.indexOf(self.ThemeTab),
+            self.trUtf8(u'Theme, Copyright Info && Comments'))
 

=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py	2009-10-09 22:46:35 +0000
+++ openlp/plugins/songs/forms/editsongform.py	2009-10-24 07:35:24 +0000
@@ -353,18 +353,15 @@
         if len(self.TitleEditItem.displayText()) == 0:
             self.SongTabWidget.setCurrentIndex(0)
             self.TitleEditItem.setFocus()
-            return False, translate(
-                u'SongFormDialog', u'You need to enter a song title.')
+            return False, self.trUtf8(u'You need to enter a song title.')
         if self.VerseListWidget.count() == 0:
             self.SongTabWidget.setCurrentIndex(0)
             self.VerseListWidget.setFocus()
-            return False, translate(
-                u'SongFormDialog', u'You need to enter some verses.')
+            return False, self.trUtf8(u'You need to enter some verses.')
         if self.AuthorsListView.count() == 0:
             self.SongTabWidget.setCurrentIndex(2)
             self.AuthorsListView.setFocus()
-            return False, translate(
-                u'SongFormDialog', u'You need to provide at least one author.')
+            return False, self.trUtf8(u'You need to provide at least one author.')
         return True, u''
 
     def onTitleEditItemLostFocus(self):
@@ -398,9 +395,9 @@
         log.debug(u'accept')
         valid, message = self._validate_song()
         if not valid:
-            QtGui.QMessageBox.critical(self,
-            translate(u'SongFormDialog', u'Error'), message,
-            QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+            QtGui.QMessageBox.critical(
+                self, self.trUtf8(u'Error'), message,
+                QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             return
         self.song.title = unicode(self.TitleEditItem.displayText())
         self.song.copyright = unicode(self.CopyrightEditItem.displayText())

=== modified file 'openlp/plugins/songs/forms/editversedialog.py'
--- openlp/plugins/songs/forms/editversedialog.py	2009-09-08 19:58:05 +0000
+++ openlp/plugins/songs/forms/editversedialog.py	2009-10-24 07:35:24 +0000
@@ -50,4 +50,4 @@
         self.VerseTextEdit.setFocus(QtCore.Qt.OtherFocusReason)
 
     def retranslateUi(self, EditVerseDialog):
-        EditVerseDialog.setWindowTitle(translate(u'EditVerseDialog', u'Song Verse Edit Dialog'))
+        EditVerseDialog.setWindowTitle(self.trUtf8(u'Edit Verse'))

=== added file 'openlp/plugins/songs/forms/openlpexportdialog.py'
--- openlp/plugins/songs/forms/openlpexportdialog.py	1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/forms/openlpexportdialog.py	2009-10-24 07:35:24 +0000
@@ -0,0 +1,305 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten      #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# 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
+
+class Ui_OpenLPExportDialog(object):
+    def setupUi(self, OpenLPExportDialog):
+        OpenLPExportDialog.setObjectName(u'OpenLPExportDialog')
+        OpenLPExportDialog.resize(473, 459)
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        OpenLPExportDialog.setWindowIcon(icon)
+        self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportDialog)
+        self.verticalLayout_5.setMargin(8)
+        self.verticalLayout_5.setObjectName(u'verticalLayout_5')
+        self.ExportFileWidget = QtGui.QWidget(OpenLPExportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth())
+        self.ExportFileWidget.setSizePolicy(sizePolicy)
+        self.ExportFileWidget.setObjectName(u'ExportFileWidget')
+        self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget)
+        self.horizontalLayout.setSpacing(3)
+        self.horizontalLayout.setMargin(0)
+        self.horizontalLayout.setObjectName(u'horizontalLayout')
+        self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget)
+        self.ExportFileLabel.setObjectName(u'ExportFileLabel')
+        self.horizontalLayout.addWidget(self.ExportFileLabel)
+        self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget)
+        self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit')
+        self.horizontalLayout.addWidget(self.ExportFileLineEdit)
+        self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget)
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ExportFileSelectPushButton.setIcon(icon1)
+        self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton')
+        self.horizontalLayout.addWidget(self.ExportFileSelectPushButton)
+        self.verticalLayout_5.addWidget(self.ExportFileWidget)
+        self.SongListFrame = QtGui.QFrame(OpenLPExportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth())
+        self.SongListFrame.setSizePolicy(sizePolicy)
+        self.SongListFrame.setFrameShape(QtGui.QFrame.Box)
+        self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised)
+        self.SongListFrame.setObjectName(u'SongListFrame')
+        self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame)
+        self.horizontalLayout_6.setSpacing(8)
+        self.horizontalLayout_6.setMargin(8)
+        self.horizontalLayout_6.setObjectName(u'horizontalLayout_6')
+        self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth())
+        self.ExportFileSongListWidget.setSizePolicy(sizePolicy)
+        self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget')
+        self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setMargin(0)
+        self.verticalLayout.setObjectName(u'verticalLayout')
+        self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget)
+        self.ExportListLabel.setObjectName(u'ExportListLabel')
+        self.verticalLayout.addWidget(self.ExportListLabel)
+        self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget)
+        self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+        self.ExportListTable.setShowGrid(False)
+        self.ExportListTable.setWordWrap(False)
+        self.ExportListTable.setCornerButtonEnabled(False)
+        self.ExportListTable.setObjectName(u'ExportListTable')
+        self.ExportListTable.setColumnCount(2)
+        self.ExportListTable.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.ExportListTable.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.ExportListTable.setHorizontalHeaderItem(1, item)
+        self.verticalLayout.addWidget(self.ExportListTable)
+        self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget)
+        self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget')
+        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget)
+        self.horizontalLayout_2.setSpacing(6)
+        self.horizontalLayout_2.setMargin(0)
+        self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
+        self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth())
+        self.ExportSelectAllPushButton.setSizePolicy(sizePolicy)
+        self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
+        icon2 = QtGui.QIcon()
+        icon2.addPixmap(QtGui.QPixmap(u':/exports/export_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ExportSelectAllPushButton.setIcon(icon2)
+        self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton')
+        self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton)
+        spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_2.addItem(spacerItem)
+        self.verticalLayout.addWidget(self.ExportSelectAllWidget)
+        self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth())
+        self.exportFilterWidget.setSizePolicy(sizePolicy)
+        self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0))
+        self.exportFilterWidget.setObjectName(u'exportFilterWidget')
+        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget)
+        self.horizontalLayout_3.setMargin(0)
+        self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
+        self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget)
+        self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0))
+        self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox')
+        self.ExportFilterComboBox.addItem(QtCore.QString())
+        self.ExportFilterComboBox.addItem(QtCore.QString())
+        self.ExportFilterComboBox.addItem(QtCore.QString())
+        self.horizontalLayout_3.addWidget(self.ExportFilterComboBox)
+        self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget)
+        self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit')
+        self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit)
+        self.verticalLayout.addWidget(self.exportFilterWidget)
+        self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget)
+        self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth())
+        self.AddSelectedWidget.setSizePolicy(sizePolicy)
+        self.AddSelectedWidget.setObjectName(u'AddSelectedWidget')
+        self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget)
+        self.verticalLayout_3.setMargin(0)
+        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
+        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem1)
+        self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth())
+        self.AddSelectedPushButton.setSizePolicy(sizePolicy)
+        self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25))
+        icon3 = QtGui.QIcon()
+        icon3.addPixmap(QtGui.QPixmap(u':/exports/export_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.AddSelectedPushButton.setIcon(icon3)
+        self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton')
+        self.verticalLayout_3.addWidget(self.AddSelectedPushButton)
+        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem2)
+        self.horizontalLayout_6.addWidget(self.AddSelectedWidget)
+        self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth())
+        self.SelectedFileListWidget.setSizePolicy(sizePolicy)
+        self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget')
+        self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget)
+        self.verticalLayout_2.setMargin(0)
+        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
+        self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget)
+        self.SelectedListLabel.setObjectName(u'SelectedListLabel')
+        self.verticalLayout_2.addWidget(self.SelectedListLabel)
+        self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget)
+        self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+        self.SelectedListTable.setShowGrid(False)
+        self.SelectedListTable.setWordWrap(False)
+        self.SelectedListTable.setCornerButtonEnabled(False)
+        self.SelectedListTable.setObjectName(u'SelectedListTable')
+        self.SelectedListTable.setColumnCount(2)
+        self.SelectedListTable.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.SelectedListTable.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.SelectedListTable.setHorizontalHeaderItem(1, item)
+        self.verticalLayout_2.addWidget(self.SelectedListTable)
+        self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget)
+        self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget')
+        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget)
+        self.horizontalLayout_4.setSpacing(6)
+        self.horizontalLayout_4.setMargin(0)
+        self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
+        self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth())
+        self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy)
+        self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
+        self.SelectedSelectAllPushButton.setIcon(icon2)
+        self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton')
+        self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton)
+        spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_4.addItem(spacerItem3)
+        self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget)
+        self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth())
+        self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy)
+        self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget')
+        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget)
+        self.horizontalLayout_5.setMargin(0)
+        self.horizontalLayout_5.setObjectName(u'horizontalLayout_5')
+        self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth())
+        self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy)
+        self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0))
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(u':/exports/export_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.SelectedRemoveSelectedButton.setIcon(icon4)
+        self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton')
+        self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton)
+        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_5.addItem(spacerItem4)
+        self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget)
+        self.horizontalLayout_6.addWidget(self.SelectedFileListWidget)
+        self.verticalLayout_5.addWidget(self.SongListFrame)
+        self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
+        self.ProgressGroupBox.setSizePolicy(sizePolicy)
+        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
+        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
+        self.verticalLayout_4.setSpacing(8)
+        self.verticalLayout_4.setContentsMargins(8, 0, 8, 8)
+        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
+        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
+        self.ProgressLabel.setObjectName(u'ProgressLabel')
+        self.verticalLayout_4.addWidget(self.ProgressLabel)
+        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
+        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
+        self.ProgressBar.setObjectName(u'ProgressBar')
+        self.verticalLayout_4.addWidget(self.ProgressBar)
+        self.verticalLayout_5.addWidget(self.ProgressGroupBox)
+        self.ButtonBarWidget = QtGui.QWidget(OpenLPExportDialog)
+        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
+        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
+        self.horizontalLayout_7.setSpacing(8)
+        self.horizontalLayout_7.setMargin(0)
+        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
+        spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_7.addItem(spacerItem5)
+        self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ExportPushButton.setObjectName(u'ExportPushButton')
+        self.horizontalLayout_7.addWidget(self.ExportPushButton)
+        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ClosePushButton.setObjectName(u'ClosePushButton')
+        self.horizontalLayout_7.addWidget(self.ClosePushButton)
+        self.verticalLayout_5.addWidget(self.ButtonBarWidget)
+
+        self.retranslateUi(OpenLPExportDialog)
+        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportDialog.close)
+        QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll)
+        QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll)
+        QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear)
+        QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog)
+
+    def retranslateUi(self, OpenLPExportDialog):
+        OpenLPExportDialog.setWindowTitle(self.trUtf8(u'openlp.org Song Exporter'))
+        self.ExportFileLabel.setText(self.trUtf8(u'Select openlp.org export filename:'))
+        self.ExportListLabel.setText(self.trUtf8(u'Full Song List'))
+        self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title'))
+        self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author'))
+        self.ExportSelectAllPushButton.setText(self.trUtf8(u'Select All'))
+        self.ExportFilterComboBox.setItemText(0, self.trUtf8(u'Lyrics'))
+        self.ExportFilterComboBox.setItemText(1, self.trUtf8(u'Title'))
+        self.ExportFilterComboBox.setItemText(2, self.trUtf8(u'Author'))
+        self.SelectedListLabel.setText(self.trUtf8(u'Song Export List'))
+        self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title'))
+        self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author'))
+        self.SelectedSelectAllPushButton.setText(self.trUtf8(u'Select All'))
+        self.SelectedRemoveSelectedButton.setText(self.trUtf8(u'Remove Selected'))
+        self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:'))
+        self.ProgressLabel.setText(self.trUtf8(u'Ready to export'))
+        self.ExportPushButton.setText(self.trUtf8(u'Export'))
+        self.ClosePushButton.setText(self.trUtf8(u'Close'))
+

=== modified file 'openlp/plugins/songs/forms/openlpexportform.py'
--- openlp/plugins/songs/forms/openlpexportform.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/forms/openlpexportform.py	2009-10-24 07:35:24 +0000
@@ -23,286 +23,11 @@
 ###############################################################################
 
 from PyQt4 import QtCore, QtGui
-from openlp.core.lib import translate, buildIcon
-
-class OpenLPExportForm(object):
-
-    def __init__(self):
-        self.OpenLPExportForm = QtGui.QWidget()
-        self.setupUi()
-
-    def setupUi(self):
-        self.OpenLPExportForm.setObjectName(u'OpenLPExportForm')
-        self.OpenLPExportForm.resize(473, 459)
-        icon = buildIcon(u':/icon/openlp-logo-16x16.png')
-        self.OpenLPExportForm.setWindowIcon(icon)
-        self.verticalLayout_5 = QtGui.QVBoxLayout(self.OpenLPExportForm)
-        self.verticalLayout_5.setMargin(8)
-        self.verticalLayout_5.setObjectName(u'verticalLayout_5')
-        self.ExportFileWidget = QtGui.QWidget(self.OpenLPExportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth())
-        self.ExportFileWidget.setSizePolicy(sizePolicy)
-        self.ExportFileWidget.setObjectName(u'ExportFileWidget')
-        self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget)
-        self.horizontalLayout.setSpacing(3)
-        self.horizontalLayout.setMargin(0)
-        self.horizontalLayout.setObjectName(u'horizontalLayout')
-        self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget)
-        self.ExportFileLabel.setObjectName(u'ExportFileLabel')
-        self.horizontalLayout.addWidget(self.ExportFileLabel)
-        self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget)
-        self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit')
-        self.horizontalLayout.addWidget(self.ExportFileLineEdit)
-        self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget)
-        icon1 = buildIcon(u':/exports/export_load.png')
-        self.ExportFileSelectPushButton.setIcon(icon1)
-        self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton')
-        self.horizontalLayout.addWidget(self.ExportFileSelectPushButton)
-        self.verticalLayout_5.addWidget(self.ExportFileWidget)
-        self.SongListFrame = QtGui.QFrame(self.OpenLPExportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth())
-        self.SongListFrame.setSizePolicy(sizePolicy)
-        self.SongListFrame.setFrameShape(QtGui.QFrame.Box)
-        self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.SongListFrame.setObjectName(u'SongListFrame')
-        self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame)
-        self.horizontalLayout_6.setSpacing(8)
-        self.horizontalLayout_6.setMargin(8)
-        self.horizontalLayout_6.setObjectName(u'horizontalLayout_6')
-        self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth())
-        self.ExportFileSongListWidget.setSizePolicy(sizePolicy)
-        self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget')
-        self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget)
-        self.verticalLayout.setSpacing(6)
-        self.verticalLayout.setMargin(0)
-        self.verticalLayout.setObjectName(u'verticalLayout')
-        self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget)
-        self.ExportListLabel.setObjectName(u'ExportListLabel')
-        self.verticalLayout.addWidget(self.ExportListLabel)
-        self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget)
-        self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
-        self.ExportListTable.setShowGrid(False)
-        self.ExportListTable.setWordWrap(False)
-        self.ExportListTable.setCornerButtonEnabled(False)
-        self.ExportListTable.setObjectName(u'ExportListTable')
-        self.ExportListTable.setColumnCount(2)
-        self.ExportListTable.setRowCount(0)
-        item = QtGui.QTableWidgetItem()
-        self.ExportListTable.setHorizontalHeaderItem(0, item)
-        item = QtGui.QTableWidgetItem()
-        self.ExportListTable.setHorizontalHeaderItem(1, item)
-        self.verticalLayout.addWidget(self.ExportListTable)
-        self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget)
-        self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget')
-        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget)
-        self.horizontalLayout_2.setSpacing(6)
-        self.horizontalLayout_2.setMargin(0)
-        self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
-        self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth())
-        self.ExportSelectAllPushButton.setSizePolicy(sizePolicy)
-        self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
-        icon2 = buildIcon(u':/exports/export_selectall.png')
-        self.ExportSelectAllPushButton.setIcon(icon2)
-        self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton')
-        self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton)
-        spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_2.addItem(spacerItem)
-        self.verticalLayout.addWidget(self.ExportSelectAllWidget)
-        self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth())
-        self.exportFilterWidget.setSizePolicy(sizePolicy)
-        self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0))
-        self.exportFilterWidget.setObjectName(u'exportFilterWidget')
-        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget)
-        self.horizontalLayout_3.setMargin(0)
-        self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
-        self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget)
-        self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0))
-        self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox')
-        self.ExportFilterComboBox.addItem(QtCore.QString())
-        self.ExportFilterComboBox.addItem(QtCore.QString())
-        self.ExportFilterComboBox.addItem(QtCore.QString())
-        self.horizontalLayout_3.addWidget(self.ExportFilterComboBox)
-        self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget)
-        self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit')
-        self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit)
-        self.verticalLayout.addWidget(self.exportFilterWidget)
-        self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget)
-        self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth())
-        self.AddSelectedWidget.setSizePolicy(sizePolicy)
-        self.AddSelectedWidget.setObjectName(u'AddSelectedWidget')
-        self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget)
-        self.verticalLayout_3.setMargin(0)
-        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
-        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_3.addItem(spacerItem1)
-        self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth())
-        self.AddSelectedPushButton.setSizePolicy(sizePolicy)
-        self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25))
-        icon3 = buildIcon(u':/exports/export_move_to_list.png')
-        self.AddSelectedPushButton.setIcon(icon3)
-        self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton')
-        self.verticalLayout_3.addWidget(self.AddSelectedPushButton)
-        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_3.addItem(spacerItem2)
-        self.horizontalLayout_6.addWidget(self.AddSelectedWidget)
-        self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth())
-        self.SelectedFileListWidget.setSizePolicy(sizePolicy)
-        self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget')
-        self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget)
-        self.verticalLayout_2.setMargin(0)
-        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
-        self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget)
-        self.SelectedListLabel.setObjectName(u'SelectedListLabel')
-        self.verticalLayout_2.addWidget(self.SelectedListLabel)
-        self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget)
-        self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
-        self.SelectedListTable.setShowGrid(False)
-        self.SelectedListTable.setWordWrap(False)
-        self.SelectedListTable.setCornerButtonEnabled(False)
-        self.SelectedListTable.setObjectName(u'SelectedListTable')
-        self.SelectedListTable.setColumnCount(2)
-        self.SelectedListTable.setRowCount(0)
-        item = QtGui.QTableWidgetItem()
-        self.SelectedListTable.setHorizontalHeaderItem(0, item)
-        item = QtGui.QTableWidgetItem()
-        self.SelectedListTable.setHorizontalHeaderItem(1, item)
-        self.verticalLayout_2.addWidget(self.SelectedListTable)
-        self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget)
-        self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget')
-        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget)
-        self.horizontalLayout_4.setSpacing(6)
-        self.horizontalLayout_4.setMargin(0)
-        self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
-        self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth())
-        self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy)
-        self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
-        self.SelectedSelectAllPushButton.setIcon(icon2)
-        self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton')
-        self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton)
-        spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_4.addItem(spacerItem3)
-        self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget)
-        self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth())
-        self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy)
-        self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget')
-        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget)
-        self.horizontalLayout_5.setMargin(0)
-        self.horizontalLayout_5.setObjectName(u'horizontalLayout_5')
-        self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth())
-        self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy)
-        self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0))
-        icon4 = buildIcon(u':/exports/export_remove.png')
-        self.SelectedRemoveSelectedButton.setIcon(icon4)
-        self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton')
-        self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton)
-        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_5.addItem(spacerItem4)
-        self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget)
-        self.horizontalLayout_6.addWidget(self.SelectedFileListWidget)
-        self.verticalLayout_5.addWidget(self.SongListFrame)
-        self.ProgressGroupBox = QtGui.QGroupBox(self.OpenLPExportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
-        self.ProgressGroupBox.setSizePolicy(sizePolicy)
-        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
-        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
-        self.verticalLayout_4.setSpacing(8)
-        self.verticalLayout_4.setContentsMargins(8, 0, 8, 8)
-        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
-        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
-        self.ProgressLabel.setObjectName(u'ProgressLabel')
-        self.verticalLayout_4.addWidget(self.ProgressLabel)
-        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
-        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
-        self.ProgressBar.setObjectName(u'ProgressBar')
-        self.verticalLayout_4.addWidget(self.ProgressBar)
-        self.verticalLayout_5.addWidget(self.ProgressGroupBox)
-        self.ButtonBarWidget = QtGui.QWidget(self.OpenLPExportForm)
-        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
-        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
-        self.horizontalLayout_7.setSpacing(8)
-        self.horizontalLayout_7.setMargin(0)
-        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
-        spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_7.addItem(spacerItem5)
-        self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ExportPushButton.setObjectName(u'ExportPushButton')
-        self.horizontalLayout_7.addWidget(self.ExportPushButton)
-        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ClosePushButton.setObjectName(u'ClosePushButton')
-        self.horizontalLayout_7.addWidget(self.ClosePushButton)
-        self.verticalLayout_5.addWidget(self.ButtonBarWidget)
-
-        self.retranslateUi()
-        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenLPExportForm.close)
-        QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll)
-        QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll)
-        QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear)
-        QtCore.QMetaObject.connectSlotsByName(self.OpenLPExportForm)
-
-    def retranslateUi(self):
-        self.OpenLPExportForm.setWindowTitle(translate(u'OpenLPExportForm', u'openlp.org Song Exporter'))
-        self.ExportFileLabel.setText(translate(u'OpenLPExportForm', u'Select openlp.org export filename:'))
-        self.ExportListLabel.setText(translate(u'OpenLPExportForm', u'Full Song List'))
-        self.ExportListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPExportForm', u'Song Title'))
-        self.ExportListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPExportForm', u'Author'))
-        self.ExportSelectAllPushButton.setText(translate(u'OpenLPExportForm', u'Select All'))
-        self.ExportFilterComboBox.setItemText(0, translate(u'OpenLPExportForm', u'Lyrics'))
-        self.ExportFilterComboBox.setItemText(1, translate(u'OpenLPExportForm', u'Title'))
-        self.ExportFilterComboBox.setItemText(2, translate(u'OpenLPExportForm', u'Author'))
-        self.SelectedListLabel.setText(translate(u'OpenLPExportForm', u'Song Export List'))
-        self.SelectedListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPExportForm', u'Song Title'))
-        self.SelectedListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPExportForm', u'Author'))
-        self.SelectedSelectAllPushButton.setText(translate(u'OpenLPExportForm', u'Select All'))
-        self.SelectedRemoveSelectedButton.setText(translate(u'OpenLPExportForm', u'Remove Selected'))
-        self.ProgressGroupBox.setTitle(translate(u'OpenLPExportForm', u'Progress:'))
-        self.ProgressLabel.setText(translate(u'OpenLPExportForm', u'Ready to export'))
-        self.ExportPushButton.setText(translate(u'OpenLPExportForm', u'Export'))
-        self.ClosePushButton.setText(translate(u'OpenLPExportForm', u'Close'))
-
-    def show(self):
-        self.OpenLPExportForm.show()
+from openlp.plugins.songs.forms.openlpexportdialog import Ui_OpenLPExportDialog
+
+class OpenLPExportForm(QtGui.QDialog, Ui_OpenLPExportDialog):
+
+    def __init__(self, parent=None):
+        QtGui.QDialog.__init__(self, parent)
+        self.setupUi(self)
+

=== added file 'openlp/plugins/songs/forms/openlpimportdialog.py'
--- openlp/plugins/songs/forms/openlpimportdialog.py	1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/forms/openlpimportdialog.py	2009-10-24 07:35:24 +0000
@@ -0,0 +1,305 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten      #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# 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
+
+class Ui_OpenLPImportDialog(object):
+    def setupUi(self, OpenLPImportDialog):
+        OpenLPImportDialog.setObjectName(u'OpenLPImportDialog')
+        OpenLPImportDialog.resize(473, 459)
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        OpenLPImportDialog.setWindowIcon(icon)
+        self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportDialog)
+        self.verticalLayout_5.setMargin(8)
+        self.verticalLayout_5.setObjectName(u'verticalLayout_5')
+        self.ImportFileWidget = QtGui.QWidget(OpenLPImportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth())
+        self.ImportFileWidget.setSizePolicy(sizePolicy)
+        self.ImportFileWidget.setObjectName(u'ImportFileWidget')
+        self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget)
+        self.horizontalLayout.setSpacing(3)
+        self.horizontalLayout.setMargin(0)
+        self.horizontalLayout.setObjectName(u'horizontalLayout')
+        self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget)
+        self.ImportFileLabel.setObjectName(u'ImportFileLabel')
+        self.horizontalLayout.addWidget(self.ImportFileLabel)
+        self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget)
+        self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit')
+        self.horizontalLayout.addWidget(self.ImportFileLineEdit)
+        self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget)
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ImportFileSelectPushButton.setIcon(icon1)
+        self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton')
+        self.horizontalLayout.addWidget(self.ImportFileSelectPushButton)
+        self.verticalLayout_5.addWidget(self.ImportFileWidget)
+        self.SongListFrame = QtGui.QFrame(OpenLPImportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth())
+        self.SongListFrame.setSizePolicy(sizePolicy)
+        self.SongListFrame.setFrameShape(QtGui.QFrame.Box)
+        self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised)
+        self.SongListFrame.setObjectName(u'SongListFrame')
+        self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame)
+        self.horizontalLayout_6.setSpacing(8)
+        self.horizontalLayout_6.setMargin(8)
+        self.horizontalLayout_6.setObjectName(u'horizontalLayout_6')
+        self.ImportFileSongListWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ImportFileSongListWidget.sizePolicy().hasHeightForWidth())
+        self.ImportFileSongListWidget.setSizePolicy(sizePolicy)
+        self.ImportFileSongListWidget.setObjectName(u'ImportFileSongListWidget')
+        self.verticalLayout = QtGui.QVBoxLayout(self.ImportFileSongListWidget)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setMargin(0)
+        self.verticalLayout.setObjectName(u'verticalLayout')
+        self.ImportListLabel = QtGui.QLabel(self.ImportFileSongListWidget)
+        self.ImportListLabel.setObjectName(u'ImportListLabel')
+        self.verticalLayout.addWidget(self.ImportListLabel)
+        self.ImportListTable = QtGui.QTableWidget(self.ImportFileSongListWidget)
+        self.ImportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+        self.ImportListTable.setShowGrid(False)
+        self.ImportListTable.setWordWrap(False)
+        self.ImportListTable.setCornerButtonEnabled(False)
+        self.ImportListTable.setObjectName(u'ImportListTable')
+        self.ImportListTable.setColumnCount(2)
+        self.ImportListTable.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.ImportListTable.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.ImportListTable.setHorizontalHeaderItem(1, item)
+        self.verticalLayout.addWidget(self.ImportListTable)
+        self.ImportSelectAllWidget = QtGui.QWidget(self.ImportFileSongListWidget)
+        self.ImportSelectAllWidget.setObjectName(u'ImportSelectAllWidget')
+        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ImportSelectAllWidget)
+        self.horizontalLayout_2.setSpacing(6)
+        self.horizontalLayout_2.setMargin(0)
+        self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
+        self.ImportSelectAllPushButton = QtGui.QPushButton(self.ImportSelectAllWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ImportSelectAllPushButton.sizePolicy().hasHeightForWidth())
+        self.ImportSelectAllPushButton.setSizePolicy(sizePolicy)
+        self.ImportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
+        icon2 = QtGui.QIcon()
+        icon2.addPixmap(QtGui.QPixmap(u':/imports/import_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ImportSelectAllPushButton.setIcon(icon2)
+        self.ImportSelectAllPushButton.setObjectName(u'ImportSelectAllPushButton')
+        self.horizontalLayout_2.addWidget(self.ImportSelectAllPushButton)
+        spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_2.addItem(spacerItem)
+        self.verticalLayout.addWidget(self.ImportSelectAllWidget)
+        self.importFilterWidget = QtGui.QWidget(self.ImportFileSongListWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.importFilterWidget.sizePolicy().hasHeightForWidth())
+        self.importFilterWidget.setSizePolicy(sizePolicy)
+        self.importFilterWidget.setMinimumSize(QtCore.QSize(0, 0))
+        self.importFilterWidget.setObjectName(u'importFilterWidget')
+        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.importFilterWidget)
+        self.horizontalLayout_3.setMargin(0)
+        self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
+        self.ImportFilterComboBox = QtGui.QComboBox(self.importFilterWidget)
+        self.ImportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0))
+        self.ImportFilterComboBox.setObjectName(u'ImportFilterComboBox')
+        self.ImportFilterComboBox.addItem(QtCore.QString())
+        self.ImportFilterComboBox.addItem(QtCore.QString())
+        self.ImportFilterComboBox.addItem(QtCore.QString())
+        self.horizontalLayout_3.addWidget(self.ImportFilterComboBox)
+        self.importFilterLineEdit = QtGui.QLineEdit(self.importFilterWidget)
+        self.importFilterLineEdit.setObjectName(u'importFilterLineEdit')
+        self.horizontalLayout_3.addWidget(self.importFilterLineEdit)
+        self.verticalLayout.addWidget(self.importFilterWidget)
+        self.horizontalLayout_6.addWidget(self.ImportFileSongListWidget)
+        self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth())
+        self.AddSelectedWidget.setSizePolicy(sizePolicy)
+        self.AddSelectedWidget.setObjectName(u'AddSelectedWidget')
+        self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget)
+        self.verticalLayout_3.setMargin(0)
+        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
+        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem1)
+        self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth())
+        self.AddSelectedPushButton.setSizePolicy(sizePolicy)
+        self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25))
+        icon3 = QtGui.QIcon()
+        icon3.addPixmap(QtGui.QPixmap(u':/imports/import_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.AddSelectedPushButton.setIcon(icon3)
+        self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton')
+        self.verticalLayout_3.addWidget(self.AddSelectedPushButton)
+        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem2)
+        self.horizontalLayout_6.addWidget(self.AddSelectedWidget)
+        self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth())
+        self.SelectedFileListWidget.setSizePolicy(sizePolicy)
+        self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget')
+        self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget)
+        self.verticalLayout_2.setMargin(0)
+        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
+        self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget)
+        self.SelectedListLabel.setObjectName(u'SelectedListLabel')
+        self.verticalLayout_2.addWidget(self.SelectedListLabel)
+        self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget)
+        self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+        self.SelectedListTable.setShowGrid(False)
+        self.SelectedListTable.setWordWrap(False)
+        self.SelectedListTable.setCornerButtonEnabled(False)
+        self.SelectedListTable.setObjectName(u'SelectedListTable')
+        self.SelectedListTable.setColumnCount(2)
+        self.SelectedListTable.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.SelectedListTable.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.SelectedListTable.setHorizontalHeaderItem(1, item)
+        self.verticalLayout_2.addWidget(self.SelectedListTable)
+        self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget)
+        self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget')
+        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget)
+        self.horizontalLayout_4.setSpacing(6)
+        self.horizontalLayout_4.setMargin(0)
+        self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
+        self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth())
+        self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy)
+        self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
+        self.SelectedSelectAllPushButton.setIcon(icon2)
+        self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton')
+        self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton)
+        spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_4.addItem(spacerItem3)
+        self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget)
+        self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth())
+        self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy)
+        self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget')
+        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget)
+        self.horizontalLayout_5.setMargin(0)
+        self.horizontalLayout_5.setObjectName(u'horizontalLayout_5')
+        self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth())
+        self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy)
+        self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0))
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(u':/imports/import_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.SelectedRemoveSelectedButton.setIcon(icon4)
+        self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton')
+        self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton)
+        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_5.addItem(spacerItem4)
+        self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget)
+        self.horizontalLayout_6.addWidget(self.SelectedFileListWidget)
+        self.verticalLayout_5.addWidget(self.SongListFrame)
+        self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
+        self.ProgressGroupBox.setSizePolicy(sizePolicy)
+        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
+        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
+        self.verticalLayout_4.setSpacing(8)
+        self.verticalLayout_4.setContentsMargins(8, 0, 8, 8)
+        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
+        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
+        self.ProgressLabel.setObjectName(u'ProgressLabel')
+        self.verticalLayout_4.addWidget(self.ProgressLabel)
+        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
+        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
+        self.ProgressBar.setObjectName(u'ProgressBar')
+        self.verticalLayout_4.addWidget(self.ProgressBar)
+        self.verticalLayout_5.addWidget(self.ProgressGroupBox)
+        self.ButtonBarWidget = QtGui.QWidget(OpenLPImportDialog)
+        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
+        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
+        self.horizontalLayout_7.setSpacing(8)
+        self.horizontalLayout_7.setMargin(0)
+        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
+        spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_7.addItem(spacerItem5)
+        self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ImportPushButton.setObjectName(u'ImportPushButton')
+        self.horizontalLayout_7.addWidget(self.ImportPushButton)
+        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ClosePushButton.setObjectName(u'ClosePushButton')
+        self.horizontalLayout_7.addWidget(self.ClosePushButton)
+        self.verticalLayout_5.addWidget(self.ButtonBarWidget)
+
+        self.retranslateUi(OpenLPImportDialog)
+        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportDialog.close)
+        QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll)
+        QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll)
+        QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear)
+        QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog)
+
+    def retranslateUi(self, OpenLPImportDialog):
+        OpenLPImportDialog.setWindowTitle(self.trUtf8(u'openlp.org Song Importer'))
+        self.ImportFileLabel.setText(self.trUtf8(u'Select openlp.org songfile to import:'))
+        self.ImportListLabel.setText(self.trUtf8(u'Import File Song List'))
+        self.ImportListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title'))
+        self.ImportListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author'))
+        self.ImportSelectAllPushButton.setText(self.trUtf8(u'Select All'))
+        self.ImportFilterComboBox.setItemText(0, self.trUtf8(u'Lyrics'))
+        self.ImportFilterComboBox.setItemText(1, self.trUtf8(u'Title'))
+        self.ImportFilterComboBox.setItemText(2, self.trUtf8(u'Author'))
+        self.SelectedListLabel.setText(self.trUtf8(u'Song Import List'))
+        self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title'))
+        self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author'))
+        self.SelectedSelectAllPushButton.setText(self.trUtf8(u'Select All'))
+        self.SelectedRemoveSelectedButton.setText(self.trUtf8(u'Remove Selected'))
+        self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:'))
+        self.ProgressLabel.setText(self.trUtf8(u'Ready to import'))
+        self.ImportPushButton.setText(self.trUtf8(u'Import'))
+        self.ClosePushButton.setText(self.trUtf8(u'Close'))
+

=== modified file 'openlp/plugins/songs/forms/openlpimportform.py'
--- openlp/plugins/songs/forms/openlpimportform.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/forms/openlpimportform.py	2009-10-24 07:35:24 +0000
@@ -23,286 +23,11 @@
 ###############################################################################
 
 from PyQt4 import QtCore, QtGui
-from openlp.core.lib import translate, buildIcon
-
-class OpenLPImportForm(object):
-
-    def __init__(self):
-        self.OpenLPImportForm = QtGui.QWidget()
-        self.setupUi()
-
-    def setupUi(self):
-        self.OpenLPImportForm.setObjectName(u'OpenLPImportForm')
-        self.OpenLPImportForm.resize(473, 459)
-        icon = buildIcon(u':/icon/openlp-logo-16x16.png')
-        self.OpenLPImportForm.setWindowIcon(icon)
-        self.verticalLayout_5 = QtGui.QVBoxLayout(self.OpenLPImportForm)
-        self.verticalLayout_5.setMargin(8)
-        self.verticalLayout_5.setObjectName(u'verticalLayout_5')
-        self.ImportFileWidget = QtGui.QWidget(self.OpenLPImportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth())
-        self.ImportFileWidget.setSizePolicy(sizePolicy)
-        self.ImportFileWidget.setObjectName(u'ImportFileWidget')
-        self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget)
-        self.horizontalLayout.setSpacing(3)
-        self.horizontalLayout.setMargin(0)
-        self.horizontalLayout.setObjectName(u'horizontalLayout')
-        self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget)
-        self.ImportFileLabel.setObjectName(u'ImportFileLabel')
-        self.horizontalLayout.addWidget(self.ImportFileLabel)
-        self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget)
-        self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit')
-        self.horizontalLayout.addWidget(self.ImportFileLineEdit)
-        self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget)
-        icon1 = buildIcon(u':/imports/import_load.png')
-        self.ImportFileSelectPushButton.setIcon(icon1)
-        self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton')
-        self.horizontalLayout.addWidget(self.ImportFileSelectPushButton)
-        self.verticalLayout_5.addWidget(self.ImportFileWidget)
-        self.SongListFrame = QtGui.QFrame(self.OpenLPImportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth())
-        self.SongListFrame.setSizePolicy(sizePolicy)
-        self.SongListFrame.setFrameShape(QtGui.QFrame.Box)
-        self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.SongListFrame.setObjectName(u'SongListFrame')
-        self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame)
-        self.horizontalLayout_6.setSpacing(8)
-        self.horizontalLayout_6.setMargin(8)
-        self.horizontalLayout_6.setObjectName(u'horizontalLayout_6')
-        self.ImportFileSongListWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ImportFileSongListWidget.sizePolicy().hasHeightForWidth())
-        self.ImportFileSongListWidget.setSizePolicy(sizePolicy)
-        self.ImportFileSongListWidget.setObjectName(u'ImportFileSongListWidget')
-        self.verticalLayout = QtGui.QVBoxLayout(self.ImportFileSongListWidget)
-        self.verticalLayout.setSpacing(6)
-        self.verticalLayout.setMargin(0)
-        self.verticalLayout.setObjectName(u'verticalLayout')
-        self.ImportListLabel = QtGui.QLabel(self.ImportFileSongListWidget)
-        self.ImportListLabel.setObjectName(u'ImportListLabel')
-        self.verticalLayout.addWidget(self.ImportListLabel)
-        self.ImportListTable = QtGui.QTableWidget(self.ImportFileSongListWidget)
-        self.ImportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
-        self.ImportListTable.setShowGrid(False)
-        self.ImportListTable.setWordWrap(False)
-        self.ImportListTable.setCornerButtonEnabled(False)
-        self.ImportListTable.setObjectName(u'ImportListTable')
-        self.ImportListTable.setColumnCount(2)
-        self.ImportListTable.setRowCount(0)
-        item = QtGui.QTableWidgetItem()
-        self.ImportListTable.setHorizontalHeaderItem(0, item)
-        item = QtGui.QTableWidgetItem()
-        self.ImportListTable.setHorizontalHeaderItem(1, item)
-        self.verticalLayout.addWidget(self.ImportListTable)
-        self.ImportSelectAllWidget = QtGui.QWidget(self.ImportFileSongListWidget)
-        self.ImportSelectAllWidget.setObjectName(u'ImportSelectAllWidget')
-        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ImportSelectAllWidget)
-        self.horizontalLayout_2.setSpacing(6)
-        self.horizontalLayout_2.setMargin(0)
-        self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
-        self.ImportSelectAllPushButton = QtGui.QPushButton(self.ImportSelectAllWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ImportSelectAllPushButton.sizePolicy().hasHeightForWidth())
-        self.ImportSelectAllPushButton.setSizePolicy(sizePolicy)
-        self.ImportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
-        icon2 = buildIcon(u':/imports/import_selectall.png')
-        self.ImportSelectAllPushButton.setIcon(icon2)
-        self.ImportSelectAllPushButton.setObjectName(u'ImportSelectAllPushButton')
-        self.horizontalLayout_2.addWidget(self.ImportSelectAllPushButton)
-        spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_2.addItem(spacerItem)
-        self.verticalLayout.addWidget(self.ImportSelectAllWidget)
-        self.importFilterWidget = QtGui.QWidget(self.ImportFileSongListWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.importFilterWidget.sizePolicy().hasHeightForWidth())
-        self.importFilterWidget.setSizePolicy(sizePolicy)
-        self.importFilterWidget.setMinimumSize(QtCore.QSize(0, 0))
-        self.importFilterWidget.setObjectName(u'importFilterWidget')
-        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.importFilterWidget)
-        self.horizontalLayout_3.setMargin(0)
-        self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
-        self.ImportFilterComboBox = QtGui.QComboBox(self.importFilterWidget)
-        self.ImportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0))
-        self.ImportFilterComboBox.setObjectName(u'ImportFilterComboBox')
-        self.ImportFilterComboBox.addItem(QtCore.QString())
-        self.ImportFilterComboBox.addItem(QtCore.QString())
-        self.ImportFilterComboBox.addItem(QtCore.QString())
-        self.horizontalLayout_3.addWidget(self.ImportFilterComboBox)
-        self.importFilterLineEdit = QtGui.QLineEdit(self.importFilterWidget)
-        self.importFilterLineEdit.setObjectName(u'importFilterLineEdit')
-        self.horizontalLayout_3.addWidget(self.importFilterLineEdit)
-        self.verticalLayout.addWidget(self.importFilterWidget)
-        self.horizontalLayout_6.addWidget(self.ImportFileSongListWidget)
-        self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth())
-        self.AddSelectedWidget.setSizePolicy(sizePolicy)
-        self.AddSelectedWidget.setObjectName(u'AddSelectedWidget')
-        self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget)
-        self.verticalLayout_3.setMargin(0)
-        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
-        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_3.addItem(spacerItem1)
-        self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth())
-        self.AddSelectedPushButton.setSizePolicy(sizePolicy)
-        self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25))
-        icon3 = buildIcon(u':/imports/import_move_to_list.png')
-        self.AddSelectedPushButton.setIcon(icon3)
-        self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton')
-        self.verticalLayout_3.addWidget(self.AddSelectedPushButton)
-        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_3.addItem(spacerItem2)
-        self.horizontalLayout_6.addWidget(self.AddSelectedWidget)
-        self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth())
-        self.SelectedFileListWidget.setSizePolicy(sizePolicy)
-        self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget')
-        self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget)
-        self.verticalLayout_2.setMargin(0)
-        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
-        self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget)
-        self.SelectedListLabel.setObjectName(u'SelectedListLabel')
-        self.verticalLayout_2.addWidget(self.SelectedListLabel)
-        self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget)
-        self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
-        self.SelectedListTable.setShowGrid(False)
-        self.SelectedListTable.setWordWrap(False)
-        self.SelectedListTable.setCornerButtonEnabled(False)
-        self.SelectedListTable.setObjectName(u'SelectedListTable')
-        self.SelectedListTable.setColumnCount(2)
-        self.SelectedListTable.setRowCount(0)
-        item = QtGui.QTableWidgetItem()
-        self.SelectedListTable.setHorizontalHeaderItem(0, item)
-        item = QtGui.QTableWidgetItem()
-        self.SelectedListTable.setHorizontalHeaderItem(1, item)
-        self.verticalLayout_2.addWidget(self.SelectedListTable)
-        self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget)
-        self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget')
-        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget)
-        self.horizontalLayout_4.setSpacing(6)
-        self.horizontalLayout_4.setMargin(0)
-        self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
-        self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth())
-        self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy)
-        self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
-        self.SelectedSelectAllPushButton.setIcon(icon2)
-        self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton')
-        self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton)
-        spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_4.addItem(spacerItem3)
-        self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget)
-        self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth())
-        self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy)
-        self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget')
-        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget)
-        self.horizontalLayout_5.setMargin(0)
-        self.horizontalLayout_5.setObjectName(u'horizontalLayout_5')
-        self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth())
-        self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy)
-        self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0))
-        icon4 = buildIcon(u':/imports/import_remove.png')
-        self.SelectedRemoveSelectedButton.setIcon(icon4)
-        self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton')
-        self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton)
-        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_5.addItem(spacerItem4)
-        self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget)
-        self.horizontalLayout_6.addWidget(self.SelectedFileListWidget)
-        self.verticalLayout_5.addWidget(self.SongListFrame)
-        self.ProgressGroupBox = QtGui.QGroupBox(self.OpenLPImportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
-        self.ProgressGroupBox.setSizePolicy(sizePolicy)
-        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
-        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
-        self.verticalLayout_4.setSpacing(8)
-        self.verticalLayout_4.setContentsMargins(8, 0, 8, 8)
-        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
-        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
-        self.ProgressLabel.setObjectName(u'ProgressLabel')
-        self.verticalLayout_4.addWidget(self.ProgressLabel)
-        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
-        self.ProgressBar.setProperty(u'value', QtCore.QVariant(0))
-        self.ProgressBar.setObjectName(u'ProgressBar')
-        self.verticalLayout_4.addWidget(self.ProgressBar)
-        self.verticalLayout_5.addWidget(self.ProgressGroupBox)
-        self.ButtonBarWidget = QtGui.QWidget(self.OpenLPImportForm)
-        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
-        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
-        self.horizontalLayout_7.setSpacing(8)
-        self.horizontalLayout_7.setMargin(0)
-        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
-        spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_7.addItem(spacerItem5)
-        self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ImportPushButton.setObjectName(u'ImportPushButton')
-        self.horizontalLayout_7.addWidget(self.ImportPushButton)
-        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ClosePushButton.setObjectName(u'ClosePushButton')
-        self.horizontalLayout_7.addWidget(self.ClosePushButton)
-        self.verticalLayout_5.addWidget(self.ButtonBarWidget)
-
-        self.retranslateUi()
-        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenLPImportForm.close)
-        QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll)
-        QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll)
-        QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear)
-        QtCore.QMetaObject.connectSlotsByName(self.OpenLPImportForm)
-
-    def retranslateUi(self):
-        self.OpenLPImportForm.setWindowTitle(translate(u'OpenLPImportForm', u'openlp.org Song Importer'))
-        self.ImportFileLabel.setText(translate(u'OpenLPImportForm', u'Select openlp.org songfile to import:'))
-        self.ImportListLabel.setText(translate(u'OpenLPImportForm', u'Import File Song List'))
-        self.ImportListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPImportForm', u'Song Title'))
-        self.ImportListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPImportForm', u'Author'))
-        self.ImportSelectAllPushButton.setText(translate(u'OpenLPImportForm', u'Select All'))
-        self.ImportFilterComboBox.setItemText(0, translate(u'OpenLPImportForm', u'Lyrics'))
-        self.ImportFilterComboBox.setItemText(1, translate(u'OpenLPImportForm', u'Title'))
-        self.ImportFilterComboBox.setItemText(2, translate(u'OpenLPImportForm', u'Author'))
-        self.SelectedListLabel.setText(translate(u'OpenLPImportForm', u'Song Import List'))
-        self.SelectedListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPImportForm', u'Song Title'))
-        self.SelectedListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPImportForm', u'Author'))
-        self.SelectedSelectAllPushButton.setText(translate(u'OpenLPImportForm', u'Select All'))
-        self.SelectedRemoveSelectedButton.setText(translate(u'OpenLPImportForm', u'Remove Selected'))
-        self.ProgressGroupBox.setTitle(translate(u'OpenLPImportForm', u'Progress:'))
-        self.ProgressLabel.setText(translate(u'OpenLPImportForm', u'Ready to import'))
-        self.ImportPushButton.setText(translate(u'OpenLPImportForm', u'Import'))
-        self.ClosePushButton.setText(translate(u'OpenLPImportForm', u'Close'))
-
-    def show(self):
-        self.OpenLPImportForm.show()
+from openlp.plugins.songs.forms.openlpimportdialog import Ui_OpenLPImportDialog
+
+class OpenLPImportForm(QtGui.QDialog, Ui_OpenLPImportDialog):
+
+    def __init__(self, parent=None):
+        QtGui.QDialog.__init__(self, parent)
+        self.setupUi(self)
+

=== added file 'openlp/plugins/songs/forms/opensongexportdialog.py'
--- openlp/plugins/songs/forms/opensongexportdialog.py	1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/forms/opensongexportdialog.py	2009-10-24 07:35:24 +0000
@@ -0,0 +1,305 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten      #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# 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
+
+class Ui_OpenSongExportDialog(object):
+    def setupUi(self, OpenSongExportDialog):
+        OpenSongExportDialog.setObjectName(u'OpenSongExportDialog')
+        OpenSongExportDialog.resize(473, 459)
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        OpenSongExportDialog.setWindowIcon(icon)
+        self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportDialog)
+        self.verticalLayout_5.setMargin(8)
+        self.verticalLayout_5.setObjectName(u'verticalLayout_5')
+        self.ExportFileWidget = QtGui.QWidget(OpenSongExportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth())
+        self.ExportFileWidget.setSizePolicy(sizePolicy)
+        self.ExportFileWidget.setObjectName(u'ExportFileWidget')
+        self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget)
+        self.horizontalLayout.setSpacing(3)
+        self.horizontalLayout.setMargin(0)
+        self.horizontalLayout.setObjectName(u'horizontalLayout')
+        self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget)
+        self.ExportFileLabel.setObjectName(u'ExportFileLabel')
+        self.horizontalLayout.addWidget(self.ExportFileLabel)
+        self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget)
+        self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit')
+        self.horizontalLayout.addWidget(self.ExportFileLineEdit)
+        self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget)
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ExportFileSelectPushButton.setIcon(icon1)
+        self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton')
+        self.horizontalLayout.addWidget(self.ExportFileSelectPushButton)
+        self.verticalLayout_5.addWidget(self.ExportFileWidget)
+        self.SongListFrame = QtGui.QFrame(OpenSongExportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth())
+        self.SongListFrame.setSizePolicy(sizePolicy)
+        self.SongListFrame.setFrameShape(QtGui.QFrame.Box)
+        self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised)
+        self.SongListFrame.setObjectName(u'SongListFrame')
+        self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame)
+        self.horizontalLayout_6.setSpacing(8)
+        self.horizontalLayout_6.setMargin(8)
+        self.horizontalLayout_6.setObjectName(u'horizontalLayout_6')
+        self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth())
+        self.ExportFileSongListWidget.setSizePolicy(sizePolicy)
+        self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget')
+        self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setMargin(0)
+        self.verticalLayout.setObjectName(u'verticalLayout')
+        self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget)
+        self.ExportListLabel.setObjectName(u'ExportListLabel')
+        self.verticalLayout.addWidget(self.ExportListLabel)
+        self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget)
+        self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+        self.ExportListTable.setShowGrid(False)
+        self.ExportListTable.setWordWrap(False)
+        self.ExportListTable.setCornerButtonEnabled(False)
+        self.ExportListTable.setObjectName(u'ExportListTable')
+        self.ExportListTable.setColumnCount(2)
+        self.ExportListTable.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.ExportListTable.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.ExportListTable.setHorizontalHeaderItem(1, item)
+        self.verticalLayout.addWidget(self.ExportListTable)
+        self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget)
+        self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget')
+        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget)
+        self.horizontalLayout_2.setSpacing(6)
+        self.horizontalLayout_2.setMargin(0)
+        self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
+        self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth())
+        self.ExportSelectAllPushButton.setSizePolicy(sizePolicy)
+        self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
+        icon2 = QtGui.QIcon()
+        icon2.addPixmap(QtGui.QPixmap(u':/exports/export_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ExportSelectAllPushButton.setIcon(icon2)
+        self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton')
+        self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton)
+        spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_2.addItem(spacerItem)
+        self.verticalLayout.addWidget(self.ExportSelectAllWidget)
+        self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth())
+        self.exportFilterWidget.setSizePolicy(sizePolicy)
+        self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0))
+        self.exportFilterWidget.setObjectName(u'exportFilterWidget')
+        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget)
+        self.horizontalLayout_3.setMargin(0)
+        self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
+        self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget)
+        self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0))
+        self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox')
+        self.ExportFilterComboBox.addItem(QtCore.QString())
+        self.ExportFilterComboBox.addItem(QtCore.QString())
+        self.ExportFilterComboBox.addItem(QtCore.QString())
+        self.horizontalLayout_3.addWidget(self.ExportFilterComboBox)
+        self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget)
+        self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit')
+        self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit)
+        self.verticalLayout.addWidget(self.exportFilterWidget)
+        self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget)
+        self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth())
+        self.AddSelectedWidget.setSizePolicy(sizePolicy)
+        self.AddSelectedWidget.setObjectName(u'AddSelectedWidget')
+        self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget)
+        self.verticalLayout_3.setMargin(0)
+        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
+        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem1)
+        self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth())
+        self.AddSelectedPushButton.setSizePolicy(sizePolicy)
+        self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25))
+        icon3 = QtGui.QIcon()
+        icon3.addPixmap(QtGui.QPixmap(u':/exports/export_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.AddSelectedPushButton.setIcon(icon3)
+        self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton')
+        self.verticalLayout_3.addWidget(self.AddSelectedPushButton)
+        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem2)
+        self.horizontalLayout_6.addWidget(self.AddSelectedWidget)
+        self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth())
+        self.SelectedFileListWidget.setSizePolicy(sizePolicy)
+        self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget')
+        self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget)
+        self.verticalLayout_2.setMargin(0)
+        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
+        self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget)
+        self.SelectedListLabel.setObjectName(u'SelectedListLabel')
+        self.verticalLayout_2.addWidget(self.SelectedListLabel)
+        self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget)
+        self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+        self.SelectedListTable.setShowGrid(False)
+        self.SelectedListTable.setWordWrap(False)
+        self.SelectedListTable.setCornerButtonEnabled(False)
+        self.SelectedListTable.setObjectName(u'SelectedListTable')
+        self.SelectedListTable.setColumnCount(2)
+        self.SelectedListTable.setRowCount(0)
+        item = QtGui.QTableWidgetItem()
+        self.SelectedListTable.setHorizontalHeaderItem(0, item)
+        item = QtGui.QTableWidgetItem()
+        self.SelectedListTable.setHorizontalHeaderItem(1, item)
+        self.verticalLayout_2.addWidget(self.SelectedListTable)
+        self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget)
+        self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget')
+        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget)
+        self.horizontalLayout_4.setSpacing(6)
+        self.horizontalLayout_4.setMargin(0)
+        self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
+        self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth())
+        self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy)
+        self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
+        self.SelectedSelectAllPushButton.setIcon(icon2)
+        self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton')
+        self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton)
+        spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_4.addItem(spacerItem3)
+        self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget)
+        self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth())
+        self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy)
+        self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget')
+        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget)
+        self.horizontalLayout_5.setMargin(0)
+        self.horizontalLayout_5.setObjectName(u'horizontalLayout_5')
+        self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth())
+        self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy)
+        self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0))
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(u':/exports/export_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.SelectedRemoveSelectedButton.setIcon(icon4)
+        self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton')
+        self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton)
+        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_5.addItem(spacerItem4)
+        self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget)
+        self.horizontalLayout_6.addWidget(self.SelectedFileListWidget)
+        self.verticalLayout_5.addWidget(self.SongListFrame)
+        self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
+        self.ProgressGroupBox.setSizePolicy(sizePolicy)
+        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
+        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
+        self.verticalLayout_4.setSpacing(8)
+        self.verticalLayout_4.setContentsMargins(8, 0, 8, 8)
+        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
+        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
+        self.ProgressLabel.setObjectName(u'ProgressLabel')
+        self.verticalLayout_4.addWidget(self.ProgressLabel)
+        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
+        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
+        self.ProgressBar.setObjectName(u'ProgressBar')
+        self.verticalLayout_4.addWidget(self.ProgressBar)
+        self.verticalLayout_5.addWidget(self.ProgressGroupBox)
+        self.ButtonBarWidget = QtGui.QWidget(OpenSongExportDialog)
+        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
+        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
+        self.horizontalLayout_7.setSpacing(8)
+        self.horizontalLayout_7.setMargin(0)
+        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
+        spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_7.addItem(spacerItem5)
+        self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ExportPushButton.setObjectName(u'ExportPushButton')
+        self.horizontalLayout_7.addWidget(self.ExportPushButton)
+        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ClosePushButton.setObjectName(u'ClosePushButton')
+        self.horizontalLayout_7.addWidget(self.ClosePushButton)
+        self.verticalLayout_5.addWidget(self.ButtonBarWidget)
+
+        self.retranslateUi(OpenSongExportDialog)
+        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportDialog.close)
+        QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll)
+        QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll)
+        QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear)
+        QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog)
+
+    def retranslateUi(self, OpenSongExportDialog):
+        OpenSongExportDialog.setWindowTitle(self.trUtf8(u'OpenSong Song Exporter'))
+        self.ExportFileLabel.setText(self.trUtf8(u'Select OpenSong song folder:'))
+        self.ExportListLabel.setText(self.trUtf8(u'Full Song List'))
+        self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title'))
+        self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author'))
+        self.ExportSelectAllPushButton.setText(self.trUtf8(u'Select All'))
+        self.ExportFilterComboBox.setItemText(0, self.trUtf8(u'Lyrics'))
+        self.ExportFilterComboBox.setItemText(1, self.trUtf8(u'Title'))
+        self.ExportFilterComboBox.setItemText(2, self.trUtf8(u'Author'))
+        self.SelectedListLabel.setText(self.trUtf8(u'Song Export List'))
+        self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title'))
+        self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author'))
+        self.SelectedSelectAllPushButton.setText(self.trUtf8(u'Select All'))
+        self.SelectedRemoveSelectedButton.setText(self.trUtf8(u'Remove Selected'))
+        self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:'))
+        self.ProgressLabel.setText(self.trUtf8(u'Ready to export'))
+        self.ExportPushButton.setText(self.trUtf8(u'Export'))
+        self.ClosePushButton.setText(self.trUtf8(u'Close'))
+

=== modified file 'openlp/plugins/songs/forms/opensongexportform.py'
--- openlp/plugins/songs/forms/opensongexportform.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/forms/opensongexportform.py	2009-10-24 07:35:24 +0000
@@ -23,286 +23,11 @@
 ###############################################################################
 
 from PyQt4 import QtCore, QtGui
-from openlp.core.lib import translate, buildIcon
-
-class OpenSongExportForm(object):
-
-    def __init__(self):
-        self.OpenSongExportForm = QtGui.QWidget()
-        self.setupUi()
-
-    def setupUi(self):
-        self.OpenSongExportForm.setObjectName(u'OpenSongExportForm')
-        self.OpenSongExportForm.resize(473, 459)
-        icon = buildIcon(u':/icon/openlp-logo-16x16.png')
-        self.OpenSongExportForm.setWindowIcon(icon)
-        self.verticalLayout_5 = QtGui.QVBoxLayout(self.OpenSongExportForm)
-        self.verticalLayout_5.setMargin(8)
-        self.verticalLayout_5.setObjectName(u'verticalLayout_5')
-        self.ExportFileWidget = QtGui.QWidget(self.OpenSongExportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth())
-        self.ExportFileWidget.setSizePolicy(sizePolicy)
-        self.ExportFileWidget.setObjectName(u'ExportFileWidget')
-        self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget)
-        self.horizontalLayout.setSpacing(3)
-        self.horizontalLayout.setMargin(0)
-        self.horizontalLayout.setObjectName(u'horizontalLayout')
-        self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget)
-        self.ExportFileLabel.setObjectName(u'ExportFileLabel')
-        self.horizontalLayout.addWidget(self.ExportFileLabel)
-        self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget)
-        self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit')
-        self.horizontalLayout.addWidget(self.ExportFileLineEdit)
-        self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget)
-        icon1 = buildIcon(u':/exports/export_load.png')
-        self.ExportFileSelectPushButton.setIcon(icon1)
-        self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton')
-        self.horizontalLayout.addWidget(self.ExportFileSelectPushButton)
-        self.verticalLayout_5.addWidget(self.ExportFileWidget)
-        self.SongListFrame = QtGui.QFrame(self.OpenSongExportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth())
-        self.SongListFrame.setSizePolicy(sizePolicy)
-        self.SongListFrame.setFrameShape(QtGui.QFrame.Box)
-        self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised)
-        self.SongListFrame.setObjectName(u'SongListFrame')
-        self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame)
-        self.horizontalLayout_6.setSpacing(8)
-        self.horizontalLayout_6.setMargin(8)
-        self.horizontalLayout_6.setObjectName(u'horizontalLayout_6')
-        self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth())
-        self.ExportFileSongListWidget.setSizePolicy(sizePolicy)
-        self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget')
-        self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget)
-        self.verticalLayout.setSpacing(6)
-        self.verticalLayout.setMargin(0)
-        self.verticalLayout.setObjectName(u'verticalLayout')
-        self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget)
-        self.ExportListLabel.setObjectName(u'ExportListLabel')
-        self.verticalLayout.addWidget(self.ExportListLabel)
-        self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget)
-        self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
-        self.ExportListTable.setShowGrid(False)
-        self.ExportListTable.setWordWrap(False)
-        self.ExportListTable.setCornerButtonEnabled(False)
-        self.ExportListTable.setObjectName(u'ExportListTable')
-        self.ExportListTable.setColumnCount(2)
-        self.ExportListTable.setRowCount(0)
-        item = QtGui.QTableWidgetItem()
-        self.ExportListTable.setHorizontalHeaderItem(0, item)
-        item = QtGui.QTableWidgetItem()
-        self.ExportListTable.setHorizontalHeaderItem(1, item)
-        self.verticalLayout.addWidget(self.ExportListTable)
-        self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget)
-        self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget')
-        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget)
-        self.horizontalLayout_2.setSpacing(6)
-        self.horizontalLayout_2.setMargin(0)
-        self.horizontalLayout_2.setObjectName(u'horizontalLayout_2')
-        self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth())
-        self.ExportSelectAllPushButton.setSizePolicy(sizePolicy)
-        self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
-        icon2 = buildIcon(u':/exports/export_selectall.png')
-        self.ExportSelectAllPushButton.setIcon(icon2)
-        self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton')
-        self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton)
-        spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_2.addItem(spacerItem)
-        self.verticalLayout.addWidget(self.ExportSelectAllWidget)
-        self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth())
-        self.exportFilterWidget.setSizePolicy(sizePolicy)
-        self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0))
-        self.exportFilterWidget.setObjectName(u'exportFilterWidget')
-        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget)
-        self.horizontalLayout_3.setMargin(0)
-        self.horizontalLayout_3.setObjectName(u'horizontalLayout_3')
-        self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget)
-        self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0))
-        self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox')
-        self.ExportFilterComboBox.addItem(QtCore.QString())
-        self.ExportFilterComboBox.addItem(QtCore.QString())
-        self.ExportFilterComboBox.addItem(QtCore.QString())
-        self.horizontalLayout_3.addWidget(self.ExportFilterComboBox)
-        self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget)
-        self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit')
-        self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit)
-        self.verticalLayout.addWidget(self.exportFilterWidget)
-        self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget)
-        self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth())
-        self.AddSelectedWidget.setSizePolicy(sizePolicy)
-        self.AddSelectedWidget.setObjectName(u'AddSelectedWidget')
-        self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget)
-        self.verticalLayout_3.setMargin(0)
-        self.verticalLayout_3.setObjectName(u'verticalLayout_3')
-        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_3.addItem(spacerItem1)
-        self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth())
-        self.AddSelectedPushButton.setSizePolicy(sizePolicy)
-        self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25))
-        icon3 = buildIcon(u':/exports/export_move_to_list.png')
-        self.AddSelectedPushButton.setIcon(icon3)
-        self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton')
-        self.verticalLayout_3.addWidget(self.AddSelectedPushButton)
-        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
-        self.verticalLayout_3.addItem(spacerItem2)
-        self.horizontalLayout_6.addWidget(self.AddSelectedWidget)
-        self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth())
-        self.SelectedFileListWidget.setSizePolicy(sizePolicy)
-        self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget')
-        self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget)
-        self.verticalLayout_2.setMargin(0)
-        self.verticalLayout_2.setObjectName(u'verticalLayout_2')
-        self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget)
-        self.SelectedListLabel.setObjectName(u'SelectedListLabel')
-        self.verticalLayout_2.addWidget(self.SelectedListLabel)
-        self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget)
-        self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
-        self.SelectedListTable.setShowGrid(False)
-        self.SelectedListTable.setWordWrap(False)
-        self.SelectedListTable.setCornerButtonEnabled(False)
-        self.SelectedListTable.setObjectName(u'SelectedListTable')
-        self.SelectedListTable.setColumnCount(2)
-        self.SelectedListTable.setRowCount(0)
-        item = QtGui.QTableWidgetItem()
-        self.SelectedListTable.setHorizontalHeaderItem(0, item)
-        item = QtGui.QTableWidgetItem()
-        self.SelectedListTable.setHorizontalHeaderItem(1, item)
-        self.verticalLayout_2.addWidget(self.SelectedListTable)
-        self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget)
-        self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget')
-        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget)
-        self.horizontalLayout_4.setSpacing(6)
-        self.horizontalLayout_4.setMargin(0)
-        self.horizontalLayout_4.setObjectName(u'horizontalLayout_4')
-        self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth())
-        self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy)
-        self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0))
-        self.SelectedSelectAllPushButton.setIcon(icon2)
-        self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton')
-        self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton)
-        spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_4.addItem(spacerItem3)
-        self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget)
-        self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth())
-        self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy)
-        self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget')
-        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget)
-        self.horizontalLayout_5.setMargin(0)
-        self.horizontalLayout_5.setObjectName(u'horizontalLayout_5')
-        self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth())
-        self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy)
-        self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0))
-        icon4 = buildIcon(u':/exports/export_remove.png')
-        self.SelectedRemoveSelectedButton.setIcon(icon4)
-        self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton')
-        self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton)
-        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_5.addItem(spacerItem4)
-        self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget)
-        self.horizontalLayout_6.addWidget(self.SelectedFileListWidget)
-        self.verticalLayout_5.addWidget(self.SongListFrame)
-        self.ProgressGroupBox = QtGui.QGroupBox(self.OpenSongExportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
-        self.ProgressGroupBox.setSizePolicy(sizePolicy)
-        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
-        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
-        self.verticalLayout_4.setSpacing(8)
-        self.verticalLayout_4.setContentsMargins(8, 0, 8, 8)
-        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
-        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
-        self.ProgressLabel.setObjectName(u'ProgressLabel')
-        self.verticalLayout_4.addWidget(self.ProgressLabel)
-        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
-        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
-        self.ProgressBar.setObjectName(u'ProgressBar')
-        self.verticalLayout_4.addWidget(self.ProgressBar)
-        self.verticalLayout_5.addWidget(self.ProgressGroupBox)
-        self.ButtonBarWidget = QtGui.QWidget(self.OpenSongExportForm)
-        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
-        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
-        self.horizontalLayout_7.setSpacing(8)
-        self.horizontalLayout_7.setMargin(0)
-        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
-        spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_7.addItem(spacerItem5)
-        self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ExportPushButton.setObjectName(u'ExportPushButton')
-        self.horizontalLayout_7.addWidget(self.ExportPushButton)
-        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ClosePushButton.setObjectName(u'ClosePushButton')
-        self.horizontalLayout_7.addWidget(self.ClosePushButton)
-        self.verticalLayout_5.addWidget(self.ButtonBarWidget)
-
-        self.retranslateUi()
-        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenSongExportForm.close)
-        QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll)
-        QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll)
-        QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear)
-        QtCore.QMetaObject.connectSlotsByName(self.OpenSongExportForm)
-
-    def retranslateUi(self):
-        self.OpenSongExportForm.setWindowTitle(translate(u'OpenSongExportForm', u'OpenSong Song Exporter'))
-        self.ExportFileLabel.setText(translate(u'OpenSongExportForm', u'Select OpenSong song folder:'))
-        self.ExportListLabel.setText(translate(u'OpenSongExportForm', u'Full Song List'))
-        self.ExportListTable.horizontalHeaderItem(0).setText(translate(u'OpenSongExportForm', u'Song Title'))
-        self.ExportListTable.horizontalHeaderItem(1).setText(translate(u'OpenSongExportForm', u'Author'))
-        self.ExportSelectAllPushButton.setText(translate(u'OpenSongExportForm', u'Select All'))
-        self.ExportFilterComboBox.setItemText(0, translate(u'OpenSongExportForm', u'Lyrics'))
-        self.ExportFilterComboBox.setItemText(1, translate(u'OpenSongExportForm', u'Title'))
-        self.ExportFilterComboBox.setItemText(2, translate(u'OpenSongExportForm', u'Author'))
-        self.SelectedListLabel.setText(translate(u'OpenSongExportForm', u'Song Export List'))
-        self.SelectedListTable.horizontalHeaderItem(0).setText(translate(u'OpenSongExportForm', u'Song Title'))
-        self.SelectedListTable.horizontalHeaderItem(1).setText(translate(u'OpenSongExportForm', u'Author'))
-        self.SelectedSelectAllPushButton.setText(translate(u'OpenSongExportForm', u'Select All'))
-        self.SelectedRemoveSelectedButton.setText(translate(u'OpenSongExportForm', u'Remove Selected'))
-        self.ProgressGroupBox.setTitle(translate(u'OpenSongExportForm', u'Progress:'))
-        self.ProgressLabel.setText(translate(u'OpenSongExportForm', u'Ready to export'))
-        self.ExportPushButton.setText(translate(u'OpenSongExportForm', u'Export'))
-        self.ClosePushButton.setText(translate(u'OpenSongExportForm', u'Close'))
-
-    def show(self):
-        self.OpenSongExportForm.show()
+from openlp.plugins.songs.forms.opensongexportdialog import Ui_OpenSongExportDialog
+
+class OpenSongExportForm(QtGui.QDialog, Ui_OpenSongExportDialog):
+
+    def __init__(self, parent=None):
+        QtGui.QDialog.__init__(self, parent)
+        self.setupUi(self)
+

=== added file 'openlp/plugins/songs/forms/opensongimportdialog.py'
--- openlp/plugins/songs/forms/opensongimportdialog.py	1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/forms/opensongimportdialog.py	2009-10-24 07:35:24 +0000
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten      #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# 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
+
+class Ui_OpenSongImportDialog(object):
+    def setupUi(self, OpenSongImportDialog):
+        OpenSongImportDialog.setObjectName(u'OpenSongImportDialog')
+        OpenSongImportDialog.resize(481, 172)
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        OpenSongImportDialog.setWindowIcon(icon)
+        self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportDialog)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setMargin(8)
+        self.verticalLayout.setObjectName(u'verticalLayout')
+        self.ImportFileWidget = QtGui.QWidget(OpenSongImportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth())
+        self.ImportFileWidget.setSizePolicy(sizePolicy)
+        self.ImportFileWidget.setObjectName(u'ImportFileWidget')
+        self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget)
+        self.horizontalLayout.setSpacing(6)
+        self.horizontalLayout.setMargin(0)
+        self.horizontalLayout.setObjectName(u'horizontalLayout')
+        self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget)
+        self.ImportFileLabel.setObjectName(u'ImportFileLabel')
+        self.horizontalLayout.addWidget(self.ImportFileLabel)
+        self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget)
+        self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit')
+        self.horizontalLayout.addWidget(self.ImportFileLineEdit)
+        self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget)
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.ImportFileSelectPushButton.setIcon(icon1)
+        self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton')
+        self.horizontalLayout.addWidget(self.ImportFileSelectPushButton)
+        self.verticalLayout.addWidget(self.ImportFileWidget)
+        self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportDialog)
+        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
+        self.ProgressGroupBox.setSizePolicy(sizePolicy)
+        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
+        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
+        self.verticalLayout_4.setSpacing(6)
+        self.verticalLayout_4.setContentsMargins(6, 0, 8, 8)
+        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
+        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
+        self.ProgressLabel.setObjectName(u'ProgressLabel')
+        self.verticalLayout_4.addWidget(self.ProgressLabel)
+        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
+        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
+        self.ProgressBar.setObjectName(u'ProgressBar')
+        self.verticalLayout_4.addWidget(self.ProgressBar)
+        self.verticalLayout.addWidget(self.ProgressGroupBox)
+        self.ButtonBarWidget = QtGui.QWidget(OpenSongImportDialog)
+        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
+        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
+        self.horizontalLayout_7.setSpacing(8)
+        self.horizontalLayout_7.setMargin(0)
+        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
+        spacerItem = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        self.horizontalLayout_7.addItem(spacerItem)
+        self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ImportPushButton.setObjectName(u'ImportPushButton')
+        self.horizontalLayout_7.addWidget(self.ImportPushButton)
+        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
+        self.ClosePushButton.setObjectName(u'ClosePushButton')
+        self.horizontalLayout_7.addWidget(self.ClosePushButton)
+        self.verticalLayout.addWidget(self.ButtonBarWidget)
+
+        self.retranslateUi(OpenSongImportDialog)
+        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportDialog.close)
+        QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog)
+
+    def retranslateUi(self, OpenSongImportDialog):
+        OpenSongImportDialog.setWindowTitle(self.trUtf8(u'OpenSong Song Importer'))
+        self.ImportFileLabel.setText(self.trUtf8(u'OpenSong Folder:'))
+        self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:'))
+        self.ProgressLabel.setText(self.trUtf8(u'Ready to import'))
+        self.ImportPushButton.setText(self.trUtf8(u'Import'))
+        self.ClosePushButton.setText(self.trUtf8(u'Close'))
+

=== modified file 'openlp/plugins/songs/forms/opensongimportform.py'
--- openlp/plugins/songs/forms/opensongimportform.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/forms/opensongimportform.py	2009-10-24 07:35:24 +0000
@@ -23,92 +23,11 @@
 ###############################################################################
 
 from PyQt4 import QtCore, QtGui
-from openlp.core.lib import translate, buildIcon
-
-class OpenSongImportForm(object):
-
-    def __init__(self):
-        self.OpenSongImportForm = QtGui.QWidget()
-        self.setupUi()
-
-    def setupUi(self):
-        self.OpenSongImportForm.setObjectName(u'OpenSongImportForm')
-        self.OpenSongImportForm.resize(481, 153)
-        icon = buildIcon(u':/icon/openlp-logo-16x16.png')
-        self.OpenSongImportForm.setWindowIcon(icon)
-        self.verticalLayout = QtGui.QVBoxLayout(self.OpenSongImportForm)
-        self.verticalLayout.setSpacing(6)
-        self.verticalLayout.setMargin(8)
-        self.verticalLayout.setObjectName(u'verticalLayout')
-        self.ImportFileWidget = QtGui.QWidget(self.OpenSongImportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth())
-        self.ImportFileWidget.setSizePolicy(sizePolicy)
-        self.ImportFileWidget.setObjectName(u'ImportFileWidget')
-        self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget)
-        self.horizontalLayout.setSpacing(6)
-        self.horizontalLayout.setMargin(0)
-        self.horizontalLayout.setObjectName(u'horizontalLayout')
-        self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget)
-        self.ImportFileLabel.setObjectName(u'ImportFileLabel')
-        self.horizontalLayout.addWidget(self.ImportFileLabel)
-        self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget)
-        self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit')
-        self.horizontalLayout.addWidget(self.ImportFileLineEdit)
-        self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget)
-        icon1 = buildIcon(u':/imports/import_load.png')
-        self.ImportFileSelectPushButton.setIcon(icon1)
-        self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton')
-        self.horizontalLayout.addWidget(self.ImportFileSelectPushButton)
-        self.verticalLayout.addWidget(self.ImportFileWidget)
-        self.ProgressGroupBox = QtGui.QGroupBox(self.OpenSongImportForm)
-        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth())
-        self.ProgressGroupBox.setSizePolicy(sizePolicy)
-        self.ProgressGroupBox.setObjectName(u'ProgressGroupBox')
-        self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox)
-        self.verticalLayout_4.setSpacing(6)
-        self.verticalLayout_4.setContentsMargins(6, 0, 8, 8)
-        self.verticalLayout_4.setObjectName(u'verticalLayout_4')
-        self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox)
-        self.ProgressLabel.setObjectName(u'ProgressLabel')
-        self.verticalLayout_4.addWidget(self.ProgressLabel)
-        self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox)
-        self.ProgressBar.setProperty(u'value', QtCore.QVariant(24))
-        self.ProgressBar.setObjectName(u'ProgressBar')
-        self.verticalLayout_4.addWidget(self.ProgressBar)
-        self.verticalLayout.addWidget(self.ProgressGroupBox)
-        self.ButtonBarWidget = QtGui.QWidget(self.OpenSongImportForm)
-        self.ButtonBarWidget.setObjectName(u'ButtonBarWidget')
-        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget)
-        self.horizontalLayout_7.setSpacing(8)
-        self.horizontalLayout_7.setMargin(0)
-        self.horizontalLayout_7.setObjectName(u'horizontalLayout_7')
-        spacerItem = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-        self.horizontalLayout_7.addItem(spacerItem)
-        self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ImportPushButton.setObjectName(u'ImportPushButton')
-        self.horizontalLayout_7.addWidget(self.ImportPushButton)
-        self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget)
-        self.ClosePushButton.setObjectName(u'ClosePushButton')
-        self.horizontalLayout_7.addWidget(self.ClosePushButton)
-        self.verticalLayout.addWidget(self.ButtonBarWidget)
-
-        self.retranslateUi()
-        QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenSongImportForm.close)
-        QtCore.QMetaObject.connectSlotsByName(self.OpenSongImportForm)
-
-    def retranslateUi(self):
-        self.OpenSongImportForm.setWindowTitle(translate(u'OpenSongImportForm', u'OpenSong Song Importer'))
-        self.ImportFileLabel.setText(translate(u'OpenSongImportForm', u'OpenSong Folder:'))
-        self.ProgressGroupBox.setTitle(translate(u'OpenSongImportForm', u'Progress:'))
-        self.ProgressLabel.setText(translate(u'OpenSongImportForm', u'Ready to import'))
-        self.ImportPushButton.setText(translate(u'OpenSongImportForm', u'Import'))
-        self.ClosePushButton.setText(translate(u'OpenSongImportForm', u'Close'))
-
-    def show(self):
-        self.OpenSongImportForm.show()
+from openlp.plugins.songs.forms.opensongimportdialog import Ui_OpenSongImportDialog
+
+class OpenSongImportForm(QtGui.QDialog, Ui_OpenSongImportDialog):
+
+    def __init__(self, parent=None):
+        QtGui.QDialog.__init__(self, parent)
+        self.setupUi(self)
+

=== modified file 'openlp/plugins/songs/forms/songbookdialog.py'
--- openlp/plugins/songs/forms/songbookdialog.py	2009-09-08 19:58:05 +0000
+++ openlp/plugins/songs/forms/songbookdialog.py	2009-10-24 07:35:24 +0000
@@ -65,9 +65,6 @@
         QtCore.QMetaObject.connectSlotsByName(SongBookDialog)
 
     def retranslateUi(self, SongBookDialog):
-        SongBookDialog.setWindowTitle(
-            translate(u'SongBookDialog', u'Edit Book'))
-        self.NameLabel.setText(
-            translate(u'SongBookDialog', u'Name:'))
-        self.PublisherLabel.setText(
-            translate(u'SongBookDialog', u'Publisher:'))
+        SongBookDialog.setWindowTitle(self.trUtf8(u'Edit Book'))
+        self.NameLabel.setText(self.trUtf8(u'Name:'))
+        self.PublisherLabel.setText(self.trUtf8(u'Publisher:'))

=== modified file 'openlp/plugins/songs/forms/songbookform.py'
--- openlp/plugins/songs/forms/songbookform.py	2009-09-25 00:43:42 +0000
+++ openlp/plugins/songs/forms/songbookform.py	2009-10-24 07:35:24 +0000
@@ -47,9 +47,9 @@
 
     def accept(self):
         if not self.NameEdit.text():
-            QtGui.QMessageBox.critical(self,
-                translate(u'SongBookDialog', u'Error'),
-                translate(u'SongBookDialog', u'You need to type in a book name!'),
+            QtGui.QMessageBox.critical(
+                self, self.trUtf8(u'Error'),
+                self.trUtf8(u'You need to type in a book name!'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             self.NameEdit.setFocus()
             return False

=== modified file 'openlp/plugins/songs/forms/songmaintenancedialog.py'
--- openlp/plugins/songs/forms/songmaintenancedialog.py	2009-09-29 02:54:32 +0000
+++ openlp/plugins/songs/forms/songmaintenancedialog.py	2009-10-24 07:35:24 +0000
@@ -207,30 +207,17 @@
         QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog)
 
     def retranslateUi(self, SongMaintenanceDialog):
-        SongMaintenanceDialog.setWindowTitle(
-            translate(u'SongMaintenanceDialog', u'Song Maintenance'))
-        self.TypeListWidget.item(0).setText(
-            translate(u'SongMaintenanceDialog', u'Authors'))
-        self.TypeListWidget.item(1).setText(
-            translate(u'SongMaintenanceDialog', u'Topics'))
-        self.TypeListWidget.item(2).setText(
-            translate(u'SongMaintenanceDialog', u'Books/Hymnals'))
-        self.AuthorAddButton.setText(
-            translate(u'SongMaintenanceDialog', u'Add'))
-        self.AuthorEditButton.setText(
-            translate(u'SongMaintenanceDialog', u'Edit'))
-        self.AuthorDeleteButton.setText(
-            translate(u'SongMaintenanceDialog', u'Delete'))
-        self.TopicAddButton.setText(
-            translate(u'SongMaintenanceDialog', u'Add'))
-        self.TopicEditButton.setText(
-            translate(u'SongMaintenanceDialog', u'Edit'))
-        self.TopicDeleteButton.setText(
-            translate(u'SongMaintenanceDialog', u'Delete'))
-        self.BookAddButton.setText(
-            translate(u'SongMaintenanceDialog', u'Add'))
-        self.BookEditButton.setText(
-            translate(u'SongMaintenanceDialog', u'Edit'))
-        self.BookDeleteButton.setText(
-            translate(u'SongMaintenanceDialog', u'Delete'))
+        SongMaintenanceDialog.setWindowTitle(self.trUtf8(u'Song Maintenance'))
+        self.TypeListWidget.item(0).setText(self.trUtf8(u'Authors'))
+        self.TypeListWidget.item(1).setText(self.trUtf8(u'Topics'))
+        self.TypeListWidget.item(2).setText(self.trUtf8(u'Books/Hymnals'))
+        self.AuthorAddButton.setText(self.trUtf8(u'Add'))
+        self.AuthorEditButton.setText(self.trUtf8(u'Edit'))
+        self.AuthorDeleteButton.setText(self.trUtf8(u'Delete'))
+        self.TopicAddButton.setText(self.trUtf8(u'Add'))
+        self.TopicEditButton.setText(self.trUtf8(u'Edit'))
+        self.TopicDeleteButton.setText(self.trUtf8(u'Delete'))
+        self.BookAddButton.setText(self.trUtf8(u'Add'))
+        self.BookEditButton.setText(self.trUtf8(u'Edit'))
+        self.BookDeleteButton.setText(self.trUtf8(u'Delete'))
 

=== modified file 'openlp/plugins/songs/forms/songmaintenanceform.py'
--- openlp/plugins/songs/forms/songmaintenanceform.py	2009-08-02 19:10:54 +0000
+++ openlp/plugins/songs/forms/songmaintenanceform.py	2009-10-24 07:35:24 +0000
@@ -130,9 +130,9 @@
             if self.songmanager.save_author(author):
                 self.resetAuthors()
             else:
-                QtGui.QMessageBox.critical(self,
-                    translate(u'SongMaintenanceForm', u'Error'),
-                    translate(u'SongMaintenanceForm', u'Couldn\'t add your author!'),
+                QtGui.QMessageBox.critical(
+                    self, self.trUtf8(u'Error'),
+                    self.trUtf8(u'Couldn\'t add your author!'),
                     QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
 
     def onTopicAddButtonClick(self):
@@ -141,9 +141,9 @@
             if self.songmanager.save_topic(topic):
                 self.resetTopics()
             else:
-                QtGui.QMessageBox.critical(self,
-                    translate(u'SongMaintenanceForm', u'Error'),
-                    translate(u'SongMaintenanceForm', u'Couldn\'t add your topic!'),
+                QtGui.QMessageBox.critical(
+                    self, self.trUtf8(u'Error'),
+                    self.trUtf8(u'Couldn\'t add your topic!'),
                     QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
 
     def onBookAddButtonClick(self):
@@ -153,9 +153,9 @@
             if self.songmanager.save_book(book):
                 self.resetBooks()
             else:
-                QtGui.QMessageBox.critical(self,
-                    translate(u'SongMaintenanceForm', u'Error'),
-                    translate(u'SongMaintenanceForm', u'Couldn\'t add your book!'),
+                QtGui.QMessageBox.critical(
+                    self, self.trUtf8(u'Error'),
+                    self.trUtf8(u'Couldn\'t add your book!'),
                     QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
 
     def onAuthorEditButtonClick(self):
@@ -173,9 +173,9 @@
                 if self.songmanager.save_author(author):
                     self.resetAuthors()
                 else:
-                    QtGui.QMessageBox.critical(self,
-                        translate(u'SongMaintenanceForm', u'Error'),
-                        translate(u'SongMaintenanceForm', u'Couldn\'t save your author!'),
+                    QtGui.QMessageBox.critical(
+                        self, self.trUtf8(u'Error'),
+                        self.trUtf8(u'Couldn\'t save your author!'),
                         QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
 
     def onTopicEditButtonClick(self):
@@ -188,9 +188,9 @@
                 if self.songmanager.save_topic(topic):
                     self.resetTopics()
                 else:
-                    QtGui.QMessageBox.critical(self,
-                        translate(u'SongMaintenanceForm', u'Error'),
-                        translate(u'SongMaintenanceForm', u'Couldn\'t save your topic!'),
+                    QtGui.QMessageBox.critical(
+                        self, self.trUtf8(u'Error'),
+                        self.trUtf8(u'Couldn\'t save your topic!'),
                         QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
 
     def onBookEditButtonClick(self):
@@ -205,40 +205,46 @@
                 if self.songmanager.save_book(book):
                     self.resetBooks()
                 else:
-                    QtGui.QMessageBox.critical(self,
-                        translate(u'SongMaintenanceForm', u'Error'),
-                        translate(u'SongMaintenanceForm', u'Couldn\'t save your book!'),
+                    QtGui.QMessageBox.critical(
+                        self, self.trUtf8(u'Error'),
+                        self.trUtf8(u'Couldn\'t save your book!'),
                         QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
 
     def onAuthorDeleteButtonClick(self):
         """
         Delete the author if the author is not attached to any songs
         """
-        self._deleteItem(self.AuthorsListWidget, self.songmanager.get_author,
+        self._deleteItem(
+            self.AuthorsListWidget, self.songmanager.get_author,
             self.songmanager.delete_author, self.resetAuthors,
-            translate(u'SongMaintenanceForm', u'Delete Author'),
-            translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected author?'),
-            translate(u'SongMaintenanceForm', u'This author can\'t be deleted, they are currently assigned to at least one song!'),
-            translate(u'SongMaintenanceForm', u'No author selected!'))
+            self.trUtf8(u'Delete Author'),
+            self.trUtf8(u'Are you sure you want to delete the selected author?'),
+            self.trUtf8(u'This author can\'t be deleted, they are currently '
+                u'assigned to at least one song!'),
+            self.trUtf8(u'No author selected!'))
 
     def onTopicDeleteButtonClick(self):
         """
         Delete the Book is the Book is not attached to any songs
         """
-        self._deleteItem(self.TopicsListWidget, self.songmanager.get_topic,
+        self._deleteItem(
+            self.TopicsListWidget, self.songmanager.get_topic,
             self.songmanager.delete_topic, self.resetTopics,
-            translate(u'SongMaintenanceForm', u'Delete Topic'),
-            translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected topic?'),
-            translate(u'SongMaintenanceForm', u'This topic can\'t be deleted, it is currently assigned to at least one song!'),
-            translate(u'SongMaintenanceForm', u'No topic selected!'))
+            self.trUtf8(u'Delete Topic'),
+            self.trUtf8(u'Are you sure you want to delete the selected topic?'),
+            self.trUtf8(u'This topic can\'t be deleted, it is currently '
+                u'assigned to at least one song!'),
+            self.trUtf8(u'No topic selected!'))
 
     def onBookDeleteButtonClick(self):
         """
         Delete the Book is the Book is not attached to any songs
         """
-        self._deleteItem(self.BooksListWidget, self.songmanager.get_book,
+        self._deleteItem(
+            self.BooksListWidget, self.songmanager.get_book,
             self.songmanager.delete_book, self.resetBooks,
-            translate(u'SongMaintenanceForm', u'Delete Book'),
-            translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected book?'),
-            translate(u'SongMaintenanceForm', u'This book can\'t be deleted, it is currently assigned to at least one song!'),
-            translate(u'SongMaintenanceForm', u'No book selected!'))
+            self.trUtf8(u'Delete Book'),
+            self.trUtf8(u'Are you sure you want to delete the selected book?'),
+            self.trUtf8(u'This book can\'t be deleted, it is currently '
+                u'assigned to at least one song!'),
+            self.trUtf8(u'No book selected!'))

=== modified file 'openlp/plugins/songs/forms/topicsdialog.py'
--- openlp/plugins/songs/forms/topicsdialog.py	2009-09-08 19:58:05 +0000
+++ openlp/plugins/songs/forms/topicsdialog.py	2009-10-24 07:35:24 +0000
@@ -59,8 +59,6 @@
         QtCore.QMetaObject.connectSlotsByName(TopicsDialog)
 
     def retranslateUi(self, TopicsDialog):
-        TopicsDialog.setWindowTitle(
-            translate(u'TopicsDialog', u'Topic Maintenance'))
-        self.NameLabel.setText(
-            translate(u'TopicsDialog', u'Topic name:'))
+        TopicsDialog.setWindowTitle(self.trUtf8(u'Topic Maintenance'))
+        self.NameLabel.setText(self.trUtf8(u'Topic name:'))
 

=== modified file 'openlp/plugins/songs/forms/topicsform.py'
--- openlp/plugins/songs/forms/topicsform.py	2009-09-25 00:43:42 +0000
+++ openlp/plugins/songs/forms/topicsform.py	2009-10-24 07:35:24 +0000
@@ -46,9 +46,9 @@
 
     def accept(self):
         if not self.NameEdit.text():
-            QtGui.QMessageBox.critical(self,
-                translate(u'SongBookDialog', u'Error'),
-                translate(u'SongBookDialog', u'You need to type in a topic name!'),
+            QtGui.QMessageBox.critical(
+                self, self.trUtf8(u'Error'),
+                self.trUtf8(u'You need to type in a topic name!'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
             self.NameEdit.setFocus()
             return False

=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2009-10-21 04:57:45 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2009-10-24 07:35:24 +0000
@@ -63,9 +63,8 @@
     def addEndHeaderBar(self):
         self.addToolbarSeparator()
         ## Song Maintenance Button ##
-        self.addToolbarButton(translate(u'SongMediaItem', u'Song Maintenance'),
-            translate(u'SongMediaItem',
-            u'Maintain the lists of authors, topics and books'),
+        self.addToolbarButton(self.trUtf8(u'Song Maintenance'),
+            self.trUtf8(u'Maintain the lists of authors, topics and books'),
             ':/songs/song_maintenance.png', self.onSongMaintenanceClick,
             'SongMaintenanceItem')
         self.PageLayout.setSpacing(4)
@@ -128,15 +127,15 @@
             self.parent.config.get_config(u'search as type', u'False'))
 
     def retranslateUi(self):
-        self.SearchTextLabel.setText(translate(u'SongMediaItem', u'Search:'))
-        self.SearchTypeLabel.setText(translate(u'SongMediaItem', u'Type:'))
-        self.ClearTextButton.setText(translate(u'SongMediaItem', u'Clear'))
-        self.SearchTextButton.setText(translate(u'SongMediaItem', u'Search'))
+        self.SearchTextLabel.setText(self.trUtf8(u'Search:'))
+        self.SearchTypeLabel.setText(self.trUtf8(u'Type:'))
+        self.ClearTextButton.setText(self.trUtf8(u'Clear'))
+        self.SearchTextButton.setText(self.trUtf8(u'Search'))
 
     def initialise(self):
-        self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Titles'))
-        self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Lyrics'))
-        self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Authors'))
+        self.SearchTypeComboBox.addItem(self.trUtf8(u'Titles'))
+        self.SearchTypeComboBox.addItem(self.trUtf8(u'Lyrics'))
+        self.SearchTypeComboBox.addItem(self.trUtf8(u'Authors'))
         self.configUpdated()
 
     def onSearchTextButtonClick(self):
@@ -270,7 +269,7 @@
         raw_footer.append(author_list)
         raw_footer.append(song.copyright )
         raw_footer.append(unicode(
-            translate(u'SongMediaItem', u'CCL Licence: ') + ccl))
+            self.trUtf8(u'CCL Licence: ') + ccl))
         service_item.raw_footer = raw_footer
         service_item.audit = [song.title, author_audit, song.copyright, song.ccli_number]
         return True

=== modified file 'openlp/plugins/songs/lib/songstab.py'
--- openlp/plugins/songs/lib/songstab.py	2009-10-17 06:12:38 +0000
+++ openlp/plugins/songs/lib/songstab.py	2009-10-24 07:35:24 +0000
@@ -31,7 +31,7 @@
     SongsTab is the Songs settings tab in the settings dialog.
     """
     def __init__(self):
-        SettingsTab.__init__(self, translate(u'SongsTab', u'Songs'), u'Songs')
+        SettingsTab.__init__(self, u'Songs', u'Songs')
 
     def setupUi(self):
         self.setObjectName(u'SongsTab')
@@ -53,9 +53,8 @@
             self.onSearchAsTypeCheckBoxChanged)
 
     def retranslateUi(self):
-        self.SongsModeGroupBox.setTitle(translate(u'SongsTab', u'Songs Mode'))
-        self.SearchAsTypeCheckBox.setText(
-            translate(u'SongsTab', u'Enable search as you type:'))
+        self.SongsModeGroupBox.setTitle(self.trUtf8(u'Songs Mode'))
+        self.SearchAsTypeCheckBox.setText(self.trUtf8(u'Enable search as you type:'))
 
     def onSearchAsTypeCheckBoxChanged(self, check_state):
         self.bible_search = False

=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py	2009-10-17 05:47:17 +0000
+++ openlp/plugins/songs/songsplugin.py	2009-10-24 07:35:24 +0000
@@ -112,19 +112,18 @@
         self.ImportSongMenu.addAction(self.ImportOpenSongItem)
         import_menu.addAction(self.ImportSongMenu.menuAction())
         # Translations...
-        self.ImportSongMenu.setTitle(translate(u'main_window', u'&Song'))
-        self.ImportOpenSongItem.setText(translate(u'main_window', u'OpenSong'))
-        self.ImportOpenlp1Item.setText(
-            translate(u'main_window', u'openlp.org 1.0'))
+        self.ImportSongMenu.setTitle(import_menu.trUtf8(u'&Song'))
+        self.ImportOpenSongItem.setText(import_menu.trUtf8(u'OpenSong'))
+        self.ImportOpenlp1Item.setText(import_menu.trUtf8(u'openlp.org 1.0'))
         self.ImportOpenlp1Item.setToolTip(
-            translate(u'main_window', u'Export songs in openlp.org 1.0 format'))
+            import_menu.trUtf8(u'Export songs in openlp.org 1.0 format'))
         self.ImportOpenlp1Item.setStatusTip(
-            translate(u'main_window', u'Export songs in openlp.org 1.0 format'))
-        self.ImportOpenlp2Item.setText(translate(u'main_window', u'OpenLP 2.0'))
+            import_menu.trUtf8(u'Export songs in openlp.org 1.0 format'))
+        self.ImportOpenlp2Item.setText(import_menu.trUtf8(u'OpenLP 2.0'))
         self.ImportOpenlp2Item.setToolTip(
-            translate(u'main_window', u'Export songs in OpenLP 2.0 format'))
+            import_menu.trUtf8(u'Export songs in OpenLP 2.0 format'))
         self.ImportOpenlp2Item.setStatusTip(
-            translate(u'main_window', u'Export songs in OpenLP 2.0 format'))
+            import_menu.trUtf8(u'Export songs in OpenLP 2.0 format'))
         # Signals and slots
         QtCore.QObject.connect(self.ImportOpenlp1Item,
             QtCore.SIGNAL(u'triggered()'), self.onImportOpenlp1ItemClick)
@@ -157,11 +156,10 @@
         self.ExportSongMenu.addAction(self.ExportOpenSongItem)
         export_menu.addAction(self.ExportSongMenu.menuAction())
         # Translations...
-        self.ExportSongMenu.setTitle(translate(u'main_window', u'&Song'))
-        self.ExportOpenSongItem.setText(translate(u'main_window', u'OpenSong'))
-        self.ExportOpenlp1Item.setText(
-            translate(u'main_window', u'openlp.org 1.0'))
-        self.ExportOpenlp2Item.setText(translate(u'main_window', u'OpenLP 2.0'))
+        self.ExportSongMenu.setTitle(export_menu.trUtf8(u'&Song'))
+        self.ExportOpenSongItem.setText(export_menu.trUtf8(u'OpenSong'))
+        self.ExportOpenlp1Item.setText(export_menu.trUtf8(u'openlp.org 1.0'))
+        self.ExportOpenlp2Item.setText(export_menu.trUtf8(u'OpenLP 2.0'))
         # Signals and slots
         QtCore.QObject.connect(self.ExportOpenlp1Item,
             QtCore.SIGNAL(u'triggered()'), self.onExportOpenlp1ItemClicked)

=== modified file 'resources/forms/about.ui'
--- resources/forms/about.ui	2009-05-03 15:35:34 +0000
+++ resources/forms/about.ui	2009-10-24 07:35:24 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>AboutDialog</class>
- <widget class="QDialog" name="AboutDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="AboutDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,152 +10,165 @@
     <height>481</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>About openlp.org</string>
   </property>
-  <property name="windowIcon" >
+  <property name="windowIcon">
    <iconset>
     <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
   </property>
-  <layout class="QVBoxLayout" name="AboutDialogLayout" >
-   <property name="spacing" >
+  <layout class="QVBoxLayout" name="AboutDialogLayout">
+   <property name="spacing">
     <number>8</number>
    </property>
-   <property name="margin" >
+   <property name="margin">
     <number>8</number>
    </property>
    <item>
-    <widget class="QLabel" name="Logo" >
-     <property name="autoFillBackground" >
+    <widget class="QLabel" name="Logo">
+     <property name="autoFillBackground">
       <bool>false</bool>
      </property>
-     <property name="styleSheet" >
-      <string notr="true" >background-color: rgb(255, 255, 255);</string>
+     <property name="styleSheet">
+      <string notr="true">background-color: rgb(255, 255, 255);</string>
      </property>
-     <property name="frameShape" >
+     <property name="frameShape">
       <enum>QFrame::StyledPanel</enum>
      </property>
-     <property name="lineWidth" >
+     <property name="lineWidth">
       <number>1</number>
      </property>
-     <property name="text" >
+     <property name="text">
       <string/>
      </property>
-     <property name="pixmap" >
-      <pixmap resource="../images/openlp-2.qrc" >:/graphics/about-new.bmp</pixmap>
+     <property name="pixmap">
+      <pixmap resource="../images/openlp-2.qrc">:/graphics/about-new.bmp</pixmap>
      </property>
-     <property name="scaledContents" >
+     <property name="scaledContents">
       <bool>false</bool>
      </property>
-     <property name="alignment" >
+     <property name="alignment">
       <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QTabWidget" name="AboutNotebook" >
-     <property name="currentIndex" >
+    <widget class="QTabWidget" name="AboutNotebook">
+     <property name="currentIndex">
       <number>0</number>
      </property>
-     <widget class="QWidget" name="LicenseTab" >
-      <attribute name="title" >
+     <widget class="QWidget" name="LicenseTab">
+      <attribute name="title">
        <string>License</string>
       </attribute>
-      <layout class="QVBoxLayout" name="LicenseTabLayout" >
-       <property name="spacing" >
+      <layout class="QVBoxLayout" name="LicenseTabLayout">
+       <property name="spacing">
         <number>8</number>
        </property>
-       <property name="margin" >
+       <property name="margin">
         <number>8</number>
        </property>
        <item>
-        <widget class="QLabel" name="CopyrightLabel" >
-         <property name="text" >
+        <widget class="QLabel" name="CopyrightLabel">
+         <property name="text">
           <string>Copyright © 2004-2008 openlp.org Foundation</string>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QLabel" name="AboutAuthors" >
-         <property name="text" >
+        <widget class="QLabel" name="AboutAuthors">
+         <property name="text">
           <string>openlp.org is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below.</string>
          </property>
-         <property name="alignment" >
+         <property name="alignment">
           <set>Qt::AlignJustify|Qt::AlignVCenter</set>
          </property>
-         <property name="wordWrap" >
+         <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QLabel" name="License1Label" >
-         <property name="text" >
+        <widget class="QLabel" name="License1Label">
+         <property name="text">
           <string>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; either version 2 of the License, or (at your option) any later version.</string>
          </property>
-         <property name="alignment" >
+         <property name="alignment">
           <set>Qt::AlignJustify|Qt::AlignVCenter</set>
          </property>
-         <property name="wordWrap" >
+         <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QLabel" name="License2Label" >
-         <property name="text" >
+        <widget class="QLabel" name="License2Label">
+         <property name="text">
           <string>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.</string>
          </property>
-         <property name="alignment" >
+         <property name="alignment">
           <set>Qt::AlignJustify|Qt::AlignVCenter</set>
          </property>
-         <property name="wordWrap" >
+         <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item>
-        <widget class="QLabel" name="License3Label" >
-         <property name="text" >
+        <widget class="QLabel" name="License3Label">
+         <property name="text">
           <string>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.</string>
          </property>
-         <property name="alignment" >
+         <property name="alignment">
           <set>Qt::AlignJustify|Qt::AlignVCenter</set>
          </property>
-         <property name="wordWrap" >
+         <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="LicenseSpacer">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="CreditsTab" >
-      <attribute name="title" >
+     <widget class="QWidget" name="CreditsTab">
+      <attribute name="title">
        <string>Credits</string>
       </attribute>
-      <layout class="QVBoxLayout" name="CreditsTabLayout" >
-       <property name="spacing" >
+      <layout class="QVBoxLayout" name="CreditsTabLayout">
+       <property name="spacing">
         <number>0</number>
        </property>
-       <property name="margin" >
+       <property name="margin">
         <number>8</number>
        </property>
        <item>
-        <widget class="QPlainTextEdit" name="plainTextEdit" >
-         <property name="readOnly" >
+        <widget class="QPlainTextEdit" name="plainTextEdit">
+         <property name="readOnly">
           <bool>true</bool>
          </property>
-         <property name="plainText" >
+         <property name="plainText">
           <string>Project Lead
-    Raoul "superfly" Snyman
+    Raoul &quot;superfly&quot; Snyman
 
 Developers
-    Tim "TRB143" Bentley
-    Jonathan "gushie" Corwin
-    Scott "sguerrieri" Guerrieri
-    Raoul "superfly" Snyman
-    Martin "mijiti" Thompson
-    Carsten "catini" Tingaard</string>
+    Tim &quot;TRB143&quot; Bentley
+    Jonathan &quot;gushie&quot; Corwin
+    Scott &quot;sguerrieri&quot; Guerrieri
+    Raoul &quot;superfly&quot; Snyman
+    Martin &quot;mijiti&quot; Thompson
+    Carsten &quot;catini&quot; Tingaard</string>
          </property>
         </widget>
        </item>
@@ -163,20 +177,20 @@
     </widget>
    </item>
    <item>
-    <widget class="QWidget" native="1" name="ButtonWidget" >
-     <layout class="QHBoxLayout" name="ButtonWidgetLayout" >
-      <property name="spacing" >
+    <widget class="QWidget" name="ButtonWidget" native="true">
+     <layout class="QHBoxLayout" name="ButtonWidgetLayout">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <spacer name="horizontalSpacer" >
-        <property name="orientation" >
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>275</width>
           <height>20</height>
@@ -185,15 +199,15 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="ContributeButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ContributeButton">
+        <property name="text">
          <string>Contribute</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="CloseButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="CloseButton">
+        <property name="text">
          <string>Close</string>
         </property>
        </widget>
@@ -202,8 +216,8 @@
     </widget>
    </item>
   </layout>
-  <action name="extContributeItem" >
-   <property name="text" >
+  <action name="extContributeItem">
+   <property name="text">
     <string>&amp;Contribute</string>
    </property>
   </action>
@@ -212,7 +226,7 @@
   <tabstop>ContributeButton</tabstop>
  </tabstops>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
@@ -221,11 +235,11 @@
    <receiver>AboutDialog</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>348</x>
      <y>361</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>196</x>
      <y>189</y>
     </hint>
@@ -233,19 +247,19 @@
   </connection>
  </connections>
  <designerdata>
-  <property name="gridDeltaX" >
-   <number>10</number>
-  </property>
-  <property name="gridDeltaY" >
-   <number>10</number>
-  </property>
-  <property name="gridSnapX" >
-   <bool>true</bool>
-  </property>
-  <property name="gridSnapY" >
-   <bool>true</bool>
-  </property>
-  <property name="gridVisible" >
+  <property name="gridDeltaX">
+   <number>10</number>
+  </property>
+  <property name="gridDeltaY">
+   <number>10</number>
+  </property>
+  <property name="gridSnapX">
+   <bool>true</bool>
+  </property>
+  <property name="gridSnapY">
+   <bool>true</bool>
+  </property>
+  <property name="gridVisible">
    <bool>true</bool>
   </property>
  </designerdata>

=== modified file 'resources/forms/openlpexportform.ui'
--- resources/forms/openlpexportform.ui	2008-11-27 20:14:38 +0000
+++ resources/forms/openlpexportform.ui	2009-10-24 07:35:24 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
- <class>OpenLPExportForm</class>
- <widget class="QWidget" name="OpenLPExportForm" >
-  <property name="geometry" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpenLPExportDialog</class>
+ <widget class="QDialog" name="OpenLPExportDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,49 +10,49 @@
     <height>459</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>openlp.org Song Exporter</string>
   </property>
-  <property name="windowIcon" >
-   <iconset resource="../images/openlp-2.qrc" >
+  <property name="windowIcon">
+   <iconset>
     <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5" >
-   <property name="margin" >
+  <layout class="QVBoxLayout" name="verticalLayout_5">
+   <property name="margin">
     <number>8</number>
    </property>
    <item>
-    <widget class="QWidget" native="1" name="ExportFileWidget" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+    <widget class="QWidget" name="ExportFileWidget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="spacing">
        <number>3</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <widget class="QLabel" name="ExportFileLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ExportFileLabel">
+        <property name="text">
          <string>Select openlp.org export filename:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QLineEdit" name="ExportFileLineEdit" />
+       <widget class="QLineEdit" name="ExportFileLineEdit"/>
       </item>
       <item>
-       <widget class="QPushButton" name="ExportFileSelectPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ExportFileSelectPushButton">
+        <property name="text">
          <string/>
         </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
+        <property name="icon">
+         <iconset resource="../images/openlp-2.qrc">
           <normaloff>:/exports/export_load.png</normaloff>:/exports/export_load.png</iconset>
         </property>
        </widget>
@@ -60,115 +61,115 @@
     </widget>
    </item>
    <item>
-    <widget class="QFrame" name="SongListFrame" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+    <widget class="QFrame" name="SongListFrame">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="frameShape" >
+     <property name="frameShape">
       <enum>QFrame::Box</enum>
      </property>
-     <property name="frameShadow" >
+     <property name="frameShadow">
       <enum>QFrame::Raised</enum>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_6" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout_6">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QWidget" native="1" name="ExportFileSongListWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="ExportFileSongListWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout" >
-         <property name="spacing" >
+        <layout class="QVBoxLayout" name="verticalLayout">
+         <property name="spacing">
           <number>6</number>
          </property>
-         <property name="margin" >
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <widget class="QLabel" name="ExportListLabel" >
-           <property name="text" >
+          <widget class="QLabel" name="ExportListLabel">
+           <property name="text">
             <string>Full Song List</string>
            </property>
           </widget>
          </item>
          <item>
-          <widget class="QTableWidget" name="ExportListTable" >
-           <property name="selectionMode" >
+          <widget class="QTableWidget" name="ExportListTable">
+           <property name="selectionMode">
             <enum>QAbstractItemView::MultiSelection</enum>
            </property>
-           <property name="showGrid" >
-            <bool>false</bool>
-           </property>
-           <property name="wordWrap" >
-            <bool>false</bool>
-           </property>
-           <property name="cornerButtonEnabled" >
+           <property name="showGrid">
+            <bool>false</bool>
+           </property>
+           <property name="wordWrap">
+            <bool>false</bool>
+           </property>
+           <property name="cornerButtonEnabled">
             <bool>false</bool>
            </property>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Song Title</string>
             </property>
            </column>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Author</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="ExportSelectAllWidget" >
-           <layout class="QHBoxLayout" name="horizontalLayout_2" >
-            <property name="spacing" >
+          <widget class="QWidget" name="ExportSelectAllWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <property name="spacing">
              <number>6</number>
             </property>
-            <property name="margin" >
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="ExportSelectAllPushButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+             <widget class="QPushButton" name="ExportSelectAllPushButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Select All</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/exports/export_selectall.png</normaloff>:/exports/export_selectall.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="ExportSelectAllHSpacer" >
-              <property name="orientation" >
+             <spacer name="ExportSelectAllHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeType" >
+              <property name="sizeType">
                <enum>QSizePolicy::Expanding</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>89</width>
                 <height>20</height>
@@ -180,50 +181,50 @@
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="exportFilterWidget" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <widget class="QWidget" name="exportFilterWidget" native="true">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="minimumSize" >
+           <property name="minimumSize">
             <size>
              <width>0</width>
              <height>0</height>
             </size>
            </property>
-           <layout class="QHBoxLayout" name="horizontalLayout_3" >
-            <property name="margin" >
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QComboBox" name="ExportFilterComboBox" >
-              <property name="minimumSize" >
+             <widget class="QComboBox" name="ExportFilterComboBox">
+              <property name="minimumSize">
                <size>
                 <width>70</width>
                 <height>0</height>
                </size>
               </property>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Lyrics</string>
                </property>
               </item>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Title</string>
                </property>
               </item>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Author</string>
                </property>
               </item>
              </widget>
             </item>
             <item>
-             <widget class="QLineEdit" name="ExportFilterLineEdit" />
+             <widget class="QLineEdit" name="ExportFilterLineEdit"/>
             </item>
            </layout>
           </widget>
@@ -236,23 +237,23 @@
        </widget>
       </item>
       <item>
-       <widget class="QWidget" native="1" name="AddSelectedWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="AddSelectedWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout_3" >
-         <property name="margin" >
+        <layout class="QVBoxLayout" name="verticalLayout_3">
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <spacer name="AddSelectedTopVSpacer" >
-           <property name="orientation" >
+          <spacer name="AddSelectedTopVSpacer">
+           <property name="orientation">
             <enum>Qt::Vertical</enum>
            </property>
-           <property name="sizeHint" stdset="0" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
@@ -261,34 +262,34 @@
           </spacer>
          </item>
          <item>
-          <widget class="QPushButton" name="AddSelectedPushButton" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+          <widget class="QPushButton" name="AddSelectedPushButton">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="minimumSize" >
+           <property name="minimumSize">
             <size>
              <width>25</width>
              <height>25</height>
             </size>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
+           <property name="icon">
+            <iconset resource="../images/openlp-2.qrc">
              <normaloff>:/exports/export_move_to_list.png</normaloff>:/exports/export_move_to_list.png</iconset>
            </property>
           </widget>
          </item>
          <item>
-          <spacer name="AddSelectedBottomVSpacer" >
-           <property name="orientation" >
+          <spacer name="AddSelectedBottomVSpacer">
+           <property name="orientation">
             <enum>Qt::Vertical</enum>
            </property>
-           <property name="sizeHint" stdset="0" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
@@ -300,91 +301,91 @@
        </widget>
       </item>
       <item>
-       <widget class="QWidget" native="1" name="SelectedFileListWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="SelectedFileListWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout_2" >
-         <property name="margin" >
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <widget class="QLabel" name="SelectedListLabel" >
-           <property name="text" >
+          <widget class="QLabel" name="SelectedListLabel">
+           <property name="text">
             <string>Song Export List</string>
            </property>
           </widget>
          </item>
          <item>
-          <widget class="QTableWidget" name="SelectedListTable" >
-           <property name="selectionMode" >
+          <widget class="QTableWidget" name="SelectedListTable">
+           <property name="selectionMode">
             <enum>QAbstractItemView::MultiSelection</enum>
            </property>
-           <property name="showGrid" >
-            <bool>false</bool>
-           </property>
-           <property name="wordWrap" >
-            <bool>false</bool>
-           </property>
-           <property name="cornerButtonEnabled" >
+           <property name="showGrid">
+            <bool>false</bool>
+           </property>
+           <property name="wordWrap">
+            <bool>false</bool>
+           </property>
+           <property name="cornerButtonEnabled">
             <bool>false</bool>
            </property>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Song Title</string>
             </property>
            </column>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Author</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="SelectedSelectAllWidget" >
-           <layout class="QHBoxLayout" name="horizontalLayout_4" >
-            <property name="spacing" >
+          <widget class="QWidget" name="SelectedSelectAllWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_4">
+            <property name="spacing">
              <number>6</number>
             </property>
-            <property name="margin" >
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="SelectedSelectAllPushButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+             <widget class="QPushButton" name="SelectedSelectAllPushButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Select All</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/exports/export_selectall.png</normaloff>:/exports/export_selectall.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="SelectedSelectAllHSpacer" >
-              <property name="orientation" >
+             <spacer name="SelectedSelectAllHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeType" >
+              <property name="sizeType">
                <enum>QSizePolicy::Expanding</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>92</width>
                 <height>20</height>
@@ -396,46 +397,46 @@
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="SelectedRemoveSelectedWidget" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <widget class="QWidget" name="SelectedRemoveSelectedWidget" native="true">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <layout class="QHBoxLayout" name="horizontalLayout_5" >
-            <property name="margin" >
+           <layout class="QHBoxLayout" name="horizontalLayout_5">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="SelectedRemoveSelectedButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+             <widget class="QPushButton" name="SelectedRemoveSelectedButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>140</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Remove Selected</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/exports/export_remove.png</normaloff>:/exports/export_remove.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="SelectedRemoveSelectedHSpacer" >
-              <property name="orientation" >
+             <spacer name="SelectedRemoveSelectedHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>49</width>
                 <height>20</height>
@@ -456,42 +457,42 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="ProgressGroupBox" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+    <widget class="QGroupBox" name="ProgressGroupBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Progress:</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4" >
-      <property name="spacing" >
-       <number>8</number>
-      </property>
-      <property name="leftMargin" >
-       <number>8</number>
-      </property>
-      <property name="topMargin" >
+     <layout class="QVBoxLayout" name="verticalLayout_4">
+      <property name="spacing">
+       <number>8</number>
+      </property>
+      <property name="leftMargin">
+       <number>8</number>
+      </property>
+      <property name="topMargin">
        <number>0</number>
       </property>
-      <property name="rightMargin" >
+      <property name="rightMargin">
        <number>8</number>
       </property>
-      <property name="bottomMargin" >
+      <property name="bottomMargin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QLabel" name="ProgressLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ProgressLabel">
+        <property name="text">
          <string>Ready to export</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QProgressBar" name="ProgressBar" >
-        <property name="value" >
+       <widget class="QProgressBar" name="ProgressBar">
+        <property name="value">
          <number>24</number>
         </property>
        </widget>
@@ -500,20 +501,20 @@
     </widget>
    </item>
    <item>
-    <widget class="QWidget" native="1" name="ButtonBarWidget" >
-     <layout class="QHBoxLayout" name="horizontalLayout_7" >
-      <property name="spacing" >
+    <widget class="QWidget" name="ButtonBarWidget" native="true">
+     <layout class="QHBoxLayout" name="horizontalLayout_7">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <spacer name="ButtonBarHSpacer" >
-        <property name="orientation" >
+       <spacer name="ButtonBarHSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>288</width>
           <height>20</height>
@@ -522,15 +523,15 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="ExportPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ExportPushButton">
+        <property name="text">
          <string>Export</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="ClosePushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ClosePushButton">
+        <property name="text">
          <string>Close</string>
         </property>
        </widget>
@@ -541,20 +542,20 @@
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
    <sender>ClosePushButton</sender>
    <signal>clicked()</signal>
-   <receiver>OpenLPExportForm</receiver>
+   <receiver>OpenLPExportDialog</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>436</x>
      <y>436</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>462</x>
      <y>455</y>
     </hint>
@@ -566,11 +567,11 @@
    <receiver>ExportListTable</receiver>
    <slot>selectAll()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>75</x>
      <y>281</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>88</x>
      <y>176</y>
     </hint>
@@ -582,11 +583,11 @@
    <receiver>SelectedListTable</receiver>
    <slot>selectAll()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>311</x>
      <y>277</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>339</x>
      <y>190</y>
     </hint>
@@ -598,11 +599,11 @@
    <receiver>SelectedListTable</receiver>
    <slot>clear()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>379</x>
      <y>308</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>389</x>
      <y>188</y>
     </hint>

=== modified file 'resources/forms/openlpimportform.ui'
--- resources/forms/openlpimportform.ui	2008-11-27 20:14:38 +0000
+++ resources/forms/openlpimportform.ui	2009-10-24 07:35:24 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
- <class>OpenLPImportForm</class>
- <widget class="QWidget" name="OpenLPImportForm" >
-  <property name="geometry" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpenLPImportDialog</class>
+ <widget class="QDialog" name="OpenLPImportDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,49 +10,49 @@
     <height>459</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>openlp.org Song Importer</string>
   </property>
-  <property name="windowIcon" >
-   <iconset resource="../images/openlp-2.qrc" >
+  <property name="windowIcon">
+   <iconset>
     <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5" >
-   <property name="margin" >
+  <layout class="QVBoxLayout" name="verticalLayout_5">
+   <property name="margin">
     <number>8</number>
    </property>
    <item>
-    <widget class="QWidget" native="1" name="ImportFileWidget" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+    <widget class="QWidget" name="ImportFileWidget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="spacing">
        <number>3</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <widget class="QLabel" name="ImportFileLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ImportFileLabel">
+        <property name="text">
          <string>Select openlp.org songfile to import:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QLineEdit" name="ImportFileLineEdit" />
+       <widget class="QLineEdit" name="ImportFileLineEdit"/>
       </item>
       <item>
-       <widget class="QPushButton" name="ImportFileSelectPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ImportFileSelectPushButton">
+        <property name="text">
          <string/>
         </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
+        <property name="icon">
+         <iconset resource="../images/openlp-2.qrc">
           <normaloff>:/imports/import_load.png</normaloff>:/imports/import_load.png</iconset>
         </property>
        </widget>
@@ -60,115 +61,115 @@
     </widget>
    </item>
    <item>
-    <widget class="QFrame" name="SongListFrame" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+    <widget class="QFrame" name="SongListFrame">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="frameShape" >
+     <property name="frameShape">
       <enum>QFrame::Box</enum>
      </property>
-     <property name="frameShadow" >
+     <property name="frameShadow">
       <enum>QFrame::Raised</enum>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_6" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout_6">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QWidget" native="1" name="ImportFileSongListWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="ImportFileSongListWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout" >
-         <property name="spacing" >
+        <layout class="QVBoxLayout" name="verticalLayout">
+         <property name="spacing">
           <number>6</number>
          </property>
-         <property name="margin" >
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <widget class="QLabel" name="ImportListLabel" >
-           <property name="text" >
+          <widget class="QLabel" name="ImportListLabel">
+           <property name="text">
             <string>Import File Song List</string>
            </property>
           </widget>
          </item>
          <item>
-          <widget class="QTableWidget" name="ImportListTable" >
-           <property name="selectionMode" >
+          <widget class="QTableWidget" name="ImportListTable">
+           <property name="selectionMode">
             <enum>QAbstractItemView::MultiSelection</enum>
            </property>
-           <property name="showGrid" >
-            <bool>false</bool>
-           </property>
-           <property name="wordWrap" >
-            <bool>false</bool>
-           </property>
-           <property name="cornerButtonEnabled" >
+           <property name="showGrid">
+            <bool>false</bool>
+           </property>
+           <property name="wordWrap">
+            <bool>false</bool>
+           </property>
+           <property name="cornerButtonEnabled">
             <bool>false</bool>
            </property>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Song Title</string>
             </property>
            </column>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Author</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="ImportSelectAllWidget" >
-           <layout class="QHBoxLayout" name="horizontalLayout_2" >
-            <property name="spacing" >
+          <widget class="QWidget" name="ImportSelectAllWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <property name="spacing">
              <number>6</number>
             </property>
-            <property name="margin" >
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="ImportSelectAllPushButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+             <widget class="QPushButton" name="ImportSelectAllPushButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Select All</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/imports/import_selectall.png</normaloff>:/imports/import_selectall.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="ImportSelectAllHSpacer" >
-              <property name="orientation" >
+             <spacer name="ImportSelectAllHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeType" >
+              <property name="sizeType">
                <enum>QSizePolicy::Expanding</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>89</width>
                 <height>20</height>
@@ -180,50 +181,50 @@
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="importFilterWidget" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <widget class="QWidget" name="importFilterWidget" native="true">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="minimumSize" >
+           <property name="minimumSize">
             <size>
              <width>0</width>
              <height>0</height>
             </size>
            </property>
-           <layout class="QHBoxLayout" name="horizontalLayout_3" >
-            <property name="margin" >
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QComboBox" name="ImportFilterComboBox" >
-              <property name="minimumSize" >
+             <widget class="QComboBox" name="ImportFilterComboBox">
+              <property name="minimumSize">
                <size>
                 <width>70</width>
                 <height>0</height>
                </size>
               </property>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Lyrics</string>
                </property>
               </item>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Title</string>
                </property>
               </item>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Author</string>
                </property>
               </item>
              </widget>
             </item>
             <item>
-             <widget class="QLineEdit" name="importFilterLineEdit" />
+             <widget class="QLineEdit" name="importFilterLineEdit"/>
             </item>
            </layout>
           </widget>
@@ -236,23 +237,23 @@
        </widget>
       </item>
       <item>
-       <widget class="QWidget" native="1" name="AddSelectedWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="AddSelectedWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout_3" >
-         <property name="margin" >
+        <layout class="QVBoxLayout" name="verticalLayout_3">
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <spacer name="AddSelectedTopVSpacer" >
-           <property name="orientation" >
+          <spacer name="AddSelectedTopVSpacer">
+           <property name="orientation">
             <enum>Qt::Vertical</enum>
            </property>
-           <property name="sizeHint" stdset="0" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
@@ -261,34 +262,34 @@
           </spacer>
          </item>
          <item>
-          <widget class="QPushButton" name="AddSelectedPushButton" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+          <widget class="QPushButton" name="AddSelectedPushButton">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="minimumSize" >
+           <property name="minimumSize">
             <size>
              <width>25</width>
              <height>25</height>
             </size>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
+           <property name="icon">
+            <iconset resource="../images/openlp-2.qrc">
              <normaloff>:/imports/import_move_to_list.png</normaloff>:/imports/import_move_to_list.png</iconset>
            </property>
           </widget>
          </item>
          <item>
-          <spacer name="AddSelectedBottomVSpacer" >
-           <property name="orientation" >
+          <spacer name="AddSelectedBottomVSpacer">
+           <property name="orientation">
             <enum>Qt::Vertical</enum>
            </property>
-           <property name="sizeHint" stdset="0" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
@@ -300,91 +301,91 @@
        </widget>
       </item>
       <item>
-       <widget class="QWidget" native="1" name="SelectedFileListWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="SelectedFileListWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout_2" >
-         <property name="margin" >
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <widget class="QLabel" name="SelectedListLabel" >
-           <property name="text" >
+          <widget class="QLabel" name="SelectedListLabel">
+           <property name="text">
             <string>Song Import List</string>
            </property>
           </widget>
          </item>
          <item>
-          <widget class="QTableWidget" name="SelectedListTable" >
-           <property name="selectionMode" >
+          <widget class="QTableWidget" name="SelectedListTable">
+           <property name="selectionMode">
             <enum>QAbstractItemView::MultiSelection</enum>
            </property>
-           <property name="showGrid" >
-            <bool>false</bool>
-           </property>
-           <property name="wordWrap" >
-            <bool>false</bool>
-           </property>
-           <property name="cornerButtonEnabled" >
+           <property name="showGrid">
+            <bool>false</bool>
+           </property>
+           <property name="wordWrap">
+            <bool>false</bool>
+           </property>
+           <property name="cornerButtonEnabled">
             <bool>false</bool>
            </property>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Song Title</string>
             </property>
            </column>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Author</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="SelectedSelectAllWidget" >
-           <layout class="QHBoxLayout" name="horizontalLayout_4" >
-            <property name="spacing" >
+          <widget class="QWidget" name="SelectedSelectAllWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_4">
+            <property name="spacing">
              <number>6</number>
             </property>
-            <property name="margin" >
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="SelectedSelectAllPushButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+             <widget class="QPushButton" name="SelectedSelectAllPushButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Select All</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/imports/import_selectall.png</normaloff>:/imports/import_selectall.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="SelectedSelectAllHSpacer" >
-              <property name="orientation" >
+             <spacer name="SelectedSelectAllHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeType" >
+              <property name="sizeType">
                <enum>QSizePolicy::Expanding</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>92</width>
                 <height>20</height>
@@ -396,46 +397,46 @@
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="SelectedRemoveSelectedWidget" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <widget class="QWidget" name="SelectedRemoveSelectedWidget" native="true">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <layout class="QHBoxLayout" name="horizontalLayout_5" >
-            <property name="margin" >
+           <layout class="QHBoxLayout" name="horizontalLayout_5">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="SelectedRemoveSelectedButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+             <widget class="QPushButton" name="SelectedRemoveSelectedButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>140</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Remove Selected</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/imports/import_remove.png</normaloff>:/imports/import_remove.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="SelectedRemoveSelectedHSpacer" >
-              <property name="orientation" >
+             <spacer name="SelectedRemoveSelectedHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>49</width>
                 <height>20</height>
@@ -456,42 +457,42 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="ProgressGroupBox" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+    <widget class="QGroupBox" name="ProgressGroupBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Progress:</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4" >
-      <property name="spacing" >
-       <number>8</number>
-      </property>
-      <property name="leftMargin" >
-       <number>8</number>
-      </property>
-      <property name="topMargin" >
+     <layout class="QVBoxLayout" name="verticalLayout_4">
+      <property name="spacing">
+       <number>8</number>
+      </property>
+      <property name="leftMargin">
+       <number>8</number>
+      </property>
+      <property name="topMargin">
        <number>0</number>
       </property>
-      <property name="rightMargin" >
+      <property name="rightMargin">
        <number>8</number>
       </property>
-      <property name="bottomMargin" >
+      <property name="bottomMargin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QLabel" name="ProgressLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ProgressLabel">
+        <property name="text">
          <string>Ready to import</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QProgressBar" name="ProgressBar" >
-        <property name="value" >
+       <widget class="QProgressBar" name="ProgressBar">
+        <property name="value">
          <number>24</number>
         </property>
        </widget>
@@ -500,20 +501,20 @@
     </widget>
    </item>
    <item>
-    <widget class="QWidget" native="1" name="ButtonBarWidget" >
-     <layout class="QHBoxLayout" name="horizontalLayout_7" >
-      <property name="spacing" >
+    <widget class="QWidget" name="ButtonBarWidget" native="true">
+     <layout class="QHBoxLayout" name="horizontalLayout_7">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <spacer name="ButtonBarHSpacer" >
-        <property name="orientation" >
+       <spacer name="ButtonBarHSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>288</width>
           <height>20</height>
@@ -522,15 +523,15 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="ImportPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ImportPushButton">
+        <property name="text">
          <string>Import</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="ClosePushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ClosePushButton">
+        <property name="text">
          <string>Close</string>
         </property>
        </widget>
@@ -541,20 +542,20 @@
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
    <sender>ClosePushButton</sender>
    <signal>clicked()</signal>
-   <receiver>OpenLPImportForm</receiver>
+   <receiver>OpenLPImportDialog</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>436</x>
      <y>436</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>462</x>
      <y>455</y>
     </hint>
@@ -566,11 +567,11 @@
    <receiver>ImportListTable</receiver>
    <slot>selectAll()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>75</x>
      <y>281</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>88</x>
      <y>176</y>
     </hint>
@@ -582,11 +583,11 @@
    <receiver>SelectedListTable</receiver>
    <slot>selectAll()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>311</x>
      <y>277</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>339</x>
      <y>190</y>
     </hint>
@@ -598,11 +599,11 @@
    <receiver>SelectedListTable</receiver>
    <slot>clear()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>379</x>
      <y>308</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>389</x>
      <y>188</y>
     </hint>

=== modified file 'resources/forms/opensongexportform.ui'
--- resources/forms/opensongexportform.ui	2008-11-27 20:14:38 +0000
+++ resources/forms/opensongexportform.ui	2009-10-24 07:35:24 +0000
@@ -1,7 +1,8 @@
-<ui version="4.0" >
- <class>OpenSongExportForm</class>
- <widget class="QWidget" name="OpenSongExportForm" >
-  <property name="geometry" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpenSongExportDialog</class>
+ <widget class="QDialog" name="OpenSongExportDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,49 +10,49 @@
     <height>459</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>OpenSong Song Exporter</string>
   </property>
-  <property name="windowIcon" >
-   <iconset resource="../images/openlp-2.qrc" >
+  <property name="windowIcon">
+   <iconset>
     <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5" >
-   <property name="margin" >
+  <layout class="QVBoxLayout" name="verticalLayout_5">
+   <property name="margin">
     <number>8</number>
    </property>
    <item>
-    <widget class="QWidget" native="1" name="ExportFileWidget" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+    <widget class="QWidget" name="ExportFileWidget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="spacing">
        <number>3</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <widget class="QLabel" name="ExportFileLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ExportFileLabel">
+        <property name="text">
          <string>Select OpenSong song folder:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QLineEdit" name="ExportFileLineEdit" />
+       <widget class="QLineEdit" name="ExportFileLineEdit"/>
       </item>
       <item>
-       <widget class="QPushButton" name="ExportFileSelectPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ExportFileSelectPushButton">
+        <property name="text">
          <string/>
         </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
+        <property name="icon">
+         <iconset resource="../images/openlp-2.qrc">
           <normaloff>:/exports/export_load.png</normaloff>:/exports/export_load.png</iconset>
         </property>
        </widget>
@@ -60,115 +61,115 @@
     </widget>
    </item>
    <item>
-    <widget class="QFrame" name="SongListFrame" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+    <widget class="QFrame" name="SongListFrame">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="frameShape" >
+     <property name="frameShape">
       <enum>QFrame::Box</enum>
      </property>
-     <property name="frameShadow" >
+     <property name="frameShadow">
       <enum>QFrame::Raised</enum>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_6" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout_6">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QWidget" native="1" name="ExportFileSongListWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="ExportFileSongListWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout" >
-         <property name="spacing" >
+        <layout class="QVBoxLayout" name="verticalLayout">
+         <property name="spacing">
           <number>6</number>
          </property>
-         <property name="margin" >
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <widget class="QLabel" name="ExportListLabel" >
-           <property name="text" >
+          <widget class="QLabel" name="ExportListLabel">
+           <property name="text">
             <string>Full Song List</string>
            </property>
           </widget>
          </item>
          <item>
-          <widget class="QTableWidget" name="ExportListTable" >
-           <property name="selectionMode" >
+          <widget class="QTableWidget" name="ExportListTable">
+           <property name="selectionMode">
             <enum>QAbstractItemView::MultiSelection</enum>
            </property>
-           <property name="showGrid" >
-            <bool>false</bool>
-           </property>
-           <property name="wordWrap" >
-            <bool>false</bool>
-           </property>
-           <property name="cornerButtonEnabled" >
+           <property name="showGrid">
+            <bool>false</bool>
+           </property>
+           <property name="wordWrap">
+            <bool>false</bool>
+           </property>
+           <property name="cornerButtonEnabled">
             <bool>false</bool>
            </property>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Song Title</string>
             </property>
            </column>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Author</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="ExportSelectAllWidget" >
-           <layout class="QHBoxLayout" name="horizontalLayout_2" >
-            <property name="spacing" >
+          <widget class="QWidget" name="ExportSelectAllWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <property name="spacing">
              <number>6</number>
             </property>
-            <property name="margin" >
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="ExportSelectAllPushButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+             <widget class="QPushButton" name="ExportSelectAllPushButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Select All</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/exports/export_selectall.png</normaloff>:/exports/export_selectall.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="ExportSelectAllHSpacer" >
-              <property name="orientation" >
+             <spacer name="ExportSelectAllHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeType" >
+              <property name="sizeType">
                <enum>QSizePolicy::Expanding</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>89</width>
                 <height>20</height>
@@ -180,50 +181,50 @@
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="exportFilterWidget" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <widget class="QWidget" name="exportFilterWidget" native="true">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="minimumSize" >
+           <property name="minimumSize">
             <size>
              <width>0</width>
              <height>0</height>
             </size>
            </property>
-           <layout class="QHBoxLayout" name="horizontalLayout_3" >
-            <property name="margin" >
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QComboBox" name="ExportFilterComboBox" >
-              <property name="minimumSize" >
+             <widget class="QComboBox" name="ExportFilterComboBox">
+              <property name="minimumSize">
                <size>
                 <width>70</width>
                 <height>0</height>
                </size>
               </property>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Lyrics</string>
                </property>
               </item>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Title</string>
                </property>
               </item>
               <item>
-               <property name="text" >
+               <property name="text">
                 <string>Author</string>
                </property>
               </item>
              </widget>
             </item>
             <item>
-             <widget class="QLineEdit" name="ExportFilterLineEdit" />
+             <widget class="QLineEdit" name="ExportFilterLineEdit"/>
             </item>
            </layout>
           </widget>
@@ -236,23 +237,23 @@
        </widget>
       </item>
       <item>
-       <widget class="QWidget" native="1" name="AddSelectedWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="AddSelectedWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout_3" >
-         <property name="margin" >
+        <layout class="QVBoxLayout" name="verticalLayout_3">
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <spacer name="AddSelectedTopVSpacer" >
-           <property name="orientation" >
+          <spacer name="AddSelectedTopVSpacer">
+           <property name="orientation">
             <enum>Qt::Vertical</enum>
            </property>
-           <property name="sizeHint" stdset="0" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
@@ -261,34 +262,34 @@
           </spacer>
          </item>
          <item>
-          <widget class="QPushButton" name="AddSelectedPushButton" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+          <widget class="QPushButton" name="AddSelectedPushButton">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="minimumSize" >
+           <property name="minimumSize">
             <size>
              <width>25</width>
              <height>25</height>
             </size>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="icon" >
-            <iconset resource="../images/openlp-2.qrc" >
+           <property name="icon">
+            <iconset resource="../images/openlp-2.qrc">
              <normaloff>:/exports/export_move_to_list.png</normaloff>:/exports/export_move_to_list.png</iconset>
            </property>
           </widget>
          </item>
          <item>
-          <spacer name="AddSelectedBottomVSpacer" >
-           <property name="orientation" >
+          <spacer name="AddSelectedBottomVSpacer">
+           <property name="orientation">
             <enum>Qt::Vertical</enum>
            </property>
-           <property name="sizeHint" stdset="0" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>20</width>
              <height>40</height>
@@ -300,91 +301,91 @@
        </widget>
       </item>
       <item>
-       <widget class="QWidget" native="1" name="SelectedFileListWidget" >
-        <property name="sizePolicy" >
-         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <widget class="QWidget" name="SelectedFileListWidget" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <layout class="QVBoxLayout" name="verticalLayout_2" >
-         <property name="margin" >
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <property name="margin">
           <number>0</number>
          </property>
          <item>
-          <widget class="QLabel" name="SelectedListLabel" >
-           <property name="text" >
+          <widget class="QLabel" name="SelectedListLabel">
+           <property name="text">
             <string>Song Export List</string>
            </property>
           </widget>
          </item>
          <item>
-          <widget class="QTableWidget" name="SelectedListTable" >
-           <property name="selectionMode" >
+          <widget class="QTableWidget" name="SelectedListTable">
+           <property name="selectionMode">
             <enum>QAbstractItemView::MultiSelection</enum>
            </property>
-           <property name="showGrid" >
-            <bool>false</bool>
-           </property>
-           <property name="wordWrap" >
-            <bool>false</bool>
-           </property>
-           <property name="cornerButtonEnabled" >
+           <property name="showGrid">
+            <bool>false</bool>
+           </property>
+           <property name="wordWrap">
+            <bool>false</bool>
+           </property>
+           <property name="cornerButtonEnabled">
             <bool>false</bool>
            </property>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Song Title</string>
             </property>
            </column>
            <column>
-            <property name="text" >
+            <property name="text">
              <string>Author</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="SelectedSelectAllWidget" >
-           <layout class="QHBoxLayout" name="horizontalLayout_4" >
-            <property name="spacing" >
+          <widget class="QWidget" name="SelectedSelectAllWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_4">
+            <property name="spacing">
              <number>6</number>
             </property>
-            <property name="margin" >
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="SelectedSelectAllPushButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+             <widget class="QPushButton" name="SelectedSelectAllPushButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>100</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Select All</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/exports/export_selectall.png</normaloff>:/exports/export_selectall.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="SelectedSelectAllHSpacer" >
-              <property name="orientation" >
+             <spacer name="SelectedSelectAllHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeType" >
+              <property name="sizeType">
                <enum>QSizePolicy::Expanding</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>92</width>
                 <height>20</height>
@@ -396,46 +397,46 @@
           </widget>
          </item>
          <item>
-          <widget class="QWidget" native="1" name="SelectedRemoveSelectedWidget" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <widget class="QWidget" name="SelectedRemoveSelectedWidget" native="true">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <layout class="QHBoxLayout" name="horizontalLayout_5" >
-            <property name="margin" >
+           <layout class="QHBoxLayout" name="horizontalLayout_5">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QPushButton" name="SelectedRemoveSelectedButton" >
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+             <widget class="QPushButton" name="SelectedRemoveSelectedButton">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="minimumSize" >
+              <property name="minimumSize">
                <size>
                 <width>140</width>
                 <height>0</height>
                </size>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>Remove Selected</string>
               </property>
-              <property name="icon" >
-               <iconset resource="../images/openlp-2.qrc" >
+              <property name="icon">
+               <iconset resource="../images/openlp-2.qrc">
                 <normaloff>:/exports/export_remove.png</normaloff>:/exports/export_remove.png</iconset>
               </property>
              </widget>
             </item>
             <item>
-             <spacer name="SelectedRemoveSelectedHSpacer" >
-              <property name="orientation" >
+             <spacer name="SelectedRemoveSelectedHSpacer">
+              <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <property name="sizeHint" stdset="0" >
+              <property name="sizeHint" stdset="0">
                <size>
                 <width>49</width>
                 <height>20</height>
@@ -456,42 +457,42 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="ProgressGroupBox" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+    <widget class="QGroupBox" name="ProgressGroupBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Progress:</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4" >
-      <property name="spacing" >
-       <number>8</number>
-      </property>
-      <property name="leftMargin" >
-       <number>8</number>
-      </property>
-      <property name="topMargin" >
+     <layout class="QVBoxLayout" name="verticalLayout_4">
+      <property name="spacing">
+       <number>8</number>
+      </property>
+      <property name="leftMargin">
+       <number>8</number>
+      </property>
+      <property name="topMargin">
        <number>0</number>
       </property>
-      <property name="rightMargin" >
+      <property name="rightMargin">
        <number>8</number>
       </property>
-      <property name="bottomMargin" >
+      <property name="bottomMargin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QLabel" name="ProgressLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ProgressLabel">
+        <property name="text">
          <string>Ready to export</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QProgressBar" name="ProgressBar" >
-        <property name="value" >
+       <widget class="QProgressBar" name="ProgressBar">
+        <property name="value">
          <number>24</number>
         </property>
        </widget>
@@ -500,20 +501,20 @@
     </widget>
    </item>
    <item>
-    <widget class="QWidget" native="1" name="ButtonBarWidget" >
-     <layout class="QHBoxLayout" name="horizontalLayout_7" >
-      <property name="spacing" >
+    <widget class="QWidget" name="ButtonBarWidget" native="true">
+     <layout class="QHBoxLayout" name="horizontalLayout_7">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <spacer name="ButtonBarHSpacer" >
-        <property name="orientation" >
+       <spacer name="ButtonBarHSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>288</width>
           <height>20</height>
@@ -522,15 +523,15 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="ExportPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ExportPushButton">
+        <property name="text">
          <string>Export</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="ClosePushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ClosePushButton">
+        <property name="text">
          <string>Close</string>
         </property>
        </widget>
@@ -541,20 +542,20 @@
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
    <sender>ClosePushButton</sender>
    <signal>clicked()</signal>
-   <receiver>OpenSongExportForm</receiver>
+   <receiver>OpenSongExportDialog</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>436</x>
      <y>436</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>462</x>
      <y>455</y>
     </hint>
@@ -566,11 +567,11 @@
    <receiver>ExportListTable</receiver>
    <slot>selectAll()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>75</x>
      <y>281</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>88</x>
      <y>176</y>
     </hint>
@@ -582,11 +583,11 @@
    <receiver>SelectedListTable</receiver>
    <slot>selectAll()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>311</x>
      <y>277</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>339</x>
      <y>190</y>
     </hint>
@@ -598,11 +599,11 @@
    <receiver>SelectedListTable</receiver>
    <slot>clear()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>379</x>
      <y>308</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>389</x>
      <y>188</y>
     </hint>

=== modified file 'resources/forms/opensongimportform.ui'
--- resources/forms/opensongimportform.ui	2008-11-27 20:14:38 +0000
+++ resources/forms/opensongimportform.ui	2009-10-24 07:35:24 +0000
@@ -1,60 +1,61 @@
-<ui version="4.0" >
- <class>OpenSongImportForm</class>
- <widget class="QWidget" name="OpenSongImportForm" >
-  <property name="geometry" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpenSongImportDialog</class>
+ <widget class="QDialog" name="OpenSongImportDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>481</width>
-    <height>153</height>
+    <height>172</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>OpenSong Song Importer</string>
   </property>
-  <property name="windowIcon" >
-   <iconset resource="../images/openlp-2.qrc" >
+  <property name="windowIcon">
+   <iconset>
     <normaloff>:/icon/openlp.org-icon-32.bmp</normaloff>:/icon/openlp.org-icon-32.bmp</iconset>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout" >
-   <property name="spacing" >
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
     <number>6</number>
    </property>
-   <property name="margin" >
+   <property name="margin">
     <number>8</number>
    </property>
    <item>
-    <widget class="QWidget" native="1" name="ImportFileWidget" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+    <widget class="QWidget" name="ImportFileWidget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout" >
-      <property name="spacing" >
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="spacing">
        <number>6</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <widget class="QLabel" name="ImportFileLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ImportFileLabel">
+        <property name="text">
          <string>OpenSong Folder:</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QLineEdit" name="ImportFileLineEdit" />
+       <widget class="QLineEdit" name="ImportFileLineEdit"/>
       </item>
       <item>
-       <widget class="QPushButton" name="ImportFileSelectPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ImportFileSelectPushButton">
+        <property name="text">
          <string/>
         </property>
-        <property name="icon" >
-         <iconset resource="../images/openlp-2.qrc" >
+        <property name="icon">
+         <iconset resource="../images/openlp-2.qrc">
           <normaloff>:/imports/import_load.png</normaloff>:/imports/import_load.png</iconset>
         </property>
        </widget>
@@ -63,42 +64,42 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="ProgressGroupBox" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+    <widget class="QGroupBox" name="ProgressGroupBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Progress:</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4" >
-      <property name="spacing" >
-       <number>6</number>
-      </property>
-      <property name="leftMargin" >
-       <number>6</number>
-      </property>
-      <property name="topMargin" >
+     <layout class="QVBoxLayout" name="verticalLayout_4">
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <property name="leftMargin">
+       <number>6</number>
+      </property>
+      <property name="topMargin">
        <number>0</number>
       </property>
-      <property name="rightMargin" >
+      <property name="rightMargin">
        <number>8</number>
       </property>
-      <property name="bottomMargin" >
+      <property name="bottomMargin">
        <number>8</number>
       </property>
       <item>
-       <widget class="QLabel" name="ProgressLabel" >
-        <property name="text" >
+       <widget class="QLabel" name="ProgressLabel">
+        <property name="text">
          <string>Ready to import</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QProgressBar" name="ProgressBar" >
-        <property name="value" >
+       <widget class="QProgressBar" name="ProgressBar">
+        <property name="value">
          <number>24</number>
         </property>
        </widget>
@@ -107,20 +108,20 @@
     </widget>
    </item>
    <item>
-    <widget class="QWidget" native="1" name="ButtonBarWidget" >
-     <layout class="QHBoxLayout" name="horizontalLayout_7" >
-      <property name="spacing" >
+    <widget class="QWidget" name="ButtonBarWidget" native="true">
+     <layout class="QHBoxLayout" name="horizontalLayout_7">
+      <property name="spacing">
        <number>8</number>
       </property>
-      <property name="margin" >
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
-       <spacer name="ButtonBarHSpacer" >
-        <property name="orientation" >
+       <spacer name="ButtonBarHSpacer">
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>288</width>
           <height>20</height>
@@ -129,15 +130,15 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="ImportPushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ImportPushButton">
+        <property name="text">
          <string>Import</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QPushButton" name="ClosePushButton" >
-        <property name="text" >
+       <widget class="QPushButton" name="ClosePushButton">
+        <property name="text">
          <string>Close</string>
         </property>
        </widget>
@@ -148,20 +149,20 @@
   </layout>
  </widget>
  <resources>
-  <include location="../images/openlp-2.qrc" />
+  <include location="../images/openlp-2.qrc"/>
  </resources>
  <connections>
   <connection>
    <sender>ClosePushButton</sender>
    <signal>clicked()</signal>
-   <receiver>OpenSongImportForm</receiver>
+   <receiver>OpenSongImportDialog</receiver>
    <slot>close()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>424</x>
      <y>132</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>288</x>
      <y>-25</y>
     </hint>


Follow ups