QGIS API Documentation 3.38.0-Grenoble (exported)
Loading...
Searching...
No Matches
qgscodeeditorjson.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgscodeeditorjson.cpp - A JSON editor based on QScintilla
3 --------------------------------------
4 Date : 4.5.2021
5 Copyright : (C) 2021 Damiano Lombardi
6 Email : damiano at opengis dot ch
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#include "qgscodeeditorjson.h"
17
18#include <QWidget>
19#include <QString>
20#include <QFont>
21#include <Qsci/qscilexerjson.h>
22
23
25 : QgsCodeEditor( parent,
26 QString(),
27 false,
28 false,
29 QgsCodeEditor::Flag::CodeFolding )
30{
31 if ( !parent )
32 {
33 setTitle( tr( "JSON Editor" ) );
34 }
36}
37
42
44{
45 QsciLexerJSON *lexer = new QsciLexerJSON( this );
46
47 QFont font = lexerFont();
48 lexer->setDefaultFont( font );
49 lexer->setFont( font, -1 );
50
51 font.setItalic( true );
52 lexer->setFont( font, QsciLexerJSON::CommentBlock );
53 lexer->setFont( font, QsciLexerJSON::CommentLine );
54
58
59 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Class ), QsciLexerJSON::Property );
60 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Keyword ), QsciLexerJSON::Keyword );
61 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Operator ), QsciLexerJSON::Operator );
62 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Number ), QsciLexerJSON::Number );
63 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::CommentBlock ), QsciLexerJSON::CommentBlock );
64 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::CommentLine ), QsciLexerJSON::CommentLine );
65 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::DoubleQuote ), QsciLexerJSON::String );
66 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::DoubleQuote ), QsciLexerJSON::IRI );
67 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::SingleQuote ), QsciLexerJSON::UnclosedString );
68 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Error ), QsciLexerJSON::Error );
69
70 setLexer( lexer );
73}
ScriptLanguage
Scripting languages.
Definition qgis.h:3884
@ CommentBlock
Comment block color.
@ DoubleQuote
Double quote color.
@ CommentLine
Line comment color.
@ SingleQuote
Single quote color.
Qgis::ScriptLanguage language() const override
Returns the associated scripting language.
void initializeLexer() override
Called when the dialect specific code lexer needs to be initialized (or reinitialized).
QgsCodeEditorJson(QWidget *parent=nullptr)
Constructor for QgsCodeEditorJson.
A text editor based on QScintilla2.
void runPostLexerConfigurationTasks()
Performs tasks which must be run after a lexer has been set for the widget.
void setTitle(const QString &title)
Set the widget title.
Flag
Flags controlling behavior of code editor.
void setLineNumbersVisible(bool visible)
Sets whether line numbers should be visible in the editor.
QFont lexerFont() const
Returns the font to use in the lexer.
QColor lexerColor(QgsCodeEditorColorScheme::ColorRole role) const
Returns the color to use in the lexer for the specified role.