diff --git a/python/console_sci.py b/python/console_sci.py index d3d39836e47..1c9ced16a12 100755 --- a/python/console_sci.py +++ b/python/console_sci.py @@ -286,11 +286,11 @@ class PythonEdit(QsciScintilla, code.InteractiveInterpreter): Check if selected text is r/w, otherwise remove read-only parts of selection """ - if self.current_prompt_pos is None: - self.move_cursor_to_end() - return + #if self.current_prompt_pos is None: + #self.move_cursor_to_end() + #return line_from, index_from, line_to, index_to = self.getSelection() - pline, pindex = self.current_prompt_pos + pline, pindex = self.getCursorPosition() if line_from < pline or \ (line_from == pline and index_from < pindex): self.setSelection(pline, pindex, line_to, index_to) @@ -377,27 +377,38 @@ class PythonEdit(QsciScintilla, code.InteractiveInterpreter): elif e.key() == Qt.Key_Left: e.accept() if e.modifiers() & Qt.ShiftModifier: - if e.modifiers() & Qt.ControlModifier: - self.SendScintilla(QsciScintilla.SCI_WORDLEFTEXTEND) - else: - self.SendScintilla(QsciScintilla.SCI_CHARLEFTEXTEND) + if index > 4: + if e.modifiers() & Qt.ControlModifier: + self.SendScintilla(QsciScintilla.SCI_WORDLEFTEXTEND) + else: + self.SendScintilla(QsciScintilla.SCI_CHARLEFTEXTEND) else: - if e.modifiers() & Qt.ControlModifier: - self.SendScintilla(QsciScintilla.SCI_WORDLEFT) - else: - self.SendScintilla(QsciScintilla.SCI_CHARLEFT) + if index > 4: + if e.modifiers() & Qt.ControlModifier: + self.SendScintilla(QsciScintilla.SCI_WORDLEFT) + else: + self.SendScintilla(QsciScintilla.SCI_CHARLEFT) elif e.key() == Qt.Key_Right: e.accept() if e.modifiers() & Qt.ShiftModifier: - if e.modifiers() & Qt.ControlModifier: - self.SendScintilla(QsciScintilla.SCI_WORDRIGHTEXTEND) - else: - self.SendScintilla(QsciScintilla.SCI_CHARRIGHTEXTEND) + if index >= 4: + if e.modifiers() & Qt.ControlModifier: + self.SendScintilla(QsciScintilla.SCI_WORDRIGHTEXTEND) + else: + self.SendScintilla(QsciScintilla.SCI_CHARRIGHTEXTEND) else: - if e.modifiers() & Qt.ControlModifier: - self.SendScintilla(QsciScintilla.SCI_WORDRIGHT) - else: - self.SendScintilla(QsciScintilla.SCI_CHARRIGHT) + if index >= 4: + if e.modifiers() & Qt.ControlModifier: + self.SendScintilla(QsciScintilla.SCI_WORDRIGHT) + else: + self.SendScintilla(QsciScintilla.SCI_CHARRIGHT) + elif e.key() == Qt.Key_Delete: + if self.hasSelectedText(): + self.check_selection() + self.removeSelectedText() + elif self.is_cursor_on_last_line(): + self.SendScintilla(QsciScintilla.SCI_CLEAR) + event.accept() ## TODO: press event for auto-completion file directory #elif e.key() == Qt.Key_Tab: #self.show_file_completion() diff --git a/python/help.py b/python/help.py index 5acffe67847..7faa38c66f0 100644 --- a/python/help.py +++ b/python/help.py @@ -11,7 +11,7 @@ class HelpDialog(QtGui.QDialog): self.setupUi() def setupUi(self): - self.resize(500, 300) + self.resize(400, 300) self.webView = QtWebKit.QWebView() self.setWindowTitle("Help Python Console") self.verticalLayout= QtGui.QVBoxLayout() diff --git a/python/helpConsole/help.htm b/python/helpConsole/help.htm index 12d0bf6da57..2f56a742fcc 100644 --- a/python/helpConsole/help.htm +++ b/python/helpConsole/help.htm @@ -22,6 +22,10 @@

+ Now you can use auto-completion for syntax in console!!! +
+ (Thanks to Larry Shaffer who provided the API files) +

To access Quantum GIS environment from this console use qgis.utils.iface object (instance of QgisInterface class). To import the class QgisInterface can also use the dedicated @@ -52,7 +56,7 @@ - Run commnand (like Enter key pressed) + Run command (like Enter key pressed)