Files
HPPA/HPPA/FileNameLineEdit.cpp
2026-04-02 10:34:57 +08:00

46 lines
1.1 KiB
C++

#include "FileNameLineEdit.h"
FileNameLineEdit::FileNameLineEdit(QWidget* parent)
: QLineEdit(parent)
{
setText(AppSettings::instance().fileName());
connect(this, &QLineEdit::textChanged, this, &FileNameLineEdit::onTextChanged);
}
void FileNameLineEdit::keyPressEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_Space)
{
event->ignore();
return;
}
QLineEdit::keyPressEvent(event);
}
void FileNameLineEdit::inputMethodEvent(QInputMethodEvent* event)
{
QString commitString = event->commitString();
if (commitString.contains(' '))
{
commitString.remove(' ');
QInputMethodEvent filtered(event->preeditString(), event->attributes());
filtered.setCommitString(commitString);
QLineEdit::inputMethodEvent(&filtered);
return;
}
QLineEdit::inputMethodEvent(event);
}
void FileNameLineEdit::onTextChanged(const QString& text)
{
QString cleaned = text;
if (cleaned.contains(' '))
{
int pos = cursorPosition();
cleaned.remove(' ');
setText(cleaned);
setCursorPosition(qMin(pos, cleaned.length()));
return;
}
AppSettings::instance().setFileName(cleaned);
}