mirror of
https://github.com/JS8Call-improved/JS8Call-improved
synced 2026-08-13 17:47:36 -04:00
55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
|
|
#include "messagereplydialog.h"
|
||
|
|
#include "JS8_Include/EventFilter.h"
|
||
|
|
#include "JS8_Main/varicode.h"
|
||
|
|
#include "ui_messagereplydialog.h"
|
||
|
|
#include <QSet>
|
||
|
|
|
||
|
|
MessageReplyDialog::MessageReplyDialog(QWidget *parent)
|
||
|
|
: QDialog(parent), ui(new Ui::MessageReplyDialog) {
|
||
|
|
ui->setupUi(this);
|
||
|
|
ui->textEdit->installEventFilter(new EventFilter::EnterKeyPress(
|
||
|
|
[this](QKeyEvent *const event) {
|
||
|
|
if (event->modifiers() & Qt::ShiftModifier)
|
||
|
|
return false;
|
||
|
|
this->accept();
|
||
|
|
return true;
|
||
|
|
},
|
||
|
|
this));
|
||
|
|
}
|
||
|
|
|
||
|
|
MessageReplyDialog::~MessageReplyDialog() { delete ui; }
|
||
|
|
|
||
|
|
void MessageReplyDialog::setLabel(QString value) { ui->label->setText(value); }
|
||
|
|
|
||
|
|
void MessageReplyDialog::setTextValue(QString text) {
|
||
|
|
ui->textEdit->setPlainText(text);
|
||
|
|
}
|
||
|
|
|
||
|
|
QString MessageReplyDialog::textValue() const {
|
||
|
|
return ui->textEdit->toPlainText();
|
||
|
|
}
|
||
|
|
|
||
|
|
void MessageReplyDialog::on_textEdit_textChanged() {
|
||
|
|
auto text = ui->textEdit->toPlainText();
|
||
|
|
|
||
|
|
QString x;
|
||
|
|
QString::const_iterator i;
|
||
|
|
for (i = text.constBegin(); i != text.constEnd(); i++) {
|
||
|
|
auto ch = (*i).toUpper().toLatin1();
|
||
|
|
if (ch == 10 || (32 <= ch && ch <= 126)) {
|
||
|
|
// newline or printable 7-bit ascii
|
||
|
|
x += ch;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (x != text) {
|
||
|
|
int pos = ui->textEdit->textCursor().position();
|
||
|
|
int maxpos = x.size();
|
||
|
|
ui->textEdit->setPlainText(x);
|
||
|
|
QTextCursor c = ui->textEdit->textCursor();
|
||
|
|
c.setPosition(pos < maxpos ? pos : maxpos, QTextCursor::MoveAnchor);
|
||
|
|
|
||
|
|
ui->textEdit->setTextCursor(c);
|
||
|
|
}
|
||
|
|
}
|