// Insert some text. void QsciAccessibleScintillaBase::insertText(int offset, const QString &text) { QsciScintillaBase *sb = sciWidget(); sb->SendScintilla(QsciScintillaBase::SCI_INSERTTEXT, offsetAsPosition(sb, offset), textAsBytes(sb, text).constData()); }
// Replace some text. void QsciAccessibleScintillaBase::replaceText(int startOffset, int endOffset, const QString &text) { QsciScintillaBase *sb = sciWidget(); addSelection(startOffset, endOffset); sb->SendScintilla(QsciScintillaBase::SCI_REPLACESEL, textAsBytes(sb, text).constData()); }
void QScintillaWidget::setContents(const QString &pContents, const bool &pKeepHistory) { // Set our contents and keep our history, if required if (pKeepHistory) { bool readOnly = isReadOnly(); if (readOnly) setReadOnly(false); SendScintilla(SCI_SETTEXT, ScintillaBytesConstData(textAsBytes(pContents))); setReadOnly(readOnly); } else { setText(pContents); } }
// Handle key presses. void QsciScintillaBase::keyPressEvent(QKeyEvent *e) { int modifiers = 0; if (e->modifiers() & Qt::ShiftModifier) modifiers |= SCMOD_SHIFT; if (e->modifiers() & Qt::ControlModifier) modifiers |= SCMOD_CTRL; if (e->modifiers() & Qt::AltModifier) modifiers |= SCMOD_ALT; if (e->modifiers() & Qt::MetaModifier) modifiers |= SCMOD_META; int key = commandKey(e->key(), modifiers); if (key) { bool consumed = false; sci->KeyDownWithModifiers(key, modifiers, &consumed); if (consumed) { e->accept(); return; } } QString text = e->text(); if (!text.isEmpty() && text[0].isPrint()) { ScintillaBytes bytes = textAsBytes(text); sci->AddCharUTF(bytes.data(), bytes.length()); e->accept(); } else { QAbstractScrollArea::keyPressEvent(e); } }
// Handle key presses. void QsciScintillaBase::keyPressEvent(QKeyEvent *e) { unsigned key, modifiers = 0; if (e->state() & Qt::ShiftButton) modifiers |= SCMOD_SHIFT; if (e->state() & Qt::ControlButton) modifiers |= SCMOD_CTRL; if (e->state() & Qt::AltButton) modifiers |= SCMOD_ALT; if (e->state() & Qt::MetaButton) modifiers |= SCMOD_META; switch (e->key()) { case Qt::Key_Down: key = SCK_DOWN; break; case Qt::Key_Up: key = SCK_UP; break; case Qt::Key_Left: key = SCK_LEFT; break; case Qt::Key_Right: key = SCK_RIGHT; break; case Qt::Key_Home: key = SCK_HOME; break; case Qt::Key_End: key = SCK_END; break; case Qt::Key_Prior: key = SCK_PRIOR; break; case Qt::Key_Next: key = SCK_NEXT; break; case Qt::Key_Delete: key = SCK_DELETE; break; case Qt::Key_Insert: key = SCK_INSERT; break; case Qt::Key_Escape: key = SCK_ESCAPE; break; case Qt::Key_Backspace: key = SCK_BACK; break; case Qt::Key_Tab: key = SCK_TAB; break; case Qt::Key_Backtab: // Scintilla assumes a backtab is shift-tab. key = SCK_TAB; modifiers |= SCMOD_SHIFT; break; case Qt::Key_Return: case Qt::Key_Enter: key = SCK_RETURN; break; case Qt::Key_Super_L: key = SCK_WIN; break; case Qt::Key_Super_R: key = SCK_RWIN; break; case Qt::Key_Menu: key = SCK_MENU; break; default: key = e->key(); } if (key) { bool consumed = false; sci->KeyDownWithModifiers(key, modifiers, &consumed); if (consumed) { e->accept(); return; } } QString text = e->text(); if (!text.isEmpty() && text[0].isPrint()) { ScintillaBytes bytes = textAsBytes(text); sci->AddCharUTF(bytes.data(), bytes.length()); e->accept(); } else { QWidget::keyPressEvent(e); } }