ScriptEdit::ScriptEdit(ScriptingEnv *env, QWidget *parent, QString name) : QTextEdit(parent, name), scripted(env), d_error(false), d_changing_fmt(false) { myScript = scriptEnv->newScript("", this, name); connect(myScript, SIGNAL(error(const QString &, const QString &, int)), this, SLOT(insertErrorMsg(const QString &))); connect(myScript, SIGNAL(print(const QString &)), this, SLOT(scriptPrint(const QString &))); setLineWrapMode(NoWrap); setTextFormat(Qt::PlainText); setAcceptRichText(false); setFamily("Monospace"); new SyntaxHighlighter(document()); d_fmt_default.setBackground(palette().brush(QPalette::Base)); d_fmt_success.setBackground(QBrush(QColor(128, 255, 128))); d_fmt_failure.setBackground(QBrush(QColor(255, 128, 128))); printCursor = textCursor(); actionExecute = new QAction(tr("E&xecute"), this); actionExecute->setShortcut(tr("Ctrl+J")); connect(actionExecute, SIGNAL(activated()), this, SLOT(execute())); actionExecuteAll = new QAction(tr("Execute &All"), this); actionExecuteAll->setShortcut(tr("Ctrl+Shift+J")); connect(actionExecuteAll, SIGNAL(activated()), this, SLOT(executeAll())); actionEval = new QAction(tr("&Evaluate Expression"), this); actionEval->setShortcut(tr("Ctrl+Return")); connect(actionEval, SIGNAL(activated()), this, SLOT(evaluate())); actionPrint = new QAction(IconLoader::load("edit-print", IconLoader::LightDark), tr("&Print"), this); connect(actionPrint, SIGNAL(activated()), this, SLOT(print())); actionImport = new QAction(tr("&Import"), this); connect(actionImport, SIGNAL(activated()), this, SLOT(importASCII())); actionExport = new QAction(tr("&Export"), this); connect(actionExport, SIGNAL(activated()), this, SLOT(exportASCII())); functionsMenu = new QMenu(this); Q_CHECK_PTR(functionsMenu); connect(functionsMenu, SIGNAL(triggered(QAction *)), this, SLOT(insertFunction(QAction *))); connect(document(), SIGNAL(contentsChange(int, int, int)), this, SLOT(handleContentsChange(int, int, int))); }
void ScriptEdit::enableShortcuts() { QShortcut *accelFindNext = new QShortcut(actionFindNext->shortcut(), this); connect(accelFindNext, SIGNAL(activated()), this, SLOT(findNext())); QShortcut *accelReplace = new QShortcut(actionReplace->shortcut(), this); connect(accelReplace, SIGNAL(activated()), this, SLOT(replace())); QShortcut *accelFindPrevious = new QShortcut(actionFindPrevious->shortcut(), this); connect(accelFindPrevious, SIGNAL(activated()), this, SLOT(findPrevious())); QShortcut *accelFind = new QShortcut(actionFind->shortcut(), this); connect(accelFind, SIGNAL(activated()), this, SLOT(showFindDialog())); QShortcut *accelSave = new QShortcut(actionSave->shortcut(), this); connect(accelSave, SIGNAL(activated()), this, SLOT(save())); QShortcut *accelImport = new QShortcut(actionImport->shortcut(), this); connect(accelImport, SIGNAL(activated()), this, SLOT(importASCII())); QShortcut *accelEval = new QShortcut(actionEval->shortcut(), this); connect(accelEval, SIGNAL(activated()), this, SLOT(evaluate())); }
ScriptEdit::ScriptEdit(ScriptingEnv *env, QWidget *parent, const char *name) : QTextEdit(parent, name), scripted(env), d_error(false), d_completer(0), d_file_name(QString::null), d_search_string(QString::null) { myScript = scriptEnv->newScript("", this, name); connect(myScript, SIGNAL(error(const QString&, const QString&, int)), this, SLOT(insertErrorMsg(const QString&))); connect(myScript, SIGNAL(print(const QString&)), this, SLOT(scriptPrint(const QString&))); setLineWrapMode(NoWrap); setUndoRedoEnabled(true); setTextFormat(Qt::PlainText); setAcceptRichText (false); #ifdef SCRIPTING_PYTHON if (scriptEnv->name() == QString("Python")) d_highlighter = new PythonSyntaxHighlighter(this); else d_highlighter = NULL; #endif d_fmt_default.setBackground(palette().brush(QPalette::Base)); printCursor = textCursor(); scriptsDirPath = qApp->applicationDirPath(); actionExecute = new QAction(tr("E&xecute"), this); actionExecute->setShortcut( tr("Ctrl+J") ); connect(actionExecute, SIGNAL(activated()), this, SLOT(execute())); actionExecuteAll = new QAction(tr("Execute &All"), this); actionExecuteAll->setShortcut( tr("Ctrl+Shift+J") ); connect(actionExecuteAll, SIGNAL(activated()), this, SLOT(executeAll())); actionEval = new QAction(tr("&Evaluate Expression"), this); actionEval->setShortcut( tr("Ctrl+Return") ); connect(actionEval, SIGNAL(activated()), this, SLOT(evaluate())); actionPrint = new QAction(QPixmap(fileprint_xpm), tr("&Print"), this); connect(actionPrint, SIGNAL(activated()), this, SLOT(print())); actionImport = new QAction(tr("&Import..."), this); actionImport->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_O)); connect(actionImport, SIGNAL(activated()), this, SLOT(importASCII())); QShortcut *accelImport = new QShortcut(actionImport->shortcut(), this); connect(accelImport, SIGNAL(activated()), this, SLOT(importASCII())); actionSave = new QAction(QPixmap(filesave_xpm), tr("&Save"), this); actionSave->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_S)); connect(actionSave, SIGNAL(activated()), this, SLOT(save())); QShortcut *accelSave = new QShortcut(actionSave->shortcut(), this); connect(accelSave, SIGNAL(activated()), this, SLOT(save())); actionExport = new QAction(QIcon(QPixmap(filesaveas_xpm)), tr("Sa&ve as..."), this); connect(actionExport, SIGNAL(activated()), this, SLOT(exportASCII())); actionFind = new QAction(QPixmap(find_xpm), tr("&Find..."), this); actionFind->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_F)); connect(actionFind, SIGNAL(activated()), this, SLOT(showFindDialog())); QShortcut *accelFind = new QShortcut(actionFind->shortcut(), this); connect(accelFind, SIGNAL(activated()), this, SLOT(showFindDialog())); actionReplace = new QAction(tr("&Replace..."), this); actionReplace->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_R)); connect(actionReplace, SIGNAL(activated()), this, SLOT(replace())); QShortcut *accelReplace = new QShortcut(actionReplace->shortcut(), this); connect(accelReplace, SIGNAL(activated()), this, SLOT(replace())); actionFindNext = new QAction(tr("&Find next"), this); actionFindNext->setShortcut(QKeySequence(Qt::Key_F3)); connect(actionFindNext, SIGNAL(activated()), this, SLOT(findNext())); QShortcut *accelFindNext = new QShortcut(actionFindNext->shortcut(), this); connect(accelFindNext, SIGNAL(activated()), this, SLOT(findNext())); actionFindPrevious = new QAction(tr("&Find previous"), this); actionFindPrevious->setShortcut(QKeySequence(Qt::Key_F4)); connect(actionFindPrevious, SIGNAL(activated()), this, SLOT(findPrevious())); QShortcut *accelFindPrevious = new QShortcut(actionFindPrevious->shortcut(), this); connect(accelFindPrevious, SIGNAL(activated()), this, SLOT(findPrevious())); functionsMenu = new QMenu(this); Q_CHECK_PTR(functionsMenu); connect(functionsMenu, SIGNAL(triggered(QAction *)), this, SLOT(insertFunction(QAction *))); }
ScriptEdit::ScriptEdit(ScriptingEnv *env, QWidget *parent, const char *name) : QTextEdit(parent, name), scripted(env), d_error(false), d_completer(0), d_highlighter(0), d_file_name(QString::null), d_search_string(QString::null), d_output_widget(NULL) { myScript = scriptEnv->newScript("", this, name); connect(myScript, SIGNAL(error(const QString&, const QString&, int)), this, SLOT(insertErrorMsg(const QString&))); connect(myScript, SIGNAL(print(const QString&)), this, SLOT(scriptPrint(const QString&))); connect(myScript, SIGNAL(error(const QString&, const QString&, int)), this, SIGNAL(error(const QString&, const QString&, int))); setLineWrapMode(NoWrap); setUndoRedoEnabled(true); setTextFormat(Qt::PlainText); setAcceptRichText (false); setFocusPolicy(Qt::StrongFocus); rehighlight(); d_fmt_default.setBackground(palette().brush(QPalette::Base)); //Init completer based on parser built-in functions QStringList functions = MyParser::functionNamesList(); functions.sort(); QCompleter *completer = new QCompleter(this); completer->setModelSorting(QCompleter::CaseSensitivelySortedModel); completer->setCompletionMode(QCompleter::PopupCompletion); completer->setModel(new QStringListModel(functions, completer)); setCompleter(completer); printCursor = textCursor(); scriptsDirPath = qApp->applicationDirPath(); actionExecute = new QAction(tr("E&xecute"), this); actionExecute->setShortcut( tr("Ctrl+J") ); connect(actionExecute, SIGNAL(activated()), this, SLOT(execute())); actionExecuteAll = new QAction(QIcon(":/play.png"), tr("Execute &All"), this); actionExecuteAll->setShortcut( tr("Ctrl+Shift+J") ); connect(actionExecuteAll, SIGNAL(activated()), this, SLOT(executeAll())); actionEval = new QAction(tr("&Evaluate Expression"), this); actionEval->setShortcut( tr("Ctrl+Return") ); connect(actionEval, SIGNAL(activated()), this, SLOT(evaluate())); actionPrint = new QAction(QIcon(":/fileprint.png"), tr("&Print"), this); connect(actionPrint, SIGNAL(activated()), this, SLOT(print())); actionImport = new QAction(QIcon(":/fileopen.png"), tr("&Import..."), this); actionImport->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_O)); connect(actionImport, SIGNAL(activated()), this, SLOT(importASCII())); actionSave = new QAction(QIcon(":/filesave.png"), tr("&Save"), this); actionSave->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_S)); connect(actionSave, SIGNAL(activated()), this, SLOT(save())); actionExport = new QAction(QIcon(":/filesaveas.png"), tr("Sa&ve as..."), this); connect(actionExport, SIGNAL(activated()), this, SLOT(exportASCII())); actionFind = new QAction(QIcon(":/find.png"), tr("&Find..."), this); actionFind->setShortcut(QKeySequence(Qt::CTRL+Qt::ALT+Qt::Key_F)); connect(actionFind, SIGNAL(activated()), this, SLOT(showFindDialog())); actionReplace = new QAction(QIcon(":/replace.png"), tr("&Replace..."), this); actionReplace->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_R)); connect(actionReplace, SIGNAL(activated()), this, SLOT(replace())); actionFindNext = new QAction(QIcon(":/find_next.png"), tr("&Find next"), this); actionFindNext->setShortcut(QKeySequence(Qt::Key_F3)); connect(actionFindNext, SIGNAL(activated()), this, SLOT(findNext())); actionFindPrevious = new QAction(QIcon(":/find_previous.png"), tr("&Find previous"), this); actionFindPrevious->setShortcut(QKeySequence(Qt::Key_F4)); connect(actionFindPrevious, SIGNAL(activated()), this, SLOT(findPrevious())); functionsMenu = new QMenu(this); Q_CHECK_PTR(functionsMenu); connect(functionsMenu, SIGNAL(triggered(QAction *)), this, SLOT(insertFunction(QAction *))); connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(matchParentheses())); }