QGIS API Documentation 3.29.0-Master (ade4f0cf0f)
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
QgsCodeEditor Class Reference

A text editor based on QScintilla2. More...

#include <qgscodeeditor.h>

Inheritance diagram for QgsCodeEditor:
Inheritance graph
[legend]

Public Types

enum class  Flag : int { CodeFolding = 1 << 0 }
 Flags controlling behavior of code editor. More...
 
enum class  MarginRole : int { LineNumbers = 0 , ErrorIndicators = 1 , FoldingControls = 2 }
 Margin roles. More...
 
enum class  Mode { ScriptEditor , OutputDisplay , CommandInput }
 Code editor modes. More...
 

Public Slots

void clearPersistentHistory ()
 Clears the entire persistent history of commands run in the editor. More...
 
void clearSessionHistory ()
 Clears the history of commands run in the current session. More...
 
virtual void moveCursorToEnd ()
 Moves the cursor to the end of the document and scrolls to ensure it is visible. More...
 
virtual void moveCursorToStart ()
 Moves the cursor to the start of the document and scrolls to ensure it is visible. More...
 
void removeHistoryCommand (int index)
 Removes the command at the specified index from the history of the code editor. More...
 
void runCommand (const QString &command)
 Runs a command in the editor. More...
 
void showHistory ()
 Shows the command history dialog. More...
 
void showNextCommand ()
 Shows the next command from the session in the editor. More...
 
void showPreviousCommand ()
 Shows the previous command from the session in the editor. More...
 
bool writeHistoryFile ()
 Stores the commands executed in the editor to the persistent history file. More...
 

Signals

void persistentHistoryCleared ()
 Emitted when the persistent history of commands run in the editor is cleared. More...
 
void sessionHistoryCleared ()
 Emitted when the history of commands run in the current session is cleared. More...
 

Public Member Functions

 QgsCodeEditor (QWidget *parent=nullptr, const QString &title=QString(), bool folding=false, bool margin=false, QgsCodeEditor::Flags flags=QgsCodeEditor::Flags(), QgsCodeEditor::Mode mode=QgsCodeEditor::Mode::ScriptEditor)
 Flags controlling behavior of code editor. More...
 
void addWarning (int lineNumber, const QString &warning)
 Adds a warning message and indicator to the specified a lineNumber. More...
 
void clearWarnings ()
 Clears all warning messages from the editor. More...
 
bool foldingVisible ()
 Returns true if the folding controls are visible in the editor. More...
 
QStringList history () const
 Returns the list of commands previously executed in the editor. More...
 
void insertText (const QString &text)
 Insert text at cursor position, or replace any selected text if user has made a selection. More...
 
QgsCodeInterpreterinterpreter () const
 Returns the attached code interpreter, or nullptr if not set. More...
 
bool isCursorOnLastLine () const
 Returns true if the cursor is on the last line of the document. More...
 
virtual Qgis::ScriptLanguage language () const
 Returns the associated scripting language. More...
 
bool lineNumbersVisible () const
 Returns whether line numbers are visible in the editor. More...
 
Q_DECL_DEPRECATED bool marginVisible ()
 Returns whether margins are in a visible state. More...
 
QgsCodeEditor::Mode mode () const
 Returns the code editor mode. More...
 
void setCustomAppearance (const QString &scheme=QString(), const QMap< QgsCodeEditorColorScheme::ColorRole, QColor > &customColors=QMap< QgsCodeEditorColorScheme::ColorRole, QColor >(), const QString &fontFamily=QString(), int fontSize=0)
 Sets a custom appearance for the widget, disconnecting it from using the standard appearance taken from QSettings. More...
 
void setFoldingVisible (bool folding)
 Set whether the folding controls are visible in the editor. More...
 
void setHistoryFilePath (const QString &path)
 Sets the file path to use for recording and retrieving previously executed commands. More...
 
void setInterpreter (QgsCodeInterpreter *newInterpreter)
 Sets an attached code interpreter for executing commands when the editor is in the QgsCodeEditor::Mode::CommandInput mode. More...
 
void setLineNumbersVisible (bool visible)
 Sets whether line numbers should be visible in the editor. More...
 
