Azaziah has proposed merging 
lp:~suutari-olli/openlp/azaziah-fixes-and-improvements into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #1639860 in OpenLP: "Close button is disabled in numerous windows"
  https://bugs.launchpad.net/openlp/+bug/1639860
  Bug #1652559 in OpenLP: "Find duplicates wizard does not reset cursor if 
closed from "x" instead of "cancel" button and causes traceback on exit"
  https://bugs.launchpad.net/openlp/+bug/1652559
  Bug #1666272 in OpenLP: "Linked audio "next" button results in traceback"
  https://bugs.launchpad.net/openlp/+bug/1666272
  Bug #1678292 in OpenLP: "Space after Bible book name auto-completion is 
missing"
  https://bugs.launchpad.net/openlp/+bug/1678292
  Bug #1694732 in OpenLP: "wizard sub title does not wrap"
  https://bugs.launchpad.net/openlp/+bug/1694732
  Bug #1695268 in OpenLP: "Bibles plugin fails to load due to invalid "last 
search type" value"
  https://bugs.launchpad.net/openlp/+bug/1695268

For more details, see:
https://code.launchpad.net/~suutari-olli/openlp/azaziah-fixes-and-improvements/+merge/325053

Fixed bugs:
Bug #1639860: Close button is disabled in numerous windows
Bug #1652559: Find duplicates wizard does not reset cursor if closed from "x" 
instead of "cancel" button and causes traceback on exit
Bug #1666272: Linked audio "next" button results in traceback
Bug #1678292: Space after Bible book name auto-completion is missing
Bug #1694732: wizard sub title does not wrap
Bug #1695268: Bibles plugin fails to load due to invalid "last search type"
Bug: If Bible book name contains dot after number, the reference search 
does not work.

Improvements
- Increased song maintanance window size.
- Removed "?" from all Wizard windows.


Add this to your merge proposal:
--------------------------------
lp:~suutari-olli/openlp/azaziah-fixes-and-improvements (revision 2762)
[SUCCESS] https://ci.openlp.io/job/Branch-01-Pull/2071/
[SUCCESS] https://ci.openlp.io/job/Branch-02-Functional-Tests/1981/
[SUCCESS] https://ci.openlp.io/job/Branch-03-Interface-Tests/1898/
[SUCCESS] https://ci.openlp.io/job/Branch-04a-Code_Analysis/1277/
[SUCCESS] https://ci.openlp.io/job/Branch-04b-Test_Coverage/1127/
[SUCCESS] https://ci.openlp.io/job/Branch-04c-Code_Analysis2/256/
[SUCCESS] https://ci.openlp.io/job/Branch-05-AppVeyor-Tests/102/
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~suutari-olli/openlp/azaziah-fixes-and-improvements into lp:openlp.
=== modified file 'openlp/core/common/settings.py'
--- openlp/core/common/settings.py	2017-03-15 19:51:10 +0000
+++ openlp/core/common/settings.py	2017-06-05 03:11:16 +0000
@@ -219,7 +219,11 @@
         ('shortcuts/offlineHelpItem', 'shortcuts/userManualItem', []),  # Online and Offline help were combined in 2.6.
         ('shortcuts/onlineHelpItem', 'shortcuts/userManualItem', []),  # Online and Offline help were combined in 2.6.
         ('bibles/advanced bible', '', []),  # Common bible search widgets combined in 2.6
-        ('bibles/quick bible', 'bibles/primary bible', [])  # Common bible search widgets combined in 2.6
+        ('bibles/quick bible', 'bibles/primary bible', []),  # Common bible search widgets combined in 2.6
+        # Last search type was renamed to last used search type in 2.6 since Bible search value type changed in 2.6.
+        ('songs/last search type', 'songs/last used search type', []),
+        ('bibles/last search type', 'bibles/last used search type', []),
+        ('custom/last search type', 'custom/last used search type', [])
     ]
 
     @staticmethod

=== modified file 'openlp/core/lib/searchedit.py'
--- openlp/core/lib/searchedit.py	2016-12-31 11:01:36 +0000
+++ openlp/core/lib/searchedit.py	2017-06-05 03:11:16 +0000
@@ -105,7 +105,7 @@
                 self.setPlaceholderText(action.placeholder_text)
                 self.menu_button.setDefaultAction(action)
                 self._current_search_type = identifier
