diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 58be29126..1947f741d 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -31,16 +31,11 @@ from datetime import datetime, timedelta from PyQt4 import QtCore, QtGui -import logging -import os -import sys from openlp.core.lib import SettingsTab, translate, build_icon, Receiver -from openlp.core.lib.ui import UiStrings from openlp.core.lib.settings import Settings -from openlp.core.utils import get_images_filter, AppLocation +from openlp.core.lib.ui import UiStrings from openlp.core.lib import SlideLimits - -log = logging.getLogger(__name__) +from openlp.core.utils import get_images_filter class AdvancedTab(SettingsTab): """ @@ -65,7 +60,6 @@ class AdvancedTab(SettingsTab): '#strftime-strptime-behavior for more information.')) self.defaultImage = u':/graphics/openlp-splash-screen.png' self.defaultColor = u'#ffffff' - self.dataExists = False self.iconPath = u':/system/system_settings.png' advanced_translated = translate('OpenLP.AdvancedTab', 'Advanced') SettingsTab.__init__(self, parent, u'Advanced', advanced_translated) @@ -158,70 +152,6 @@ class AdvancedTab(SettingsTab): self.serviceNameLayout.addRow(self.serviceNameExampleLabel, self.serviceNameExample) self.leftLayout.addWidget(self.serviceNameGroupBox) - # Data Directory - self.dataDirectoryGroupBox = QtGui.QGroupBox(self.leftColumn) - self.dataDirectoryGroupBox.setObjectName(u'dataDirectoryGroupBox') - self.dataDirectoryLayout = QtGui.QFormLayout(self.dataDirectoryGroupBox) - self.dataDirectoryLayout.setObjectName(u'dataDirectoryLayout') - self.dataDirectoryCurrentLabel = QtGui.QLabel(self.dataDirectoryGroupBox) - self.dataDirectoryCurrentLabel.setObjectName( - u'dataDirectoryCurrentLabel') - self.dataDirectoryLabel = QtGui.QLabel(self.dataDirectoryGroupBox) - self.dataDirectoryLabel.setObjectName(u'dataDirectoryLabel') - self.dataDirectoryNewLabel = QtGui.QLabel(self.dataDirectoryGroupBox) - self.dataDirectoryNewLabel.setObjectName(u'dataDirectoryCurrentLabel') - self.newDataDirectoryEdit = QtGui.QLineEdit(self.dataDirectoryGroupBox) - self.newDataDirectoryEdit.setObjectName(u'newDataDirectoryEdit') - self.newDataDirectoryEdit.setReadOnly(True) - self.newDataDirectoryHasFilesLabel = QtGui.QLabel( - self.dataDirectoryGroupBox) - self.newDataDirectoryHasFilesLabel.setObjectName( - u'newDataDirectoryHasFilesLabel') - self.newDataDirectoryHasFilesLabel.setWordWrap(True) - self.newDataDirectoryLabelHBox = QtGui.QHBoxLayout() - self.newDataDirectoryLabelHBox.setObjectName( - u'newDataDirectoryLabelHBox') - self.dataDirectoryBrowseButton = QtGui.QPushButton( - self.dataDirectoryGroupBox) - self.dataDirectoryBrowseButton.setObjectName( - u'dataDirectoryBrowseButton') - self.dataDirectoryBrowseButton.setIcon( - build_icon(u':/general/general_open.png')) - self.dataDirectoryDefaultButton = QtGui.QPushButton( - self.dataDirectoryGroupBox) - self.dataDirectoryDefaultButton.setObjectName( - u'dataDirectoryDefaultButton') - self.dataDirectoryDefaultButton.setIcon( - build_icon(u':/general/general_revert.png')) - self.dataDirectoryCancelButton = QtGui.QPushButton( - self.dataDirectoryGroupBox) - self.dataDirectoryCancelButton.setObjectName( - u'dataDirectoryCancelButton') - self.dataDirectoryCancelButton.setIcon( - build_icon(u':/general/general_delete.png')) - self.newDataDirectoryLabelHBox.addWidget(self.newDataDirectoryEdit) - self.newDataDirectoryLabelHBox.addWidget( - self.dataDirectoryBrowseButton) - self.newDataDirectoryLabelHBox.addWidget( - self.dataDirectoryDefaultButton) - self.dataDirectoryCopyCheckHBox = QtGui.QHBoxLayout() - self.dataDirectoryCopyCheckHBox.setObjectName( - u'dataDirectoryCopyCheckHBox') - self.dataDirectoryCopyCheckBox = QtGui.QCheckBox( - self.dataDirectoryGroupBox) - self.dataDirectoryCopyCheckBox.setObjectName( - u'dataDirectoryCopyCheckBox') - self.dataDirectoryCopyCheckHBox.addWidget( - self.dataDirectoryCopyCheckBox) - self.dataDirectoryCopyCheckHBox.addWidget( - self.dataDirectoryCancelButton) - self.dataDirectoryLayout.addRow(self.dataDirectoryCurrentLabel, - self.dataDirectoryLabel) - self.dataDirectoryLayout.addRow(self.dataDirectoryNewLabel, - self.newDataDirectoryLabelHBox) - self.dataDirectoryLayout.addRow(self.dataDirectoryCopyCheckHBox) - self.dataDirectoryLayout.addRow(self.newDataDirectoryHasFilesLabel) - self.leftLayout.addWidget(self.dataDirectoryGroupBox) self.leftLayout.addStretch() # Default Image self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) @@ -290,6 +220,7 @@ class AdvancedTab(SettingsTab): self.x11Layout.addWidget(self.x11BypassCheckBox) self.rightLayout.addWidget(self.x11GroupBox) self.rightLayout.addStretch() + self.shouldUpdateServiceNameExample = False QtCore.QObject.connect(self.serviceNameCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.serviceNameCheckBoxToggled) @@ -313,18 +244,6 @@ class AdvancedTab(SettingsTab): QtCore.SIGNAL(u'clicked()'), self.onDefaultRevertButtonClicked) QtCore.QObject.connect(self.x11BypassCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.onX11BypassCheckBoxToggled) - QtCore.QObject.connect(self.dataDirectoryBrowseButton, - QtCore.SIGNAL(u'clicked()'), - self.onDataDirectoryBrowseButtonClicked) - QtCore.QObject.connect(self.dataDirectoryDefaultButton, - QtCore.SIGNAL(u'clicked()'), - self.onDataDirectoryDefaultButtonClicked) - QtCore.QObject.connect(self.dataDirectoryCancelButton, - QtCore.SIGNAL(u'clicked()'), - self.onDataDirectoryCancelButtonClicked) - QtCore.QObject.connect(self.dataDirectoryCopyCheckBox, - QtCore.SIGNAL(u'toggled(bool)'), - self.onDataDirectoryCopyCheckBoxToggled) QtCore.QObject.connect(self.endSlideRadioButton, QtCore.SIGNAL(u'clicked()'), self.onEndSlideButtonClicked) QtCore.QObject.connect(self.wrapSlideRadioButton, @@ -339,8 +258,6 @@ class AdvancedTab(SettingsTab): self.tabTitleVisible = UiStrings().Advanced self.uiGroupBox.setTitle( translate('OpenLP.AdvancedTab', 'UI Settings')) - self.dataDirectoryGroupBox.setTitle( - translate('OpenLP.AdvancedTab', 'Data Location')) self.recentLabel.setText( translate('OpenLP.AdvancedTab', 'Number of recent files to display:')) @@ -404,32 +321,6 @@ class AdvancedTab(SettingsTab): 'Browse for an image file to display.')) self.defaultRevertButton.setToolTip(translate('OpenLP.AdvancedTab', 'Revert to the default OpenLP logo.')) - self.dataDirectoryCurrentLabel.setText(translate('OpenLP.AdvancedTab', - 'Current:')) - self.dataDirectoryNewLabel.setText(translate('OpenLP.AdvancedTab', - 'New:')) - self.dataDirectoryBrowseButton.setToolTip( - translate('OpenLP.AdvancedTab', - 'Browse for new data file location.')) - self.dataDirectoryDefaultButton.setToolTip( - translate('OpenLP.AdvancedTab', - 'Set the data location to the default.')) - self.dataDirectoryCancelButton.setText( - translate('OpenLP.AdvancedTab', - 'Cancel Location Change')) - self.dataDirectoryCancelButton.setToolTip( - translate('OpenLP.AdvancedTab', - 'Cancel OpenLP data directory location change.')) - self.dataDirectoryCopyCheckBox.setText( - translate('OpenLP.AdvancedTab', - 'Copy data to new location.')) - self.dataDirectoryCopyCheckBox.setToolTip( - translate('OpenLP.AdvancedTab', - 'Copy the OpenLP data files to the new location.')) - self.newDataDirectoryHasFilesLabel.setText( - translate('OpenLP.AdvancedTab', - 'WARNING: New data directory location contains' - 'OpenLP data files. These files WILL be replaced during a copy.')) self.x11GroupBox.setTitle(translate('OpenLP.AdvancedTab', 'X11')) self.x11BypassCheckBox.setText(translate('OpenLP.AdvancedTab', @@ -507,45 +398,8 @@ class AdvancedTab(SettingsTab): else: self.nextItemRadioButton.setChecked(True) settings.endGroup() - self.dataDirectoryCopyCheckBox.hide() - self.newDataDirectoryHasFilesLabel.hide() - self.dataDirectoryCancelButton.hide() - # Since data location can be changed, make sure the path is present. - self.currentDataPath = AppLocation.get_data_path() - if not os.path.exists(self.currentDataPath): - log.error(u'Data path not found %s' % self.currentDataPath) - answer = QtGui.QMessageBox.critical(self, - translate('OpenLP.AdvancedTab', - 'Data Directory Error'), - translate('OpenLP.AdvancedTab', - 'OpenLP data directory was not found\n\n%s\n\n' - 'This data directory was previously changed from the OpenLP ' - 'default location. If the new location was on removable ' - 'media, that media needs to be made available.\n\n' - 'Click "No" to stop loading OpenLP. allowing you to fix ' - 'the the problem.\n\n' - 'Click "Yes" to reset the data directory to the default ' - 'location.' % self.currentDataPath), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Yes | - QtGui.QMessageBox.No), - QtGui.QMessageBox.No) - if answer == QtGui.QMessageBox.No: - log.info(u'User requested termination') - Receiver.send_message(u'cleanup') - sys.exit() - # Set data location to default. - settings.remove(u'advanced/data path') - self.currentDataPath = AppLocation.get_data_path() - log.warning(u'User requested data path set to default %s' - % self.currentDataPath) - self.dataDirectoryLabel.setText(os.path.abspath( - os.path.join(self.currentDataPath, u'..'))) self.defaultColorButton.setStyleSheet( u'background-color: %s' % self.defaultColor) - # Don't allow data directory change if running portable - if Settings().contains(u'advanced/is portable'): - self.dataDirectoryGroupBox.hide() def save(self): """ @@ -654,124 +508,6 @@ class AdvancedTab(SettingsTab): self.defaultFileEdit.setText(filename) self.defaultFileEdit.setFocus() - def onDataDirectoryBrowseButtonClicked(self): - """ - Browse for a new data directory location. - """ - old_root_path = unicode(self.dataDirectoryLabel.text()) - # Get the new directory location. - new_path = unicode(QtGui.QFileDialog.getExistingDirectory(self, - translate('OpenLP.AdvancedTab', - 'Select Data Directory Location'), old_root_path, - options = QtGui.QFileDialog.ShowDirsOnly)) - # Set the new data path. - new_data_path = os.path.join(new_path, 'openlp_data') - if new_path: - if self.currentDataPath.lower() == new_data_path.lower(): - self.onDataDirectoryCancelButtonClicked() - return - else: - return - # Make sure they want to change the data. - answer = QtGui.QMessageBox.question(self, - translate('OpenLP.AdvancedTab', 'Confirm Data Directory Change'), - translate('OpenLP.AdvancedTab', - 'Are you sure you want to change the location of the OpenLP ' - 'data directory to:\n\n%s\n\n' - 'The data directory will be changed when OpenLP is closed.' - % new_path), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Yes | - QtGui.QMessageBox.No), - QtGui.QMessageBox.No) - if answer != QtGui.QMessageBox.Yes: - return - # Check if data already exists here. - self.checkDataOverwrite(new_data_path) - # Save the new location. - Receiver.send_message(u'set_new_data_path', new_data_path) - self.newDataDirectoryEdit.setText(new_path) - self.dataDirectoryCancelButton.show() - - def onDataDirectoryDefaultButtonClicked(self): - """ - Re-set the data directory location to the 'default' location. - """ - new_data_path = AppLocation.get_directory(AppLocation.DataDir) - if self.currentDataPath.lower() != new_data_path.lower(): - # Make sure they want to change the data location back to the default. - answer = QtGui.QMessageBox.question(self, - translate('OpenLP.AdvancedTab', 'Reset Data Directory'), - translate('OpenLP.AdvancedTab', - 'Are you sure you want to change the location of the OpenLP ' - 'data directory to the default location?\n\n' - 'This location will be used after OpenLP is closed.'), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Yes | - QtGui.QMessageBox.No), - QtGui.QMessageBox.No) - if answer != QtGui.QMessageBox.Yes: - return - self.checkDataOverwrite(new_data_path) - # Save the new location. - Receiver.send_message(u'set_new_data_path', new_data_path) - self.newDataDirectoryEdit.setText(os.path.abspath( - os.path.join(new_data_path, u'..'))) - self.dataDirectoryCancelButton.show() - else: - # We cancel the change in case user changed their mind. - self.onDataDirectoryCancelButtonClicked() - - def onDataDirectoryCopyCheckBoxToggled(self): - Receiver.send_message(u'set_copy_data', - self.dataDirectoryCopyCheckBox.isChecked()) - if self.dataExists: - if self.dataDirectoryCopyCheckBox.isChecked(): - self.newDataDirectoryHasFilesLabel.show() - else: - self.newDataDirectoryHasFilesLabel.hide() - - def checkDataOverwrite(self, data_path ): - test_path = os.path.join(data_path, u'songs') - self.dataDirectoryCopyCheckBox.show() - if os.path.exists(test_path): - self.dataExists = True - # Check is they want to replace existing data. - answer = QtGui.QMessageBox.warning(self, - translate('OpenLP.AdvancedTab', 'Overwrite Existing Data'), - translate('OpenLP.AdvancedTab', - 'WARNING: \n\n' - 'The location you have selected \n\n%s\n\n' - 'appears to contain OpenLP data files. Do you wish to replace ' - 'these files with the current data files?' - % os.path.abspath(os.path.join(data_path, u'..'))), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Yes | - QtGui.QMessageBox.No), - QtGui.QMessageBox.No) - if answer == QtGui.QMessageBox.Yes: - self.dataDirectoryCopyCheckBox.setChecked(True) - self.newDataDirectoryHasFilesLabel.show() - else: - self.dataDirectoryCopyCheckBox.setChecked(False) - self.newDataDirectoryHasFilesLabel.hide() - else: - self.dataExists = False - self.dataDirectoryCopyCheckBox.setChecked(True) - self.newDataDirectoryHasFilesLabel.hide() - - def onDataDirectoryCancelButtonClicked(self): - """ - Cancel the data directory location change - """ - self.newDataDirectoryEdit.clear() - self.dataDirectoryCopyCheckBox.setChecked(False) - Receiver.send_message(u'set_new_data_path', u'') - Receiver.send_message(u'set_copy_data', False) - self.dataDirectoryCopyCheckBox.hide() - self.dataDirectoryCancelButton.hide() - self.newDataDirectoryHasFilesLabel.hide() - def onDefaultRevertButtonClicked(self): self.defaultFileEdit.setText(u':/graphics/openlp-splash-screen.png') self.defaultFileEdit.setFocus() diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 9b75e33b2..0d5b1482a 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -1200,9 +1200,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.pluginManager.finalise_plugins() # Save settings self.saveSettings() - # Check if we need to change the data directory - if self.newDataPath: - self.changeDataDirectory() # Close down the display self.liveController.display.close() @@ -1484,38 +1481,3 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def setCopyData(self, copy_data): self.copyData = copy_data - def changeDataDirectory(self): - log.info(u'Changing data path to %s' % self.newDataPath ) - old_data_path = unicode(AppLocation.get_data_path()) - # Copy OpenLP data to new location if requested. - if self.copyData: - log.info(u'Copying data to new path') - try: - Receiver.send_message(u'openlp_process_events') - Receiver.send_message(u'cursor_busy') - self.showStatusMessage( - translate('OpenLP.MainWindow', - 'Copying OpenLP data to new data directory location - %s ' - '- Please wait for copy to finish' - % os.path.abspath(os.path.join(self.newDataPath, u'..')))) - dir_util.copy_tree(old_data_path, self.newDataPath) - log.info(u'Copy sucessful') - except (IOError, os.error, DistutilsFileError), why: - Receiver.send_message(u'cursor_normal') - log.exception(u'Data copy failed %s' % unicode(why)) - QtGui.QMessageBox.critical(self, - translate('OpenLP.MainWindow', 'New Data Directory Error'), - translate('OpenLP.MainWindow', - 'OpenLP Data directory copy failed\n\n%s' - % unicode(why)), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Ok)) - return False - else: - log.info(u'No data copy requested') - # Change the location of data directory in config file. - settings = Settings() - settings.setValue(u'advanced/data path', self.newDataPath) - # Check if the new data path is our default. - if self.newDataPath == AppLocation.get_directory(AppLocation.DataDir): - settings.remove(u'advanced/data path') diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index 03f5c93a5..d183d9d4a 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -102,8 +102,6 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): """ Process the form saving the settings """ - # Dialogue was cancelled, remove any pending data path change. - self.advancedTab.onDataDirectoryCancelButtonClicked(); for tabIndex in range(self.stackedLayout.count()): self.stackedLayout.widget(tabIndex).cancel() return QtGui.QDialog.reject(self)