QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
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 "qgsapplication.h"
17#include "qgscodeeditorjson.h"
18
19#include <QWidget>
20#include <QString>
21#include <QFont>
22#include <Qsci/qscilexerjson.h>
23
24
26 : QgsCodeEditor( parent,
27 QString(),
28 false,
29 false,
30 QgsCodeEditor::Flag::CodeFolding )
31{
32 if ( !parent )
33 {
34 setTitle( tr( "JSON Editor" ) );
35 }
37}
38
40{
41 QsciLexerJSON *lexer = new QsciLexerJSON( this );
42
43 QFont font = lexerFont();
44 lexer->setDefaultFont( font );
45 lexer->setFont( font, -1 );
46
47 font.setItalic( true );
48 lexer->setFont( font, QsciLexerJSON::CommentBlock );
49 lexer->setFont( font, QsciLexerJSON::CommentLine );
50
54
55 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Class ), QsciLexerJSON::Property );
56 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Keyword ), QsciLexerJSON::Keyword );
57 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Operator ), QsciLexerJSON::Operator );
58 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Number ), QsciLexerJSON::Number );
59 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::CommentBlock ), QsciLexerJSON::CommentBlock );
60 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::CommentLine ), QsciLexerJSON::CommentLine );
61 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::DoubleQuote ), QsciLexerJSON::String );
62 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::DoubleQuote ), QsciLexerJSON::IRI );
63 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::SingleQuote ), QsciLexerJSON::UnclosedString );
64 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Error ), QsciLexerJSON::Error );
65
66 setLexer( lexer );
69}
@ CommentBlock
Comment block color.
@ DoubleQuote
Double quote color.
@ CommentLine
Line comment color.
@ SingleQuote
Single quote color.
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.
Definition: qgscodeeditor.h:42
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.
Definition: qgscodeeditor.h:68
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.