-                Settings().setValue('{section}/last search type'.format(section=self.settings_section), identifier)
+                Settings().setValue('{section}/last used search type'.format(section=self.settings_section), identifier)
                 self.searchTypeChanged.emit(identifier)
                 return True
 
@@ -141,7 +141,7 @@
             self.menu_button.resize(QtCore.QSize(28, 18))
         self.menu_button.setMenu(menu)
         self.set_current_search_type(
-            Settings().value('{section}/last search type'.format(section=self.settings_section)))
+            Settings().value('{section}/last used search type'.format(section=self.settings_section)))
         self.menu_button.show()
         self._update_style_sheet()
 

=== modified file 'openlp/core/lib/ui.py'
--- openlp/core/lib/ui.py	2016-12-31 11:01:36 +0000
+++ openlp/core/lib/ui.py	2017-06-05 03:11:16 +0000
@@ -49,6 +49,7 @@
     parent.title_label = QtWidgets.QLabel(parent.welcome_page)
     parent.title_label.setObjectName('title_label')
     parent.welcome_layout.addWidget(parent.title_label)
+    parent.title_label.setWordWrap(True)
     parent.welcome_layout.addSpacing(40)
     parent.information_label = QtWidgets.QLabel(parent.welcome_page)
     parent.information_label.setWordWrap(True)

=== modified file 'openlp/core/ui/aboutform.py'
--- openlp/core/ui/aboutform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/aboutform.py	2017-06-05 03:11:16 +0000
@@ -40,7 +40,8 @@
         """
         Do some initialisation stuff
         """
