'**Arguments:**
namespace       dictionary containing the initial variables present in the default namespace
historyFile     optional file for storing command history
text            initial text to display in the console window
editor          optional string for invoking code editor (called when stack trace entries are
double-clicked). May contain {fileName} and {lineNum} format keys. Example::
editorCommand --loadfile {fileName} --gotoline {lineNum}'

def __init__(self, parent=None, namespace=None, historyFile=None, text=None, editor=None):

    QtGui.QWidget.__init__(self, parent)
    if (namespace is None):
        namespace = {}
    namespace['__console__'] = self
    self.localNamespace = namespace
    self.editor = editor
    self.multiline = None
    self.inCmd = False
    self.ui = template.Ui_Form()
    self.ui.setupUi(self)
    self.output = self.ui.output
    self.input = self.ui.input
    self.input.setFocus()
    if (text is not None):
        self.output.setPlainText(text)
    self.historyFile = historyFile
    history = self.loadHistory()
    if (history is not None):
        self.input.history = ([''] + history)
        self.ui.historyList.addItems(history[::(-1)])
    self.ui.historyList.hide()
    self.ui.exceptionGroup.hide()
    self.input.sigExecuteCmd.connect(self.runCmd)
    self.ui.historyBtn.toggled.connect(self.ui.historyList.setVisible)
    self.ui.historyList.itemClicked.connect(self.cmdSelected)
    self.ui.historyList.itemDoubleClicked.connect(self.cmdDblClicked)
    self.ui.exceptionBtn.toggled.connect(self.ui.exceptionGroup.setVisible)
    self.ui.catchAllExceptionsBtn.toggled.connect(self.catchAllExceptions)
    self.ui.catchNextExceptionBtn.toggled.connect(self.catchNextException)
    self.ui.clearExceptionBtn.clicked.connect(self.clearExceptionClicked)
    self.ui.exceptionStackList.itemClicked.connect(self.stackItemClicked)
    self.ui.exceptionStackList.itemDoubleClicked.connect(self.stackItemDblClicked)
    self.ui.onlyUncaughtCheck.toggled.connect(self.updateSysTrace)
    self.currentTraceback = None