Q_DECL_DEPRECATED void setMarginVisible (bool margin)
 Set margin visible state. More...
 
void setTitle (const QString &title)
 Set the widget title. More...
 

Static Public Member Functions

static QColor color (QgsCodeEditorColorScheme::ColorRole role)
 Returns the color to use in the editor for the specified role. More...
 
static QColor defaultColor (QgsCodeEditorColorScheme::ColorRole role, const QString &theme=QString())
 Returns the default color for the specified role. More...
 
static QFont getMonospaceFont ()
 Returns the monospaced font to use for code editors. More...
 
static QString languageToString (Qgis::ScriptLanguage language)
 Returns a user-friendly, translated name of the specified script language. More...
 
static void setColor (QgsCodeEditorColorScheme::ColorRole role, const QColor &color)
 Sets the color to use in the editor for the specified role. More...
 

Protected Member Functions

void contextMenuEvent (QContextMenuEvent *event) override
 
void focusOutEvent (QFocusEvent *event) override
 
virtual void initializeLexer ()
 Called when the dialect specific code lexer needs to be initialized (or reinitialized). More...
 
void keyPressEvent (QKeyEvent *event) override
 
QColor lexerColor (QgsCodeEditorColorScheme::ColorRole role) const
 Returns the color to use in the lexer for the specified role. More...
 
QFont lexerFont () const
 Returns the font to use in the lexer. More...
 
virtual void populateContextMenu (QMenu *menu)
 Called when the context menu for the widget is about to be shown, after it has been fully populated with the standard actions created by the base class. More...
 
void runPostLexerConfigurationTasks ()
 Performs tasks which must be run after a lexer has been set for the widget. More...
 
void updatePrompt ()
 Triggers an update of the interactive prompt part of the editor. More...
 
void updateSoftHistory ()
 Updates the soft history by storing the current editor text in the history. More...
 

Static Protected Member Functions

static bool isFixedPitch (const QFont &font)
 Returns true if a font is a fixed pitch font. More...
 

Detailed Description

A text editor based on QScintilla2.

Note
may not be available in Python bindings, depending on platform support
Since
QGIS 2.6

Definition at line 92 of file qgscodeeditor.h.

Member Enumeration Documentation

◆ Flag

enum class QgsCodeEditor::Flag : int
strong

Flags controlling behavior of code editor.

Since
QGIS 3.28
Enumerator
CodeFolding 

Indicates that code folding should be enabled for the editor.

Definition at line 131 of file qgscodeeditor.h.

◆ MarginRole

enum class QgsCodeEditor::MarginRole : int
strong

Margin roles.

This enum contains the roles which the different numbered margins are used for.

Since
QGIS 3.16
Enumerator
LineNumbers 

Line numbers.

ErrorIndicators 

Error indicators.

FoldingControls 

Folding controls.

Definition at line 118 of file qgscodeeditor.h.

◆ Mode

enum class QgsCodeEditor::Mode
strong

Code editor modes.

Since
QGIS 3.30
Enumerator
ScriptEditor 

Standard mode, allows for display and edit of entire scripts.

OutputDisplay 

Read only mode for display of command outputs.

CommandInput 

Command input mode.

Definition at line 103 of file qgscodeeditor.h.

Constructor & Destructor Documentation

◆ QgsCodeEditor()

QgsCodeEditor::QgsCodeEditor ( QWidget *  parent = nullptr,
const QString &  title = QString(),
bool  folding = false,
bool  margin = false,
QgsCodeEditor::Flags  flags = QgsCodeEditor::Flags(),
QgsCodeEditor::Mode  mode = QgsCodeEditor::Mode::ScriptEditor 
)

Flags controlling behavior of code editor.

Since
QGIS 3.28 Construct a new code editor.
Parameters
parentThe parent QWidget
titleThe title to show in the code editor dialog
foldingfalse: Enable folding for code editor (deprecated, use flags instead)
marginfalse: Enable margin for code editor (deprecated)
flagsflags controlling behavior of code editor (since QGIS 3.28)
modecode editor mode (since QGIS 3.30)
Since
QGIS 2.6

Definition at line 75 of file qgscodeeditor.cpp.

Member Function Documentation

◆ addWarning()

void QgsCodeEditor::addWarning ( int  lineNumber,
const QString &  warning 
)

