LibreCAD
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
clicommand.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QDockWidget>
4 #include <QResizeEvent>
5 #include <QLineEdit>
6 #include <QCompleter>
7 #include <QStringListModel>
8 
9 #include <memory>
10 #include <cad/settings.h>
11 #include <cad/geometry/geocoordinate.h>
12 
13 namespace Ui {
14  class CliCommand;
15 }
16 
20 class CliCommand : public QDockWidget {
21  Q_OBJECT
22 
23  public:
28  explicit CliCommand(QWidget* parent = 0);
29  ~CliCommand();
30 
31  void keyPressEvent(QKeyEvent *event);
32 
36  bool addCommand(std::string name);
37 
42  void write(QString message);
43 
49  void setText(QString text);
50 
56  void returnText(bool returnText);
57 
58  public slots:
64  void onReturnPressed();
65 
71  void onKeyPressed(QKeyEvent *event);
72 
73  signals:
74  void commandEntered(QString command);
75  void coordinateEntered(lc::geo::Coordinate coordinate);
76  void relativeCoordinateEntered(lc::geo::Coordinate coordinate);
77  void numberEntered(double number);
78  void textEntered(QString text);
79 
80  private:
81  bool checkParam(QString command);
82  void enterCommand(QString command);
83  void enterCoordinate(QString coordinate);
84  void enterNumber(double number);
85 
86  Ui::CliCommand* ui;
87  std::shared_ptr<QCompleter> _completer;
88  std::shared_ptr<QStringListModel> _commands;
90 
91  QStringList _history;
94 };
95 
96 // CLICOMMAND_H
CliCommand(QWidget *parent=0)
Create widget.
Definition: clicommand.cpp:8
bool addCommand(std::string name)
Add a new command.
Definition: clicommand.cpp:33
void enterCoordinate(QString coordinate)
Definition: clicommand.cpp:126
std::shared_ptr< QCompleter > _completer
Definition: clicommand.h:87
Command line widget.
Definition: clicommand.h:20
void onKeyPressed(QKeyEvent *event)
Process key events. Browse history if up or down key is pressed. This is a slot to allow getting key ...
Definition: clicommand.cpp:167
void textEntered(QString text)
int _historyIndex
Definition: clicommand.h:93
std::shared_ptr< QStringListModel > _commands
Definition: clicommand.h:88
int _historySize
Definition: clicommand.h:92
Ui::CliCommand * ui
Definition: clicommand.h:86
void coordinateEntered(lc::geo::Coordinate coordinate)
void write(QString message)
Write a message in the logs.
Definition: clicommand.cpp:45
QStringList _history
Definition: clicommand.h:91
void numberEntered(double number)
bool checkParam(QString command)
Definition: clicommand.cpp:122
void onReturnPressed()
Parse entered text. Check if the text is a number, a coordinate or a command and emit the right signa...
Definition: clicommand.cpp:52
void commandEntered(QString command)
void setText(QString text)
Write text in input.
Definition: clicommand.cpp:194
void enterCommand(QString command)
Definition: clicommand.cpp:103
void returnText(bool returnText)
Return raw text to Lua.
Definition: clicommand.cpp:198
bool _returnText
Definition: clicommand.h:89
void enterNumber(double number)
Definition: clicommand.cpp:162
void relativeCoordinateEntered(lc::geo::Coordinate coordinate)
void keyPressEvent(QKeyEvent *event)
Definition: clicommand.cpp:99