-        super(AboutForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(AboutForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                        QtCore.Qt.WindowCloseButtonHint)
         self._setup()
 
     def _setup(self):

=== modified file 'openlp/core/ui/filerenameform.py'
--- openlp/core/ui/filerenameform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/filerenameform.py	2017-06-05 03:11:16 +0000
@@ -38,8 +38,8 @@
         """
         Constructor
         """
-        super(FileRenameForm, self).__init__(Registry().get('main_window'),
-                                             QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(FileRenameForm, self).__init__(Registry().get('main_window'), QtCore.Qt.WindowSystemMenuHint |
+                                             QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self._setup()
 
     def _setup(self):

=== modified file 'openlp/core/ui/firsttimelanguageform.py'
--- openlp/core/ui/firsttimelanguageform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/firsttimelanguageform.py	2017-06-05 03:11:16 +0000
@@ -37,7 +37,8 @@
         """
         Constructor
         """
-        super(FirstTimeLanguageForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(FirstTimeLanguageForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint |
+                                                    QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.qm_list = LanguageManager.get_qm_list()
         self.language_combo_box.addItem('Autodetect')

=== modified file 'openlp/core/ui/formattingtagform.py'
--- openlp/core/ui/formattingtagform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/formattingtagform.py	2017-06-05 03:11:16 +0000
@@ -51,7 +51,8 @@
         """
         Constructor
         """
-        super(FormattingTagForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(FormattingTagForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                                QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self._setup()
 

=== modified file 'openlp/core/ui/lib/wizard.py'
--- openlp/core/ui/lib/wizard.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/lib/wizard.py	2017-06-05 03:11:16 +0000
@@ -25,7 +25,7 @@
 import logging
 import os
 
-from PyQt5 import QtGui, QtWidgets
+from PyQt5 import QtCore, QtGui, QtWidgets
 
 from openlp.core.common import Registry, RegistryProperties, Settings, UiStrings, translate, is_macosx
 from openlp.core.lib import build_icon
@@ -93,7 +93,10 @@
         """
         Constructor
         """
-        super(OpenLPWizard, self).__init__(parent)
+        # QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint  remove the "?" buttons from windows,
+        # QtCore.Qt.WindowCloseButtonHint enables the "x" button to close these windows.
+        super(OpenLPWizard, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.plugin = plugin
         self.with_progress_page = add_progress_page
         self.setFixedWidth(640)

=== modified file 'openlp/core/ui/maindisplay.py'
--- openlp/core/ui/maindisplay.py	2017-03-23 04:43:13 +0000
+++ openlp/core/ui/maindisplay.py	2017-06-05 03:11:16 +0000
@@ -689,7 +689,7 @@
         """
         Skip forward to the next track in the list
         """
-        self.playerlist.next()
+        self.playlist.next()
 
     def go_to(self, index):
         """

=== modified file 'openlp/core/ui/pluginform.py'
--- openlp/core/ui/pluginform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/pluginform.py	2017-06-05 03:11:16 +0000
@@ -41,7 +41,8 @@
         """
         Constructor
         """
-        super(PluginForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(PluginForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                         QtCore.Qt.WindowCloseButtonHint)
         self.active_plugin = None
         self.programatic_change = False
         self.setupUi(self)

=== modified file 'openlp/core/ui/printserviceform.py'
--- openlp/core/ui/printserviceform.py	2017-02-19 21:35:40 +0000
+++ openlp/core/ui/printserviceform.py	2017-06-05 03:11:16 +0000
@@ -125,8 +125,8 @@
         """
         Constructor
         """
-        super(PrintServiceForm, self).__init__(Registry().get('main_window'),
-                                               QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(PrintServiceForm, self).__init__(Registry().get('main_window'), QtCore.Qt.WindowSystemMenuHint |
+                                               QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.printer = QtPrintSupport.QPrinter()
         self.print_dialog = QtPrintSupport.QPrintDialog(self.printer, self)
         self.document = QtGui.QTextDocument()

=== modified file 'openlp/core/ui/projector/editform.py'
--- openlp/core/ui/projector/editform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/projector/editform.py	2017-06-05 03:11:16 +0000
@@ -142,7 +142,8 @@
     editProjector = QtCore.pyqtSignal(object)
 
     def __init__(self, parent=None, projectordb=None):
-        super(ProjectorEditForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(ProjectorEditForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                                QtCore.Qt.WindowCloseButtonHint)
         self.projectordb = projectordb
         self.setupUi(self)
         self.button_box.accepted.connect(self.accept_me)

=== modified file 'openlp/core/ui/projector/sourceselectform.py'
--- openlp/core/ui/projector/sourceselectform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/projector/sourceselectform.py	2017-06-05 03:11:16 +0000
@@ -233,7 +233,8 @@
         :param projectordb: ProjectorDB session to use
         """
         log.debug('Initializing SourceSelectTabs()')
-        super(SourceSelectTabs, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(SourceSelectTabs, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                               QtCore.Qt.WindowCloseButtonHint)
         self.setMinimumWidth(350)
         self.projectordb = projectordb
         self.edit = edit
@@ -388,7 +389,8 @@
         """
         log.debug('Initializing SourceSelectSingle()')
         self.projectordb = projectordb
-        super(SourceSelectSingle, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(SourceSelectSingle, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                                 QtCore.Qt.WindowCloseButtonHint)
         self.edit = edit
         if self.edit:
             title = translate('OpenLP.SourceSelectForm', 'Edit Projector Source Text')

=== modified file 'openlp/core/ui/serviceitemeditform.py'
--- openlp/core/ui/serviceitemeditform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/serviceitemeditform.py	2017-06-05 03:11:16 +0000
@@ -37,8 +37,8 @@
         """
         Constructor
         """
-        super(ServiceItemEditForm, self).__init__(Registry().get('main_window'),
-                                                  QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(ServiceItemEditForm, self).__init__(Registry().get('main_window'), QtCore.Qt.WindowSystemMenuHint |
+                                                  QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.item_list = []
         self.list_widget.currentRowChanged.connect(self.on_current_row_changed)

=== modified file 'openlp/core/ui/servicenoteform.py'
--- openlp/core/ui/servicenoteform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/servicenoteform.py	2017-06-05 03:11:16 +0000
@@ -37,8 +37,8 @@
         """
         Constructor
         """
-        super(ServiceNoteForm, self).__init__(Registry().get('main_window'),
-                                              QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(ServiceNoteForm, self).__init__(Registry().get('main_window'), QtCore.Qt.WindowSystemMenuHint |
+                                              QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.setupUi()
         self.retranslateUi()
 

=== modified file 'openlp/core/ui/settingsform.py'
--- openlp/core/ui/settingsform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/settingsform.py	2017-06-05 03:11:16 +0000
@@ -46,7 +46,8 @@
         """
         Registry().register('settings_form', self)
         Registry().register_function('bootstrap_post_set_up', self.bootstrap_post_set_up)
-        super(SettingsForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(SettingsForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.processes = []
         self.setupUi(self)
         self.setting_list_widget.currentRowChanged.connect(self.list_item_changed)

=== modified file 'openlp/core/ui/shortcutlistform.py'
--- openlp/core/ui/shortcutlistform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/shortcutlistform.py	2017-06-05 03:11:16 +0000
@@ -44,7 +44,8 @@
         """
         Constructor
         """
-        super(ShortcutListForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(ShortcutListForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                               QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.changed_actions = {}
         self.action_list = ActionList.get_instance()

=== modified file 'openlp/core/ui/starttimeform.py'
--- openlp/core/ui/starttimeform.py	2016-12-31 11:01:36 +0000
+++ openlp/core/ui/starttimeform.py	2017-06-05 03:11:16 +0000
@@ -38,8 +38,8 @@
         """
         Constructor
         """
-        super(StartTimeForm, self).__init__(Registry().get('main_window'),
-                                            QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(StartTimeForm, self).__init__(Registry().get('main_window'), QtCore.Qt.WindowSystemMenuHint |
+                                            QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def exec(self):

=== modified file 'openlp/plugins/alerts/forms/alertform.py'
--- openlp/plugins/alerts/forms/alertform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/alerts/forms/alertform.py	2017-06-05 03:11:16 +0000
@@ -36,8 +36,8 @@
         """
         Initialise the alert form
         """
-        super(AlertForm, self).__init__(Registry().get('main_window'),
-                                        QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(AlertForm, self).__init__(Registry().get('main_window'), QtCore.Qt.WindowSystemMenuHint |
+                                        QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.manager = plugin.manager
         self.plugin = plugin
         self.item_id = None

=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py	2017-02-18 07:23:15 +0000
+++ openlp/plugins/bibles/bibleplugin.py	2017-06-05 03:11:16 +0000
@@ -38,7 +38,7 @@
     'bibles/db password': '',
     'bibles/db hostname': '',
     'bibles/db database': '',
-    'bibles/last search type': BibleSearch.Combined,
+    'bibles/last used search type': BibleSearch.Combined,
     'bibles/reset to combined quick search': True,
     'bibles/verse layout style': LayoutStyle.VersePerSlide,
     'bibles/book name language': LanguageSelection.Bible,

=== modified file 'openlp/plugins/bibles/forms/booknameform.py'
--- openlp/plugins/bibles/forms/booknameform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/bibles/forms/booknameform.py	2017-06-05 03:11:16 +0000
@@ -49,7 +49,8 @@
         """
         Constructor
         """
-        super(BookNameForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(BookNameForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.custom_signals()
         self.book_names = BibleStrings().BookNames

=== modified file 'openlp/plugins/bibles/forms/editbibleform.py'
--- openlp/plugins/bibles/forms/editbibleform.py	2017-01-08 19:12:12 +0000
+++ openlp/plugins/bibles/forms/editbibleform.py	2017-06-05 03:11:16 +0000
@@ -45,7 +45,8 @@
         """
         Constructor
         """
-        super(EditBibleForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(EditBibleForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                            QtCore.Qt.WindowCloseButtonHint)
         self.media_item = media_item
         self.book_names = BibleStrings().BookNames
         self.setupUi(self)

=== modified file 'openlp/plugins/bibles/forms/languageform.py'
--- openlp/plugins/bibles/forms/languageform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/bibles/forms/languageform.py	2017-06-05 03:11:16 +0000
@@ -47,7 +47,8 @@
         """
         Constructor
         """
-        super(LanguageForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(LanguageForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def exec(self, bible_name):

=== modified file 'openlp/plugins/bibles/lib/__init__.py'
--- openlp/plugins/bibles/lib/__init__.py	2017-05-05 21:00:59 +0000
+++ openlp/plugins/bibles/lib/__init__.py	2017-06-05 03:11:16 +0000
@@ -230,7 +230,7 @@
     REFERENCE_MATCHES['range_separator'] = re.compile(REFERENCE_SEPARATORS['sep_l'], re.UNICODE)
     # full reference match: <book>(<range>(,(?!$)|(?=$)))+
     REFERENCE_MATCHES['full'] = \
-        re.compile('^\s*(?!\s)(?P<book>[\d]*[^\d\.]+)\.*(?<!\s)\s*'
+        re.compile('^\s*(?!\s)(?P<book>[\d]*[.]?[^\d\.]+)\.*(?<!\s)\s*'
                    '(?P<ranges>(?:%(range_regex)s(?:%(sep_l)s(?!\s*$)|(?=\s*$)))+)\s*$'
                    % dict(list(REFERENCE_SEPARATORS.items()) + [('range_regex', range_regex)]), re.UNICODE)
 
@@ -326,7 +326,7 @@
 
     ``^\s*(?!\s)(?P<book>[\d]*[^\d]+)(?<!\s)\s*``
         The ``book`` group starts with the first non-whitespace character. There are optional leading digits followed by
-        non-digits. The group ends before the whitspace, or a full stop in front of the next digit.
+        non-digits. The group ends before the whitespace, or a full stop in front of the next digit.
 
     ``(?P<ranges>(?:%(range_regex)s(?:%(sep_l)s(?!\s*$)|(?=\s*$)))+)\s*$``
         The second group contains all ``ranges``. This can be multiple declarations of range_regex separated by a list

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2017-05-07 18:39:17 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2017-06-05 03:11:16 +0000
@@ -414,7 +414,7 @@
             if self.bible:
                 book_data = self.get_common_books(self.bible, self.second_bible)
                 language_selection = self.plugin.manager.get_language_selection(self.bible.name)
-                books = [book.get_name(language_selection) for book in book_data]
+                books = [book.get_name(language_selection) + ' ' for book in book_data]
                 books.sort(key=get_locale_key)
         set_case_insensitive_completer(books, self.search_edit)
 

=== modified file 'openlp/plugins/custom/customplugin.py'
--- openlp/plugins/custom/customplugin.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/custom/customplugin.py	2017-06-05 03:11:16 +0000
@@ -40,7 +40,7 @@
     'custom/db password': '',
     'custom/db hostname': '',
     'custom/db database': '',
-    'custom/last search type': CustomSearch.Titles,
+    'custom/last used search type': CustomSearch.Titles,
     'custom/display footer': True,
     'custom/add custom from service': True
 }

=== modified file 'openlp/plugins/custom/forms/editcustomform.py'
--- openlp/plugins/custom/forms/editcustomform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/custom/forms/editcustomform.py	2017-06-05 03:11:16 +0000
@@ -44,7 +44,8 @@
         """
         Constructor
         """
-        super(EditCustomForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(EditCustomForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                             QtCore.Qt.WindowCloseButtonHint)
         self.manager = manager
         self.media_item = media_item
         self.setupUi(self)

=== modified file 'openlp/plugins/custom/forms/editcustomslideform.py'
--- openlp/plugins/custom/forms/editcustomslideform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/custom/forms/editcustomslideform.py	2017-06-05 03:11:16 +0000
@@ -39,7 +39,8 @@
         """
         Constructor
         """
-        super(EditCustomSlideForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(EditCustomSlideForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                                  QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         # Connecting signals and slots
         self.insert_button.clicked.connect(self.on_insert_button_clicked)

=== modified file 'openlp/plugins/images/forms/addgroupform.py'
--- openlp/plugins/images/forms/addgroupform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/images/forms/addgroupform.py	2017-06-05 03:11:16 +0000
@@ -35,7 +35,8 @@
         """
         Constructor
         """
-        super(AddGroupForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(AddGroupForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def exec(self, clear=True, show_top_level_group=False, selected_group=None):

=== modified file 'openlp/plugins/images/forms/choosegroupform.py'
--- openlp/plugins/images/forms/choosegroupform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/images/forms/choosegroupform.py	2017-06-05 03:11:16 +0000
@@ -33,7 +33,8 @@
         """
         Constructor
         """
-        super(ChooseGroupForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(ChooseGroupForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                              QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def exec(self, selected_group=None):

=== modified file 'openlp/plugins/media/forms/mediaclipselectorform.py'
--- openlp/plugins/media/forms/mediaclipselectorform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/media/forms/mediaclipselectorform.py	2017-06-05 03:11:16 +0000
@@ -52,7 +52,8 @@
         """
         Constructor
         """
-        super(MediaClipSelectorForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(MediaClipSelectorForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint |
+                                                    QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.vlc_instance = None
         self.vlc_media_player = None
         self.vlc_media = None

=== modified file 'openlp/plugins/songs/forms/authorsform.py'
--- openlp/plugins/songs/forms/authorsform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songs/forms/authorsform.py	2017-06-05 03:11:16 +0000
@@ -35,7 +35,8 @@
         """
         Set up the screen and common data
         """
-        super(AuthorsForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(AuthorsForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                          QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.auto_display_name = False
         self.first_name_edit.textEdited.connect(self.on_first_name_edited)

=== modified file 'openlp/plugins/songs/forms/duplicatesongremovalform.py'
--- openlp/plugins/songs/forms/duplicatesongremovalform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songs/forms/duplicatesongremovalform.py	2017-06-05 03:11:16 +0000
@@ -82,6 +82,9 @@
         self.finish_button.clicked.connect(self.on_wizard_exit)
         self.cancel_button.clicked.connect(self.on_wizard_exit)
 
+    def closeEvent(self, event):
+            self.on_wizard_exit()
+
     def add_custom_pages(self):
         """
         Add song wizard specific pages.

=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py	2017-03-02 04:34:24 +0000
+++ openlp/plugins/songs/forms/editsongform.py	2017-06-05 03:11:16 +0000
@@ -56,7 +56,8 @@
         """
         Constructor
         """
-        super(EditSongForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(EditSongForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.media_item = media_item
         self.song = None
         # can this be automated?

=== modified file 'openlp/plugins/songs/forms/editverseform.py'
--- openlp/plugins/songs/forms/editverseform.py	2017-04-20 20:23:17 +0000
+++ openlp/plugins/songs/forms/editverseform.py	2017-06-05 03:11:16 +0000
@@ -43,7 +43,8 @@
         """
         Constructor
         """
-        super(EditVerseForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(EditVerseForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                            QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.has_single_verse = False
         self.insert_button.clicked.connect(self.on_insert_button_clicked)

=== modified file 'openlp/plugins/songs/forms/mediafilesform.py'
--- openlp/plugins/songs/forms/mediafilesform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songs/forms/mediafilesform.py	2017-06-05 03:11:16 +0000
@@ -37,7 +37,8 @@
     log.info('{name} MediaFilesForm loaded'.format(name=__name__))
 
     def __init__(self, parent):
-        super(MediaFilesForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(MediaFilesForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                             QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def populate_files(self, files):

=== modified file 'openlp/plugins/songs/forms/songbookform.py'
--- openlp/plugins/songs/forms/songbookform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songs/forms/songbookform.py	2017-06-05 03:11:16 +0000
@@ -38,7 +38,8 @@
         """
         Constructor
         """
-        super(SongBookForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(SongBookForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                           QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def exec(self, clear=True):

=== modified file 'openlp/plugins/songs/forms/songmaintenancedialog.py'
--- openlp/plugins/songs/forms/songmaintenancedialog.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songs/forms/songmaintenancedialog.py	2017-06-05 03:11:16 +0000
@@ -39,7 +39,7 @@
         song_maintenance_dialog.setObjectName('song_maintenance_dialog')
         song_maintenance_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
         song_maintenance_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
-        song_maintenance_dialog.resize(10, 350)
+        song_maintenance_dialog.resize(600, 600)
         self.dialog_layout = QtWidgets.QGridLayout(song_maintenance_dialog)
         self.dialog_layout.setObjectName('dialog_layout')
         self.type_list_widget = QtWidgets.QListWidget(song_maintenance_dialog)

=== modified file 'openlp/plugins/songs/forms/songmaintenanceform.py'
--- openlp/plugins/songs/forms/songmaintenanceform.py	2017-03-28 00:36:54 +0000
+++ openlp/plugins/songs/forms/songmaintenanceform.py	2017-06-05 03:11:16 +0000
@@ -44,7 +44,8 @@
         """
         Constructor
         """
-        super(SongMaintenanceForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(SongMaintenanceForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                                  QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.manager = manager
         self.author_form = AuthorsForm(self)

=== modified file 'openlp/plugins/songs/forms/songselectform.py'
--- openlp/plugins/songs/forms/songselectform.py	2017-02-18 07:23:15 +0000
+++ openlp/plugins/songs/forms/songselectform.py	2017-06-05 03:11:16 +0000
@@ -81,7 +81,8 @@
     """
 
     def __init__(self, parent=None, plugin=None, db_manager=None):
-        QtWidgets.QDialog.__init__(self, parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        QtWidgets.QDialog.__init__(self, parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                   QtCore.Qt.WindowCloseButtonHint)
         self.plugin = plugin
         self.db_manager = db_manager
         self.setup_ui(self)

=== modified file 'openlp/plugins/songs/forms/topicsform.py'
--- openlp/plugins/songs/forms/topicsform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songs/forms/topicsform.py	2017-06-05 03:11:16 +0000
@@ -38,7 +38,8 @@
         """
         Constructor
         """
-        super(TopicsForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(TopicsForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                         QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
 
     def exec(self, clear=True):

=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py	2017-02-26 21:14:49 +0000
+++ openlp/plugins/songs/songsplugin.py	2017-06-05 03:11:16 +0000
@@ -54,7 +54,7 @@
     'songs/db password': '',
     'songs/db hostname': '',
     'songs/db database': '',
-    'songs/last search type': SongSearch.Entire,
+    'songs/last used search type': SongSearch.Entire,
     'songs/last import type': SongFormat.OpenLyrics,
     'songs/update service on edit': False,
     'songs/add song from service': True,

=== modified file 'openlp/plugins/songusage/forms/songusagedeleteform.py'
--- openlp/plugins/songusage/forms/songusagedeleteform.py	2016-12-31 11:01:36 +0000
+++ openlp/plugins/songusage/forms/songusagedeleteform.py	2017-06-05 03:11:16 +0000
@@ -37,7 +37,7 @@
         """
         self.manager = manager
         super(SongUsageDeleteForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint |
-                                                  QtCore.Qt.WindowTitleHint)
+                                                  QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint)
         self.setupUi(self)
         self.button_box.clicked.connect(self.on_button_box_clicked)
 

=== modified file 'openlp/plugins/songusage/forms/songusagedetailform.py'
--- openlp/plugins/songusage/forms/songusagedetailform.py	2017-05-12 21:05:50 +0000
+++ openlp/plugins/songusage/forms/songusagedetailform.py	2017-06-05 03:11:16 +0000
@@ -44,7 +44,8 @@
         """
         Initialise the form
         """
-        super(SongUsageDetailForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
+        super(SongUsageDetailForm, self).__init__(parent, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint |
+                                                  QtCore.Qt.WindowCloseButtonHint)
         self.plugin = plugin
         self.setupUi(self)
 

=== modified file 'tests/functional/openlp_plugins/bibles/test_lib.py'
--- tests/functional/openlp_plugins/bibles/test_lib.py	2017-04-24 05:17:55 +0000
+++ tests/functional/openlp_plugins/bibles/test_lib.py	2017-06-05 03:11:16 +0000
@@ -68,7 +68,8 @@
         """
         # GIVEN: Some test data which contains different references to parse, with the expected results.
         with patch('openlp.plugins.bibles.lib.Settings', return_value=MagicMock(**{'value.return_value': ''})):
-            # The following test data tests with 222 variants when using the default 'separators'
+            # The following test data tests with about 240 variants when using the default 'separators'
+            # The amount is exactly 222 without '1. John 23' and'1. John. 23'
             test_data = [
                 # Input reference, book name, chapter + verse reference
                 ('Psalm 23', 'Psalm', '23'),
@@ -84,6 +85,8 @@
                 ('Psalm 23{_and}24', 'Psalm', '23,24'),
                 ('1 John 23', '1 John', '23'),
                 ('1 John. 23', '1 John', '23'),
+                ('1. John 23', '1. John', '23'),
+                ('1. John. 23', '1. John', '23'),
                 ('1 John 23{to}24', '1 John', '23-24'),
                 ('1 John 23{verse}1{to}2', '1 John', '23:1-2'),
                 ('1 John 23{verse}1{to}{end}', '1 John', '23:1-end'),

=== modified file 'tests/functional/openlp_plugins/bibles/test_mediaitem.py'
--- tests/functional/openlp_plugins/bibles/test_mediaitem.py	2017-06-03 22:34:19 +0000
+++ tests/functional/openlp_plugins/bibles/test_mediaitem.py	2017-06-05 03:11:16 +0000
@@ -480,9 +480,9 @@
             # WHEN: Calling update_auto_completer
             self.media_item.update_auto_completer()
 
-            # THEN: set_case_insensitive_completer should have been called with the names of the books in order
+            # THEN: set_case_insensitive_completer should have been called with the names of the books + space in order
             mocked_set_case_insensitive_completer.assert_called_once_with(
-                ['Book 1', 'Book 2', 'Book 3'], mocked_search_edit)
+                ['Book 1 ', 'Book 2 ', 'Book 3 '], mocked_search_edit)
 
     def test_update_auto_completer_search_combined_type(self):
         """
@@ -500,11 +500,11 @@
             # WHEN: Calling update_auto_completer
             self.media_item.update_auto_completer()
 
-            # THEN: set_case_insensitive_completer should have been called with the names of the books in order
+            # THEN: set_case_insensitive_completer should have been called with the names of the books + space in order
             mocked_set_case_insensitive_completer.assert_called_once_with(
-                ['Book 1', 'Book 2', 'Book 3'], mocked_search_edit)
+                ['Book 1 ', 'Book 2 ', 'Book 3 '], mocked_search_edit)
 
-    def test_on_import_click_no_import_wizzard_attr(self):
+    def test_on_import_click_no_import_wizard_attr(self):
         """
         Test on_import_click when media_item does not have the `import_wizard` attribute. And the wizard was canceled.
         """
@@ -521,9 +521,9 @@
             self.assertTrue(mocked_bible_import_form.called)
             self.assertFalse(mocked_reload_bibles.called)
 
-    def test_on_import_click_wizzard_not_canceled(self):
+    def test_on_import_click_wizard_not_canceled(self):
         """
-        Test on_import_click when the media item has the import_wizzard attr set and wizard completes sucessfully.
+        Test on_import_click when the media item has the import_wizard attr set and wizard completes sucessfully.
         """
         # GIVEN: An instance of :class:`MediaManagerItem` and a mocked import_wizard
         mocked_import_wizard = MagicMock(**{'exec.return_value': True})

=== modified file 'tests/interfaces/openlp_core_lib/test_searchedit.py'
--- tests/interfaces/openlp_core_lib/test_searchedit.py	2016-12-31 11:01:36 +0000
+++ tests/interfaces/openlp_core_lib/test_searchedit.py	2017-06-05 03:11:16 +0000
@@ -88,7 +88,7 @@
         #       settings
         self.assertEqual(self.search_edit.current_search_type(), SearchTypes.First,
                          "The first search type should be selected.")
-        self.mocked_settings().setValue.assert_called_once_with('settings_section/last search type', 0)
+        self.mocked_settings().setValue.assert_called_once_with('settings_section/last used search type', 0)
 
     def test_set_current_search_type(self):
         """
@@ -105,7 +105,7 @@
         self.assertEqual(self.search_edit.placeholderText(), SECOND_PLACEHOLDER_TEXT,
                          "The correct placeholder text should be 'Second Placeholder Text'.")
         self.mocked_settings().setValue.assert_has_calls(
-            [call('settings_section/last search type', 0), call('settings_section/last search type', 1)])
+            [call('settings_section/last used search type', 0), call('settings_section/last used search type', 1)])
 
     def test_clear_button_visibility(self):
         """

_______________________________________________
Mailing list: https://launchpad.net/~openlp-core
Post to     : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to