Adds a warning message and indicator to the specified a lineNumber.

See also
clearWarnings()
Since
QGIS 3.16

Definition at line 837 of file qgscodeeditor.cpp.

◆ clearPersistentHistory

void QgsCodeEditor::clearPersistentHistory ( )
slot

Clears the entire persistent history of commands run in the editor.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 596 of file qgscodeeditor.cpp.

◆ clearSessionHistory

void QgsCodeEditor::clearSessionHistory ( )
slot

Clears the history of commands run in the current session.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 587 of file qgscodeeditor.cpp.

◆ clearWarnings()

void QgsCodeEditor::clearWarnings ( )

Clears all warning messages from the editor.

See also
addWarning()
Since
QGIS 3.16

Definition at line 852 of file qgscodeeditor.cpp.

◆ color()

QColor QgsCodeEditor::color ( QgsCodeEditorColorScheme::ColorRole  role)
static

Returns the color to use in the editor for the specified role.

This color will be the default theme color for the role, unless the user has manually selected a custom color scheme for the editor.

See also
setColor()
Since
QGIS 3.16

Definition at line 758 of file qgscodeeditor.cpp.

◆ contextMenuEvent()

void QgsCodeEditor::contextMenuEvent ( QContextMenuEvent *  event)
overrideprotected

Definition at line 221 of file qgscodeeditor.cpp.

◆ defaultColor()

QColor QgsCodeEditor::defaultColor ( QgsCodeEditorColorScheme::ColorRole  role,
const QString &  theme = QString() 
)
static

Returns the default color for the specified role.

The optional theme argument can be used to specify a color theme. A blank theme indicates the default color scheme.

Available themes are stored in QgsCodeEditorColorSchemeRegistry, and can be retrieved via QgsGui::codeEditorColorSchemeRegistry().

Since
QGIS 3.16

Definition at line 689 of file qgscodeeditor.cpp.

◆ focusOutEvent()

void QgsCodeEditor::focusOutEvent ( QFocusEvent *  event)
overrideprotected

Definition at line 141 of file qgscodeeditor.cpp.

◆ foldingVisible()

bool QgsCodeEditor::foldingVisible ( )

Returns true if the folding controls are visible in the editor.

See also
setFoldingVisible()

Definition at line 470 of file qgscodeeditor.cpp.

◆ getMonospaceFont()

QFont QgsCodeEditor::getMonospaceFont ( )
static

Returns the monospaced font to use for code editors.

Since
QGIS 3.16

Definition at line 792 of file qgscodeeditor.cpp.

◆ history()

QStringList QgsCodeEditor::history ( ) const

Returns the list of commands previously executed in the editor.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 571 of file qgscodeeditor.cpp.

◆ initializeLexer()

void QgsCodeEditor::initializeLexer ( )
protectedvirtual

Called when the dialect specific code lexer needs to be initialized (or reinitialized).

The default implementation does nothing.

Since
QGIS 3.16

Reimplemented in QgsCodeEditorCSS, QgsCodeEditorExpression, QgsCodeEditorHTML, QgsCodeEditorJavascript, QgsCodeEditorJson, QgsCodeEditorPython, QgsCodeEditorR, and QgsCodeEditorSQL.

Definition at line 249 of file qgscodeeditor.cpp.

◆ insertText()

void QgsCodeEditor::insertText ( const QString &  text)

Insert text at cursor position, or replace any selected text if user has made a selection.

Parameters
textThe text to be inserted

Definition at line 673 of file qgscodeeditor.cpp.

◆ interpreter()

QgsCodeInterpreter * QgsCodeEditor::interpreter ( ) const

Returns the attached code interpreter, or nullptr if not set.

See also
setInterpreter()
Since
QGIS 3.30

Definition at line 560 of file qgscodeeditor.cpp.

◆ isCursorOnLastLine()

bool QgsCodeEditor::isCursorOnLastLine ( ) const

Returns true if the cursor is on the last line of the document.

Since
QGIS 3.28

Definition at line 863 of file qgscodeeditor.cpp.

◆ isFixedPitch()

bool QgsCodeEditor::isFixedPitch ( const QFont &  font)
staticprotected

