QGIS/python/gui/auto_generated/codeeditors/qgscodeeditor.sip.in
Nyall Dawson 078fd4f2ea Make IntFlag enum type opt-in, rather than opt-out
And make sipify handle this nicely. This means that all our non-flag
style enums correctly map across to IntFlag python enums on Qt 6,
fixing issues with negative enum values for these and providing
a better match for the original c++ enum.
2024-01-31 17:16:18 +10:00

618 lines
15 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/codeeditors/qgscodeeditor.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsCodeInterpreter
{
%Docstring(signature="appended")
An interface for code interpreters.
.. versionadded:: 3.30
%End
%TypeHeaderCode
#include "qgscodeeditor.h"
%End
public:
virtual ~QgsCodeInterpreter();
int exec( const QString &command );
%Docstring
Executes a ``command`` in the interpreter.
Returns an interpreter specific state value.
%End
virtual int currentState() const;
%Docstring
Returns the current interpreter state.
The actual interpretation of the returned values depend on
the interpreter subclass.
%End
virtual QString promptForState( int state ) const = 0;
%Docstring
Returns the interactive prompt string to use for the
interpreter, given a ``state``.
%End
protected:
virtual int execCommandImpl( const QString &command ) = 0;
%Docstring
Pure virtual method for executing commands in the interpreter.
Subclasses must implement this method. It will be called internally
whenever the public :py:func:`~QgsCodeInterpreter.exec` method is called.
%End
};
class QgsCodeEditor : QsciScintilla
{
%Docstring(signature="appended")
A text editor based on QScintilla2.
.. note::
may not be available in Python bindings, depending on platform support
.. versionadded:: 2.6
%End
%TypeHeaderCode
#include "qgscodeeditor.h"
%End
public:
enum class Mode
{
ScriptEditor,
OutputDisplay,
CommandInput,
};
enum class MarginRole
{
LineNumbers,
ErrorIndicators,
FoldingControls,
};
enum class Flag
{
CodeFolding,
ImmediatelyUpdateHistory,
};
typedef QFlags<QgsCodeEditor::Flag> Flags;
QgsCodeEditor( QWidget *parent /TransferThis/ = 0, const QString &title = QString(), bool folding = false, bool margin = false, QgsCodeEditor::Flags flags = QgsCodeEditor::Flags(), QgsCodeEditor::Mode mode = QgsCodeEditor::Mode::ScriptEditor );
%Docstring
Construct a new code editor.
:param parent: The parent QWidget
:param title: The title to show in the code editor dialog
:param folding: ``False``: Enable folding for code editor (deprecated, use ``flags`` instead)
:param margin: ``False``: Enable margin for code editor (deprecated)
:param flags: flags controlling behavior of code editor (since QGIS 3.28)
:param mode: code editor mode (since QGIS 3.30)
.. versionadded:: 2.6
%End
void setTitle( const QString &title );
%Docstring
Set the widget title
:param title: widget title
%End
virtual Qgis::ScriptLanguage language() const;
%Docstring
Returns the associated scripting language.
.. versionadded:: 3.30
%End
virtual Qgis::ScriptLanguageCapabilities languageCapabilities() const;
%Docstring
Returns the associated scripting language capabilities.
.. versionadded:: 3.32
%End
static QString languageToString( Qgis::ScriptLanguage language );
%Docstring
Returns a user-friendly, translated name of the specified script ``language``.
.. versionadded:: 3.30
%End
void setMarginVisible( bool margin ) /Deprecated/;
%Docstring
Set margin visible state
:param margin: Set margin in the editor
.. deprecated::
Use base class methods for individual margins instead, or :py:func:`~QgsCodeEditor.setLineNumbersVisible`
%End
bool marginVisible() /Deprecated/;
%Docstring
Returns whether margins are in a visible state
.. deprecated::
Use base class methods for individual margins instead, or :py:func:`~QgsCodeEditor.lineNumbersVisible`
%End
void setLineNumbersVisible( bool visible );
%Docstring
Sets whether line numbers should be visible in the editor.
Defaults to ``False``.
.. seealso:: :py:func:`lineNumbersVisible`
.. versionadded:: 3.16
%End
bool lineNumbersVisible() const;
%Docstring
Returns whether line numbers are visible in the editor.
.. seealso:: :py:func:`setLineNumbersVisible`
.. versionadded:: 3.16
%End
void setFoldingVisible( bool folding );
%Docstring
Set whether the folding controls are visible in the editor.
.. seealso:: :py:func:`foldingVisible`
%End
bool foldingVisible();
%Docstring
Returns ``True`` if the folding controls are visible in the editor.
.. seealso:: :py:func:`setFoldingVisible`
%End
void insertText( const QString &text );
%Docstring
Insert text at cursor position, or replace any selected text if user has
made a selection.
:param text: The text to be inserted
%End
static QColor defaultColor( QgsCodeEditorColorScheme::ColorRole role, const QString &theme = QString() );
%Docstring
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 :py:class:`QgsCodeEditorColorSchemeRegistry`, and can be retrieved
via :py:func:`QgsGui.codeEditorColorSchemeRegistry()`.
.. versionadded:: 3.16
%End
static QColor color( QgsCodeEditorColorScheme::ColorRole role );
%Docstring
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.
.. seealso:: :py:func:`setColor`
.. versionadded:: 3.16
%End
static void setColor( QgsCodeEditorColorScheme::ColorRole role, const QColor &color );
%Docstring
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.
.. seealso:: :py:func:`color`
.. versionadded:: 3.16
%End
static QFont getMonospaceFont();
%Docstring
Returns the monospaced font to use for code editors.
.. versionadded:: 3.16
%End
void addWarning( int lineNumber, const QString &warning );
%Docstring
Adds a ``warning`` message and indicator to the specified a ``lineNumber``.
.. seealso:: :py:func:`clearWarnings`
.. versionadded:: 3.16
%End
void clearWarnings();
%Docstring
Clears all warning messages from the editor.
.. seealso:: :py:func:`addWarning`
.. versionadded:: 3.16
%End
QgsCodeEditor::Mode mode() const;
%Docstring
Returns the code editor mode.
.. versionadded:: 3.30
%End
bool isCursorOnLastLine() const;
%Docstring
Returns ``True`` if the cursor is on the last line of the document.
.. versionadded:: 3.28
%End
void setHistoryFilePath( const QString &path );
%Docstring
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.
.. versionadded:: 3.30
%End
QStringList history() const;
%Docstring
Returns the list of commands previously executed in the editor.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
QgsCodeInterpreter *interpreter() const;
%Docstring
Returns the attached code interpreter, or ``None`` if not set.
.. seealso:: :py:func:`setInterpreter`
.. versionadded:: 3.30
%End
void setInterpreter( QgsCodeInterpreter *newInterpreter );
%Docstring
Sets an attached code interpreter for executing commands when the editor
is in the QgsCodeEditor.Mode.CommandInput mode.
.. seealso:: :py:func:`interpreter`
.. versionadded:: 3.30
%End
int linearPosition() const;
%Docstring
Convenience function to return the cursor position as a linear index
.. versionadded:: 3.36
%End
void setLinearPosition( int position );
%Docstring
Convenience function to set the cursor position as a linear index
.. versionadded:: 3.36
%End
int selectionStart() const;
%Docstring
Convenience function to return the start of the selection as a linear index
Contrary to the getSelection method, this method returns the cursor position if
no selection is made.
.. versionadded:: 3.36
%End
int selectionEnd() const;
%Docstring
Convenience function to return the end of the selection as a linear index
Contrary to the getSelection method, this method returns the cursor position if
no selection is made.
.. versionadded:: 3.36
%End
void setLinearSelection( int start, int end );
%Docstring
Convenience function to set the selection using linear indexes
.. versionadded:: 3.36
%End
public slots:
void runCommand( const QString &command, bool skipHistory = false );
%Docstring
Runs a command in the editor.
An :py:func:`~QgsCodeEditor.interpreter` must be set.
Since QGIS 3.32, if ``skipHistory`` is ``True`` then the command will not be automatically
added to the widget's history.
.. versionadded:: 3.30
%End
virtual void moveCursorToStart();
%Docstring
Moves the cursor to the start of the document and scrolls to ensure
it is visible.
.. versionadded:: 3.28
%End
virtual void moveCursorToEnd();
%Docstring
Moves the cursor to the end of the document and scrolls to ensure
it is visible.
.. versionadded:: 3.28
%End
void showPreviousCommand();
%Docstring
Shows the previous command from the session in the editor.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
void showNextCommand();
%Docstring
Shows the next command from the session in the editor.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
void showHistory();
%Docstring
Shows the command history dialog.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
void removeHistoryCommand( int index );
%Docstring
Removes the command at the specified ``index`` from the history of the code editor.
.. versionadded:: 3.30
%End
void clearSessionHistory();
%Docstring
Clears the history of commands run in the current session.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
void clearPersistentHistory();
%Docstring
Clears the entire persistent history of commands run in the editor.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
bool writeHistoryFile();
%Docstring
Stores the commands executed in the editor to the persistent history file.
.. versionadded:: 3.30
%End
void reformatCode();
%Docstring
Applies code reformatting to the editor.
This is only supported for editors which return the :py:class:`Qgis`.ScriptLanguageCapability.Reformat capability from :py:func:`~QgsCodeEditor.languageCapabilities`.
.. versionadded:: 3.32
%End
virtual bool checkSyntax();
%Docstring
Applies syntax checking to the editor.
This is only supported for editors which return the :py:class:`Qgis`.ScriptLanguageCapability.CheckSyntax capability from :py:func:`~QgsCodeEditor.languageCapabilities`.
.. versionadded:: 3.32
%End
virtual void toggleComment();
%Docstring
Toggle comment for the selected text.
This is only supported for editors which return the :py:class:`Qgis`.ScriptLanguageCapability.ToggleComment capability from :py:func:`~QgsCodeEditor.languageCapabilities`.
.. versionadded:: 3.32
%End
signals:
void sessionHistoryCleared();
%Docstring
Emitted when the history of commands run in the current session is cleared.
.. versionadded:: 3.30
%End
void persistentHistoryCleared();
%Docstring
Emitted when the persistent history of commands run in the editor is cleared.
.. versionadded:: 3.30
%End
protected:
static bool isFixedPitch( const QFont &font );
%Docstring
Returns ``True`` if a ``font`` is a fixed pitch font.
%End
virtual void focusOutEvent( QFocusEvent *event );
virtual void keyPressEvent( QKeyEvent *event );
virtual void contextMenuEvent( QContextMenuEvent *event );
virtual bool eventFilter( QObject *watched, QEvent *event );
virtual void initializeLexer();
%Docstring
Called when the dialect specific code lexer needs to be initialized (or reinitialized).
The default implementation does nothing.
.. versionadded:: 3.16
%End
QColor lexerColor( QgsCodeEditorColorScheme::ColorRole role ) const;
%Docstring
Returns the color to use in the lexer for the specified ``role``.
.. versionadded:: 3.16
%End
QFont lexerFont() const;
%Docstring
Returns the font to use in the lexer.
.. versionadded:: 3.16
%End
void runPostLexerConfigurationTasks();
%Docstring
Performs tasks which must be run after a lexer has been set for the widget.
.. versionadded:: 3.16
%End
void updateSoftHistory();
%Docstring
Updates the soft history by storing the current editor text in the history.
.. versionadded:: 3.30
%End
void updatePrompt();
%Docstring
Triggers an update of the interactive prompt part of the editor.
.. note::
Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.
.. versionadded:: 3.30
%End
virtual void populateContextMenu( QMenu *menu );
%Docstring
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.
.. versionadded:: 3.30
%End
virtual QString reformatCodeString( const QString &string );
%Docstring
Applies code reformatting to a ``string`` and returns the result.
This is only supported for editors which return the :py:class:`Qgis`.ScriptLanguageCapability.Reformat capability from :py:func:`~QgsCodeEditor.languageCapabilities`.
.. versionadded:: 3.32
%End
virtual void showMessage( const QString &title, const QString &message, Qgis::MessageLevel level );
%Docstring
Shows a user facing message (eg a warning message).
The default implementation uses QMessageBox.
.. versionadded:: 3.32
%End
};
QFlags<QgsCodeEditor::Flag> operator|(QgsCodeEditor::Flag f1, QFlags<QgsCodeEditor::Flag> f2);
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/codeeditors/qgscodeeditor.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/