forked from openlp/openlp
Bug #1487788: Importing photos does not give focus to OpenLP
Bug #1512040: Loop tooltip gets stuck to "Stop playing..." Bug #1624661: Missing DB in unmounted disk results in Traceback Fixes: https://launchpad.net/bugs/1487788, https://launchpad.net/bugs/1512040, https://launchpad.net/bugs/1624661
This commit is contained in:
parent
dc5de9a54d
commit
3cb1dae0f0
@ -177,6 +177,38 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
self.shared_memory.create(1)
|
self.shared_memory.create(1)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def is_data_path_missing(self):
|
||||||
|
"""
|
||||||
|
Check if the data folder path exists.
|
||||||
|
"""
|
||||||
|
data_folder_path = AppLocation.get_data_path()
|
||||||
|
if not os.path.exists(data_folder_path):
|
||||||
|
log.critical('Database was not found in: ' + data_folder_path)
|
||||||
|
status = QtWidgets.QMessageBox.critical(None, translate('OpenLP', 'Data Directory Error'),
|
||||||
|
translate('OpenLP', 'OpenLP data folder was not found in:\n\n{path}'
|
||||||
|
'\n\nThe location of the data folder was '
|
||||||
|
'previously changed from the OpenLP\'s '
|
||||||
|
'default location. If the data was stored on '
|
||||||
|
'removable device, that device needs to be '
|
||||||
|
'made available.\n\nYou may reset the data '
|
||||||
|
'location back to the default location, '
|
||||||
|
'or you can try to make the current location '
|
||||||
|
'available.\n\nDo you want to reset to the '
|
||||||
|
'default data location? If not, OpenLP will be '
|
||||||
|
'closed so you can try to fix the the problem.')
|
||||||
|
.format(path=data_folder_path),
|
||||||
|
QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Yes |
|
||||||
|
QtWidgets.QMessageBox.No),
|
||||||
|
QtWidgets.QMessageBox.No)
|
||||||
|
if status == QtWidgets.QMessageBox.No:
|
||||||
|
# If answer was "No", return "True", it will shutdown OpenLP in def main
|
||||||
|
log.info('User requested termination')
|
||||||
|
return True
|
||||||
|
# If answer was "Yes", remove the custom data path thus resetting the default location.
|
||||||
|
Settings().remove('advanced/data path')
|
||||||
|
log.info('Database location has been reset to the default settings.')
|
||||||
|
return False
|
||||||
|
|
||||||
def hook_exception(self, exc_type, value, traceback):
|
def hook_exception(self, exc_type, value, traceback):
|
||||||
"""
|
"""
|
||||||
Add an exception hook so that any uncaught exceptions are displayed in this window rather than somewhere where
|
Add an exception hook so that any uncaught exceptions are displayed in this window rather than somewhere where
|
||||||
@ -213,7 +245,7 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
Settings().setValue('core/application version', openlp_version)
|
Settings().setValue('core/application version', openlp_version)
|
||||||
# If data_version is different from the current version ask if we should backup the data folder
|
# If data_version is different from the current version ask if we should backup the data folder
|
||||||
elif data_version != openlp_version:
|
elif data_version != openlp_version:
|
||||||
if self.splash.isVisible():
|
if can_show_splash and self.splash.isVisible():
|
||||||
self.splash.hide()
|
self.splash.hide()
|
||||||
if QtWidgets.QMessageBox.question(None, translate('OpenLP', 'Backup'),
|
if QtWidgets.QMessageBox.question(None, translate('OpenLP', 'Backup'),
|
||||||
translate('OpenLP', 'OpenLP has been upgraded, do you want to create '
|
translate('OpenLP', 'OpenLP has been upgraded, do you want to create '
|
||||||
@ -378,9 +410,13 @@ def main(args=None):
|
|||||||
Registry.create()
|
Registry.create()
|
||||||
Registry().register('application', application)
|
Registry().register('application', application)
|
||||||
application.setApplicationVersion(get_application_version()['version'])
|
application.setApplicationVersion(get_application_version()['version'])
|
||||||
# Instance check
|
# Check if an instance of OpenLP is already running. Quit if there is a running instance and the user only wants one
|
||||||
if application.is_already_running():
|
if application.is_already_running():
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
# If the custom data path is missing and the user wants to restore the data path, quit OpenLP.
|
||||||
|
if application.is_data_path_missing():
|
||||||
|
application.shared_memory.detach()
|
||||||
|
sys.exit()
|
||||||
# Remove/convert obsolete settings.
|
# Remove/convert obsolete settings.
|
||||||
Settings().remove_obsolete_settings()
|
Settings().remove_obsolete_settings()
|
||||||
# First time checks in settings
|
# First time checks in settings
|
||||||
|
@ -26,7 +26,7 @@ import os
|
|||||||
|
|
||||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry, is_win
|
||||||
|
|
||||||
|
|
||||||
class TreeWidgetWithDnD(QtWidgets.QTreeWidget):
|
class TreeWidgetWithDnD(QtWidgets.QTreeWidget):
|
||||||
@ -108,6 +108,11 @@ class TreeWidgetWithDnD(QtWidgets.QTreeWidget):
|
|||||||
|
|
||||||
:param event: Handle of the event pint passed
|
:param event: Handle of the event pint passed
|
||||||
"""
|
"""
|
||||||
|
# If we are on Windows, OpenLP window will not be set on top. For example, user can drag images to Library and
|
||||||
|
# the folder stays on top of the group creation box. This piece of code fixes this issue.
|
||||||
|
if is_win():
|
||||||
|
self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
|
||||||
|
self.setWindowState(QtCore.Qt.WindowNoState)
|
||||||
if event.mimeData().hasUrls():
|
if event.mimeData().hasUrls():
|
||||||
event.setDropAction(QtCore.Qt.CopyAction)
|
event.setDropAction(QtCore.Qt.CopyAction)
|
||||||
event.accept()
|
event.accept()
|
||||||
|
@ -714,8 +714,10 @@ class SlideController(DisplayController, RegistryProperties):
|
|||||||
# Reset the button
|
# Reset the button
|
||||||
self.play_slides_once.setChecked(False)
|
self.play_slides_once.setChecked(False)
|
||||||
self.play_slides_once.setIcon(build_icon(':/media/media_time.png'))
|
self.play_slides_once.setIcon(build_icon(':/media/media_time.png'))
|
||||||
|
self.play_slides_once.setText(UiStrings().PlaySlidesToEnd)
|
||||||
self.play_slides_loop.setChecked(False)
|
self.play_slides_loop.setChecked(False)
|
||||||
self.play_slides_loop.setIcon(build_icon(':/media/media_time.png'))
|
self.play_slides_loop.setIcon(build_icon(':/media/media_time.png'))
|
||||||
|
self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop)
|
||||||
if item.is_text():
|
if item.is_text():
|
||||||
if (Settings().value(self.main_window.songs_settings_section + '/display songbar') and
|
if (Settings().value(self.main_window.songs_settings_section + '/display songbar') and
|
||||||
not self.song_menu.menu().isEmpty()):
|
not self.song_menu.menu().isEmpty()):
|
||||||
|
Loading…
Reference in New Issue
Block a user