Returns true if a font is a fixed pitch font.

Definition at line 787 of file qgscodeeditor.cpp.

◆ keyPressEvent()

void QgsCodeEditor::keyPressEvent ( QKeyEvent *  event)
overrideprotected

Definition at line 171 of file qgscodeeditor.cpp.

◆ language()

Qgis::ScriptLanguage QgsCodeEditor::language ( ) const
virtual

Returns the associated scripting language.

Since
QGIS 3.30

Reimplemented in QgsCodeEditorCSS, QgsCodeEditorExpression, QgsCodeEditorHTML, QgsCodeEditorJavascript, QgsCodeEditorJson, QgsCodeEditorPython, QgsCodeEditorR, and QgsCodeEditorSQL.

Definition at line 381 of file qgscodeeditor.cpp.

◆ languageToString()

QString QgsCodeEditor::languageToString ( Qgis::ScriptLanguage  language)
static

Returns a user-friendly, translated name of the specified script language.

Since
QGIS 3.30

Definition at line 386 of file qgscodeeditor.cpp.

◆ lexerColor()

QColor QgsCodeEditor::lexerColor ( QgsCodeEditorColorScheme::ColorRole  role) const
protected

Returns the color to use in the lexer for the specified role.

Since
QGIS 3.16

Definition at line 254 of file qgscodeeditor.cpp.

◆ lexerFont()

QFont QgsCodeEditor::lexerFont ( ) const
protected

Returns the font to use in the lexer.

Since
QGIS 3.16

Definition at line 270 of file qgscodeeditor.cpp.

◆ lineNumbersVisible()

bool QgsCodeEditor::lineNumbersVisible ( ) const

Returns whether line numbers are visible in the editor.

See also
setLineNumbersVisible()
Since
QGIS 3.16

Definition at line 452 of file qgscodeeditor.cpp.

◆ marginVisible()

Q_DECL_DEPRECATED bool QgsCodeEditor::marginVisible ( )
inline

Returns whether margins are in a visible state.

Deprecated:
Use base class methods for individual margins instead, or lineNumbersVisible()

Definition at line 189 of file qgscodeeditor.h.

◆ mode()

QgsCodeEditor::Mode QgsCodeEditor::mode ( ) const
inline

Returns the code editor mode.

Since
QGIS 3.30

Definition at line 302 of file qgscodeeditor.h.

◆ moveCursorToEnd

void QgsCodeEditor::moveCursorToEnd ( )
virtualslot

Moves the cursor to the end of the document and scrolls to ensure it is visible.

Since
QGIS 3.28

Definition at line 887 of file qgscodeeditor.cpp.

◆ moveCursorToStart

void QgsCodeEditor::moveCursorToStart ( )
virtualslot

Moves the cursor to the start of the document and scrolls to ensure it is visible.

Since
QGIS 3.28

Definition at line 877 of file qgscodeeditor.cpp.

◆ persistentHistoryCleared

void QgsCodeEditor::persistentHistoryCleared ( )
signal

Emitted when the persistent history of commands run in the editor is cleared.

Since
QGIS 3.30

◆ populateContextMenu()

void QgsCodeEditor::populateContextMenu ( QMenu *  menu)
protectedvirtual

Called when the context menu for the widget is about to be shown, after it has been fully populated with the standard actions created by the base class.

This method provides an opportunity for subclasses to add additional non-standard actions to the context menu.

Since
QGIS 3.30

Definition at line 546 of file qgscodeeditor.cpp.

◆ removeHistoryCommand

void QgsCodeEditor::removeHistoryCommand ( int  index)
slot

Removes the command at the specified index from the history of the code editor.

Since
QGIS 3.30

Definition at line 660 of file qgscodeeditor.cpp.

◆ runCommand

void QgsCodeEditor::runCommand ( const QString &  command)
slot

Runs a command in the editor.

An interpreter() must be set.

Since
QGIS 3.30

Definition at line 576 of file qgscodeeditor.cpp.

◆ runPostLexerConfigurationTasks()

void QgsCodeEditor::runPostLexerConfigurationTasks ( )
protected

Performs tasks which must be run after a lexer has been set for the widget.

Since
QGIS 3.16

Definition at line 303 of file qgscodeeditor.cpp.

