forked from openlp/openlp
head
This commit is contained in:
commit
a18129995e
@ -244,6 +244,7 @@ class Settings(QtCore.QSettings):
|
|||||||
u'shortcuts/printServiceItem': [QtGui.QKeySequence(u'Ctrl+P')],
|
u'shortcuts/printServiceItem': [QtGui.QKeySequence(u'Ctrl+P')],
|
||||||
u'shortcuts/songExportItem': [],
|
u'shortcuts/songExportItem': [],
|
||||||
u'shortcuts/songUsageStatus': [QtGui.QKeySequence(QtCore.Qt.Key_F4)],
|
u'shortcuts/songUsageStatus': [QtGui.QKeySequence(QtCore.Qt.Key_F4)],
|
||||||
|
u'shortcuts/searchShortcut': [QtGui.QKeySequence(u'Ctrl+F')],
|
||||||
u'shortcuts/settingsShortcutsItem': [],
|
u'shortcuts/settingsShortcutsItem': [],
|
||||||
u'shortcuts/settingsImportItem': [],
|
u'shortcuts/settingsImportItem': [],
|
||||||
u'shortcuts/settingsPluginListItem': [QtGui.QKeySequence(u'Alt+F7')],
|
u'shortcuts/settingsPluginListItem': [QtGui.QKeySequence(u'Alt+F7')],
|
||||||
|
@ -291,7 +291,7 @@ class Ui_AboutDialog(object):
|
|||||||
'but WITHOUT ANY WARRANTY; without even the implied warranty of '
|
'but WITHOUT ANY WARRANTY; without even the implied warranty of '
|
||||||
'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See below '
|
'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See below '
|
||||||
'for more details.')
|
'for more details.')
|
||||||
gpltext = ('GNU GENERAL PUBLIC LICENSE\n'
|
gpl_text = ('GNU GENERAL PUBLIC LICENSE\n'
|
||||||
'Version 2, June 1991\n'
|
'Version 2, June 1991\n'
|
||||||
'\n'
|
'\n'
|
||||||
'Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 '
|
'Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 '
|
||||||
@ -662,7 +662,7 @@ class Ui_AboutDialog(object):
|
|||||||
'linking proprietary applications with the library. If this is '
|
'linking proprietary applications with the library. If this is '
|
||||||
'what you want to do, use the GNU Lesser General Public License '
|
'what you want to do, use the GNU Lesser General Public License '
|
||||||
'instead of this License.')
|
'instead of this License.')
|
||||||
self.license_text_edit.setPlainText(u'%s\n\n%s\n\n%s\n\n\n%s' % (copyright_note, licence, disclaimer, gpltext))
|
self.license_text_edit.setPlainText(u'%s\n\n%s\n\n%s\n\n\n%s' % (copyright_note, licence, disclaimer, gpl_text))
|
||||||
self.about_notebook.setTabText(self.about_notebook.indexOf(self.license_tab),
|
self.about_notebook.setTabText(self.about_notebook.indexOf(self.license_tab),
|
||||||
translate('OpenLP.AboutForm', 'License'))
|
translate('OpenLP.AboutForm', 'License'))
|
||||||
self.volunteer_button.setText(translate('OpenLP.AboutForm', 'Volunteer'))
|
self.volunteer_button.setText(translate('OpenLP.AboutForm', 'Volunteer'))
|
||||||
|
@ -68,7 +68,7 @@ class ThemeScreenshotThread(QtCore.QThread):
|
|||||||
screenshot = config.get(u'theme_%s' % theme, u'screenshot')
|
screenshot = config.get(u'theme_%s' % theme, u'screenshot')
|
||||||
urllib.urlretrieve(u'%s%s' % (self.parent().web, screenshot),
|
urllib.urlretrieve(u'%s%s' % (self.parent().web, screenshot),
|
||||||
os.path.join(unicode(gettempdir(), get_filesystem_encoding()), u'openlp', screenshot))
|
os.path.join(unicode(gettempdir(), get_filesystem_encoding()), u'openlp', screenshot))
|
||||||
item = QtGui.QListWidgetItem(title, self.parent().themesListWidget)
|
item = QtGui.QListWidgetItem(title, self.parent().themes_list_widget)
|
||||||
item.setData(QtCore.Qt.UserRole, filename)
|
item.setData(QtCore.Qt.UserRole, filename)
|
||||||
item.setCheckState(QtCore.Qt.Unchecked)
|
item.setCheckState(QtCore.Qt.Unchecked)
|
||||||
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
|
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
|
||||||
@ -76,8 +76,7 @@ class ThemeScreenshotThread(QtCore.QThread):
|
|||||||
|
|
||||||
class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
||||||
"""
|
"""
|
||||||
This is the Theme Import Wizard, which allows easy creation and editing of
|
This is the Theme Import Wizard, which allows easy creation and editing of OpenLP themes.
|
||||||
OpenLP themes.
|
|
||||||
"""
|
"""
|
||||||
log.info(u'ThemeWizardForm loaded')
|
log.info(u'ThemeWizardForm loaded')
|
||||||
|
|
||||||
@ -97,10 +96,11 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
self.config.readfp(io.BytesIO(files))
|
self.config.readfp(io.BytesIO(files))
|
||||||
self.update_screen_list_combo()
|
self.update_screen_list_combo()
|
||||||
self.was_download_cancelled = False
|
self.was_download_cancelled = False
|
||||||
|
self.theme_screenshot_thread = None
|
||||||
self.downloading = translate('OpenLP.FirstTimeWizard', 'Downloading %s...')
|
self.downloading = translate('OpenLP.FirstTimeWizard', 'Downloading %s...')
|
||||||
self.cancelButton.clicked.connect(self.onCancelButtonClicked)
|
self.cancel_button.clicked.connect(self.on_cancel_button_clicked)
|
||||||
self.noInternetFinishButton.clicked.connect(self.onNoInternetFinishButtonClicked)
|
self.no_internet_finish_button.clicked.connect(self.on_no_internet_finish_button_clicked)
|
||||||
self.currentIdChanged.connect(self.onCurrentIdChanged)
|
self.currentIdChanged.connect(self.on_current_id_changed)
|
||||||
Registry().register_function(u'config_screen_changed', self.update_screen_list_combo)
|
Registry().register_function(u'config_screen_changed', self.update_screen_list_combo)
|
||||||
|
|
||||||
def exec_(self):
|
def exec_(self):
|
||||||
@ -116,9 +116,9 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
"""
|
"""
|
||||||
self.restart()
|
self.restart()
|
||||||
check_directory_exists(os.path.join(unicode(gettempdir(), get_filesystem_encoding()), u'openlp'))
|
check_directory_exists(os.path.join(unicode(gettempdir(), get_filesystem_encoding()), u'openlp'))
|
||||||
self.noInternetFinishButton.setVisible(False)
|
self.no_internet_finish_button.setVisible(False)
|
||||||
# Check if this is a re-run of the wizard.
|
# Check if this is a re-run of the wizard.
|
||||||
self.hasRunWizard = Settings().value(u'core/has run wizard')
|
self.has_run_wizard = Settings().value(u'core/has run wizard')
|
||||||
# Sort out internet access for downloads
|
# Sort out internet access for downloads
|
||||||
if self.web_access:
|
if self.web_access:
|
||||||
songs = self.config.get(u'songs', u'languages')
|
songs = self.config.get(u'songs', u'languages')
|
||||||
@ -126,7 +126,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
for song in songs:
|
for song in songs:
|
||||||
title = unicode(self.config.get(u'songs_%s' % song, u'title'), u'utf8')
|
title = unicode(self.config.get(u'songs_%s' % song, u'title'), u'utf8')
|
||||||
filename = unicode(self.config.get(u'songs_%s' % song, u'filename'), u'utf8')
|
filename = unicode(self.config.get(u'songs_%s' % song, u'filename'), u'utf8')
|
||||||
item = QtGui.QListWidgetItem(title, self.songsListWidget)
|
item = QtGui.QListWidgetItem(title, self.songs_list_widget)
|
||||||
item.setData(QtCore.Qt.UserRole, filename)
|
item.setData(QtCore.Qt.UserRole, filename)
|
||||||
item.setCheckState(QtCore.Qt.Unchecked)
|
item.setCheckState(QtCore.Qt.Unchecked)
|
||||||
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
|
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
|
||||||
@ -134,7 +134,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
bible_languages = bible_languages.split(u',')
|
bible_languages = bible_languages.split(u',')
|
||||||
for lang in bible_languages:
|
for lang in bible_languages:
|
||||||
language = unicode(self.config.get(u'bibles_%s' % lang, u'title'), u'utf8')
|
language = unicode(self.config.get(u'bibles_%s' % lang, u'title'), u'utf8')
|
||||||
langItem = QtGui.QTreeWidgetItem(self.biblesTreeWidget, [language])
|
langItem = QtGui.QTreeWidgetItem(self.bibles_tree_widget, [language])
|
||||||
bibles = self.config.get(u'bibles_%s' % lang, u'translations')
|
bibles = self.config.get(u'bibles_%s' % lang, u'translations')
|
||||||
bibles = bibles.split(u',')
|
bibles = bibles.split(u',')
|
||||||
for bible in bibles:
|
for bible in bibles:
|
||||||
@ -144,10 +144,10 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
item.setData(0, QtCore.Qt.UserRole, filename)
|
item.setData(0, QtCore.Qt.UserRole, filename)
|
||||||
item.setCheckState(0, QtCore.Qt.Unchecked)
|
item.setCheckState(0, QtCore.Qt.Unchecked)
|
||||||
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
|
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
|
||||||
self.biblesTreeWidget.expandAll()
|
self.bibles_tree_widget.expandAll()
|
||||||
# Download the theme screenshots.
|
# Download the theme screenshots.
|
||||||
self.themeScreenshotThread = ThemeScreenshotThread(self)
|
self.theme_screenshot_thread = ThemeScreenshotThread(self)
|
||||||
self.themeScreenshotThread.start()
|
self.theme_screenshot_thread.start()
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def nextId(self):
|
def nextId(self):
|
||||||
@ -166,61 +166,60 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
return FirstTimePage.Progress
|
return FirstTimePage.Progress
|
||||||
elif self.currentId() == FirstTimePage.Themes:
|
elif self.currentId() == FirstTimePage.Themes:
|
||||||
self.application.set_busy_cursor()
|
self.application.set_busy_cursor()
|
||||||
while not self.themeScreenshotThread.isFinished():
|
while not self.theme_screenshot_thread.isFinished():
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
# Build the screenshot icons, as this can not be done in the thread.
|
# Build the screenshot icons, as this can not be done in the thread.
|
||||||
self._buildThemeScreenshots()
|
self._build_theme_screenshots()
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
return FirstTimePage.Defaults
|
return FirstTimePage.Defaults
|
||||||
else:
|
else:
|
||||||
return self.currentId() + 1
|
return self.currentId() + 1
|
||||||
|
|
||||||
def onCurrentIdChanged(self, pageId):
|
def on_current_id_changed(self, page_id):
|
||||||
"""
|
"""
|
||||||
Detects Page changes and updates as appropriate.
|
Detects Page changes and updates as appropriate.
|
||||||
"""
|
"""
|
||||||
# Keep track of the page we are at. Triggering "Cancel" causes pageId
|
# Keep track of the page we are at. Triggering "Cancel" causes page_id to be a -1.
|
||||||
# to be a -1.
|
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
if pageId != -1:
|
if page_id != -1:
|
||||||
self.lastId = pageId
|
self.last_id = page_id
|
||||||
if pageId == FirstTimePage.Plugins:
|
if page_id == FirstTimePage.Plugins:
|
||||||
# Set the no internet page text.
|
# Set the no internet page text.
|
||||||
if self.hasRunWizard:
|
if self.has_run_wizard:
|
||||||
self.noInternetLabel.setText(self.noInternetText)
|
self.no_internet_label.setText(self.no_internet_text)
|
||||||
else:
|
else:
|
||||||
self.noInternetLabel.setText(self.noInternetText + self.cancelWizardText)
|
self.no_internet_label.setText(self.no_internet_text + self.cancelWizardText)
|
||||||
elif pageId == FirstTimePage.Defaults:
|
elif page_id == FirstTimePage.Defaults:
|
||||||
self.themeComboBox.clear()
|
self.theme_combo_box.clear()
|
||||||
for iter in xrange(self.themesListWidget.count()):
|
for iter in xrange(self.themes_list_widget.count()):
|
||||||
item = self.themesListWidget.item(iter)
|
item = self.themes_list_widget.item(iter)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
self.themeComboBox.addItem(item.text())
|
self.theme_combo_box.addItem(item.text())
|
||||||
if self.hasRunWizard:
|
if self.has_run_wizard:
|
||||||
# Add any existing themes to list.
|
# Add any existing themes to list.
|
||||||
for theme in self.theme_manager.get_themes():
|
for theme in self.theme_manager.get_themes():
|
||||||
index = self.themeComboBox.findText(theme)
|
index = self.theme_combo_box.findText(theme)
|
||||||
if index == -1:
|
if index == -1:
|
||||||
self.themeComboBox.addItem(theme)
|
self.theme_combo_box.addItem(theme)
|
||||||
default_theme = Settings().value(u'themes/global theme')
|
default_theme = Settings().value(u'themes/global theme')
|
||||||
# Pre-select the current default theme.
|
# Pre-select the current default theme.
|
||||||
index = self.themeComboBox.findText(default_theme)
|
index = self.theme_combo_box.findText(default_theme)
|
||||||
self.themeComboBox.setCurrentIndex(index)
|
self.theme_combo_box.setCurrentIndex(index)
|
||||||
elif pageId == FirstTimePage.NoInternet:
|
elif page_id == FirstTimePage.NoInternet:
|
||||||
self.backButton.setVisible(False)
|
self.back_button.setVisible(False)
|
||||||
self.nextButton.setVisible(False)
|
self.next_button.setVisible(False)
|
||||||
self.noInternetFinishButton.setVisible(True)
|
self.no_internet_finish_button.setVisible(True)
|
||||||
if self.hasRunWizard:
|
if self.has_run_wizard:
|
||||||
self.cancelButton.setVisible(False)
|
self.cancel_button.setVisible(False)
|
||||||
elif pageId == FirstTimePage.Progress:
|
elif page_id == FirstTimePage.Progress:
|
||||||
self.application.set_busy_cursor()
|
self.application.set_busy_cursor()
|
||||||
self.repaint()
|
self.repaint()
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
# Try to give the wizard a chance to redraw itself
|
# Try to give the wizard a chance to redraw itself
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
self._preWizard()
|
self._pre_wizard()
|
||||||
self._performWizard()
|
self._perform_wizard()
|
||||||
self._post_wizard()
|
self._post_wizard()
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
@ -229,70 +228,72 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
The user changed screen resolution or enabled/disabled more screens, so
|
The user changed screen resolution or enabled/disabled more screens, so
|
||||||
we need to update the combo box.
|
we need to update the combo box.
|
||||||
"""
|
"""
|
||||||
self.displayComboBox.clear()
|
self.display_combo_box.clear()
|
||||||
self.displayComboBox.addItems(self.screens.get_screen_list())
|
self.display_combo_box.addItems(self.screens.get_screen_list())
|
||||||
self.displayComboBox.setCurrentIndex(self.displayComboBox.count() - 1)
|
self.display_combo_box.setCurrentIndex(self.display_combo_box.count() - 1)
|
||||||
|
|
||||||
def onCancelButtonClicked(self):
|
def on_cancel_button_clicked(self):
|
||||||
"""
|
"""
|
||||||
Process the triggering of the cancel button.
|
Process the triggering of the cancel button.
|
||||||
"""
|
"""
|
||||||
if self.lastId == FirstTimePage.NoInternet or (self.lastId <= FirstTimePage.Plugins and not self.hasRunWizard):
|
if self.last_id == FirstTimePage.NoInternet or (self.last_id <= FirstTimePage.Plugins and not self.has_run_wizard):
|
||||||
QtCore.QCoreApplication.exit()
|
QtCore.QCoreApplication.exit()
|
||||||
sys.exit()
|
sys.exit()
|
||||||
self.was_download_cancelled = True
|
self.was_download_cancelled = True
|
||||||
while self.themeScreenshotThread.isRunning():
|
# Was the thread created.
|
||||||
time.sleep(0.1)
|
if self.theme_screenshot_thread:
|
||||||
|
while self.theme_screenshot_thread.isRunning():
|
||||||
|
time.sleep(0.1)
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def onNoInternetFinishButtonClicked(self):
|
def on_no_internet_finish_button_clicked(self):
|
||||||
"""
|
"""
|
||||||
Process the triggering of the "Finish" button on the No Internet page.
|
Process the triggering of the "Finish" button on the No Internet page.
|
||||||
"""
|
"""
|
||||||
self.application.set_busy_cursor()
|
self.application.set_busy_cursor()
|
||||||
self._performWizard()
|
self._perform_wizard()
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
Settings().setValue(u'core/has run wizard', True)
|
Settings().setValue(u'core/has run wizard', True)
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
def urlGetFile(self, url, fpath):
|
def url_get_file(self, url, f_path):
|
||||||
""""
|
""""
|
||||||
Download a file given a URL. The file is retrieved in chunks, giving
|
Download a file given a URL. The file is retrieved in chunks, giving the ability to cancel the download at any
|
||||||
the ability to cancel the download at any point.
|
point.
|
||||||
"""
|
"""
|
||||||
block_count = 0
|
block_count = 0
|
||||||
block_size = 4096
|
block_size = 4096
|
||||||
urlfile = urllib2.urlopen(url)
|
url_file = urllib2.urlopen(url)
|
||||||
filename = open(fpath, "wb")
|
filename = open(f_path, "wb")
|
||||||
# Download until finished or canceled.
|
# Download until finished or canceled.
|
||||||
while not self.was_download_cancelled:
|
while not self.was_download_cancelled:
|
||||||
data = urlfile.read(block_size)
|
data = url_file.read(block_size)
|
||||||
if not data:
|
if not data:
|
||||||
break
|
break
|
||||||
filename.write(data)
|
filename.write(data)
|
||||||
block_count += 1
|
block_count += 1
|
||||||
self._downloadProgress(block_count, block_size)
|
self._download_progress(block_count, block_size)
|
||||||
filename.close()
|
filename.close()
|
||||||
# Delete file if cancelled, it may be a partial file.
|
# Delete file if cancelled, it may be a partial file.
|
||||||
if self.was_download_cancelled:
|
if self.was_download_cancelled:
|
||||||
os.remove(fpath)
|
os.remove(f_path)
|
||||||
|
|
||||||
def _buildThemeScreenshots(self):
|
def _build_theme_screenshots(self):
|
||||||
"""
|
"""
|
||||||
This method builds the theme screenshots' icons for all items in the
|
This method builds the theme screenshots' icons for all items in the
|
||||||
``self.themesListWidget``.
|
``self.themes_list_widget``.
|
||||||
"""
|
"""
|
||||||
themes = self.config.get(u'themes', u'files')
|
themes = self.config.get(u'themes', u'files')
|
||||||
themes = themes.split(u',')
|
themes = themes.split(u',')
|
||||||
for theme in themes:
|
for theme in themes:
|
||||||
filename = self.config.get(u'theme_%s' % theme, u'filename')
|
filename = self.config.get(u'theme_%s' % theme, u'filename')
|
||||||
screenshot = self.config.get(u'theme_%s' % theme, u'screenshot')
|
screenshot = self.config.get(u'theme_%s' % theme, u'screenshot')
|
||||||
for index in xrange(self.themesListWidget.count()):
|
for index in xrange(self.themes_list_widget.count()):
|
||||||
item = self.themesListWidget.item(index)
|
item = self.themes_list_widget.item(index)
|
||||||
if item.data(QtCore.Qt.UserRole) == filename:
|
if item.data(QtCore.Qt.UserRole) == filename:
|
||||||
break
|
break
|
||||||
item.setIcon(build_icon(os.path.join(unicode(gettempdir(),
|
item.setIcon(build_icon(os.path.join(unicode(gettempdir(),
|
||||||
get_filesystem_encoding()), u'openlp', screenshot)))
|
get_filesystem_encoding()), u'openlp', screenshot)))
|
||||||
|
|
||||||
def _getFileSize(self, url):
|
def _getFileSize(self, url):
|
||||||
"""
|
"""
|
||||||
@ -305,15 +306,15 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
meta = site.info()
|
meta = site.info()
|
||||||
return int(meta.getheaders("Content-Length")[0])
|
return int(meta.getheaders("Content-Length")[0])
|
||||||
|
|
||||||
def _downloadProgress(self, count, block_size):
|
def _download_progress(self, count, block_size):
|
||||||
"""
|
"""
|
||||||
Calculate and display the download progress.
|
Calculate and display the download progress.
|
||||||
"""
|
"""
|
||||||
increment = (count * block_size) - self.previous_size
|
increment = (count * block_size) - self.previous_size
|
||||||
self._incrementProgressBar(None, increment)
|
self._increment_progress_bar(None, increment)
|
||||||
self.previous_size = count * block_size
|
self.previous_size = count * block_size
|
||||||
|
|
||||||
def _incrementProgressBar(self, status_text, increment=1):
|
def _increment_progress_bar(self, status_text, increment=1):
|
||||||
"""
|
"""
|
||||||
Update the wizard progress page.
|
Update the wizard progress page.
|
||||||
|
|
||||||
@ -324,28 +325,28 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
The value to increment the progress bar by.
|
The value to increment the progress bar by.
|
||||||
"""
|
"""
|
||||||
if status_text:
|
if status_text:
|
||||||
self.progressLabel.setText(status_text)
|
self.progress_label.setText(status_text)
|
||||||
if increment > 0:
|
if increment > 0:
|
||||||
self.progressBar.setValue(self.progressBar.value() + increment)
|
self.progress_bar.setValue(self.progress_bar.value() + increment)
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
|
|
||||||
def _preWizard(self):
|
def _pre_wizard(self):
|
||||||
"""
|
"""
|
||||||
Prepare the UI for the process.
|
Prepare the UI for the process.
|
||||||
"""
|
"""
|
||||||
self.max_progress = 0
|
self.max_progress = 0
|
||||||
self.finishButton.setVisible(False)
|
self.finish_button.setVisible(False)
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
# Loop through the songs list and increase for each selected item
|
# Loop through the songs list and increase for each selected item
|
||||||
for i in xrange(self.songsListWidget.count()):
|
for i in xrange(self.songs_list_widget.count()):
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
item = self.songsListWidget.item(i)
|
item = self.songs_list_widget.item(i)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
filename = item.data(QtCore.Qt.UserRole)
|
filename = item.data(QtCore.Qt.UserRole)
|
||||||
size = self._getFileSize(u'%s%s' % (self.web, filename))
|
size = self._getFileSize(u'%s%s' % (self.web, filename))
|
||||||
self.max_progress += size
|
self.max_progress += size
|
||||||
# Loop through the Bibles list and increase for each selected item
|
# Loop through the Bibles list and increase for each selected item
|
||||||
iterator = QtGui.QTreeWidgetItemIterator(self.biblesTreeWidget)
|
iterator = QtGui.QTreeWidgetItemIterator(self.bibles_tree_widget)
|
||||||
while iterator.value():
|
while iterator.value():
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
item = iterator.value()
|
item = iterator.value()
|
||||||
@ -355,9 +356,9 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
self.max_progress += size
|
self.max_progress += size
|
||||||
iterator += 1
|
iterator += 1
|
||||||
# Loop through the themes list and increase for each selected item
|
# Loop through the themes list and increase for each selected item
|
||||||
for i in xrange(self.themesListWidget.count()):
|
for i in xrange(self.themes_list_widget.count()):
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
item = self.themesListWidget.item(i)
|
item = self.themes_list_widget.item(i)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
filename = item.data(QtCore.Qt.UserRole)
|
filename = item.data(QtCore.Qt.UserRole)
|
||||||
size = self._getFileSize(u'%s%s' % (self.web, filename))
|
size = self._getFileSize(u'%s%s' % (self.web, filename))
|
||||||
@ -365,16 +366,16 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
if self.max_progress:
|
if self.max_progress:
|
||||||
# Add on 2 for plugins status setting plus a "finished" point.
|
# Add on 2 for plugins status setting plus a "finished" point.
|
||||||
self.max_progress += 2
|
self.max_progress += 2
|
||||||
self.progressBar.setValue(0)
|
self.progress_bar.setValue(0)
|
||||||
self.progressBar.setMinimum(0)
|
self.progress_bar.setMinimum(0)
|
||||||
self.progressBar.setMaximum(self.max_progress)
|
self.progress_bar.setMaximum(self.max_progress)
|
||||||
self.progressPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Setting Up And Downloading'))
|
self.progress_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Setting Up And Downloading'))
|
||||||
self.progressPage.setSubTitle(
|
self.progress_page.setSubTitle(
|
||||||
translate('OpenLP.FirstTimeWizard', 'Please wait while OpenLP is set up and your data is downloaded.'))
|
translate('OpenLP.FirstTimeWizard', 'Please wait while OpenLP is set up and your data is downloaded.'))
|
||||||
else:
|
else:
|
||||||
self.progressBar.setVisible(False)
|
self.progress_bar.setVisible(False)
|
||||||
self.progressPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Setting Up'))
|
self.progress_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Setting Up'))
|
||||||
self.progressPage.setSubTitle(u'Setup complete.')
|
self.progress_page.setSubTitle(u'Setup complete.')
|
||||||
self.repaint()
|
self.repaint()
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
# Try to give the wizard a chance to repaint itself
|
# Try to give the wizard a chance to repaint itself
|
||||||
@ -385,44 +386,44 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
Clean up the UI after the process has finished.
|
Clean up the UI after the process has finished.
|
||||||
"""
|
"""
|
||||||
if self.max_progress:
|
if self.max_progress:
|
||||||
self.progressBar.setValue(self.progressBar.maximum())
|
self.progress_bar.setValue(self.progress_bar.maximum())
|
||||||
if self.hasRunWizard:
|
if self.has_run_wizard:
|
||||||
self.progressLabel.setText(translate('OpenLP.FirstTimeWizard',
|
self.progress_label.setText(translate('OpenLP.FirstTimeWizard',
|
||||||
'Download complete. Click the finish button to return to OpenLP.'))
|
'Download complete. Click the finish button to return to OpenLP.'))
|
||||||
else:
|
else:
|
||||||
self.progressLabel.setText(translate('OpenLP.FirstTimeWizard',
|
self.progress_label.setText(translate('OpenLP.FirstTimeWizard',
|
||||||
'Download complete. Click the finish button to start OpenLP.'))
|
'Download complete. Click the finish button to start OpenLP.'))
|
||||||
else:
|
else:
|
||||||
if self.hasRunWizard:
|
if self.has_run_wizard:
|
||||||
self.progressLabel.setText(translate('OpenLP.FirstTimeWizard',
|
self.progress_label.setText(translate('OpenLP.FirstTimeWizard',
|
||||||
'Click the finish button to return to OpenLP.'))
|
'Click the finish button to return to OpenLP.'))
|
||||||
else:
|
else:
|
||||||
self.progressLabel.setText(translate('OpenLP.FirstTimeWizard',
|
self.progress_label.setText(translate('OpenLP.FirstTimeWizard',
|
||||||
'Click the finish button to start OpenLP.'))
|
'Click the finish button to start OpenLP.'))
|
||||||
self.finishButton.setVisible(True)
|
self.finish_button.setVisible(True)
|
||||||
self.finishButton.setEnabled(True)
|
self.finish_button.setEnabled(True)
|
||||||
self.cancelButton.setVisible(False)
|
self.cancel_button.setVisible(False)
|
||||||
self.nextButton.setVisible(False)
|
self.next_button.setVisible(False)
|
||||||
self.application.process_events()
|
self.application.process_events()
|
||||||
|
|
||||||
def _performWizard(self):
|
def _perform_wizard(self):
|
||||||
"""
|
"""
|
||||||
Run the tasks in the wizard.
|
Run the tasks in the wizard.
|
||||||
"""
|
"""
|
||||||
# Set plugin states
|
# Set plugin states
|
||||||
self._incrementProgressBar(translate('OpenLP.FirstTimeWizard', 'Enabling selected plugins...'))
|
self._increment_progress_bar(translate('OpenLP.FirstTimeWizard', 'Enabling selected plugins...'))
|
||||||
self._setPluginStatus(self.songsCheckBox, u'songs/status')
|
self._set_plugin_status(self.songs_check_box, u'songs/status')
|
||||||
self._setPluginStatus(self.bibleCheckBox, u'bibles/status')
|
self._set_plugin_status(self.bible_check_box, u'bibles/status')
|
||||||
# TODO Presentation plugin is not yet working on Mac OS X.
|
# TODO Presentation plugin is not yet working on Mac OS X.
|
||||||
# For now just ignore it.
|
# For now just ignore it.
|
||||||
if sys.platform != 'darwin':
|
if sys.platform != 'darwin':
|
||||||
self._setPluginStatus(self.presentationCheckBox, u'presentations/status')
|
self._set_plugin_status(self.presentation_check_box, u'presentations/status')
|
||||||
self._setPluginStatus(self.imageCheckBox, u'images/status')
|
self._set_plugin_status(self.image_check_box, u'images/status')
|
||||||
self._setPluginStatus(self.mediaCheckBox, u'media/status')
|
self._set_plugin_status(self.media_check_box, u'media/status')
|
||||||
self._setPluginStatus(self.remoteCheckBox, u'remotes/status')
|
self._set_plugin_status(self.remote_check_box, u'remotes/status')
|
||||||
self._setPluginStatus(self.customCheckBox, u'custom/status')
|
self._set_plugin_status(self.custom_check_box, u'custom/status')
|
||||||
self._setPluginStatus(self.songUsageCheckBox, u'songusage/status')
|
self._set_plugin_status(self.song_usage_check_box, u'songusage/status')
|
||||||
self._setPluginStatus(self.alertCheckBox, u'alerts/status')
|
self._set_plugin_status(self.alert_check_box, u'alerts/status')
|
||||||
if self.web_access:
|
if self.web_access:
|
||||||
# Build directories for downloads
|
# Build directories for downloads
|
||||||
songs_destination = os.path.join(
|
songs_destination = os.path.join(
|
||||||
@ -430,42 +431,42 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
|
|||||||
bibles_destination = AppLocation.get_section_data_path(u'bibles')
|
bibles_destination = AppLocation.get_section_data_path(u'bibles')
|
||||||
themes_destination = AppLocation.get_section_data_path(u'themes')
|
themes_destination = AppLocation.get_section_data_path(u'themes')
|
||||||
# Download songs
|
# Download songs
|
||||||
for i in xrange(self.songsListWidget.count()):
|
for i in xrange(self.songs_list_widget.count()):
|
||||||
item = self.songsListWidget.item(i)
|
item = self.songs_list_widget.item(i)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
filename = item.data(QtCore.Qt.UserRole)
|
filename = item.data(QtCore.Qt.UserRole)
|
||||||
self._incrementProgressBar(self.downloading % filename, 0)
|
self._increment_progress_bar(self.downloading % filename, 0)
|
||||||
self.previous_size = 0
|
self.previous_size = 0
|
||||||
destination = os.path.join(songs_destination, unicode(filename))
|
destination = os.path.join(songs_destination, unicode(filename))
|
||||||
self.urlGetFile(u'%s%s' % (self.web, filename), destination)
|
self.url_get_file(u'%s%s' % (self.web, filename), destination)
|
||||||
# Download Bibles
|
# Download Bibles
|
||||||
bibles_iterator = QtGui.QTreeWidgetItemIterator(
|
bibles_iterator = QtGui.QTreeWidgetItemIterator(
|
||||||
self.biblesTreeWidget)
|
self.bibles_tree_widget)
|
||||||
while bibles_iterator.value():
|
while bibles_iterator.value():
|
||||||
item = bibles_iterator.value()
|
item = bibles_iterator.value()
|
||||||
if item.parent() and item.checkState(0) == QtCore.Qt.Checked:
|
if item.parent() and item.checkState(0) == QtCore.Qt.Checked:
|
||||||
bible = item.data(0, QtCore.Qt.UserRole)
|
bible = item.data(0, QtCore.Qt.UserRole)
|
||||||
self._incrementProgressBar(self.downloading % bible, 0)
|
self._increment_progress_bar(self.downloading % bible, 0)
|
||||||
self.previous_size = 0
|
self.previous_size = 0
|
||||||
self.urlGetFile(u'%s%s' % (self.web, bible), os.path.join(bibles_destination, bible))
|
self.url_get_file(u'%s%s' % (self.web, bible), os.path.join(bibles_destination, bible))
|
||||||
bibles_iterator += 1
|
bibles_iterator += 1
|
||||||
# Download themes
|
# Download themes
|
||||||
for i in xrange(self.themesListWidget.count()):
|
for i in xrange(self.themes_list_widget.count()):
|
||||||
item = self.themesListWidget.item(i)
|
item = self.themes_list_widget.item(i)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
theme = item.data(QtCore.Qt.UserRole)
|
theme = item.data(QtCore.Qt.UserRole)
|
||||||
self._incrementProgressBar(self.downloading % theme, 0)
|
self._increment_progress_bar(self.downloading % theme, 0)
|
||||||
self.previous_size = 0
|
self.previous_size = 0
|
||||||
self.urlGetFile(u'%s%s' % (self.web, theme), os.path.join(themes_destination, theme))
|
self.url_get_file(u'%s%s' % (self.web, theme), os.path.join(themes_destination, theme))
|
||||||
# Set Default Display
|
# Set Default Display
|
||||||
if self.displayComboBox.currentIndex() != -1:
|
if self.display_combo_box.currentIndex() != -1:
|
||||||
Settings().setValue(u'core/monitor', self.displayComboBox.currentIndex())
|
Settings().setValue(u'core/monitor', self.display_combo_box.currentIndex())
|
||||||
self.screens.set_current_display(self.displayComboBox.currentIndex())
|
self.screens.set_current_display(self.display_combo_box.currentIndex())
|
||||||
# Set Global Theme
|
# Set Global Theme
|
||||||
if self.themeComboBox.currentIndex() != -1:
|
if self.theme_combo_box.currentIndex() != -1:
|
||||||
Settings().setValue(u'themes/global theme', self.themeComboBox.currentText())
|
Settings().setValue(u'themes/global theme', self.theme_combo_box.currentText())
|
||||||
|
|
||||||
def _setPluginStatus(self, field, tag):
|
def _set_plugin_status(self, field, tag):
|
||||||
"""
|
"""
|
||||||
Set the status of a plugin.
|
Set the status of a plugin.
|
||||||
"""
|
"""
|
||||||
|
@ -55,200 +55,199 @@ class Ui_FirstTimeWizard(object):
|
|||||||
"""
|
"""
|
||||||
The UI widgets for the first time wizard.
|
The UI widgets for the first time wizard.
|
||||||
"""
|
"""
|
||||||
def setupUi(self, FirstTimeWizard):
|
def setupUi(self, first_time_wizard):
|
||||||
"""
|
"""
|
||||||
Set up the UI.
|
Set up the UI.
|
||||||
"""
|
"""
|
||||||
FirstTimeWizard.setObjectName(u'FirstTimeWizard')
|
first_time_wizard.setObjectName(u'first_time_wizard')
|
||||||
FirstTimeWizard.resize(550, 386)
|
first_time_wizard.resize(550, 386)
|
||||||
FirstTimeWizard.setModal(True)
|
first_time_wizard.setModal(True)
|
||||||
FirstTimeWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
|
first_time_wizard.setWizardStyle(QtGui.QWizard.ModernStyle)
|
||||||
FirstTimeWizard.setOptions(QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage |
|
first_time_wizard.setOptions(QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage |
|
||||||
QtGui.QWizard.NoBackButtonOnLastPage | QtGui.QWizard.HaveCustomButton1)
|
QtGui.QWizard.NoBackButtonOnLastPage | QtGui.QWizard.HaveCustomButton1)
|
||||||
self.finishButton = self.button(QtGui.QWizard.FinishButton)
|
self.finish_button = self.button(QtGui.QWizard.FinishButton)
|
||||||
self.noInternetFinishButton = self.button(QtGui.QWizard.CustomButton1)
|
self.no_internet_finish_button = self.button(QtGui.QWizard.CustomButton1)
|
||||||
self.cancelButton = self.button(QtGui.QWizard.CancelButton)
|
self.cancel_button = self.button(QtGui.QWizard.CancelButton)
|
||||||
self.nextButton = self.button(QtGui.QWizard.NextButton)
|
self.next_button = self.button(QtGui.QWizard.NextButton)
|
||||||
self.backButton = self.button(QtGui.QWizard.BackButton)
|
self.back_button = self.button(QtGui.QWizard.BackButton)
|
||||||
add_welcome_page(FirstTimeWizard, u':/wizards/wizard_firsttime.bmp')
|
add_welcome_page(first_time_wizard, u':/wizards/wizard_firsttime.bmp')
|
||||||
# The plugins page
|
# The plugins page
|
||||||
self.pluginPage = QtGui.QWizardPage()
|
self.plugin_page = QtGui.QWizardPage()
|
||||||
self.pluginPage.setObjectName(u'pluginPage')
|
self.plugin_page.setObjectName(u'plugin_page')
|
||||||
self.pluginLayout = QtGui.QVBoxLayout(self.pluginPage)
|
self.plugin_layout = QtGui.QVBoxLayout(self.plugin_page)
|
||||||
self.pluginLayout.setContentsMargins(40, 15, 40, 0)
|
self.plugin_layout.setContentsMargins(40, 15, 40, 0)
|
||||||
self.pluginLayout.setObjectName(u'pluginLayout')
|
self.plugin_layout.setObjectName(u'plugin_layout')
|
||||||
self.songsCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.songs_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.songsCheckBox.setChecked(True)
|
self.songs_check_box.setChecked(True)
|
||||||
self.songsCheckBox.setObjectName(u'songsCheckBox')
|
self.songs_check_box.setObjectName(u'songs_check_box')
|
||||||
self.pluginLayout.addWidget(self.songsCheckBox)
|
self.plugin_layout.addWidget(self.songs_check_box)
|
||||||
self.customCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.custom_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.customCheckBox.setChecked(True)
|
self.custom_check_box.setChecked(True)
|
||||||
self.customCheckBox.setObjectName(u'customCheckBox')
|
self.custom_check_box.setObjectName(u'custom_check_box')
|
||||||
self.pluginLayout.addWidget(self.customCheckBox)
|
self.plugin_layout.addWidget(self.custom_check_box)
|
||||||
self.bibleCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.bible_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.bibleCheckBox.setChecked(True)
|
self.bible_check_box.setChecked(True)
|
||||||
self.bibleCheckBox.setObjectName(u'bibleCheckBox')
|
self.bible_check_box.setObjectName(u'bible_check_box')
|
||||||
self.pluginLayout.addWidget(self.bibleCheckBox)
|
self.plugin_layout.addWidget(self.bible_check_box)
|
||||||
self.imageCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.image_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.imageCheckBox.setChecked(True)
|
self.image_check_box.setChecked(True)
|
||||||
self.imageCheckBox.setObjectName(u'imageCheckBox')
|
self.image_check_box.setObjectName(u'image_check_box')
|
||||||
self.pluginLayout.addWidget(self.imageCheckBox)
|
self.plugin_layout.addWidget(self.image_check_box)
|
||||||
# TODO Presentation plugin is not yet working on Mac OS X.
|
# TODO Presentation plugin is not yet working on Mac OS X.
|
||||||
# For now just ignore it.
|
# For now just ignore it.
|
||||||
if sys.platform != 'darwin':
|
if sys.platform != 'darwin':
|
||||||
self.presentationCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.presentation_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.presentationCheckBox.setChecked(True)
|
self.presentation_check_box.setChecked(True)
|
||||||
self.presentationCheckBox.setObjectName(u'presentationCheckBox')
|
self.presentation_check_box.setObjectName(u'presentation_check_box')
|
||||||
self.pluginLayout.addWidget(self.presentationCheckBox)
|
self.plugin_layout.addWidget(self.presentation_check_box)
|
||||||
self.mediaCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.media_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.mediaCheckBox.setChecked(True)
|
self.media_check_box.setChecked(True)
|
||||||
self.mediaCheckBox.setObjectName(u'mediaCheckBox')
|
self.media_check_box.setObjectName(u'media_check_box')
|
||||||
self.pluginLayout.addWidget(self.mediaCheckBox)
|
self.plugin_layout.addWidget(self.media_check_box)
|
||||||
self.remoteCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.remote_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.remoteCheckBox.setObjectName(u'remoteCheckBox')
|
self.remote_check_box.setObjectName(u'remote_check_box')
|
||||||
self.pluginLayout.addWidget(self.remoteCheckBox)
|
self.plugin_layout.addWidget(self.remote_check_box)
|
||||||
self.songUsageCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.song_usage_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.songUsageCheckBox.setChecked(True)
|
self.song_usage_check_box.setChecked(True)
|
||||||
self.songUsageCheckBox.setObjectName(u'songUsageCheckBox')
|
self.song_usage_check_box.setObjectName(u'song_usage_check_box')
|
||||||
self.pluginLayout.addWidget(self.songUsageCheckBox)
|
self.plugin_layout.addWidget(self.song_usage_check_box)
|
||||||
self.alertCheckBox = QtGui.QCheckBox(self.pluginPage)
|
self.alert_check_box = QtGui.QCheckBox(self.plugin_page)
|
||||||
self.alertCheckBox.setChecked(True)
|
self.alert_check_box.setChecked(True)
|
||||||
self.alertCheckBox.setObjectName(u'alertCheckBox')
|
self.alert_check_box.setObjectName(u'alert_check_box')
|
||||||
self.pluginLayout.addWidget(self.alertCheckBox)
|
self.plugin_layout.addWidget(self.alert_check_box)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.Plugins, self.pluginPage)
|
first_time_wizard.setPage(FirstTimePage.Plugins, self.plugin_page)
|
||||||
# The "you don't have an internet connection" page.
|
# The "you don't have an internet connection" page.
|
||||||
self.noInternetPage = QtGui.QWizardPage()
|
self.no_internet_page = QtGui.QWizardPage()
|
||||||
self.noInternetPage.setObjectName(u'noInternetPage')
|
self.no_internet_page.setObjectName(u'no_internet_page')
|
||||||
self.noInternetLayout = QtGui.QVBoxLayout(self.noInternetPage)
|
self.no_internet_layout = QtGui.QVBoxLayout(self.no_internet_page)
|
||||||
self.noInternetLayout.setContentsMargins(50, 30, 50, 40)
|
self.no_internet_layout.setContentsMargins(50, 30, 50, 40)
|
||||||
self.noInternetLayout.setObjectName(u'noInternetLayout')
|
self.no_internet_layout.setObjectName(u'no_internet_layout')
|
||||||
self.noInternetLabel = QtGui.QLabel(self.noInternetPage)
|
self.no_internet_label = QtGui.QLabel(self.no_internet_page)
|
||||||
self.noInternetLabel.setWordWrap(True)
|
self.no_internet_label.setWordWrap(True)
|
||||||
self.noInternetLabel.setObjectName(u'noInternetLabel')
|
self.no_internet_label.setObjectName(u'no_internet_label')
|
||||||
self.noInternetLayout.addWidget(self.noInternetLabel)
|
self.no_internet_layout.addWidget(self.no_internet_label)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.NoInternet, self.noInternetPage)
|
first_time_wizard.setPage(FirstTimePage.NoInternet, self.no_internet_page)
|
||||||
# The song samples page
|
# The song samples page
|
||||||
self.songsPage = QtGui.QWizardPage()
|
self.songs_page = QtGui.QWizardPage()
|
||||||
self.songsPage.setObjectName(u'songsPage')
|
self.songs_page.setObjectName(u'songs_page')
|
||||||
self.songsLayout = QtGui.QVBoxLayout(self.songsPage)
|
self.songs_layout = QtGui.QVBoxLayout(self.songs_page)
|
||||||
self.songsLayout.setContentsMargins(50, 20, 50, 20)
|
self.songs_layout.setContentsMargins(50, 20, 50, 20)
|
||||||
self.songsLayout.setObjectName(u'songsLayout')
|
self.songs_layout.setObjectName(u'songs_layout')
|
||||||
self.songsListWidget = QtGui.QListWidget(self.songsPage)
|
self.songs_list_widget = QtGui.QListWidget(self.songs_page)
|
||||||
self.songsListWidget.setAlternatingRowColors(True)
|
self.songs_list_widget.setAlternatingRowColors(True)
|
||||||
self.songsListWidget.setObjectName(u'songsListWidget')
|
self.songs_list_widget.setObjectName(u'songs_list_widget')
|
||||||
self.songsLayout.addWidget(self.songsListWidget)
|
self.songs_layout.addWidget(self.songs_list_widget)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.Songs, self.songsPage)
|
first_time_wizard.setPage(FirstTimePage.Songs, self.songs_page)
|
||||||
# The Bible samples page
|
# The Bible samples page
|
||||||
self.biblesPage = QtGui.QWizardPage()
|
self.bibles_page = QtGui.QWizardPage()
|
||||||
self.biblesPage.setObjectName(u'biblesPage')
|
self.bibles_page.setObjectName(u'bibles_page')
|
||||||
self.biblesLayout = QtGui.QVBoxLayout(self.biblesPage)
|
self.bibles_layout = QtGui.QVBoxLayout(self.bibles_page)
|
||||||
self.biblesLayout.setContentsMargins(50, 20, 50, 20)
|
self.bibles_layout.setContentsMargins(50, 20, 50, 20)
|
||||||
self.biblesLayout.setObjectName(u'biblesLayout')
|
self.bibles_layout.setObjectName(u'bibles_layout')
|
||||||
self.biblesTreeWidget = QtGui.QTreeWidget(self.biblesPage)
|
self.bibles_tree_widget = QtGui.QTreeWidget(self.bibles_page)
|
||||||
self.biblesTreeWidget.setAlternatingRowColors(True)
|
self.bibles_tree_widget.setAlternatingRowColors(True)
|
||||||
self.biblesTreeWidget.header().setVisible(False)
|
self.bibles_tree_widget.header().setVisible(False)
|
||||||
self.biblesTreeWidget.setObjectName(u'biblesTreeWidget')
|
self.bibles_tree_widget.setObjectName(u'bibles_tree_widget')
|
||||||
self.biblesLayout.addWidget(self.biblesTreeWidget)
|
self.bibles_layout.addWidget(self.bibles_tree_widget)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.Bibles, self.biblesPage)
|
first_time_wizard.setPage(FirstTimePage.Bibles, self.bibles_page)
|
||||||
# The theme samples page
|
# The theme samples page
|
||||||
self.themesPage = QtGui.QWizardPage()
|
self.themes_page = QtGui.QWizardPage()
|
||||||
self.themesPage.setObjectName(u'themesPage')
|
self.themes_page.setObjectName(u'themes_page')
|
||||||
self.themesLayout = QtGui.QVBoxLayout(self.themesPage)
|
self.themes_layout = QtGui.QVBoxLayout(self.themes_page)
|
||||||
self.themesLayout.setContentsMargins(20, 50, 20, 60)
|
self.themes_layout.setContentsMargins(20, 50, 20, 60)
|
||||||
self.themesLayout.setObjectName(u'themesLayout')
|
self.themes_layout.setObjectName(u'themes_layout')
|
||||||
self.themesListWidget = QtGui.QListWidget(self.themesPage)
|
self.themes_list_widget = QtGui.QListWidget(self.themes_page)
|
||||||
self.themesListWidget.setViewMode(QtGui.QListView.IconMode)
|
self.themes_list_widget.setViewMode(QtGui.QListView.IconMode)
|
||||||
self.themesListWidget.setMovement(QtGui.QListView.Static)
|
self.themes_list_widget.setMovement(QtGui.QListView.Static)
|
||||||
self.themesListWidget.setFlow(QtGui.QListView.LeftToRight)
|
self.themes_list_widget.setFlow(QtGui.QListView.LeftToRight)
|
||||||
self.themesListWidget.setSpacing(4)
|
self.themes_list_widget.setSpacing(4)
|
||||||
self.themesListWidget.setUniformItemSizes(True)
|
self.themes_list_widget.setUniformItemSizes(True)
|
||||||
self.themesListWidget.setIconSize(QtCore.QSize(133, 100))
|
self.themes_list_widget.setIconSize(QtCore.QSize(133, 100))
|
||||||
self.themesListWidget.setWrapping(False)
|
self.themes_list_widget.setWrapping(False)
|
||||||
self.themesListWidget.setObjectName(u'themesListWidget')
|
self.themes_list_widget.setObjectName(u'themes_list_widget')
|
||||||
self.themesLayout.addWidget(self.themesListWidget)
|
self.themes_layout.addWidget(self.themes_list_widget)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.Themes, self.themesPage)
|
first_time_wizard.setPage(FirstTimePage.Themes, self.themes_page)
|
||||||
# the default settings page
|
# the default settings page
|
||||||
self.defaultsPage = QtGui.QWizardPage()
|
self.defaults_page = QtGui.QWizardPage()
|
||||||
self.defaultsPage.setObjectName(u'defaultsPage')
|
self.defaults_page.setObjectName(u'defaults_page')
|
||||||
self.defaultsLayout = QtGui.QFormLayout(self.defaultsPage)
|
self.defaults_layout = QtGui.QFormLayout(self.defaults_page)
|
||||||
self.defaultsLayout.setContentsMargins(50, 20, 50, 20)
|
self.defaults_layout.setContentsMargins(50, 20, 50, 20)
|
||||||
self.defaultsLayout.setObjectName(u'defaultsLayout')
|
self.defaults_layout.setObjectName(u'defaults_layout')
|
||||||
self.displayLabel = QtGui.QLabel(self.defaultsPage)
|
self.display_label = QtGui.QLabel(self.defaults_page)
|
||||||
self.displayLabel.setObjectName(u'displayLabel')
|
self.display_label.setObjectName(u'display_label')
|
||||||
self.displayComboBox = QtGui.QComboBox(self.defaultsPage)
|
self.display_combo_box = QtGui.QComboBox(self.defaults_page)
|
||||||
self.displayComboBox.setEditable(False)
|
self.display_combo_box.setEditable(False)
|
||||||
self.displayComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
|
self.display_combo_box.setInsertPolicy(QtGui.QComboBox.NoInsert)
|
||||||
self.displayComboBox.setObjectName(u'displayComboBox')
|
self.display_combo_box.setObjectName(u'display_combo_box')
|
||||||
self.defaultsLayout.addRow(self.displayLabel, self.displayComboBox)
|
self.defaults_layout.addRow(self.display_label, self.display_combo_box)
|
||||||
self.themeLabel = QtGui.QLabel(self.defaultsPage)
|
self.theme_label = QtGui.QLabel(self.defaults_page)
|
||||||
self.themeLabel.setObjectName(u'themeLabel')
|
self.theme_label.setObjectName(u'theme_label')
|
||||||
self.themeComboBox = QtGui.QComboBox(self.defaultsPage)
|
self.theme_combo_box = QtGui.QComboBox(self.defaults_page)
|
||||||
self.themeComboBox.setEditable(False)
|
self.theme_combo_box.setEditable(False)
|
||||||
self.themeComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
|
self.theme_combo_box.setInsertPolicy(QtGui.QComboBox.NoInsert)
|
||||||
self.themeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
|
self.theme_combo_box.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
|
||||||
self.themeComboBox.setObjectName(u'themeComboBox')
|
self.theme_combo_box.setObjectName(u'theme_combo_box')
|
||||||
self.defaultsLayout.addRow(self.themeLabel, self.themeComboBox)
|
self.defaults_layout.addRow(self.theme_label, self.theme_combo_box)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.Defaults, self.defaultsPage)
|
first_time_wizard.setPage(FirstTimePage.Defaults, self.defaults_page)
|
||||||
# Progress page
|
# Progress page
|
||||||
self.progressPage = QtGui.QWizardPage()
|
self.progress_page = QtGui.QWizardPage()
|
||||||
self.progressPage.setObjectName(u'progressPage')
|
self.progress_page.setObjectName(u'progress_page')
|
||||||
self.progressLayout = QtGui.QVBoxLayout(self.progressPage)
|
self.progress_layout = QtGui.QVBoxLayout(self.progress_page)
|
||||||
self.progressLayout.setMargin(48)
|
self.progress_layout.setMargin(48)
|
||||||
self.progressLayout.setObjectName(u'progressLayout')
|
self.progress_layout.setObjectName(u'progress_layout')
|
||||||
self.progressLabel = QtGui.QLabel(self.progressPage)
|
self.progress_label = QtGui.QLabel(self.progress_page)
|
||||||
self.progressLabel.setObjectName(u'progressLabel')
|
self.progress_label.setObjectName(u'progress_label')
|
||||||
self.progressLayout.addWidget(self.progressLabel)
|
self.progress_layout.addWidget(self.progress_label)
|
||||||
self.progressBar = QtGui.QProgressBar(self.progressPage)
|
self.progress_bar = QtGui.QProgressBar(self.progress_page)
|
||||||
self.progressBar.setObjectName(u'progressBar')
|
self.progress_bar.setObjectName(u'progress_bar')
|
||||||
self.progressLayout.addWidget(self.progressBar)
|
self.progress_layout.addWidget(self.progress_bar)
|
||||||
FirstTimeWizard.setPage(FirstTimePage.Progress, self.progressPage)
|
first_time_wizard.setPage(FirstTimePage.Progress, self.progress_page)
|
||||||
self.retranslateUi(FirstTimeWizard)
|
self.retranslateUi(first_time_wizard)
|
||||||
|
|
||||||
def retranslateUi(self, FirstTimeWizard):
|
def retranslateUi(self, first_time_wizard):
|
||||||
"""
|
"""
|
||||||
Translate the UI on the fly
|
Translate the UI on the fly
|
||||||
"""
|
"""
|
||||||
FirstTimeWizard.setWindowTitle(translate('OpenLP.FirstTimeWizard', 'First Time Wizard'))
|
first_time_wizard.setWindowTitle(translate('OpenLP.FirstTimeWizard', 'First Time Wizard'))
|
||||||
self.title_label.setText(u'<span style="font-size:14pt; font-weight:600;">%s</span>' %
|
self.title_label.setText(u'<span style="font-size:14pt; font-weight:600;">%s</span>' %
|
||||||
translate('OpenLP.FirstTimeWizard', 'Welcome to the First Time Wizard'))
|
translate('OpenLP.FirstTimeWizard', 'Welcome to the First Time Wizard'))
|
||||||
self.information_label.setText(translate('OpenLP.FirstTimeWizard',
|
self.information_label.setText(translate('OpenLP.FirstTimeWizard',
|
||||||
'This wizard will help you to configure OpenLP for initial use. Click the next button below to start.'))
|
'This wizard will help you to configure OpenLP for initial use. Click the next button below to start.'))
|
||||||
self.pluginPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Activate required Plugins'))
|
self.plugin_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Activate required Plugins'))
|
||||||
self.pluginPage.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select the Plugins you wish to use. '))
|
self.plugin_page.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select the Plugins you wish to use. '))
|
||||||
self.songsCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Songs'))
|
self.songs_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Songs'))
|
||||||
self.customCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Custom Slides'))
|
self.custom_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Custom Slides'))
|
||||||
self.bibleCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Bible'))
|
self.bible_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Bible'))
|
||||||
self.imageCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Images'))
|
self.image_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Images'))
|
||||||
# TODO Presentation plugin is not yet working on Mac OS X.
|
# TODO Presentation plugin is not yet working on Mac OS X.
|
||||||
# For now just ignore it.
|
# For now just ignore it.
|
||||||
if sys.platform != 'darwin':
|
if sys.platform != 'darwin':
|
||||||
self.presentationCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Presentations'))
|
self.presentation_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Presentations'))
|
||||||
self.mediaCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Media (Audio and Video)'))
|
self.media_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Media (Audio and Video)'))
|
||||||
self.remoteCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Allow remote access'))
|
self.remote_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Allow remote access'))
|
||||||
self.songUsageCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Monitor Song Usage'))
|
self.song_usage_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Monitor Song Usage'))
|
||||||
self.alertCheckBox.setText(translate('OpenLP.FirstTimeWizard', 'Allow Alerts'))
|
self.alert_check_box.setText(translate('OpenLP.FirstTimeWizard', 'Allow Alerts'))
|
||||||
self.noInternetPage.setTitle(translate('OpenLP.FirstTimeWizard', 'No Internet Connection'))
|
self.no_internet_page.setTitle(translate('OpenLP.FirstTimeWizard', 'No Internet Connection'))
|
||||||
self.noInternetPage.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Unable to detect an Internet connection.'))
|
self.no_internet_page.setSubTitle(
|
||||||
self.noInternetText = translate('OpenLP.FirstTimeWizard',
|
translate('OpenLP.FirstTimeWizard', 'Unable to detect an Internet connection.'))
|
||||||
'No Internet connection was found. The First Time Wizard needs an '
|
self.no_internet_text = translate('OpenLP.FirstTimeWizard',
|
||||||
'Internet connection in order to be able to download sample '
|
'No Internet connection was found. The First Time Wizard needs an Internet connection in order to be able '
|
||||||
'songs, Bibles and themes. Click the Finish button now to start '
|
'to download sample songs, Bibles and themes. Click the Finish button now to start OpenLP with initial '
|
||||||
'OpenLP with initial settings and no sample data.\n\nTo re-run the '
|
'settings and no sample data.\n\nTo re-run the First Time Wizard and import this sample data at a later '
|
||||||
'First Time Wizard and import this sample data at a later time, '
|
'time, check your Internet connection and re-run this wizard by selecting "Tools/Re-run First Time Wizard" '
|
||||||
'check your Internet connection and re-run this wizard by '
|
'from OpenLP.')
|
||||||
'selecting "Tools/Re-run First Time Wizard" from OpenLP.')
|
|
||||||
self.cancelWizardText = translate('OpenLP.FirstTimeWizard',
|
self.cancelWizardText = translate('OpenLP.FirstTimeWizard',
|
||||||
'\n\nTo cancel the First Time Wizard completely (and not start OpenLP), click the Cancel button now.')
|
'\n\nTo cancel the First Time Wizard completely (and not start OpenLP), click the Cancel button now.')
|
||||||
self.songsPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Sample Songs'))
|
self.songs_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Sample Songs'))
|
||||||
self.songsPage.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select and download public domain songs.'))
|
self.songs_page.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select and download public domain songs.'))
|
||||||
self.biblesPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Sample Bibles'))
|
self.bibles_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Sample Bibles'))
|
||||||
self.biblesPage.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select and download free Bibles.'))
|
self.bibles_page.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select and download free Bibles.'))
|
||||||
self.themesPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Sample Themes'))
|
self.themes_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Sample Themes'))
|
||||||
self.themesPage.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select and download sample themes.'))
|
self.themes_page.setSubTitle(translate('OpenLP.FirstTimeWizard', 'Select and download sample themes.'))
|
||||||
self.defaultsPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Default Settings'))
|
self.defaults_page.setTitle(translate('OpenLP.FirstTimeWizard', 'Default Settings'))
|
||||||
self.defaultsPage.setSubTitle(translate('OpenLP.FirstTimeWizard',
|
self.defaults_page.setSubTitle(translate('OpenLP.FirstTimeWizard',
|
||||||
'Set up default settings to be used by OpenLP.'))
|
'Set up default settings to be used by OpenLP.'))
|
||||||
self.displayLabel.setText(translate('OpenLP.FirstTimeWizard', 'Default output display:'))
|
self.display_label.setText(translate('OpenLP.FirstTimeWizard', 'Default output display:'))
|
||||||
self.themeLabel.setText(translate('OpenLP.FirstTimeWizard', 'Select default theme:'))
|
self.theme_label.setText(translate('OpenLP.FirstTimeWizard', 'Select default theme:'))
|
||||||
self.progressLabel.setText(translate('OpenLP.FirstTimeWizard', 'Starting configuration process...'))
|
self.progress_label.setText(translate('OpenLP.FirstTimeWizard', 'Starting configuration process...'))
|
||||||
FirstTimeWizard.setButtonText(QtGui.QWizard.CustomButton1, translate('OpenLP.FirstTimeWizard', 'Finish'))
|
first_time_wizard.setButtonText(QtGui.QWizard.CustomButton1, translate('OpenLP.FirstTimeWizard', 'Finish'))
|
||||||
|
@ -100,10 +100,10 @@ class Ui_MainWindow(object):
|
|||||||
self.main_contentLayout.setMargin(0)
|
self.main_contentLayout.setMargin(0)
|
||||||
self.main_contentLayout.setObjectName(u'main_contentLayout')
|
self.main_contentLayout.setObjectName(u'main_contentLayout')
|
||||||
main_window.setCentralWidget(self.main_content)
|
main_window.setCentralWidget(self.main_content)
|
||||||
self.controlSplitter = QtGui.QSplitter(self.main_content)
|
self.control_splitter = QtGui.QSplitter(self.main_content)
|
||||||
self.controlSplitter.setOrientation(QtCore.Qt.Horizontal)
|
self.control_splitter.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.controlSplitter.setObjectName(u'controlSplitter')
|
self.control_splitter.setObjectName(u'control_splitter')
|
||||||
self.main_contentLayout.addWidget(self.controlSplitter)
|
self.main_contentLayout.addWidget(self.control_splitter)
|
||||||
# Create slide controllers
|
# Create slide controllers
|
||||||
self.preview_controller = SlideController(self)
|
self.preview_controller = SlideController(self)
|
||||||
self.live_controller = SlideController(self, True)
|
self.live_controller = SlideController(self, True)
|
||||||
@ -113,9 +113,9 @@ class Ui_MainWindow(object):
|
|||||||
panel_locked = Settings().value(u'user interface/lock panel')
|
panel_locked = Settings().value(u'user interface/lock panel')
|
||||||
self.live_controller.panel.setVisible(live_visible)
|
self.live_controller.panel.setVisible(live_visible)
|
||||||
# Create menu
|
# Create menu
|
||||||
self.menuBar = QtGui.QMenuBar(main_window)
|
self.menu_bar = QtGui.QMenuBar(main_window)
|
||||||
self.menuBar.setObjectName(u'menuBar')
|
self.menu_bar.setObjectName(u'menu_bar')
|
||||||
self.file_menu = QtGui.QMenu(self.menuBar)
|
self.file_menu = QtGui.QMenu(self.menu_bar)
|
||||||
self.file_menu.setObjectName(u'fileMenu')
|
self.file_menu.setObjectName(u'fileMenu')
|
||||||
self.recent_files_menu = QtGui.QMenu(self.file_menu)
|
self.recent_files_menu = QtGui.QMenu(self.file_menu)
|
||||||
self.recent_files_menu.setObjectName(u'recentFilesMenu')
|
self.recent_files_menu.setObjectName(u'recentFilesMenu')
|
||||||
@ -124,22 +124,22 @@ class Ui_MainWindow(object):
|
|||||||
self.file_export_menu = QtGui.QMenu(self.file_menu)
|
self.file_export_menu = QtGui.QMenu(self.file_menu)
|
||||||
self.file_export_menu.setObjectName(u'file_export_menu')
|
self.file_export_menu.setObjectName(u'file_export_menu')
|
||||||
# View Menu
|
# View Menu
|
||||||
self.view_menu = QtGui.QMenu(self.menuBar)
|
self.view_menu = QtGui.QMenu(self.menu_bar)
|
||||||
self.view_menu.setObjectName(u'viewMenu')
|
self.view_menu.setObjectName(u'viewMenu')
|
||||||
self.view_modeMenu = QtGui.QMenu(self.view_menu)
|
self.view_modeMenu = QtGui.QMenu(self.view_menu)
|
||||||
self.view_modeMenu.setObjectName(u'viewModeMenu')
|
self.view_modeMenu.setObjectName(u'viewModeMenu')
|
||||||
# Tools Menu
|
# Tools Menu
|
||||||
self.tools_menu = QtGui.QMenu(self.menuBar)
|
self.tools_menu = QtGui.QMenu(self.menu_bar)
|
||||||
self.tools_menu.setObjectName(u'tools_menu')
|
self.tools_menu.setObjectName(u'tools_menu')
|
||||||
# Settings Menu
|
# Settings Menu
|
||||||
self.settings_menu = QtGui.QMenu(self.menuBar)
|
self.settings_menu = QtGui.QMenu(self.menu_bar)
|
||||||
self.settings_menu.setObjectName(u'settingsMenu')
|
self.settings_menu.setObjectName(u'settingsMenu')
|
||||||
self.settings_language_menu = QtGui.QMenu(self.settings_menu)
|
self.settings_language_menu = QtGui.QMenu(self.settings_menu)
|
||||||
self.settings_language_menu.setObjectName(u'settingsLanguageMenu')
|
self.settings_language_menu.setObjectName(u'settingsLanguageMenu')
|
||||||
# Help Menu
|
# Help Menu
|
||||||
self.help_menu = QtGui.QMenu(self.menuBar)
|
self.help_menu = QtGui.QMenu(self.menu_bar)
|
||||||
self.help_menu.setObjectName(u'helpMenu')
|
self.help_menu.setObjectName(u'helpMenu')
|
||||||
main_window.setMenuBar(self.menuBar)
|
main_window.setMenuBar(self.menu_bar)
|
||||||
self.status_bar = QtGui.QStatusBar(main_window)
|
self.status_bar = QtGui.QStatusBar(main_window)
|
||||||
self.status_bar.setObjectName(u'status_bar')
|
self.status_bar.setObjectName(u'status_bar')
|
||||||
main_window.setStatusBar(self.status_bar)
|
main_window.setStatusBar(self.status_bar)
|
||||||
@ -237,7 +237,7 @@ class Ui_MainWindow(object):
|
|||||||
self.view_live_panel = create_action(main_window, u'viewLivePanel',
|
self.view_live_panel = create_action(main_window, u'viewLivePanel',
|
||||||
can_shortcuts=True, checked=live_visible,
|
can_shortcuts=True, checked=live_visible,
|
||||||
category=UiStrings().View, triggers=self.set_live_panel_visibility)
|
category=UiStrings().View, triggers=self.set_live_panel_visibility)
|
||||||
self.lockPanel = create_action(main_window, u'lockPanel',
|
self.lock_panel = create_action(main_window, u'lockPanel',
|
||||||
can_shortcuts=True, checked=panel_locked,
|
can_shortcuts=True, checked=panel_locked,
|
||||||
category=UiStrings().View,
|
category=UiStrings().View,
|
||||||
triggers=self.set_lock_panel)
|
triggers=self.set_lock_panel)
|
||||||
@ -310,6 +310,10 @@ class Ui_MainWindow(object):
|
|||||||
can_shortcuts=True,
|
can_shortcuts=True,
|
||||||
category=UiStrings().Help, triggers=self.on_online_help_clicked)
|
category=UiStrings().Help, triggers=self.on_online_help_clicked)
|
||||||
self.web_site_item = create_action(main_window, u'webSiteItem', can_shortcuts=True, category=UiStrings().Help)
|
self.web_site_item = create_action(main_window, u'webSiteItem', can_shortcuts=True, category=UiStrings().Help)
|
||||||
|
# Shortcuts not connected to buttons or menu entires.
|
||||||
|
self.search_shortcut_action = create_action(main_window,
|
||||||
|
u'searchShortcut', can_shortcuts=True, category=translate('OpenLP.MainWindow', 'General'),
|
||||||
|
triggers=self.on_search_shortcut_triggered)
|
||||||
add_actions(self.file_import_menu, (self.settings_import_item, None, self.import_theme_item,
|
add_actions(self.file_import_menu, (self.settings_import_item, None, self.import_theme_item,
|
||||||
self.import_language_item))
|
self.import_language_item))
|
||||||
add_actions(self.file_export_menu, (self.settings_export_item, None, self.export_theme_item,
|
add_actions(self.file_export_menu, (self.settings_export_item, None, self.export_theme_item,
|
||||||
@ -321,7 +325,7 @@ class Ui_MainWindow(object):
|
|||||||
add_actions(self.view_modeMenu, (self.mode_default_Item, self.mode_setup_item, self.mode_live_item))
|
add_actions(self.view_modeMenu, (self.mode_default_Item, self.mode_setup_item, self.mode_live_item))
|
||||||
add_actions(self.view_menu, (self.view_modeMenu.menuAction(), None, self.view_media_manager_item,
|
add_actions(self.view_menu, (self.view_modeMenu.menuAction(), None, self.view_media_manager_item,
|
||||||
self.view_service_manager_item, self.view_theme_manager_item, None, self.view_preview_panel,
|
self.view_service_manager_item, self.view_theme_manager_item, None, self.view_preview_panel,
|
||||||
self.view_live_panel, None, self.lockPanel))
|
self.view_live_panel, None, self.lock_panel))
|
||||||
# i18n add Language Actions
|
# i18n add Language Actions
|
||||||
add_actions(self.settings_language_menu, (self.auto_language_item, None))
|
add_actions(self.settings_language_menu, (self.auto_language_item, None))
|
||||||
add_actions(self.settings_language_menu, self.language_group.actions())
|
add_actions(self.settings_language_menu, self.language_group.actions())
|
||||||
@ -342,8 +346,9 @@ class Ui_MainWindow(object):
|
|||||||
self.about_item))
|
self.about_item))
|
||||||
else:
|
else:
|
||||||
add_actions(self.help_menu, (self.on_line_help_item, None, self.web_site_item, self.about_item))
|
add_actions(self.help_menu, (self.on_line_help_item, None, self.web_site_item, self.about_item))
|
||||||
add_actions(self.menuBar, (self.file_menu.menuAction(), self.view_menu.menuAction(),
|
add_actions(self.menu_bar, (self.file_menu.menuAction(), self.view_menu.menuAction(),
|
||||||
self.tools_menu.menuAction(), self.settings_menu.menuAction(), self.help_menu.menuAction()))
|
self.tools_menu.menuAction(), self.settings_menu.menuAction(), self.help_menu.menuAction()))
|
||||||
|
add_actions(self, [self.search_shortcut_action])
|
||||||
# Initialise the translation
|
# Initialise the translation
|
||||||
self.retranslateUi(main_window)
|
self.retranslateUi(main_window)
|
||||||
self.media_tool_box.setCurrentIndex(0)
|
self.media_tool_box.setCurrentIndex(0)
|
||||||
@ -356,12 +361,11 @@ class Ui_MainWindow(object):
|
|||||||
self.set_lock_panel(panel_locked)
|
self.set_lock_panel(panel_locked)
|
||||||
self.settingsImported = False
|
self.settingsImported = False
|
||||||
|
|
||||||
def retranslateUi(self, mainWindow):
|
def retranslateUi(self, main_window):
|
||||||
"""
|
"""
|
||||||
Set up the translation system
|
Set up the translation system
|
||||||
"""
|
"""
|
||||||
mainWindow.mainTitle = UiStrings().OLPV2x
|
main_window.setWindowTitle(UiStrings().OLPV2x)
|
||||||
mainWindow.setWindowTitle(mainWindow.mainTitle)
|
|
||||||
self.file_menu.setTitle(translate('OpenLP.MainWindow', '&File'))
|
self.file_menu.setTitle(translate('OpenLP.MainWindow', '&File'))
|
||||||
self.file_import_menu.setTitle(translate('OpenLP.MainWindow', '&Import'))
|
self.file_import_menu.setTitle(translate('OpenLP.MainWindow', '&Import'))
|
||||||
self.file_export_menu.setTitle(translate('OpenLP.MainWindow', '&Export'))
|
self.file_export_menu.setTitle(translate('OpenLP.MainWindow', '&Export'))
|
||||||
@ -423,8 +427,8 @@ class Ui_MainWindow(object):
|
|||||||
translate('OpenLP.MainWindow', 'Toggle the visibility of the preview panel.'))
|
translate('OpenLP.MainWindow', 'Toggle the visibility of the preview panel.'))
|
||||||
self.view_live_panel.setText(translate('OpenLP.MainWindow', '&Live Panel'))
|
self.view_live_panel.setText(translate('OpenLP.MainWindow', '&Live Panel'))
|
||||||
self.view_live_panel.setToolTip(translate('OpenLP.MainWindow', 'Toggle Live Panel'))
|
self.view_live_panel.setToolTip(translate('OpenLP.MainWindow', 'Toggle Live Panel'))
|
||||||
self.lockPanel.setText(translate('OpenLP.MainWindow', 'L&ock Panels'))
|
self.lock_panel.setText(translate('OpenLP.MainWindow', 'L&ock Panels'))
|
||||||
self.lockPanel.setStatusTip(translate('OpenLP.MainWindow', 'Prevent the panels being moved.'))
|
self.lock_panel.setStatusTip(translate('OpenLP.MainWindow', 'Prevent the panels being moved.'))
|
||||||
self.view_live_panel.setStatusTip(translate('OpenLP.MainWindow', 'Toggle the visibility of the live panel.'))
|
self.view_live_panel.setStatusTip(translate('OpenLP.MainWindow', 'Toggle the visibility of the live panel.'))
|
||||||
self.settingsPluginListItem.setText(translate('OpenLP.MainWindow', '&Plugin List'))
|
self.settingsPluginListItem.setText(translate('OpenLP.MainWindow', '&Plugin List'))
|
||||||
self.settingsPluginListItem.setStatusTip(translate('OpenLP.MainWindow', 'List the Plugins'))
|
self.settingsPluginListItem.setStatusTip(translate('OpenLP.MainWindow', 'List the Plugins'))
|
||||||
@ -433,6 +437,9 @@ class Ui_MainWindow(object):
|
|||||||
if os.name == u'nt':
|
if os.name == u'nt':
|
||||||
self.offlineHelpItem.setText(translate('OpenLP.MainWindow', '&User Guide'))
|
self.offlineHelpItem.setText(translate('OpenLP.MainWindow', '&User Guide'))
|
||||||
self.on_line_help_item.setText(translate('OpenLP.MainWindow', '&Online Help'))
|
self.on_line_help_item.setText(translate('OpenLP.MainWindow', '&Online Help'))
|
||||||
|
self.search_shortcut_action.setText(UiStrings().Search)
|
||||||
|
self.search_shortcut_action.setToolTip(
|
||||||
|
translate('OpenLP.MainWindow', 'Jump to the search box of the current active plugin.'))
|
||||||
self.web_site_item.setText(translate('OpenLP.MainWindow', '&Web Site'))
|
self.web_site_item.setText(translate('OpenLP.MainWindow', '&Web Site'))
|
||||||
for item in self.language_group.actions():
|
for item in self.language_group.actions():
|
||||||
item.setText(item.objectName())
|
item.setText(item.objectName())
|
||||||
@ -467,8 +474,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""
|
"""
|
||||||
This constructor sets up the interface, the various managers, and the
|
This constructor sets up the interface, the various managers, and the plugins.
|
||||||
plugins.
|
|
||||||
"""
|
"""
|
||||||
QtGui.QMainWindow.__init__(self)
|
QtGui.QMainWindow.__init__(self)
|
||||||
Registry().register(u'main_window', self)
|
Registry().register(u'main_window', self)
|
||||||
@ -491,7 +497,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.new_data_path = None
|
self.new_data_path = None
|
||||||
self.copy_data = False
|
self.copy_data = False
|
||||||
Settings().set_up_default_values()
|
Settings().set_up_default_values()
|
||||||
self.service_not_saved = False
|
|
||||||
self.about_form = AboutForm(self)
|
self.about_form = AboutForm(self)
|
||||||
self.media_controller = MediaController()
|
self.media_controller = MediaController()
|
||||||
self.settings_form = SettingsForm(self)
|
self.settings_form = SettingsForm(self)
|
||||||
@ -536,22 +541,31 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
Registry().register_function(u'theme_update_global', self.default_theme_changed)
|
Registry().register_function(u'theme_update_global', self.default_theme_changed)
|
||||||
Registry().register_function(u'openlp_version_check', self.version_notice)
|
Registry().register_function(u'openlp_version_check', self.version_notice)
|
||||||
Registry().register_function(u'config_screen_changed', self.screen_changed)
|
Registry().register_function(u'config_screen_changed', self.screen_changed)
|
||||||
|
Registry().register_function(u'bootstrap_post_set_up', self.restore_current_media_manager_item)
|
||||||
self.renderer = Renderer()
|
self.renderer = Renderer()
|
||||||
log.info(u'Load data from Settings')
|
|
||||||
if Settings().value(u'advanced/save current plugin'):
|
|
||||||
savedPlugin = Settings().value(u'advanced/current media plugin')
|
|
||||||
if savedPlugin != -1:
|
|
||||||
self.media_tool_box.setCurrentIndex(savedPlugin)
|
|
||||||
# Reset the cursor
|
# Reset the cursor
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def setAutoLanguage(self, value):
|
def restore_current_media_manager_item(self):
|
||||||
"""
|
"""
|
||||||
Set the language to automatic.
|
Called on start up to restore the last active media plugin.
|
||||||
"""
|
"""
|
||||||
self.language_group.setDisabled(value)
|
log.info(u'Load data from Settings')
|
||||||
LanguageManager.auto_language = value
|
if Settings().value(u'advanced/save current plugin'):
|
||||||
LanguageManager.set_language(self.language_group.checkedAction())
|
saved_plugin_id = Settings().value(u'advanced/current media plugin')
|
||||||
|
if saved_plugin_id != -1:
|
||||||
|
self.media_tool_box.setCurrentIndex(saved_plugin_id)
|
||||||
|
|
||||||
|
def on_search_shortcut_triggered(self):
|
||||||
|
"""
|
||||||
|
Called when the search shotcut has been pressed.
|
||||||
|
"""
|
||||||
|
# Make sure the media_dock is visible.
|
||||||
|
if not self.media_manager_dock.isVisible():
|
||||||
|
self.media_manager_dock.setVisible(True)
|
||||||
|
widget = self.media_tool_box.currentWidget()
|
||||||
|
if widget:
|
||||||
|
widget.on_focus()
|
||||||
|
|
||||||
def on_media_tool_box_changed(self, index):
|
def on_media_tool_box_changed(self, index):
|
||||||
"""
|
"""
|
||||||
@ -966,8 +980,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
"""
|
"""
|
||||||
self.setViewMode(False, True, False, False, True, u'live')
|
self.setViewMode(False, True, False, False, True, u'live')
|
||||||
|
|
||||||
def setViewMode(self, media=True, service=True, theme=True, preview=True,
|
def setViewMode(self, media=True, service=True, theme=True, preview=True, live=True, mode=u''):
|
||||||
live=True, mode=u''):
|
|
||||||
"""
|
"""
|
||||||
Set OpenLP to a different view mode.
|
Set OpenLP to a different view mode.
|
||||||
"""
|
"""
|
||||||
@ -982,8 +995,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def screen_changed(self):
|
def screen_changed(self):
|
||||||
"""
|
"""
|
||||||
The screen has changed so we have to update components such as the
|
The screen has changed so we have to update components such as the renderer.
|
||||||
renderer.
|
|
||||||
"""
|
"""
|
||||||
log.debug(u'screen_changed')
|
log.debug(u'screen_changed')
|
||||||
self.application.set_busy_cursor()
|
self.application.set_busy_cursor()
|
||||||
@ -1068,43 +1080,20 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
# Needed for Windows to stop crashes on exit
|
# Needed for Windows to stop crashes on exit
|
||||||
Registry().remove(u'application')
|
Registry().remove(u'application')
|
||||||
|
|
||||||
def service_changed(self, reset=False, serviceName=None):
|
def set_service_modified(self, modified, file_name):
|
||||||
"""
|
"""
|
||||||
Hook to change the main window title when the service changes
|
This method is called from the ServiceManager to set the title of the main window.
|
||||||
|
|
||||||
``reset``
|
|
||||||
Shows if the service has been cleared or saved
|
|
||||||
|
|
||||||
``serviceName``
|
|
||||||
The name of the service (if it has one)
|
|
||||||
"""
|
|
||||||
if not serviceName:
|
|
||||||
service_name = u'(unsaved service)'
|
|
||||||
else:
|
|
||||||
service_name = serviceName
|
|
||||||
if reset:
|
|
||||||
self.service_not_saved = False
|
|
||||||
title = u'%s - %s' % (self.mainTitle, service_name)
|
|
||||||
else:
|
|
||||||
self.service_not_saved = True
|
|
||||||
title = u'%s - %s*' % (self.mainTitle, service_name)
|
|
||||||
self.setWindowTitle(title)
|
|
||||||
|
|
||||||
def set_service_modified(self, modified, fileName):
|
|
||||||
"""
|
|
||||||
This method is called from the ServiceManager to set the title of the
|
|
||||||
main window.
|
|
||||||
|
|
||||||
``modified``
|
``modified``
|
||||||
Whether or not this service has been modified.
|
Whether or not this service has been modified.
|
||||||
|
|
||||||
``fileName``
|
``file_name``
|
||||||
The file name of the service file.
|
The file name of the service file.
|
||||||
"""
|
"""
|
||||||
if modified:
|
if modified:
|
||||||
title = u'%s - %s*' % (self.mainTitle, fileName)
|
title = u'%s - %s*' % (UiStrings().OLPV2x, file_name)
|
||||||
else:
|
else:
|
||||||
title = u'%s - %s' % (self.mainTitle, fileName)
|
title = u'%s - %s' % (UiStrings().OLPV2x, file_name)
|
||||||
self.setWindowTitle(title)
|
self.setWindowTitle(title)
|
||||||
|
|
||||||
def show_status_message(self, message):
|
def show_status_message(self, message):
|
||||||
@ -1140,8 +1129,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def set_preview_panel_visibility(self, visible):
|
def set_preview_panel_visibility(self, visible):
|
||||||
"""
|
"""
|
||||||
Sets the visibility of the preview panel including saving the setting
|
Sets the visibility of the preview panel including saving the setting and updating the menu.
|
||||||
and updating the menu.
|
|
||||||
|
|
||||||
``visible``
|
``visible``
|
||||||
A bool giving the state to set the panel to
|
A bool giving the state to set the panel to
|
||||||
@ -1178,8 +1166,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def set_live_panel_visibility(self, visible):
|
def set_live_panel_visibility(self, visible):
|
||||||
"""
|
"""
|
||||||
Sets the visibility of the live panel including saving the setting and
|
Sets the visibility of the live panel including saving the setting and updating the menu.
|
||||||
updating the menu.
|
|
||||||
|
|
||||||
``visible``
|
``visible``
|
||||||
A bool giving the state to set the panel to
|
A bool giving the state to set the panel to
|
||||||
@ -1208,7 +1195,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.restoreState(settings.value(u'main window state'))
|
self.restoreState(settings.value(u'main window state'))
|
||||||
self.live_controller.splitter.restoreState(settings.value(u'live splitter geometry'))
|
self.live_controller.splitter.restoreState(settings.value(u'live splitter geometry'))
|
||||||
self.preview_controller.splitter.restoreState(settings.value(u'preview splitter geometry'))
|
self.preview_controller.splitter.restoreState(settings.value(u'preview splitter geometry'))
|
||||||
self.controlSplitter.restoreState(settings.value(u'main window splitter geometry'))
|
self.control_splitter.restoreState(settings.value(u'main window splitter geometry'))
|
||||||
settings.endGroup()
|
settings.endGroup()
|
||||||
|
|
||||||
def save_settings(self):
|
def save_settings(self):
|
||||||
@ -1229,13 +1216,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
settings.setValue(u'main window geometry', self.saveGeometry())
|
settings.setValue(u'main window geometry', self.saveGeometry())
|
||||||
settings.setValue(u'live splitter geometry', self.live_controller.splitter.saveState())
|
settings.setValue(u'live splitter geometry', self.live_controller.splitter.saveState())
|
||||||
settings.setValue(u'preview splitter geometry', self.preview_controller.splitter.saveState())
|
settings.setValue(u'preview splitter geometry', self.preview_controller.splitter.saveState())
|
||||||
settings.setValue(u'main window splitter geometry', self.controlSplitter.saveState())
|
settings.setValue(u'main window splitter geometry', self.control_splitter.saveState())
|
||||||
settings.endGroup()
|
settings.endGroup()
|
||||||
|
|
||||||
def update_recent_files_menu(self):
|
def update_recent_files_menu(self):
|
||||||
"""
|
"""
|
||||||
Updates the recent file menu with the latest list of service files
|
Updates the recent file menu with the latest list of service files accessed.
|
||||||
accessed.
|
|
||||||
"""
|
"""
|
||||||
recent_file_count = Settings().value(u'advanced/recent file count')
|
recent_file_count = Settings().value(u'advanced/recent file count')
|
||||||
existing_recent_files = [recentFile for recentFile in self.recent_files
|
existing_recent_files = [recentFile for recentFile in self.recent_files
|
||||||
|
@ -129,11 +129,18 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog):
|
|||||||
continue
|
continue
|
||||||
item = QtGui.QTreeWidgetItem([category.name])
|
item = QtGui.QTreeWidgetItem([category.name])
|
||||||
for action in category.actions:
|
for action in category.actions:
|
||||||
actionText = REMOVE_AMPERSAND.sub('', action.text())
|
action_text = REMOVE_AMPERSAND.sub('', action.text())
|
||||||
actionItem = QtGui.QTreeWidgetItem([actionText])
|
action_item = QtGui.QTreeWidgetItem([action_text])
|
||||||
actionItem.setIcon(0, action.icon())
|
action_item.setIcon(0, action.icon())
|
||||||
actionItem.setData(0, QtCore.Qt.UserRole, action)
|
action_item.setData(0, QtCore.Qt.UserRole, action)
|
||||||
item.addChild(actionItem)
|
tool_tip_text = action.toolTip()
|
||||||
|
# Only display tool tips if they are helpful.
|
||||||
|
if tool_tip_text != action_text:
|
||||||
|
# Display the tool tip in all three colums.
|
||||||
|
action_item.setToolTip(0, tool_tip_text)
|
||||||
|
action_item.setToolTip(1, tool_tip_text)
|
||||||
|
action_item.setToolTip(2, tool_tip_text)
|
||||||
|
item.addChild(action_item)
|
||||||
self.treeWidget.addTopLevelItem(item)
|
self.treeWidget.addTopLevelItem(item)
|
||||||
item.setExpanded(True)
|
item.setExpanded(True)
|
||||||
self.refreshShortcutList()
|
self.refreshShortcutList()
|
||||||
|
@ -121,7 +121,7 @@ class SlideController(DisplayController):
|
|||||||
self.service_item = None
|
self.service_item = None
|
||||||
self.slide_limits = None
|
self.slide_limits = None
|
||||||
self.update_slide_limits()
|
self.update_slide_limits()
|
||||||
self.panel = QtGui.QWidget(parent.controlSplitter)
|
self.panel = QtGui.QWidget(parent.control_splitter)
|
||||||
self.slideList = {}
|
self.slideList = {}
|
||||||
self.slide_count = 0
|
self.slide_count = 0
|
||||||
self.slide_image = None
|
self.slide_image = None
|
||||||
@ -566,8 +566,7 @@ class SlideController(DisplayController):
|
|||||||
max_width = self.preview_frame.width() - self.grid.margin() * 2
|
max_width = self.preview_frame.width() - self.grid.margin() * 2
|
||||||
self.slide_preview.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
|
self.slide_preview.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
|
||||||
self.preview_display.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
|
self.preview_display.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
|
||||||
self.preview_display.screen = {
|
self.preview_display.screen = {u'size': self.preview_display.geometry()}
|
||||||
u'size': self.preview_display.geometry()}
|
|
||||||
self.on_controller_size_changed(self.controller.width())
|
self.on_controller_size_changed(self.controller.width())
|
||||||
|
|
||||||
def on_controller_size_changed(self, width):
|
def on_controller_size_changed(self, width):
|
||||||
@ -697,9 +696,8 @@ class SlideController(DisplayController):
|
|||||||
|
|
||||||
def add_service_manager_item(self, item, slide_no):
|
def add_service_manager_item(self, item, slide_no):
|
||||||
"""
|
"""
|
||||||
Method to install the service item into the controller and
|
Method to install the service item into the controller and request the correct toolbar for the plugin. Called by
|
||||||
request the correct toolbar for the plugin.
|
:class:`~openlp.core.ui.ServiceManager`
|
||||||
Called by ServiceManager
|
|
||||||
"""
|
"""
|
||||||
log.debug(u'add_service_manager_item live = %s' % self.is_live)
|
log.debug(u'add_service_manager_item live = %s' % self.is_live)
|
||||||
# If no valid slide number is specified we take the first one, but we remember the initial value to see if we
|
# If no valid slide number is specified we take the first one, but we remember the initial value to see if we
|
||||||
@ -724,8 +722,7 @@ class SlideController(DisplayController):
|
|||||||
|
|
||||||
def _process_item(self, service_item, slideno):
|
def _process_item(self, service_item, slideno):
|
||||||
"""
|
"""
|
||||||
Loads a ServiceItem into the system from ServiceManager
|
Loads a ServiceItem into the system from ServiceManager. Display the slide number passed.
|
||||||
Display the slide number passed
|
|
||||||
"""
|
"""
|
||||||
log.debug(u'processManagerItem live = %s' % self.is_live)
|
log.debug(u'processManagerItem live = %s' % self.is_live)
|
||||||
self.on_stop_loop()
|
self.on_stop_loop()
|
||||||
@ -734,7 +731,8 @@ class SlideController(DisplayController):
|
|||||||
self.service_item = copy.copy(service_item)
|
self.service_item = copy.copy(service_item)
|
||||||
if old_item and self.is_live and old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay):
|
if old_item and self.is_live and old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay):
|
||||||
self._reset_blank()
|
self._reset_blank()
|
||||||
Registry().execute(u'%s_start' % service_item.name.lower(), [service_item, self.is_live, self.hide_mode(), slideno])
|
Registry().execute(
|
||||||
|
u'%s_start' % service_item.name.lower(), [service_item, self.is_live, self.hide_mode(), slideno])
|
||||||
self.slideList = {}
|
self.slideList = {}
|
||||||
if self.is_live:
|
if self.is_live:
|
||||||
self.song_menu.menu().clear()
|
self.song_menu.menu().clear()
|
||||||
|
@ -272,13 +272,13 @@ class TestServiceItem(TestCase):
|
|||||||
service_item.add_icon = MagicMock()
|
service_item.add_icon = MagicMock()
|
||||||
|
|
||||||
# WHEN: adding an media from a saved Service and mocked exists
|
# WHEN: adding an media from a saved Service and mocked exists
|
||||||
line = self.convert_file_service_item(u'migrate_video_20_22.osd')
|
line = read_service_from_file(u'migrate_video_20_22.osd')
|
||||||
with patch('os.path.exists'):
|
with patch('os.path.exists'):
|
||||||
service_item.set_from_service(line, TEST_PATH)
|
service_item.set_from_service(line[0], TEST_RESOURCES_PATH)
|
||||||
|
|
||||||
# THEN: We should get back a converted service item
|
# THEN: We should get back a converted service item
|
||||||
assert service_item.is_valid is True, u'The new service item should be valid'
|
assert service_item.is_valid is True, u'The new service item should be valid'
|
||||||
assert service_item.processor is None, u'The Processor should have been set'
|
assert service_item.processor == u'VLC', u'The Processor should have been set'
|
||||||
assert service_item.title is None, u'The title should be set to a value'
|
assert service_item.title is not None, u'The title should be set to a value'
|
||||||
assert service_item.is_capable(ItemCapabilities.HasDetailedTitleDisplay) is False, \
|
assert service_item.is_capable(ItemCapabilities.HasDetailedTitleDisplay) is False, \
|
||||||
u'The Capability should have been removed'
|
u'The Capability should have been removed'
|
||||||
|
60
tests/interfaces/openlp_core_ui/test_mainwindow.py
Normal file
60
tests/interfaces/openlp_core_ui/test_mainwindow.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
"""
|
||||||
|
Package to test the openlp.core.ui.mainwindow package.
|
||||||
|
"""
|
||||||
|
from unittest import TestCase
|
||||||
|
from mock import MagicMock, patch
|
||||||
|
|
||||||
|
from PyQt4 import QtGui
|
||||||
|
|
||||||
|
from openlp.core.lib import Registry
|
||||||
|
from openlp.core.ui.mainwindow import MainWindow
|
||||||
|
|
||||||
|
|
||||||
|
class TestMainWindow(TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Create the UI
|
||||||
|
"""
|
||||||
|
Registry.create()
|
||||||
|
self.registry = Registry()
|
||||||
|
self.app = QtGui.QApplication([])
|
||||||
|
# Mock cursor busy/normal methods.
|
||||||
|
self.app.set_busy_cursor = MagicMock()
|
||||||
|
self.app.set_normal_cursor = MagicMock()
|
||||||
|
self.app.args =[]
|
||||||
|
Registry().register(u'application', self.app)
|
||||||
|
# Mock classes and methods used by mainwindow.
|
||||||
|
with patch(u'openlp.core.ui.mainwindow.SettingsForm') as mocked_settings_form, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.ImageManager') as mocked_image_manager, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.SlideController') as mocked_slide_controller, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.OpenLPDockWidget') as mocked_dock_widget, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.QtGui.QToolBox') as mocked_q_tool_box_class, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.QtGui.QMainWindow.addDockWidget') as mocked_add_dock_method, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.ServiceManager') as mocked_service_manager, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.ThemeManager') as mocked_theme_manager, \
|
||||||
|
patch(u'openlp.core.ui.mainwindow.Renderer') as mocked_renderer:
|
||||||
|
self.main_window = MainWindow()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
"""
|
||||||
|
Delete all the C++ objects at the end so that we don't have a segfault
|
||||||
|
"""
|
||||||
|
del self.main_window
|
||||||
|
del self.app
|
||||||
|
|
||||||
|
def restore_current_media_manager_item_test(self):
|
||||||
|
"""
|
||||||
|
Regression test for bug #1152509.
|
||||||
|
"""
|
||||||
|
# GIVEN: Mocked Settings().value method.
|
||||||
|
with patch(u'openlp.core.ui.mainwindow.Settings.value') as mocked_value:
|
||||||
|
# save current plugin: True; current media plugin: 2
|
||||||
|
mocked_value.side_effect = [True, 2]
|
||||||
|
|
||||||
|
# WHEN: Call the restore method.
|
||||||
|
Registry().execute(u'bootstrap_post_set_up')
|
||||||
|
|
||||||
|
# THEN: The current widget should have been set.
|
||||||
|
self.main_window.media_tool_box.setCurrentIndex.assert_called_with(2)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user