ProjectDjango/ConfigurationPage/DjangoPage.py

Sun, 24 Mar 2013 14:39:36 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 24 Mar 2013 14:39:36 +0100
changeset 4
81c2943be6b6
parent 1
13a0cced0c6e
child 6
80815349eef4
permissions
-rw-r--r--

Added support for IPv6 to the 'Run Server', 'Run Browser' and 'Run Testserver' commands.

# -*- 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.ipv6CheckBox.setChecked(
            self.__plugin.getPreferences("UseIPv6"))
        
        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("UseIPv6",
            self.ipv6CheckBox.isChecked())
        
        self.__plugin.setPreferences("RecentNumberApps", 
            self.appsRecentSpinBox.value())
        
        self.__plugin.setPreferences("UsePlainPython", 
            self.plainPythonCheckBox.isChecked())

eric ide

mercurial