◆ sessionHistoryCleared

void QgsCodeEditor::sessionHistoryCleared ( )
signal

Emitted when the history of commands run in the current session is cleared.

Since
QGIS 3.30

◆ setColor()

void QgsCodeEditor::setColor ( QgsCodeEditorColorScheme::ColorRole  role,
const QColor &  color 
)
static

Sets the color to use in the editor for the specified role.

This color will be stored as the new default color for the role, to be used for all code editors.

Set color to an invalid QColor in order to clear the stored color value and reset it to the default color.

See also
color()
Since
QGIS 3.16

Definition at line 773 of file qgscodeeditor.cpp.

◆ setCustomAppearance()

void QgsCodeEditor::setCustomAppearance ( const QString &  scheme = QString(),
const QMap< QgsCodeEditorColorScheme::ColorRole, QColor > &  customColors = QMap< QgsCodeEditorColorScheme::ColorRole, QColor >(),
const QString &  fontFamily = QString(),
int  fontSize = 0 
)

Sets a custom appearance for the widget, disconnecting it from using the standard appearance taken from QSettings.

Note
Not available in Python bindings
Since
QGIS 3.16

Definition at line 824 of file qgscodeeditor.cpp.

◆ setFoldingVisible()

void QgsCodeEditor::setFoldingVisible ( bool  folding)

Set whether the folding controls are visible in the editor.

See also
foldingVisible()

Definition at line 457 of file qgscodeeditor.cpp.

◆ setHistoryFilePath()

void QgsCodeEditor::setHistoryFilePath ( const QString &  path)

Sets the file path to use for recording and retrieving previously executed commands.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 871 of file qgscodeeditor.cpp.

◆ setInterpreter()

void QgsCodeEditor::setInterpreter ( QgsCodeInterpreter newInterpreter)

Sets an attached code interpreter for executing commands when the editor is in the QgsCodeEditor::Mode::CommandInput mode.

See also
interpreter()
Since
QGIS 3.30

Definition at line 565 of file qgscodeeditor.cpp.

◆ setLineNumbersVisible()

void QgsCodeEditor::setLineNumbersVisible ( bool  visible)

Sets whether line numbers should be visible in the editor.

Defaults to false.

See also
lineNumbersVisible()
Since
QGIS 3.16

Definition at line 433 of file qgscodeeditor.cpp.

◆ setMarginVisible()

void QgsCodeEditor::setMarginVisible ( bool  margin)

Set margin visible state.

Parameters
marginSet margin in the editor
Deprecated:
Use base class methods for individual margins instead, or setLineNumbersVisible()

Definition at line 412 of file qgscodeeditor.cpp.

◆ setTitle()

void QgsCodeEditor::setTitle ( const QString &  title)

Set the widget title.

Parameters
titlewidget title

Definition at line 376 of file qgscodeeditor.cpp.

◆ showHistory

void QgsCodeEditor::showHistory ( )
slot

Shows the command history dialog.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 651 of file qgscodeeditor.cpp.

◆ showNextCommand

void QgsCodeEditor::showNextCommand ( )
slot

Shows the next command from the session in the editor.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 641 of file qgscodeeditor.cpp.

◆ showPreviousCommand

void QgsCodeEditor::showPreviousCommand ( )
slot

Shows the previous command from the session in the editor.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 631 of file qgscodeeditor.cpp.

◆ updatePrompt()

void QgsCodeEditor::updatePrompt ( )
protected

Triggers an update of the interactive prompt part of the editor.

Note
Applies to code editors in the QgsCodeEditor::Mode::CommandInput mode only.
Since
QGIS 3.30

Definition at line 551 of file qgscodeeditor.cpp.

◆ updateSoftHistory()

void QgsCodeEditor::updateSoftHistory ( )
protected

Updates the soft history by storing the current editor text in the history.

Since
QGIS 3.30

Definition at line 524 of file qgscodeeditor.cpp.

◆ writeHistoryFile

bool QgsCodeEditor::writeHistoryFile ( )
slot

Stores the commands executed in the editor to the persistent history file.

Since
QGIS 3.30

Definition at line 609 of file qgscodeeditor.cpp.


The documentation for this class was generated from the following files: