KSeExpr 6.0.0.0
ExprTextEdit.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2011-2019 Disney Enterprises, Inc.
2// SPDX-License-Identifier: LicenseRef-Apache-2.0
3// SPDX-FileCopyrightText: 2020 L. E. Segovia <amy@amyspark.me>
4// SPDX-License-Identifier: GPL-3.0-or-later
5/*
6 * @file ExprTextEditor.h
7 * @brief This provides an expression editor for SeExpr syntax with auto ui features
8 * @author aselle
9 */
10
11#pragma once
12
13#include <QCompleter>
14#include <QTextEdit>
15#include <QToolTip>
16#include <cstddef>
17#include <vector>
18
19#include "ExprCompletionModel.h"
20#include "ExprHighlighter.h"
21#include "ExprPopupDoc.h"
22
23class ExprTextEdit : public QTextEdit
24{
25 Q_OBJECT
26
27 QToolTip *functionTip {nullptr};
28 std::map<std::string, std::string> functionTooltips;
30 QStyle *lastStyleForHighlighter {nullptr};
31 QAction *_popupEnabledAction {nullptr};
32
33public:
34 QCompleter *completer {nullptr};
36 ExprTextEdit(QWidget *parent = nullptr);
37 void updateStyle();
38
39protected:
40 void showTip(const QString &string);
41 static void hideTip();
42 void keyPressEvent(QKeyEvent *e) override;
43 void focusInEvent(QFocusEvent *e) override;
44 void focusOutEvent(QFocusEvent *e) override;
45 void mousePressEvent(QMouseEvent *event) override;
46 void mouseDoubleClickEvent(QMouseEvent *event) override;
47 void paintEvent(QPaintEvent *e) override;
48 void wheelEvent(QWheelEvent *e) override;
49 void contextMenuEvent(QContextMenuEvent *event) override;
50
51private Q_SLOTS:
52 void insertCompletion(const QString &completion);
53 void removeWord();
54Q_SIGNALS:
56 void nextError();
57};
void paintEvent(QPaintEvent *e) override
void applyShortcut()
void showTip(const QString &string)
void contextMenuEvent(QContextMenuEvent *event) override
void keyPressEvent(QKeyEvent *e) override
void insertCompletion(const QString &completion)
ExprCompletionModel * completionModel
std::map< std::string, std::string > functionTooltips
void focusInEvent(QFocusEvent *e) override
QStyle * lastStyleForHighlighter
static void hideTip()
void wheelEvent(QWheelEvent *e) override
void focusOutEvent(QFocusEvent *e) override
QToolTip * functionTip
void mouseDoubleClickEvent(QMouseEvent *event) override
QAction * _popupEnabledAction
QCompleter * completer
ExprHighlighter * highlighter
void mousePressEvent(QMouseEvent *event) override
void nextError()