Ejemplo n.º 1
0
bool CroppingLabel::eventFilter(QObject *obj, QEvent *e)
{
    // catch paint events if needed
    if (obj == this)
    {
        if (e->type() == QEvent::Paint && blockPaintEvents)
            return true;
    }

    // events fired by the QLineEdit
    if (obj == textEdit)
    {
        if (!textEdit->isVisible())
            return false;

        if (e->type() == QEvent::KeyPress)
        {
            QKeyEvent* keyEvent = static_cast<QKeyEvent*>(e);
            if (keyEvent->key() == Qt::Key_Return)
                hideTextEdit(true);

            if (keyEvent->key() == Qt::Key_Escape)
                hideTextEdit(false);
        }

        if (e->type() == QEvent::FocusOut)
            hideTextEdit(true);
    }

    return false;
}
Ejemplo n.º 2
0
void CroppingLabel::editingFinished()
{
    hideTextEdit();
    QString newText = textEdit->text().trimmed().remove(QRegExp("[\\t\\n\\v\\f\\r\\x0000]"));

    if (origText != newText)
        emit editFinished(textEdit->text());

    emit editRemoved();
}