--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProjectDjango/ConfigurationPage/DjangoPage.py Fri Mar 22 19:26:49 2013 +0100 @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2013 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Django configuration page. +""" + +from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase +from .Ui_DjangoPage import Ui_DjangoPage + +from Globals import isWindowsPlatform, isMacPlatform + + +class DjangoPage(ConfigurationPageBase, Ui_DjangoPage): + """ + Class implementing the Django configuration page. + """ + def __init__(self, plugin): + """ + Constructor + + @param plugin reference to the plugin object + """ + super().__init__() + self.setupUi(self) + self.setObjectName("DjangoPage") + + 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("xterm -e") + + consoleNoCloseList = [] + if isWindowsPlatform(): + consoleNoCloseList.append("cmd.exe /k") + elif isMacPlatform(): + consoleNoCloseList.append("xterm -hold -e") + consoleList.append("/opt/X11/bin/xterm -hold -e") + else: + consoleNoCloseList.append("konsole --noclose -e") + consoleNoCloseList.append("@konsole --noclose --workdir . -e") + # KDE4 konsole spawns + consoleNoCloseList.append("xterm -hold -e") + + self.consoleCommandCombo.addItems(consoleList) + self.consoleCommandNoCloseCombo.addItems(consoleNoCloseList) + + # set initial values + self.consoleCommandCombo.setEditText( + self.__plugin.getPreferences("ConsoleCommand")) + self.consoleCommandNoCloseCombo.setEditText( + self.__plugin.getPreferences("ConsoleCommandNoClose")) + + self.serverAddressEdit.setText( + self.__plugin.getPreferences("ServerAddress")) + + self.appsRecentSpinBox.setValue( + self.__plugin.getPreferences("RecentNumberApps")) + + self.plainPythonCheckBox.setChecked( + self.__plugin.getPreferences("UsePlainPython")) + + def save(self): + """ + Public slot to save the Django configuration. + """ + self.__plugin.setPreferences("ConsoleCommand", + self.consoleCommandCombo.currentText()) + self.__plugin.setPreferences("ConsoleCommandNoClose", + self.consoleCommandNoCloseCombo.currentText()) + + self.__plugin.setPreferences("ServerAddress", + self.serverAddressEdit.text()) + + self.__plugin.setPreferences("RecentNumberApps", + self.appsRecentSpinBox.value()) + + self.__plugin.setPreferences("UsePlainPython", + int(self.plainPythonCheckBox.isChecked()))