Thu, 20 Jun 2013 18:59:13 +0200
Added a menu entry to call a translations editor from the translations viewer.
# -*- coding: utf-8 -*- # Copyright (c) 2012 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the Pyramid configuration page. """ from PyQt4.QtCore import pyqtSlot from E5Gui.E5Completers import E5DirCompleter from E5Gui import E5FileDialog from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase from .Ui_PyramidPage import Ui_PyramidPage import Utilities from Globals import isWindowsPlatform, isMacPlatform class PyramidPage(ConfigurationPageBase, Ui_PyramidPage): """ Class implementing the Pyramid configuration page. """ def __init__(self, plugin): """ Constructor @param plugin reference to the plugin object """ super().__init__() self.setupUi(self) self.setObjectName("PyramidPage") self.__plugin = plugin consoleList = [] if isWindowsPlatform(): consoleList.append("cmd.exe /c") elif isMacPlatform(): consoleList.append("xterm -e") consoleList.append("/opt/X11/bin/xterm -e") else: consoleList.append("konsole -e") consoleList.append("@konsole --workdir . -e") # KDE4 konsole spawns consoleList.append("gnome-terminal -x") consoleList.append("xfce4-terminal -e") consoleList.append("xterm -e") self.consoleCommandCombo.addItems(consoleList) self.virtualEnvPy2Completer = E5DirCompleter(self.virtualEnvPy2Edit) self.virtualEnvPy3Completer = E5DirCompleter(self.virtualEnvPy3Edit) self.py2ShellCombo.addItem(self.trUtf8("Plain Python"), "python") self.py2ShellCombo.addItem(self.trUtf8("IPython"), "ipython") self.py2ShellCombo.addItem(self.trUtf8("bpython"), "bpython") self.py3ShellCombo.addItem(self.trUtf8("Plain Python"), "python") self.py3ShellCombo.addItem(self.trUtf8("IPython"), "ipython") self.py3ShellCombo.addItem(self.trUtf8("bpython"), "bpython") # set initial values self.consoleCommandCombo.setEditText( self.__plugin.getPreferences("ConsoleCommand")) self.virtualEnvPy2Edit.setText( self.__plugin.getPreferences("VirtualEnvironmentPy2")) self.virtualEnvPy3Edit.setText( self.__plugin.getPreferences("VirtualEnvironmentPy3")) self.py2ShellCombo.setCurrentIndex(self.py2ShellCombo.findData( self.__plugin.getPreferences("Python2ConsoleType"))) self.py3ShellCombo.setCurrentIndex(self.py3ShellCombo.findData( self.__plugin.getPreferences("Python3ConsoleType"))) self.urlEdit.setText( self.__plugin.getPreferences("PyramidDocUrl")) self.translationsEdit.setText( self.__plugin.getPreferences("TranslationsEditor")) def save(self): """ Public slot to save the Pyramid configuration. """ self.__plugin.setPreferences("ConsoleCommand", self.consoleCommandCombo.currentText()) self.__plugin.setPreferences("VirtualEnvironmentPy2", self.virtualEnvPy2Edit.text()) self.__plugin.setPreferences("VirtualEnvironmentPy3", self.virtualEnvPy3Edit.text()) self.__plugin.setPreferences("Python2ConsoleType", self.py2ShellCombo.itemData(self.py2ShellCombo.currentIndex())) self.__plugin.setPreferences("Python3ConsoleType", self.py3ShellCombo.itemData(self.py3ShellCombo.currentIndex())) self.__plugin.setPreferences("PyramidDocUrl", self.urlEdit.text()) self.__plugin.setPreferences("TranslationsEditor", self.translationsEdit.text()) @pyqtSlot() def on_virtualEnvPy3Button_clicked(self): """ Private slot to select the virtual environment for Python 3 via a directory selection dialog. """ vDir = self.virtualEnvPy3Edit.text() if not vDir: vDir = Utilities.getHomeDir() virtualEnv = E5FileDialog.getExistingDirectory( self, self.trUtf8("Select Virtual Environment for Python 3"), vDir, E5FileDialog.Options(E5FileDialog.Option(0))) if virtualEnv: self.virtualEnvPy3Edit.setText(Utilities.toNativeSeparators(virtualEnv)) @pyqtSlot() def on_virtualEnvPy2Button_clicked(self): """ Private slot to select the virtual environment for Python 2 via a directory selection dialog. """ vDir = self.virtualEnvPy2Edit.text() if not vDir: vDir = Utilities.getHomeDir() virtualEnv = E5FileDialog.getExistingDirectory( self, self.trUtf8("Select Virtual Environment for Python 2"), vDir, E5FileDialog.Options(E5FileDialog.Option(0))) if virtualEnv: self.virtualEnvPy2Edit.setText(Utilities.toNativeSeparators(virtualEnv)) @pyqtSlot() def on_translationsButton_clicked(self): """ Private slot to select the translations editor via a file selection dialog. """ editor = E5FileDialog.getOpenFileName( self, self.trUtf8("Translations Editor"), self.translationsEdit.text(), self.trUtf8("All Files (*)")) if editor: self.translationsEdit.setText(Utilities.toNativeSeparators(editor))