diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py index c6777c756..0f0b14b05 100644 --- a/openlp/core/ui/__init__.py +++ b/openlp/core/ui/__init__.py @@ -113,7 +113,7 @@ from .settingsform import SettingsForm from .formattingtagform import FormattingTagForm from .formattingtagcontroller import FormattingTagController from .shortcutlistform import ShortcutListForm -from .mediadockmanager import MediaDockManager +from openlp.core.ui.lib.mediadockmanager import MediaDockManager from .servicemanager import ServiceManager from .thememanager import ThemeManager from .projector.manager import ProjectorManager diff --git a/openlp/core/ui/lib/__init__.py b/openlp/core/ui/lib/__init__.py index e3bc60f55..2bb3ac157 100644 --- a/openlp/core/ui/lib/__init__.py +++ b/openlp/core/ui/lib/__init__.py @@ -20,8 +20,9 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from openlp.core.ui.lib.colorbutton import ColorButton -from openlp.core.ui.lib.listwidgetwithdnd import ListWidgetWithDnD -from openlp.core.ui.lib.treewidgetwithdnd import TreeWidgetWithDnD -from openlp.core.ui.lib.toolbar import OpenLPToolbar -from openlp.core.ui.lib.dockwidget import OpenLPDockWidget +from .colorbutton import ColorButton +from .listwidgetwithdnd import ListWidgetWithDnD +from .treewidgetwithdnd import TreeWidgetWithDnD +from .toolbar import OpenLPToolbar +from .dockwidget import OpenLPDockWidget +from .wizard import OpenLPWizard, WizardStrings diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py deleted file mode 100644 index ad786b3a0..000000000 --- a/openlp/core/ui/mediadockmanager.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2016 OpenLP Developers # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -The media manager dock. -""" -import logging - -from openlp.core.lib import StringContent - -log = logging.getLogger(__name__) - - -class MediaDockManager(object): - """ - Provide a repository for MediaManagerItems - """ - def __init__(self, media_dock): - """ - Initialise the media dock - """ - self.media_dock = media_dock - - def add_item_to_dock(self, media_item): - """ - Add a MediaManagerItem to the dock - If the item has been added before, it's silently skipped - - :param media_item: The item to add to the dock - """ - visible_title = media_item.plugin.get_string(StringContent.VisibleName) - log.debug('Inserting %s dock' % visible_title['title']) - match = False - for dock_index in range(self.media_dock.count()): - if self.media_dock.widget(dock_index).settings_section == media_item.plugin.name: - match = True - break - if not match: - self.media_dock.addItem(media_item, visible_title['title']) - - def remove_dock(self, media_item): - """ - Removes a MediaManagerItem from the dock - - :param media_item: The item to add to the dock - """ - visible_title = media_item.plugin.get_string(StringContent.VisibleName) - log.debug('remove %s dock' % visible_title['title']) - for dock_index in range(self.media_dock.count()): - if self.media_dock.widget(dock_index): - if self.media_dock.widget(dock_index).settings_section == media_item.plugin.name: - self.media_dock.widget(dock_index).setVisible(False) - self.media_dock.removeItem(dock_index) diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py deleted file mode 100644 index 3835056fb..000000000 --- a/openlp/core/ui/wizard.py +++ /dev/null @@ -1,308 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2016 OpenLP Developers # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -The :mod:``wizard`` module provides generic wizard tools for OpenLP. -""" -import logging -import os - -from PyQt5 import QtGui, QtWidgets - -from openlp.core.common import Registry, RegistryProperties, Settings, UiStrings, translate, is_macosx -from openlp.core.lib import build_icon -from openlp.core.lib.ui import add_welcome_page - -log = logging.getLogger(__name__) - - -class WizardStrings(object): - """ - Provide standard strings for wizards to use. - """ - # Applications/Formats we import from or export to. These get used in - # multiple places but do not need translating unless you find evidence of - # the writers translating their own product name. - CSV = 'CSV' - OS = 'OpenSong' - OSIS = 'OSIS' - ZEF = 'Zefania' - # These strings should need a good reason to be retranslated elsewhere. - FinishedImport = translate('OpenLP.Ui', 'Finished import.') - FormatLabel = translate('OpenLP.Ui', 'Format:') - HeaderStyle = '%s' - Importing = translate('OpenLP.Ui', 'Importing') - ImportingType = translate('OpenLP.Ui', 'Importing "%s"...') - ImportSelect = translate('OpenLP.Ui', 'Select Import Source') - ImportSelectLong = translate('OpenLP.Ui', 'Select the import format and the location to import from.') - OpenTypeFile = translate('OpenLP.Ui', 'Open %s File') - OpenTypeFolder = translate('OpenLP.Ui', 'Open %s Folder') - PercentSymbolFormat = translate('OpenLP.Ui', '%p%') - Ready = translate('OpenLP.Ui', 'Ready.') - StartingImport = translate('OpenLP.Ui', 'Starting import...') - YouSpecifyFile = translate('OpenLP.Ui', 'You need to specify one %s file to import from.', - 'A file type e.g. OpenSong') - YouSpecifyFiles = translate('OpenLP.Ui', 'You need to specify at least one %s file to import from.', - 'A file type e.g. OpenSong') - YouSpecifyFolder = translate('OpenLP.Ui', 'You need to specify one %s folder to import from.', - 'A song format e.g. PowerSong') - - -class OpenLPWizard(QtWidgets.QWizard, RegistryProperties): - """ - Generic OpenLP wizard to provide generic functionality and a unified look - and feel. - - ``parent`` - The QWidget-derived parent of the wizard. - - ``plugin`` - Plugin this wizard is part of. The plugin will be saved in the "plugin" variable. - The plugin will also be used as basis for the file dialog methods this class provides. - - ``name`` - The object name this wizard should have. - - ``image`` - The image to display on the "welcome" page of the wizard. Should be 163x350. - - ``add_progress_page`` - Whether to add a progress page with a progressbar at the end of the wizard. - """ - def __init__(self, parent, plugin, name, image, add_progress_page=True): - """ - Constructor - """ - super(OpenLPWizard, self).__init__(parent) - self.plugin = plugin - self.with_progress_page = add_progress_page - self.setObjectName(name) - self.open_icon = build_icon(':/general/general_open.png') - self.delete_icon = build_icon(':/general/general_delete.png') - self.finish_button = self.button(QtWidgets.QWizard.FinishButton) - self.cancel_button = self.button(QtWidgets.QWizard.CancelButton) - self.setupUi(image) - self.register_fields() - self.custom_init() - self.custom_signals() - self.currentIdChanged.connect(self.on_current_id_changed) - if self.with_progress_page: - self.error_copy_to_button.clicked.connect(self.on_error_copy_to_button_clicked) - self.error_save_to_button.clicked.connect(self.on_error_save_to_button_clicked) - - def setupUi(self, image): - """ - Set up the wizard UI. - :param image: path to start up image - """ - self.setWindowIcon(build_icon(u':/icon/openlp-logo.svg')) - self.setModal(True) - self.setOptions(QtWidgets.QWizard.IndependentPages | - QtWidgets.QWizard.NoBackButtonOnStartPage | QtWidgets.QWizard.NoBackButtonOnLastPage) - if is_macosx(): - self.setPixmap(QtWidgets.QWizard.BackgroundPixmap, QtGui.QPixmap(':/wizards/openlp-osx-wizard.png')) - else: - self.setWizardStyle(QtWidgets.QWizard.ModernStyle) - add_welcome_page(self, image) - self.add_custom_pages() - if self.with_progress_page: - self.add_progress_page() - self.retranslateUi() - - def register_fields(self): - """ - Hook method for wizards to register any fields they need. - """ - pass - - def custom_init(self): - """ - Hook method for custom initialisation - """ - pass - - def custom_signals(self): - """ - Hook method for adding custom signals - """ - pass - - def add_custom_pages(self): - """ - Hook method for wizards to add extra pages - """ - pass - - def add_progress_page(self): - """ - Add the progress page for the wizard. This page informs the user how - the wizard is progressing with its task. - """ - self.progress_page = QtWidgets.QWizardPage() - self.progress_page.setObjectName('progress_page') - self.progress_layout = QtWidgets.QVBoxLayout(self.progress_page) - self.progress_layout.setContentsMargins(48, 48, 48, 48) - self.progress_layout.setObjectName('progress_layout') - self.progress_label = QtWidgets.QLabel(self.progress_page) - self.progress_label.setObjectName('progress_label') - self.progress_label.setWordWrap(True) - self.progress_layout.addWidget(self.progress_label) - self.progress_bar = QtWidgets.QProgressBar(self.progress_page) - self.progress_bar.setObjectName('progress_bar') - self.progress_layout.addWidget(self.progress_bar) - # Add a QTextEdit and a copy to file and copy to clipboard button to be - # able to provide feedback to the user. Hidden by default. - self.error_report_text_edit = QtWidgets.QTextEdit(self.progress_page) - self.error_report_text_edit.setObjectName('error_report_text_edit') - self.error_report_text_edit.setHidden(True) - self.error_report_text_edit.setReadOnly(True) - self.progress_layout.addWidget(self.error_report_text_edit) - self.error_button_layout = QtWidgets.QHBoxLayout() - self.error_button_layout.setObjectName('error_button_layout') - spacer = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.error_button_layout.addItem(spacer) - self.error_copy_to_button = QtWidgets.QPushButton(self.progress_page) - self.error_copy_to_button.setObjectName('error_copy_to_button') - self.error_copy_to_button.setHidden(True) - self.error_copy_to_button.setIcon(build_icon(':/system/system_edit_copy.png')) - self.error_button_layout.addWidget(self.error_copy_to_button) - self.error_save_to_button = QtWidgets.QPushButton(self.progress_page) - self.error_save_to_button.setObjectName('error_save_to_button') - self.error_save_to_button.setHidden(True) - self.error_save_to_button.setIcon(build_icon(':/general/general_save.png')) - self.error_button_layout.addWidget(self.error_save_to_button) - self.progress_layout.addLayout(self.error_button_layout) - self.addPage(self.progress_page) - - def exec(self): - """ - Run the wizard. - """ - self.set_defaults() - return QtWidgets.QWizard.exec(self) - - def reject(self): - """ - Stop the wizard on cancel button, close button or ESC key. - """ - log.debug('Wizard cancelled by user.') - if self.with_progress_page and self.currentPage() == self.progress_page: - Registry().execute('openlp_stop_wizard') - self.done(QtWidgets.QDialog.Rejected) - - def on_current_id_changed(self, page_id): - """ - Perform necessary functions depending on which wizard page is active. - :param page_id: current page number - """ - if self.with_progress_page and self.page(page_id) == self.progress_page: - self.pre_wizard() - self.perform_wizard() - self.post_wizard() - else: - self.custom_page_changed(page_id) - - def custom_page_changed(self, page_id): - """ - Called when changing to a page other than the progress page - :param page_id: current page number - """ - pass - - def on_error_copy_to_button_clicked(self): - """ - Called when the ``error_copy_to_button`` has been clicked. - """ - pass - - def on_error_save_to_button_clicked(self): - """ - Called when the ``error_save_to_button`` has been clicked. - """ - pass - - def increment_progress_bar(self, status_text, increment=1): - """ - Update the wizard progress page. - - :param status_text: Current status information to display. - :param increment: The value to increment the progress bar by. - """ - log.debug('IncrementBar %s', status_text) - self.progress_label.setText(status_text) - if increment > 0: - self.progress_bar.setValue(self.progress_bar.value() + increment) - self.application.process_events() - - def pre_wizard(self): - """ - Prepare the UI for the import. - """ - self.finish_button.setVisible(False) - self.progress_bar.setMinimum(0) - self.progress_bar.setMaximum(1188) - self.progress_bar.setValue(0) - - def post_wizard(self): - """ - Clean up the UI after the import has finished. - """ - self.progress_bar.setValue(self.progress_bar.maximum()) - self.finish_button.setVisible(True) - self.cancel_button.setVisible(False) - self.application.process_events() - - def get_file_name(self, title, editbox, setting_name, filters=''): - """ - Opens a QFileDialog and saves the filename to the given editbox. - - :param title: The title of the dialog (unicode). - :param editbox: An editbox (QLineEdit). - :param setting_name: The place where to save the last opened directory. - :param filters: The file extension filters. It should contain the file description - as well as the file extension. For example:: - - 'OpenLP 2 Databases (*.sqlite)' - """ - if filters: - filters += ';;' - filters += '%s (*)' % UiStrings().AllFiles - filename, filter_used = QtWidgets.QFileDialog.getOpenFileName( - self, title, os.path.dirname(Settings().value(self.plugin.settings_section + '/' + setting_name)), - filters) - if filename: - editbox.setText(filename) - Settings().setValue(self.plugin.settings_section + '/' + setting_name, filename) - - def get_folder(self, title, editbox, setting_name): - """ - Opens a QFileDialog and saves the selected folder to the given editbox. - - :param title: The title of the dialog (unicode). - :param editbox: An editbox (QLineEdit). - :param setting_name: The place where to save the last opened directory. - """ - folder = QtWidgets.QFileDialog.getExistingDirectory( - self, title, Settings().value(self.plugin.settings_section + '/' + setting_name), - QtWidgets.QFileDialog.ShowDirsOnly) - if folder: - editbox.setText(folder) - Settings().setValue(self.plugin.settings_section + '/' + setting_name, folder) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 27dbea963..45efe0e5f 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -31,7 +31,7 @@ from PyQt5 import QtWidgets from openlp.core.common import AppLocation, Settings, UiStrings, translate, clean_filename from openlp.core.lib.db import delete_database from openlp.core.lib.ui import critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard, WizardStrings +from openlp.core.ui.lib.wizard import OpenLPWizard, WizardStrings from openlp.core.common.languagemanager import get_locale_key from openlp.plugins.bibles.lib.manager import BibleFormat from openlp.plugins.bibles.lib.db import BiblesResourcesDB, clean_filename diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 611e6ead3..11771e9aa 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -32,7 +32,7 @@ from PyQt5 import QtCore, QtWidgets from openlp.core.common import Registry, AppLocation, UiStrings, Settings, check_directory_exists, translate, \ delete_file from openlp.core.lib.ui import critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard, WizardStrings +from openlp.core.ui.lib.wizard import OpenLPWizard, WizardStrings from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta, OldBibleDB, BiblesResourcesDB from openlp.plugins.bibles.lib.http import BSExtract, BGExtract, CWExtract diff --git a/openlp/plugins/songs/forms/duplicatesongremovalform.py b/openlp/plugins/songs/forms/duplicatesongremovalform.py index 0fa4ee670..26de9507f 100644 --- a/openlp/plugins/songs/forms/duplicatesongremovalform.py +++ b/openlp/plugins/songs/forms/duplicatesongremovalform.py @@ -30,7 +30,7 @@ import os from PyQt5 import QtCore, QtWidgets from openlp.core.common import Registry, RegistryProperties, translate -from openlp.core.ui.wizard import OpenLPWizard, WizardStrings +from openlp.core.ui.lib.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib import delete_song from openlp.plugins.songs.lib.db import Song, MediaFile from openlp.plugins.songs.forms.songreviewwidget import SongReviewWidget diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index ee35ea7e5..ba8e2738a 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -30,7 +30,7 @@ from PyQt5 import QtCore, QtWidgets from openlp.core.common import Registry, UiStrings, translate from openlp.core.lib import create_separated_list, build_icon from openlp.core.lib.ui import critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard, WizardStrings +from openlp.core.ui.lib.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib.db import Song from openlp.plugins.songs.lib.openlyricsexport import OpenLyricsExport diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 9058324fc..7a6af3981 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -31,7 +31,7 @@ from PyQt5 import QtCore, QtWidgets from openlp.core.common import RegistryProperties, Settings, UiStrings, translate from openlp.core.lib import FileDialog from openlp.core.lib.ui import critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard, WizardStrings +from openlp.core.ui.lib.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib.importer import SongFormat, SongFormatSelect log = logging.getLogger(__name__) diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py index 47f6edb46..7b9101306 100644 --- a/openlp/plugins/songs/lib/importer.py +++ b/openlp/plugins/songs/lib/importer.py @@ -26,7 +26,7 @@ import os import logging from openlp.core.common import translate, UiStrings, is_win -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from .importers.opensong import OpenSongImport from .importers.easyslides import EasySlidesImport from .importers.openlp import OpenLPSongImport diff --git a/openlp/plugins/songs/lib/importers/foilpresenter.py b/openlp/plugins/songs/lib/importers/foilpresenter.py index b1b12960a..061f50a9f 100644 --- a/openlp/plugins/songs/lib/importers/foilpresenter.py +++ b/openlp/plugins/songs/lib/importers/foilpresenter.py @@ -90,7 +90,7 @@ import os from lxml import etree, objectify from openlp.core.lib import translate -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from openlp.plugins.songs.lib import clean_song, VerseType from openlp.plugins.songs.lib.importers.songimport import SongImport from openlp.plugins.songs.lib.db import Author, Book, Song, Topic diff --git a/openlp/plugins/songs/lib/importers/openlp.py b/openlp/plugins/songs/lib/importers/openlp.py index b914ed1e1..e17fe138f 100644 --- a/openlp/plugins/songs/lib/importers/openlp.py +++ b/openlp/plugins/songs/lib/importers/openlp.py @@ -31,7 +31,7 @@ from sqlalchemy.orm.exc import UnmappedClassError from openlp.core.common import translate from openlp.core.lib.db import BaseModel -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from openlp.plugins.songs.lib import clean_song from openlp.plugins.songs.lib.db import Author, Book, Song, Topic, MediaFile from .songimport import SongImport diff --git a/openlp/plugins/songs/lib/importers/openlyrics.py b/openlp/plugins/songs/lib/importers/openlyrics.py index c7bde403a..f60023cdf 100644 --- a/openlp/plugins/songs/lib/importers/openlyrics.py +++ b/openlp/plugins/songs/lib/importers/openlyrics.py @@ -29,7 +29,7 @@ import os from lxml import etree -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from openlp.plugins.songs.lib.importers.songimport import SongImport from openlp.plugins.songs.lib.ui import SongStrings from openlp.plugins.songs.lib.openlyricsxml import OpenLyrics, OpenLyricsError diff --git a/openlp/plugins/songs/lib/importers/powerpraise.py b/openlp/plugins/songs/lib/importers/powerpraise.py index b93eed0fe..93a360542 100644 --- a/openlp/plugins/songs/lib/importers/powerpraise.py +++ b/openlp/plugins/songs/lib/importers/powerpraise.py @@ -27,7 +27,7 @@ Powerpraise song files into the current database. import os from lxml import objectify -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from .songimport import SongImport diff --git a/openlp/plugins/songs/lib/importers/presentationmanager.py b/openlp/plugins/songs/lib/importers/presentationmanager.py index da31ce953..c26f11312 100644 --- a/openlp/plugins/songs/lib/importers/presentationmanager.py +++ b/openlp/plugins/songs/lib/importers/presentationmanager.py @@ -26,10 +26,11 @@ Presentationmanager song files into the current database. import os import re + import chardet from lxml import objectify, etree -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from .songimport import SongImport diff --git a/openlp/plugins/songs/lib/importers/propresenter.py b/openlp/plugins/songs/lib/importers/propresenter.py index cddf0e52b..55e05a08f 100644 --- a/openlp/plugins/songs/lib/importers/propresenter.py +++ b/openlp/plugins/songs/lib/importers/propresenter.py @@ -29,7 +29,7 @@ import base64 import logging from lxml import objectify -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from openlp.plugins.songs.lib import strip_rtf from .songimport import SongImport diff --git a/openlp/plugins/songs/lib/importers/songimport.py b/openlp/plugins/songs/lib/importers/songimport.py index 54c82da29..835386b26 100644 --- a/openlp/plugins/songs/lib/importers/songimport.py +++ b/openlp/plugins/songs/lib/importers/songimport.py @@ -28,7 +28,7 @@ import os from PyQt5 import QtCore from openlp.core.common import Registry, AppLocation, check_directory_exists, translate -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from openlp.plugins.songs.lib import clean_song, VerseType from openlp.plugins.songs.lib.db import Song, Author, Topic, Book, MediaFile from openlp.plugins.songs.lib.ui import SongStrings diff --git a/openlp/plugins/songs/lib/importers/songshowplus.py b/openlp/plugins/songs/lib/importers/songshowplus.py index 4851894ab..d9a205e22 100644 --- a/openlp/plugins/songs/lib/importers/songshowplus.py +++ b/openlp/plugins/songs/lib/importers/songshowplus.py @@ -29,7 +29,7 @@ import logging import re import struct -from openlp.core.ui.wizard import WizardStrings +from openlp.core.ui.lib.wizard import WizardStrings from openlp.plugins.songs.lib import VerseType, retrieve_windows_encoding from openlp.plugins.songs.lib.importers.songimport import SongImport