KSeExpr  4.0.4.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 
23 class 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 
33 public:
34  QCompleter *completer {nullptr};
36  ExprTextEdit(QWidget *parent = nullptr);
37  void updateStyle();
38 
39 protected:
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 
51 private Q_SLOTS:
52  void insertCompletion(const QString &completion);
53  void removeWord();
54 Q_SIGNALS:
55  void applyShortcut();
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)
void updateStyle()
ExprCompletionModel * completionModel
Definition: ExprTextEdit.h:35
std::map< std::string, std::string > functionTooltips
Definition: ExprTextEdit.h:28
void focusInEvent(QFocusEvent *e) override
QStyle * lastStyleForHighlighter
Definition: ExprTextEdit.h:30
static void hideTip()
void wheelEvent(QWheelEvent *e) override
void focusOutEvent(QFocusEvent *e) override
QToolTip * functionTip
Definition: ExprTextEdit.h:27
void mouseDoubleClickEvent(QMouseEvent *event) override
QAction * _popupEnabledAction
Definition: ExprTextEdit.h:31
ExprTextEdit(QWidget *parent=nullptr)
QCompleter * completer
Definition: ExprTextEdit.h:34
ExprHighlighter * highlighter
Definition: ExprTextEdit.h:29
void mousePressEvent(QMouseEvent *event) override
void nextError()