Implement insert and overwrite editing modes
This commit is contained in:
@@ -144,6 +144,11 @@ void TeletextWidget::timerEvent(QTimerEvent *event)
|
||||
QWidget::timerEvent(event);
|
||||
}
|
||||
|
||||
void TeletextWidget::setInsertMode(bool insertMode)
|
||||
{
|
||||
m_insertMode = insertMode;
|
||||
}
|
||||
|
||||
void TeletextWidget::toggleReveal(bool revealOn)
|
||||
{
|
||||
m_pageRender.setReveal(revealOn);
|
||||
@@ -330,7 +335,10 @@ void TeletextWidget::keyPressEvent(QKeyEvent *event)
|
||||
}
|
||||
switch (event->key()) {
|
||||
case Qt::Key_Backspace:
|
||||
backspaceEvent();
|
||||
m_teletextDocument->undoStack()->push(new BackspaceKeyCommand(m_teletextDocument, m_insertMode));
|
||||
break;
|
||||
case Qt::Key_Tab:
|
||||
m_teletextDocument->undoStack()->push(new TypeCharacterCommand(m_teletextDocument, 0x20, true));
|
||||
break;
|
||||
case Qt::Key_Delete:
|
||||
m_teletextDocument->undoStack()->push(new DeleteKeyCommand(m_teletextDocument));
|
||||
@@ -383,8 +391,7 @@ void TeletextWidget::keyPressEvent(QKeyEvent *event)
|
||||
|
||||
void TeletextWidget::setCharacter(unsigned char newCharacter)
|
||||
{
|
||||
QUndoCommand *overwriteCharacterCommand = new OverwriteCharacterCommand(m_teletextDocument, newCharacter);
|
||||
m_teletextDocument->undoStack()->push(overwriteCharacterCommand);
|
||||
m_teletextDocument->undoStack()->push(new TypeCharacterCommand(m_teletextDocument, newCharacter, m_insertMode));
|
||||
}
|
||||
|
||||
void TeletextWidget::toggleCharacterBit(unsigned char bitToToggle)
|
||||
@@ -393,12 +400,6 @@ void TeletextWidget::toggleCharacterBit(unsigned char bitToToggle)
|
||||
m_teletextDocument->undoStack()->push(toggleMosaicBitCommand);
|
||||
}
|
||||
|
||||
void TeletextWidget::backspaceEvent()
|
||||
{
|
||||
QUndoCommand *backspaceCommand = new BackspaceCommand(m_teletextDocument);
|
||||
m_teletextDocument->undoStack()->push(backspaceCommand);
|
||||
}
|
||||
|
||||
QPair<int, int> TeletextWidget::mouseToRowAndColumn(const QPoint &mousePosition)
|
||||
{
|
||||
int row = mousePosition.y() / 10;
|
||||
|
||||
Reference in New Issue
Block a user