diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py index 74a5d4866..a8c8e7c50 100644 --- a/openlp/core/lib/settingsmanager.py +++ b/openlp/core/lib/settingsmanager.py @@ -57,15 +57,33 @@ class SettingsManager(object): self.mainwindow_left + self.mainwindow_right) - 100 ) / 2 self.slidecontroller_image = self.slidecontroller - 50 - self.showPreviewPanel = QtCore.QSettings().value( - u'user interface/preview panel', QtCore.QVariant(True)).toBool() - - def togglePreviewPanel(self, isVisible): + def get_preview_visibility(self): """ - Toggle the preview panel visibility. + Return the preview panel's visibility. + """ + return QtCore.QSettings().value(u'user interface/preview panel', + QtCore.QVariant(True)).toBool() + + def set_preview_visibility(self, visible): + """ + Set the preview panel's visibility. """ QtCore.QSettings().setValue(u'user interface/preview panel', - QtCore.QVariant(isVisible)) + QtCore.QVariant(visible)) + + def get_live_visibility(self): + """ + Return the live panel's visibility. + """ + return QtCore.QSettings().value(u'user interface/live panel', + QtCore.QVariant(True)).toBool() + + def set_live_visibility(self, visible): + """ + Set the live panel's visibility. + """ + QtCore.QSettings().setValue(u'user interface/live panel', + QtCore.QVariant(visible)) @staticmethod def get_last_dir(section, num=None): diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index a2979746e..6b87f84fe 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -42,7 +42,7 @@ class OpenLPToolbar(QtGui.QToolBar): """ Initialise the toolbar. """ - QtGui.QToolBar.__init__(self, None) + QtGui.QToolBar.__init__(self, parent) # useful to be able to reuse button icons... self.icons = {} self.setIconSize(QtCore.QSize(20, 20)) diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py index 2bb202964..a5cd69610 100644 --- a/openlp/core/ui/amendthemedialog.py +++ b/openlp/core/ui/amendthemedialog.py @@ -596,15 +596,15 @@ class Ui_AmendThemeDialog(object): self.TransitionGroupBox.setObjectName(u'TransitionGroupBox') self.gridLayout_5 = QtGui.QGridLayout(self.TransitionGroupBox) self.gridLayout_5.setObjectName(u'gridLayout_5') - self.SlideTransitionCheckedBoxLabel = QtGui.QLabel( + self.SlideTransitionCheckBoxLabel = QtGui.QLabel( self.TransitionGroupBox) - self.SlideTransitionCheckedBoxLabel.setObjectName( - u'SlideTransitionCheckedBoxLabel') + self.SlideTransitionCheckBoxLabel.setObjectName( + u'SlideTransitionCheckBoxLabel') self.gridLayout_5.addWidget( - self.SlideTransitionCheckedBoxLabel, 0, 0, 1, 1) - self.SlideTransitionCheckedBox = QtGui.QCheckBox(self.AlignmentGroupBox) - self.SlideTransitionCheckedBox.setTristate(False) - self.gridLayout_5.addWidget(self.SlideTransitionCheckedBox, 0, 1, 1, 1) + self.SlideTransitionCheckBoxLabel, 0, 0, 1, 1) + self.SlideTransitionCheckBox = QtGui.QCheckBox(self.AlignmentGroupBox) + self.SlideTransitionCheckBox.setTristate(False) + self.gridLayout_5.addWidget(self.SlideTransitionCheckBox, 0, 1, 1, 1) self.OptionsRightLayout.addWidget(self.TransitionGroupBox) spacerItem6 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) @@ -864,7 +864,7 @@ class Ui_AmendThemeDialog(object): translate('AmendThemeForm', 'Bottom')) self.TransitionGroupBox.setTitle( translate('AmendThemeForm', 'Slide Transition')) - self.SlideTransitionCheckedBoxLabel.setText( + self.SlideTransitionCheckBoxLabel.setText( translate('AmendThemeForm', 'Transition active:')) self.ThemeTabWidget.setTabText( self.ThemeTabWidget.indexOf(self.OtherOptionsTab), diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index c85eff4b8..1c2658dc3 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -133,9 +133,9 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): QtCore.QObject.connect(self.OutlineSpinBox, QtCore.SIGNAL(u'editingFinished()'), self.onOutlineSpinBoxChanged) - QtCore.QObject.connect(self.SlideTransitionCheckedBox, + QtCore.QObject.connect(self.SlideTransitionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onSlideTransitionCheckedBoxChanged) + self.onSlideTransitionCheckBoxChanged) def accept(self): new_theme = ThemeXML() @@ -500,7 +500,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.stateChanging(self.theme) self.previewTheme() - def onSlideTransitionCheckedBoxChanged(self, value): + def onSlideTransitionCheckBoxChanged(self, value): if value == 2: # checked self.theme.display_slideTransition = True else: @@ -624,9 +624,9 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.ShadowColorPushButton.setEnabled(False) self.ShadowSpinBox.setValue(int(self.theme.display_shadow_size)) if self.theme.display_slideTransition: - self.SlideTransitionCheckedBox.setCheckState(QtCore.Qt.Checked) + self.SlideTransitionCheckBox.setCheckState(QtCore.Qt.Checked) else: - self.SlideTransitionCheckedBox.setCheckState(QtCore.Qt.Unchecked) + self.SlideTransitionCheckBox.setCheckState(QtCore.Qt.Unchecked) self.HorizontalComboBox.setCurrentIndex( self.theme.display_horizontalAlign) self.VerticalComboBox.setCurrentIndex(self.theme.display_verticalAlign) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index b770a9e05..8053144d7 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -210,7 +210,6 @@ class MainDisplay(DisplayWidget): self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint) self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) - self.parent = parent # WA_TranslucentBackground is not available in QT4.4 try: self.setAttribute(QtCore.Qt.WA_TranslucentBackground) @@ -241,7 +240,8 @@ class MainDisplay(DisplayWidget): #Sort out screen locations and sizes self.setGeometry(self.screen[u'size']) self.scene.setSceneRect(0,0,self.size().width(), self.size().height()) - self.webView.setGeometry(0, 0, self.size().width(), self.size().height()) + self.webView.setGeometry(0, 0, self.size().width(), + self.size().height()) #Build a custom splash screen self.InitialFrame = QtGui.QImage( self.screen[u'size'].width(), @@ -288,11 +288,14 @@ class MainDisplay(DisplayWidget): self.webView = QtWebKit.QWebView() self.page = self.webView.page() self.videoDisplay = self.page.mainFrame() - self.videoDisplay.setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff) - self.videoDisplay.setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff) + self.videoDisplay.setScrollBarPolicy(QtCore.Qt.Vertical, + QtCore.Qt.ScrollBarAlwaysOff) + self.videoDisplay.setScrollBarPolicy(QtCore.Qt.Horizontal, + QtCore.Qt.ScrollBarAlwaysOff) self.proxy = QtGui.QGraphicsProxyWidget() self.proxy.setWidget(self.webView) - self.proxy.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint) + self.proxy.setWindowFlags(QtCore.Qt.Window | + QtCore.Qt.FramelessWindowHint) self.proxy.setZValue(1) self.scene.addItem(self.proxy) @@ -413,7 +416,8 @@ class MainDisplay(DisplayWidget): log.debug(u'adddisplayVideo') self.displayImage(self.transparent) self.videoDisplay.setHtml(HTMLVIDEO % - (path, self.screen[u'size'].width(), self.screen[u'size'].height())) + (path, self.screen[u'size'].width(), + self.screen[u'size'].height())) def frameView(self, frame, transition=False): """ @@ -514,7 +518,7 @@ class VideoDisplay(Phonon.VideoWidget): Sets up the screen on a particular screen. """ log.debug(u'VideoDisplay Setup %s for %s ' % (self.screens, - self.screens.monitor_number)) + self.screens.monitor_number)) self.screen = self.screens.current #Sort out screen locations and sizes self.setGeometry(self.screen[u'size']) @@ -616,7 +620,7 @@ class VideoDisplay(Phonon.VideoWidget): def mediaShow(self, message=''): """ - Show the video disaply if it was already hidden + Show the video display if it was already hidden """ if self.hidden: self.hidden = False @@ -625,7 +629,7 @@ class VideoDisplay(Phonon.VideoWidget): class AudioPlayer(QtCore.QObject): """ - This Class will play audio only allowing components to work witn a + This Class will play audio only allowing components to work with a soundtrack which does not take over the user interface. """ log.info(u'AudioPlayer Loaded') @@ -641,8 +645,7 @@ class AudioPlayer(QtCore.QObject): The list of screens. """ log.debug(u'AudioPlayer Initialisation started') - QtCore.QObject.__init__(self) - self.parent = parent + QtCore.QObject.__init__(self, parent) self.message = None self.mediaObject = Phonon.MediaObject() self.audioObject = Phonon.AudioOutput(Phonon.VideoCategory) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 3f392655d..9c5939070 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -147,16 +147,20 @@ class Ui_MainWindow(object): self.FileImportMenu.setObjectName(u'FileImportMenu') self.FileExportMenu = QtGui.QMenu(self.FileMenu) self.FileExportMenu.setObjectName(u'FileExportMenu') - self.OptionsMenu = QtGui.QMenu(self.MenuBar) - self.OptionsMenu.setObjectName(u'OptionsMenu') - self.OptionsViewMenu = QtGui.QMenu(self.OptionsMenu) - self.OptionsViewMenu.setObjectName(u'OptionsViewMenu') - self.ViewModeMenu = QtGui.QMenu(self.OptionsViewMenu) + # View Menu + self.ViewMenu = QtGui.QMenu(self.MenuBar) + self.ViewMenu.setObjectName(u'ViewMenu') + self.ViewModeMenu = QtGui.QMenu(self.ViewMenu) self.ViewModeMenu.setObjectName(u'ViewModeMenu') - self.OptionsLanguageMenu = QtGui.QMenu(self.OptionsMenu) - self.OptionsLanguageMenu.setObjectName(u'OptionsLanguageMenu') + # Tools Menu self.ToolsMenu = QtGui.QMenu(self.MenuBar) self.ToolsMenu.setObjectName(u'ToolsMenu') + # Settings Menu + self.SettingsMenu = QtGui.QMenu(self.MenuBar) + self.SettingsMenu.setObjectName(u'SettingsMenu') + self.SettingsLanguageMenu = QtGui.QMenu(self.SettingsMenu) + self.SettingsLanguageMenu.setObjectName(u'SettingsLanguageMenu') + # Help Menu self.HelpMenu = QtGui.QMenu(self.MenuBar) self.HelpMenu.setObjectName(u'HelpMenu') MainWindow.setMenuBar(self.MenuBar) @@ -168,8 +172,8 @@ class Ui_MainWindow(object): self.StatusBar.addPermanentWidget(self.DefaultThemeLabel) # Create the MediaManager self.MediaManagerDock = OpenLPDockWidget(MainWindow) - MediaManagerIcon = build_icon(u':/system/system_mediamanager.png') - self.MediaManagerDock.setWindowIcon(MediaManagerIcon) + self.MediaManagerDock.setWindowIcon( + build_icon(u':/system/system_mediamanager.png')) self.MediaManagerDock.setStyleSheet(media_manager_style) self.MediaManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_left) @@ -188,8 +192,8 @@ class Ui_MainWindow(object): QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock) # Create the service manager self.ServiceManagerDock = OpenLPDockWidget(MainWindow) - ServiceManagerIcon = build_icon(u':/system/system_servicemanager.png') - self.ServiceManagerDock.setWindowIcon(ServiceManagerIcon) + self.ServiceManagerDock.setWindowIcon( + build_icon(u':/system/system_servicemanager.png')) self.ServiceManagerDock.setObjectName(u'ServiceManagerDock') self.ServiceManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_right) @@ -199,8 +203,8 @@ class Ui_MainWindow(object): QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock) # Create the theme manager self.ThemeManagerDock = OpenLPDockWidget(MainWindow) - ThemeManagerIcon = build_icon(u':/system/system_thememanager.png') - self.ThemeManagerDock.setWindowIcon(ThemeManagerIcon) + self.ThemeManagerDock.setWindowIcon( + build_icon(u':/system/system_thememanager.png')) self.ThemeManagerDock.setObjectName(u'ThemeManagerDock') self.ThemeManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_right) @@ -227,8 +231,7 @@ class Ui_MainWindow(object): self.FileSaveAsItem = QtGui.QAction(MainWindow) self.FileSaveAsItem.setObjectName(u'FileSaveAsItem') self.FileExitItem = QtGui.QAction(MainWindow) - ExitIcon = build_icon(u':/system/system_exit.png') - self.FileExitItem.setIcon(ExitIcon) + self.FileExitItem.setIcon(build_icon(u':/system/system_exit.png')) self.FileExitItem.setObjectName(u'FileExitItem') self.ImportThemeItem = QtGui.QAction(MainWindow) self.ImportThemeItem.setObjectName(u'ImportThemeItem') @@ -238,39 +241,41 @@ class Ui_MainWindow(object): self.ExportThemeItem.setObjectName(u'ExportThemeItem') self.ExportLanguageItem = QtGui.QAction(MainWindow) self.ExportLanguageItem.setObjectName(u'ExportLanguageItem') - self.actionLook_Feel = QtGui.QAction(MainWindow) - self.actionLook_Feel.setObjectName(u'actionLook_Feel') - self.OptionsSettingsItem = QtGui.QAction(MainWindow) - SettingsIcon = build_icon(u':/system/system_settings.png') - self.OptionsSettingsItem.setIcon(SettingsIcon) - self.OptionsSettingsItem.setObjectName(u'OptionsSettingsItem') + self.SettingsConfigureItem = QtGui.QAction(MainWindow) + self.SettingsConfigureItem.setIcon( + build_icon(u':/system/system_settings.png')) + self.SettingsConfigureItem.setObjectName(u'SettingsConfigureItem') self.ViewMediaManagerItem = QtGui.QAction(MainWindow) self.ViewMediaManagerItem.setCheckable(True) self.ViewMediaManagerItem.setChecked(self.MediaManagerDock.isVisible()) - self.ViewMediaManagerItem.setIcon(MediaManagerIcon) + self.ViewMediaManagerItem.setIcon( + build_icon(u':/system/system_mediamanager.png')) self.ViewMediaManagerItem.setObjectName(u'ViewMediaManagerItem') self.ViewThemeManagerItem = QtGui.QAction(MainWindow) self.ViewThemeManagerItem.setCheckable(True) self.ViewThemeManagerItem.setChecked(self.ThemeManagerDock.isVisible()) - self.ViewThemeManagerItem.setIcon(ThemeManagerIcon) + self.ViewThemeManagerItem.setIcon( + build_icon(u':/system/system_thememanager.png')) self.ViewThemeManagerItem.setObjectName(u'ViewThemeManagerItem') self.ViewServiceManagerItem = QtGui.QAction(MainWindow) self.ViewServiceManagerItem.setCheckable(True) self.ViewServiceManagerItem.setChecked( self.ServiceManagerDock.isVisible()) - self.ViewServiceManagerItem.setIcon(ServiceManagerIcon) + self.ViewServiceManagerItem.setIcon( + build_icon(u':/system/system_servicemanager.png')) self.ViewServiceManagerItem.setObjectName(u'ViewServiceManagerItem') - self.PluginItem = QtGui.QAction(MainWindow) - #self.PluginItem.setIcon(AlertIcon) - self.PluginItem.setObjectName(u'PluginItem') + self.SettingsPluginListItem = QtGui.QAction(MainWindow) + self.SettingsPluginListItem.setIcon( + build_icon(u':/system/settings_plugin_list.png')) + self.SettingsPluginListItem.setObjectName(u'SettingsPluginListItem') self.HelpDocumentationItem = QtGui.QAction(MainWindow) - ContentsIcon = build_icon(u':/system/system_help_contents.png') - self.HelpDocumentationItem.setIcon(ContentsIcon) + self.HelpDocumentationItem.setIcon( + build_icon(u':/system/system_help_contents.png')) self.HelpDocumentationItem.setObjectName(u'HelpDocumentationItem') self.HelpDocumentationItem.setEnabled(False) self.HelpAboutItem = QtGui.QAction(MainWindow) - AboutIcon = build_icon(u':/system/system_about.png') - self.HelpAboutItem.setIcon(AboutIcon) + self.HelpAboutItem.setIcon( + build_icon(u':/system/system_about.png')) self.HelpAboutItem.setObjectName(u'HelpAboutItem') self.HelpOnlineHelpItem = QtGui.QAction(MainWindow) self.HelpOnlineHelpItem.setObjectName(u'HelpOnlineHelpItem') @@ -294,18 +299,36 @@ class Ui_MainWindow(object): add_actions(self.LanguageGroup, [languageItem]) self.LanguageGroup.setDisabled(LanguageManager.AutoLanguage) self.ToolsAddToolItem = QtGui.QAction(MainWindow) - AddToolIcon = build_icon(u':/tools/tools_add.png') - self.ToolsAddToolItem.setIcon(AddToolIcon) + self.ToolsAddToolItem.setIcon(build_icon(u':/tools/tools_add.png')) self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem') - self.action_Preview_Panel = QtGui.QAction(MainWindow) - self.action_Preview_Panel.setCheckable(True) - self.action_Preview_Panel.setChecked( - self.settingsmanager.showPreviewPanel) - self.action_Preview_Panel.setObjectName(u'action_Preview_Panel') + self.ViewPreviewPanel = QtGui.QAction(MainWindow) + self.ViewPreviewPanel.setCheckable(True) + self.ViewPreviewPanel.setChecked( + self.settingsmanager.get_preview_visibility()) + self.ViewPreviewPanel.setObjectName(u'ViewPreviewPanel') self.PreviewController.Panel.setVisible( - self.settingsmanager.showPreviewPanel) + self.settingsmanager.get_preview_visibility()) + self.ViewLivePanel = QtGui.QAction(MainWindow) + self.ViewLivePanel.setCheckable(True) + self.ViewLivePanel.setChecked( + self.settingsmanager.get_live_visibility()) + self.ViewLivePanel.setObjectName(u'ViewLivePanel') + self.LiveController.Panel.setVisible( + self.settingsmanager.get_live_visibility()) + self.ModeDefaultItem = QtGui.QAction(MainWindow) + self.ModeDefaultItem.setCheckable(True) + self.ModeDefaultItem.setObjectName(u'ModeDefaultItem') + self.ModeSetupItem = QtGui.QAction(MainWindow) + self.ModeSetupItem.setCheckable(True) + self.ModeSetupItem.setObjectName(u'ModeLiveItem') self.ModeLiveItem = QtGui.QAction(MainWindow) + self.ModeLiveItem.setCheckable(True) self.ModeLiveItem.setObjectName(u'ModeLiveItem') + self.ModeGroup = QtGui.QActionGroup(MainWindow) + self.ModeGroup.addAction(self.ModeDefaultItem) + self.ModeGroup.addAction(self.ModeSetupItem) + self.ModeGroup.addAction(self.ModeLiveItem) + self.ModeDefaultItem.setChecked(True) add_actions(self.FileImportMenu, (self.ImportThemeItem, self.ImportLanguageItem)) add_actions(self.FileExportMenu, @@ -314,23 +337,27 @@ class Ui_MainWindow(object): self.FileSaveItem, self.FileSaveAsItem, None, self.FileImportMenu.menuAction(), self.FileExportMenu.menuAction(), self.FileExitItem) - add_actions(self.ViewModeMenu, [self.ModeLiveItem]) - add_actions(self.OptionsViewMenu, (self.ViewModeMenu.menuAction(), + add_actions(self.ViewModeMenu, (self.ModeDefaultItem, + self.ModeSetupItem, self.ModeLiveItem)) + add_actions(self.ViewMenu, (self.ViewModeMenu.menuAction(), None, self.ViewMediaManagerItem, self.ViewServiceManagerItem, - self.ViewThemeManagerItem, None, self.action_Preview_Panel)) + self.ViewThemeManagerItem, None, self.ViewPreviewPanel, + self.ViewLivePanel)) #i18n add Language Actions - add_actions(self.OptionsLanguageMenu, (self.AutoLanguageItem, None)) - add_actions(self.OptionsLanguageMenu, self.LanguageGroup.actions()) - add_actions(self.OptionsMenu, (self.OptionsLanguageMenu.menuAction(), - self.OptionsViewMenu.menuAction(), None, self.OptionsSettingsItem)) + add_actions(self.SettingsLanguageMenu, (self.AutoLanguageItem, None)) + add_actions(self.SettingsLanguageMenu, self.LanguageGroup.actions()) + add_actions(self.SettingsMenu, (self.SettingsPluginListItem, + self.SettingsLanguageMenu.menuAction(), None, + self.SettingsConfigureItem)) add_actions(self.ToolsMenu, - (self.PluginItem, None, self.ToolsAddToolItem)) + (self.ToolsAddToolItem, None)) add_actions(self.HelpMenu, (self.HelpDocumentationItem, self.HelpOnlineHelpItem, None, self.HelpWebSiteItem, self.HelpAboutItem)) add_actions(self.MenuBar, - (self.FileMenu.menuAction(), self.OptionsMenu.menuAction(), - self.ToolsMenu.menuAction(), self.HelpMenu.menuAction())) + (self.FileMenu.menuAction(), self.ViewMenu.menuAction(), + self.ToolsMenu.menuAction(), self.SettingsMenu.menuAction(), + self.HelpMenu.menuAction())) # Initialise the translation self.retranslateUi(MainWindow) self.MediaToolBox.setCurrentIndex(0) @@ -360,12 +387,12 @@ class Ui_MainWindow(object): self.FileMenu.setTitle(translate('MainWindow', '&File')) self.FileImportMenu.setTitle(translate('MainWindow', '&Import')) self.FileExportMenu.setTitle(translate('MainWindow', '&Export')) - self.OptionsMenu.setTitle(translate('MainWindow', '&Options')) - self.OptionsViewMenu.setTitle(translate('MainWindow', '&View')) + self.ViewMenu.setTitle(translate('MainWindow', '&View')) self.ViewModeMenu.setTitle(translate('MainWindow', 'M&ode')) - self.OptionsLanguageMenu.setTitle(translate('MainWindow', - '&Language')) self.ToolsMenu.setTitle(translate('MainWindow', '&Tools')) + self.SettingsMenu.setTitle(translate('MainWindow', '&Settings')) + self.SettingsLanguageMenu.setTitle(translate('MainWindow', + '&Language')) self.HelpMenu.setTitle(translate('MainWindow', '&Help')) self.MediaManagerDock.setWindowTitle( translate('MainWindow', 'Media Manager')) @@ -376,24 +403,24 @@ class Ui_MainWindow(object): self.FileNewItem.setText(translate('MainWindow', '&New')) self.FileNewItem.setToolTip(translate('MainWindow', 'New Service')) self.FileNewItem.setStatusTip( - translate('MainWindow', 'Create a new Service')) + translate('MainWindow', 'Create a new service.')) self.FileNewItem.setShortcut(translate('MainWindow', 'Ctrl+N')) self.FileOpenItem.setText(translate('MainWindow', '&Open')) self.FileOpenItem.setToolTip(translate('MainWindow', 'Open Service')) self.FileOpenItem.setStatusTip( - translate('MainWindow', 'Open an existing service')) + translate('MainWindow', 'Open an existing service.')) self.FileOpenItem.setShortcut(translate('MainWindow', 'Ctrl+O')) self.FileSaveItem.setText(translate('MainWindow', '&Save')) self.FileSaveItem.setToolTip(translate('MainWindow', 'Save Service')) self.FileSaveItem.setStatusTip( - translate('MainWindow', 'Save the current service to disk')) + translate('MainWindow', 'Save the current service to disk.')) self.FileSaveItem.setShortcut(translate('MainWindow', 'Ctrl+S')) self.FileSaveAsItem.setText(translate('MainWindow', 'Save &As...')) self.FileSaveAsItem.setToolTip( translate('MainWindow', 'Save Service As')) self.FileSaveAsItem.setStatusTip(translate('MainWindow', - 'Save the current service under a new name')) - self.FileSaveAsItem.setShortcut(translate('MainWindow', 'F12')) + 'Save the current service under a new name.')) + self.FileSaveAsItem.setShortcut(translate('MainWindow', 'Ctrl+Shift+S')) self.FileExitItem.setText(translate('MainWindow', 'E&xit')) self.FileExitItem.setStatusTip(translate('MainWindow', 'Quit OpenLP')) self.FileExitItem.setShortcut(translate('MainWindow', 'Alt+F4')) @@ -401,40 +428,48 @@ class Ui_MainWindow(object): self.ImportLanguageItem.setText(translate('MainWindow', '&Language')) self.ExportThemeItem.setText(translate('MainWindow', '&Theme')) self.ExportLanguageItem.setText(translate('MainWindow', '&Language')) - self.actionLook_Feel.setText(translate('MainWindow', 'Look && &Feel')) - self.OptionsSettingsItem.setText(translate('MainWindow', '&Settings')) + self.SettingsConfigureItem.setText(translate('MainWindow', + '&Configure OpenLP...')) self.ViewMediaManagerItem.setText( translate('MainWindow', '&Media Manager')) self.ViewMediaManagerItem.setToolTip( translate('MainWindow', 'Toggle Media Manager')) self.ViewMediaManagerItem.setStatusTip(translate('MainWindow', - 'Toggle the visibility of the Media Manager')) + 'Toggle the visibility of the media manager.')) self.ViewMediaManagerItem.setShortcut(translate('MainWindow', 'F8')) self.ViewThemeManagerItem.setText( translate('MainWindow', '&Theme Manager')) self.ViewThemeManagerItem.setToolTip( translate('MainWindow', 'Toggle Theme Manager')) self.ViewThemeManagerItem.setStatusTip(translate('MainWindow', - 'Toggle the visibility of the Theme Manager')) + 'Toggle the visibility of the theme manager.')) self.ViewThemeManagerItem.setShortcut(translate('MainWindow', 'F10')) self.ViewServiceManagerItem.setText( translate('MainWindow', '&Service Manager')) self.ViewServiceManagerItem.setToolTip( translate('MainWindow', 'Toggle Service Manager')) self.ViewServiceManagerItem.setStatusTip(translate('MainWindow', - 'Toggle the visibility of the Service Manager')) + 'Toggle the visibility of the service manager.')) self.ViewServiceManagerItem.setShortcut(translate('MainWindow', 'F9')) - self.action_Preview_Panel.setText( + self.ViewPreviewPanel.setText( translate('MainWindow', '&Preview Panel')) - self.action_Preview_Panel.setToolTip( + self.ViewPreviewPanel.setToolTip( translate('MainWindow', 'Toggle Preview Panel')) - self.action_Preview_Panel.setStatusTip(translate('MainWindow', - 'Toggle the visibility of the Preview Panel')) - self.action_Preview_Panel.setShortcut(translate('MainWindow', 'F11')) - self.PluginItem.setText(translate('MainWindow', '&Plugin List')) - self.PluginItem.setStatusTip( + self.ViewPreviewPanel.setStatusTip(translate('MainWindow', + 'Toggle the visibility of the preview panel.')) + self.ViewPreviewPanel.setShortcut(translate('MainWindow', 'F11')) + self.ViewLivePanel.setText( + translate('MainWindow', '&Live Panel')) + self.ViewLivePanel.setToolTip( + translate('MainWindow', 'Toggle Live Panel')) + self.ViewLivePanel.setStatusTip(translate('MainWindow', + 'Toggle the visibility of the live panel.')) + self.ViewLivePanel.setShortcut(translate('MainWindow', 'F12')) + self.SettingsPluginListItem.setText(translate('MainWindow', + '&Plugin List')) + self.SettingsPluginListItem.setStatusTip( translate('MainWindow', 'List the Plugins')) - self.PluginItem.setShortcut(translate('MainWindow', 'Alt+F7')) + self.SettingsPluginListItem.setShortcut(translate('MainWindow', 'Alt+F7')) self.HelpDocumentationItem.setText( translate('MainWindow', '&User Guide')) self.HelpAboutItem.setText(translate('MainWindow', '&About')) @@ -444,10 +479,9 @@ class Ui_MainWindow(object): self.HelpOnlineHelpItem.setText( translate('MainWindow', '&Online Help')) self.HelpWebSiteItem.setText(translate('MainWindow', '&Web Site')) - #i18n self.AutoLanguageItem.setText(translate('MainWindow', '&Auto Detect')) self.AutoLanguageItem.setStatusTip( - translate('MainWindow', 'Choose System language, if available')) + translate('MainWindow', 'Use the system language, if available.')) for item in self.LanguageGroup.actions(): item.setText(item.objectName()) item.setStatusTip(unicode(translate('MainWindow', @@ -455,10 +489,19 @@ class Ui_MainWindow(object): self.ToolsAddToolItem.setText(translate('MainWindow', 'Add &Tool...')) self.ToolsAddToolItem.setStatusTip( translate('MainWindow', - 'Add an application to the list of tools')) - self.action_Preview_Panel.setText( - translate('MainWindow', '&Preview Pane')) + 'Add an application to the list of tools.')) + self.ModeDefaultItem.setText(translate('MainWindow', '&Default')) + self.ModeDefaultItem.setStatusTip( + translate('MainWindow', + 'Set the view mode back to the default.')) + self.ModeSetupItem.setText(translate('MainWindow', '&Setup')) + self.ModeSetupItem.setStatusTip( + translate('MainWindow', + 'Set the view mode to Setup.')) self.ModeLiveItem.setText(translate('MainWindow', '&Live')) + self.ModeLiveItem.setStatusTip( + translate('MainWindow', + 'Set the view mode to Live.')) class MainWindow(QtGui.QMainWindow, Ui_MainWindow): @@ -514,9 +557,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.ViewThemeManagerItem, QtCore.SIGNAL(u'triggered(bool)'), self.toggleThemeManager) - QtCore.QObject.connect(self.action_Preview_Panel, + QtCore.QObject.connect(self.ViewPreviewPanel, QtCore.SIGNAL(u'toggled(bool)'), - self.togglePreviewPanel) + self.setPreviewPanelVisibility) + QtCore.QObject.connect(self.ViewLivePanel, + QtCore.SIGNAL(u'toggled(bool)'), + self.setLivePanelVisibility) QtCore.QObject.connect(self.MediaManagerDock, QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewMediaManagerItem.setChecked) @@ -526,27 +572,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.ThemeManagerDock, QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewThemeManagerItem.setChecked) - QtCore.QObject.connect(self.PreviewController.Panel, - QtCore.SIGNAL(u'visibilityChanged(bool)'), - self.action_Preview_Panel.setChecked) QtCore.QObject.connect(self.HelpWebSiteItem, QtCore.SIGNAL(u'triggered()'), self.onHelpWebSiteClicked) QtCore.QObject.connect(self.HelpAboutItem, QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked) - QtCore.QObject.connect(self.PluginItem, + QtCore.QObject.connect(self.SettingsPluginListItem, QtCore.SIGNAL(u'triggered()'), self.onPluginItemClicked) - QtCore.QObject.connect(self.OptionsSettingsItem, + QtCore.QObject.connect(self.SettingsConfigureItem, QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'theme_update_global'), self.defaultThemeChanged) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'openlp_version_check'), self.versionCheck) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'maindisplay_blank_check'), self.blankCheck) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'maindisplay_status_text'), self.showStatusMessage) QtCore.QObject.connect(self.FileNewItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onNewService) @@ -564,6 +597,25 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.SIGNAL(u'toggled(bool)'), self.setAutoLanguage) self.LanguageGroup.triggered.connect(LanguageManager.set_language) + QtCore.QObject.connect(self.ModeDefaultItem, + QtCore.SIGNAL(u'triggered()'), + self.onModeDefaultItemClicked) + QtCore.QObject.connect(self.ModeSetupItem, + QtCore.SIGNAL(u'triggered()'), + self.onModeSetupItemClicked) + QtCore.QObject.connect(self.ModeLiveItem, + QtCore.SIGNAL(u'triggered()'), + self.onModeLiveItemClicked) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'theme_update_global'), self.defaultThemeChanged) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'openlp_version_check'), self.versionCheck) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'maindisplay_blank_check'), self.blankCheck) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'maindisplay_status_text'), self.showStatusMessage) #warning cyclic dependency #RenderManager needs to call ThemeManager and #ThemeManager needs to call RenderManager @@ -607,7 +659,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): log.info(u'Load data from Settings') self.settingsForm.postSetUp() - #i18n def setAutoLanguage(self, value): self.LanguageGroup.setDisabled(value) LanguageManager.AutoLanguage = value @@ -695,6 +746,36 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ self.settingsForm.exec_() + def onModeDefaultItemClicked(self): + """ + Put OpenLP into "Default" view mode. + """ + self.MediaManagerDock.setVisible(True) + self.ServiceManagerDock.setVisible(True) + self.ThemeManagerDock.setVisible(True) + self.setPreviewPanelVisibility(True) + self.setLivePanelVisibility(True) + + def onModeSetupItemClicked(self): + """ + Put OpenLP into "Setup" view mode. + """ + self.MediaManagerDock.setVisible(True) + self.ServiceManagerDock.setVisible(True) + self.ThemeManagerDock.setVisible(False) + self.setPreviewPanelVisibility(True) + self.setLivePanelVisibility(False) + + def onModeLiveItemClicked(self): + """ + Put OpenLP into "Live" view mode. + """ + self.MediaManagerDock.setVisible(False) + self.ServiceManagerDock.setVisible(True) + self.ThemeManagerDock.setVisible(False) + self.setPreviewPanelVisibility(False) + self.setLivePanelVisibility(True) + def screenChanged(self): """ The screen has changed to so tell the displays to update_display @@ -787,10 +868,33 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if self.ThemeManagerDock.isVisible() != visible: self.ThemeManagerDock.setVisible(visible) - def togglePreviewPanel(self): - previewBool = self.PreviewController.Panel.isVisible() - self.PreviewController.Panel.setVisible(not previewBool) - self.settingsmanager.togglePreviewPanel(not previewBool) + def setPreviewPanelVisibility(self, visible): + """ + Sets the visibility of the preview panel including saving the setting + and updating the menu. + + ``visible`` + A bool giving the state to set the panel to + True - Visible + False - Hidden + """ + self.PreviewController.Panel.setVisible(visible) + self.settingsmanager.set_preview_visibility(visible) + self.ViewPreviewPanel.setChecked(visible) + + def setLivePanelVisibility(self, visible): + """ + Sets the visibility of the live panel including saving the setting and + updating the menu. + + ``visible`` + A bool giving the state to set the panel to + True - Visible + False - Hidden + """ + self.LiveController.Panel.setVisible(visible) + self.settingsmanager.set_live_visibility(visible) + self.ViewLivePanel.setChecked(visible) def loadSettings(self): log.debug(u'Loading QSettings') diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index fbf7df6db..d5dd4e274 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -35,7 +35,7 @@ from openlp.plugins.alerts.forms import AlertForm log = logging.getLogger(__name__) -class alertsPlugin(Plugin): +class AlertsPlugin(Plugin): log.info(u'Alerts Plugin loaded') def __init__(self, plugin_helpers): @@ -88,7 +88,7 @@ class alertsPlugin(Plugin): Plugin.finalise(self) self.toolsAlertItem.setVisible(False) - def togglealertsState(self): + def toggleAlertsState(self): self.alertsActive = not self.alertsActive QtCore.QSettings().setValue( self.settingsSection + u'/active', @@ -102,4 +102,5 @@ class alertsPlugin(Plugin): about_text = translate('AlertsPlugin', 'Alerts Plugin
This plugin ' 'controls the displaying of alerts on the presentations screen') - return about_text \ No newline at end of file + return about_text + diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index bf75f9ced..388d35751 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -88,13 +88,14 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): self.AlertTextEdit.setText(u'') self.SaveButton.setEnabled(False) self.DeleteButton.setEnabled(False) - self.EditButton.setEnabled(False) def onNewClick(self): if len(self.AlertTextEdit.text()) == 0: QtGui.QMessageBox.information(self, - translate('AlertsPlugin.AlertForm', 'Item selected to Add'), - translate('AlertsPlugin.AlertForm', 'Missing data')) + translate('AlertsPlugin.AlertForm', 'New Alert'), + translate('AlertsPlugin.AlertForm', 'You haven\'t specified ' + 'any text for your alert. Please type in some text before ' + 'clicking New.')) else: alert = AlertItem() alert.text = unicode(self.AlertTextEdit.text()) diff --git a/openlp/plugins/alerts/lib/alertsmanager.py b/openlp/plugins/alerts/lib/alertsmanager.py index aac3eccb9..a8c4c9bfe 100644 --- a/openlp/plugins/alerts/lib/alertsmanager.py +++ b/openlp/plugins/alerts/lib/alertsmanager.py @@ -95,7 +95,7 @@ class AlertsManager(QtCore.QObject): alertTab = self.parent.alertsTab text = HTMLCODE % (alertTab.font_color, alertTab.bg_color, alertTab.font_face, alertTab.font_size, text) - self.parent.preview_controller.parent.displayManager.addAlert(text, + self.parent.previewController.parent.displayManager.addAlert(text, alertTab.location) # check to see if we have a timer running if self.timer_id == 0: @@ -112,8 +112,9 @@ class AlertsManager(QtCore.QObject): log.debug(u'timer event') alertTab = self.parent.alertsTab if event.timerId() == self.timer_id: - self.parent.preview_controller.parent.displayManager.addAlert(u'', + self.parent.previewController.parent.displayManager.addAlert(u'', alertTab.location) self.killTimer(self.timer_id) self.timer_id = 0 self.generateAlert() + diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index 118a30eae..c9277c3cf 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -98,6 +98,7 @@ system_servicemanager.png system_thememanager.png system_exit.png + settings_plugin_list.png system_settings.png diff --git a/resources/images/settings_plugin_list.png b/resources/images/settings_plugin_list.png new file mode 100644 index 000000000..a63300712 Binary files /dev/null and b/resources/images/settings_plugin_list.png differ