// Промежуточный класс QTextEdit, созданный чтобы можно было работать// с механизмом undo/redoclass EditorTextEdit : public QTextEdit{ Q_OBJECTpublic: EditorTextEdit(QWidget * parent); ~EditorTextEdit();public slots: void undo(); void redo();signals: void undo_running(); void redo_running();};
EditorTextEdit::EditorTextEdit(QWidget * parent = 0) : QTextEdit(parent){ }EditorTextEdit::~EditorTextEdit(){ }void EditorTextEdit::undo(){ QTextEdit::undo(); qDebug() << "Undo running"; emit undo_running();}void EditorTextEdit::redo(){ QTextEdit::redo(); qDebug() << "Redo running"; emit redo_running();}
void EditorTextEdit::keyPressEvent(QKeyEvent * event) { if (event->modifiers().testFlag(Qt::ControlModifier) && event->key()== Qt::Key_Z){ qDebug() << "Undo running"; } QTextEdit::keyPressEvent(event); // Вызов метода родителя.}