SVG5/stextedit.cpp
2025-10-12 13:55:56 +09:00

164 lines
4.0 KiB
C++

#include "stextedit.h"
#include <QKeyEvent>
#include <QMouseEvent>
#include <QInputMethodEvent>
#include <QDebug>
#include <QThread>
STextEdit::STextEdit(QWidget *parent) : QPlainTextEdit(parent)
{
}
STextEdit::~STextEdit()
{
}
void STextEdit::keyPressEvent(QKeyEvent *e)
{
int nKey = e->key();
qDebug() << "KeyDown: " << nKey << "Type: " << e->type();
//65293 : Enter
//65288 : Backspace
//65361 : Left
//65363 : Right
//65362 : Up
//65364 : Down
//65535 : Delete
//65360 : Home
//65367 : End
//16777251 : 한글키
if(nKey != 16777220 && nKey != 16777221 && nKey!=65293)
{
if(nKey==65288)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Backspace, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65289)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Tab, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
focusNextPrevChild(true);
return;
}
else if(nKey==65361)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Left, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65363)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Right, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65362)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Up, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65364)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Down, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65360)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_Home, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65367)
{
Qt::KeyboardModifier m;
QKeyEvent newEvent(e->type(), Qt::Key_End, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
return;
}
else if(nKey==65535)
{
Qt::KeyboardModifier m;
//Key_Hangul
/*
QKeyEvent newEvent(e->type(), Qt::Key_Hangul_End, e->modifiers());
QPlainTextEdit::keyPressEvent(&newEvent);
QKeyEvent newEventUp(e->type(), Qt::Key_Alt, e->modifiers());
QPlainTextEdit::keyReleaseEvent(&newEventUp);
*/
QKeyEvent newEventDeleteDown(e->type(), Qt::Key_Delete, m);
QPlainTextEdit::keyPressEvent(&newEventDeleteDown);
QThread::msleep(40);
QPlainTextEdit::keyReleaseEvent(&newEventDeleteDown);
return;
}
QPlainTextEdit::keyPressEvent(e);
}
}
void STextEdit::keyReleaseEvent(QKeyEvent *e)
{
int nKey = e->key();
if(nKey != 16777220 && nKey != 16777221)
{
QPlainTextEdit::keyReleaseEvent(e);
}
if(nKey==Qt::Key_F10)
{
parent()->event(e);
}
qDebug() << "KeyRelease: " << nKey;
}
void STextEdit::mousePressEvent(QMouseEvent *e)
{
qDebug() << "MousePress: " << e->type();
QPlainTextEdit::mousePressEvent(e);
}
void STextEdit::mouseMoveEvent(QMouseEvent *e)
{
qDebug() << "MousePress: " << e->type();
//QPlainTextEdit::mouseMoveEvent(e);
}
void STextEdit::mouseReleaseEvent(QMouseEvent *e)
{
qDebug() << "MousePress: " << e->type();
QPlainTextEdit::mouseReleaseEvent(e);
}
void STextEdit::inputMethodEvent(QInputMethodEvent *pEvent)
{
qDebug() << "inputMehodEvent: " << pEvent->type();
QPlainTextEdit::inputMethodEvent(pEvent);
}