14 #ifndef hifi_JSConsole_h
15 #define hifi_JSConsole_h
19 #include <QFutureWatcher>
22 #include <QtCore/QJsonArray>
23 #include <ScriptValue.h>
25 #include "ui_console.h"
27 class QStandardItemModel;
29 using ScriptManagerPointer = std::shared_ptr<ScriptManager>;
31 const QString CONSOLE_TITLE =
"Scripting Console";
32 const float CONSOLE_WINDOW_OPACITY = 0.95f;
33 const int CONSOLE_WIDTH = 800;
34 const int CONSOLE_HEIGHT = 200;
36 class JSConsole :
public QWidget {
39 JSConsole(QWidget* parent,
const ScriptManagerPointer& scriptManager = ScriptManagerPointer());
42 void setScriptManager(
const ScriptManagerPointer& scriptManager = ScriptManagerPointer());
46 void executeCommand(
const QString& command);
49 void setAndSelectCommand(
const QString& command);
50 virtual bool eventFilter(QObject* sender, QEvent* event)
override;
51 virtual void mouseReleaseEvent(QMouseEvent* event)
override;
52 virtual void showEvent(QShowEvent* event)
override;
55 void scrollToBottom();
56 void resizeTextInput();
57 void handlePrint(
const QString& message,
const QString& scriptName);
58 void handleInfo(
const QString& message,
const QString& scriptName);
59 void handleWarning(
const QString& message,
const QString& scriptName);
60 void handleError(
const QString& message,
const QString& scriptName);
61 void commandFinished();
64 void insertCompletion(
const QModelIndex& completion);
65 void highlightedCompletion(
const QModelIndex& completion);
68 void appendMessage(
const QString& gutter,
const QString& message);
69 void setToNextCommandInHistory();
70 void setToPreviousCommandInHistory();
71 void resetCurrentCommandHistory();
75 QStandardItemModel* getAutoCompleteModel(
const QString& memberOf =
nullptr);
77 QFutureWatcher<QVariant> _executeWatcher;
79 int _currentCommandInHistory;
80 QString _savedHistoryFilename;
81 QList<QString> _commandHistory;
83 ScriptManagerPointer _scriptManager;
84 static const QString _consoleFileName;
86 QCompleter* _completer;
87 QString _completerModule {
""};
Manages a single scripting engine.
Definition: ScriptManager.h:281