bool CWidgetReturnEmitTextEdit::focusNextPrevChild(bool next) { if (!tabChangesFocus() && (textInteractionFlags() & Qt::TextEditable)) { emit tabPressed(); return true; } else { return QAbstractScrollArea::focusNextPrevChild(next); } }
QMenu * SimpleRichTextEdit::createContextMenu(const QPoint &mouseGlobalPos) { Qt::TextInteractionFlags interactionFlags = this->textInteractionFlags(); QTextDocument *document = this->document(); QTextCursor cursor = textCursor(); const bool showTextSelectionActions = (Qt::TextEditable | Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse) & interactionFlags; QMenu *menu = new QMenu(this); if(interactionFlags & Qt::TextEditable) { m_actions[Undo]->setEnabled(document->isUndoAvailable()); menu->addAction(m_actions[Undo]); m_actions[Redo]->setEnabled(document->isRedoAvailable()); menu->addAction(m_actions[Redo]); menu->addSeparator(); m_actions[Cut]->setEnabled(cursor.hasSelection()); menu->addAction(m_actions[Cut]); } if(showTextSelectionActions) { m_actions[Copy]->setEnabled(cursor.hasSelection()); menu->addAction(m_actions[Copy]); } if(interactionFlags & Qt::TextEditable) { #if !defined(QT_NO_CLIPBOARD) m_actions[Paste]->setEnabled(canPaste()); menu->addAction(m_actions[Paste]); #endif m_actions[Delete]->setEnabled(cursor.hasSelection()); menu->addAction(m_actions[Delete]); m_actions[Clear]->setEnabled(!document->isEmpty()); menu->addAction(m_actions[Clear]); if(m_insertUnicodeControlCharMenu && interactionFlags & Qt::TextEditable) { menu->addSeparator(); menu->addMenu(m_insertUnicodeControlCharMenu); } } if(showTextSelectionActions) { menu->addSeparator(); m_actions[SelectAll]->setEnabled(!document->isEmpty()); menu->addAction(m_actions[SelectAll]); } if(interactionFlags & Qt::TextEditable) { menu->addSeparator(); m_actions[ToggleBold]->setCheckable(true); m_actions[ToggleBold]->setChecked(fontBold()); menu->addAction(m_actions[ToggleBold]); m_actions[ToggleItalic]->setCheckable(true); m_actions[ToggleItalic]->setChecked(fontItalic()); menu->addAction(m_actions[ToggleItalic]); m_actions[ToggleUnderline]->setCheckable(true); m_actions[ToggleUnderline]->setChecked(fontUnderline()); menu->addAction(m_actions[ToggleUnderline]); m_actions[ToggleStrikeOut]->setCheckable(true); m_actions[ToggleStrikeOut]->setChecked(fontStrikeOut()); menu->addAction(m_actions[ToggleStrikeOut]); menu->addAction(m_actions[ChangeTextColor]); menu->addSeparator(); m_actions[CheckSpelling]->setEnabled(!document->isEmpty()); menu->addAction(m_actions[CheckSpelling]); m_actions[ToggleAutoSpellChecking]->setChecked(checkSpellingEnabled()); menu->addAction(m_actions[ToggleAutoSpellChecking]); if(checkSpellingEnabled()) { setupWordUnderPositionCursor(mouseGlobalPos); QString selectedWord = m_selectedWordCursor.selectedText(); if(!selectedWord.isEmpty() && highlighter() && highlighter()->isWordMisspelled(selectedWord)) { QMenu *suggestionsMenu = menu->addMenu(i18n("Suggestions")); suggestionsMenu->addAction(i18n("Ignore"), this, SLOT(addToIgnoreList())); suggestionsMenu->addAction(i18n("Add to Dictionary"), this, SLOT(addToDictionary())); suggestionsMenu->addSeparator(); QStringList suggestions = highlighter()->suggestionsForWord(m_selectedWordCursor.selectedText()); if(suggestions.empty()) suggestionsMenu->addAction(i18n("No suggestions"))->setEnabled(false); else { for(QStringList::ConstIterator it = suggestions.begin(), end = suggestions.end(); it != end; ++it) suggestionsMenu->addAction(*it, this, SLOT(replaceWithSuggestion())); } } } menu->addSeparator(); m_actions[AllowTabulations]->setCheckable(true); m_actions[AllowTabulations]->setChecked(!tabChangesFocus()); menu->addAction(m_actions[AllowTabulations]); } return menu; }
void SimpleRichTextEdit::toggleTabChangesFocus() { setTabChangesFocus(!tabChangesFocus()); }
int QPlainTextEdit::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QAbstractScrollArea::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 25) qt_static_metacall(this, _c, _id, _a); _id -= 25; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< bool*>(_v) = tabChangesFocus(); break; case 1: *reinterpret_cast< QString*>(_v) = documentTitle(); break; case 2: *reinterpret_cast< bool*>(_v) = isUndoRedoEnabled(); break; case 3: *reinterpret_cast< LineWrapMode*>(_v) = lineWrapMode(); break; case 4: *reinterpret_cast< bool*>(_v) = isReadOnly(); break; case 5: *reinterpret_cast< QString*>(_v) = toPlainText(); break; case 6: *reinterpret_cast< bool*>(_v) = overwriteMode(); break; case 7: *reinterpret_cast< int*>(_v) = tabStopWidth(); break; case 8: *reinterpret_cast< int*>(_v) = cursorWidth(); break; case 9: *reinterpret_cast< Qt::TextInteractionFlags*>(_v) = textInteractionFlags(); break; case 10: *reinterpret_cast< int*>(_v) = blockCount(); break; case 11: *reinterpret_cast< int*>(_v) = maximumBlockCount(); break; case 12: *reinterpret_cast< bool*>(_v) = backgroundVisible(); break; case 13: *reinterpret_cast< bool*>(_v) = centerOnScroll(); break; } _id -= 14; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setTabChangesFocus(*reinterpret_cast< bool*>(_v)); break; case 1: setDocumentTitle(*reinterpret_cast< QString*>(_v)); break; case 2: setUndoRedoEnabled(*reinterpret_cast< bool*>(_v)); break; case 3: setLineWrapMode(*reinterpret_cast< LineWrapMode*>(_v)); break; case 4: setReadOnly(*reinterpret_cast< bool*>(_v)); break; case 5: setPlainText(*reinterpret_cast< QString*>(_v)); break; case 6: setOverwriteMode(*reinterpret_cast< bool*>(_v)); break; case 7: setTabStopWidth(*reinterpret_cast< int*>(_v)); break; case 8: setCursorWidth(*reinterpret_cast< int*>(_v)); break; case 9: setTextInteractionFlags(*reinterpret_cast< Qt::TextInteractionFlags*>(_v)); break; case 11: setMaximumBlockCount(*reinterpret_cast< int*>(_v)); break; case 12: setBackgroundVisible(*reinterpret_cast< bool*>(_v)); break; case 13: setCenterOnScroll(*reinterpret_cast< bool*>(_v)); break; } _id -= 14; } else if (_c == QMetaObject::ResetProperty) { _id -= 14; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 14; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 14; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 14; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 14; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 14; } #endif // QT_NO_PROPERTIES return _id; }