Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'RenderLineEdit (./kdelibs/khtml/rendering/render_form.h:276)

class RenderLineEdit : public QObject, public RenderFormElement
{
    Q_OBJECT
public:
    RenderLineEdit(QScrollView *view,
                   HTMLFormElementImpl *form, int maxLen, int size,
                   bool passwd = false);

    virtual Type type() { return LineEdit; }
    virtual QString encoding();

    virtual void layout(bool);

    virtual void reset();

    virtual void setValue(const DOMString &value);
    virtual QString state();
    virtual void restoreState(const QString &);

    virtual const char *renderName() const { return "RenderLineEdit"; }

protected:

    int m_size;

public slots:	
    void slotReturnPressed();
};


// -------------------------------------------------------------------------


kdelibs'RenderLineEdit::RenderLineEdit() (./kdelibs/khtml/rendering/render_form.cpp:445)

RenderLineEdit::RenderLineEdit(QScrollView *view, HTMLFormElementImpl *form,
			       int maxLen, int size, bool passwd)
    : RenderFormElement(view, form)
{
    QLineEdit *edit = new QLineEdit(view);
    connect(edit, SIGNAL(returnPressed()), this, SLOT(slotReturnPressed()));

    if(maxLen > 0) edit->setMaxLength(maxLen);
    if(passwd) edit->setEchoMode( QLineEdit::Password );

    m_size = size;
    m_widget = edit;
}


kdelibs'RenderLineEdit::slotReturnPressed() (./kdelibs/khtml/rendering/render_form.cpp:459)

void RenderLineEdit::slotReturnPressed()
{
    m_form->maybeSubmit();
}


kdelibs'RenderLineEdit::setValue() (./kdelibs/khtml/rendering/render_form.cpp:464)

void RenderLineEdit::setValue(const DOMString &value)
{
    m_value = value;
    if(m_value != 0)
	static_cast<QLineEdit *>(m_widget)->setText(m_value.string());
}


kdelibs'RenderLineEdit::encoding() (./kdelibs/khtml/rendering/render_form.cpp:471)

QString RenderLineEdit::encoding()
{
    QString encoding;
    if(!m_name.isEmpty()) {
        encoding = encodeString( m_name.string() );
        encoding += '=';
        encoding += encodeString( static_cast<QLineEdit *>(m_widget)->text() );
    }
    return encoding;
}


kdelibs'RenderLineEdit::state() (./kdelibs/khtml/rendering/render_form.cpp:482)

QString RenderLineEdit::state()
{
   // Make sure the string is not empty!
   return static_cast<QLineEdit *>(m_widget)->text()+".";
}


kdelibs'RenderLineEdit::restoreState() (./kdelibs/khtml/rendering/render_form.cpp:488)

void RenderLineEdit::restoreState(const QString &state)
{
   static_cast<QLineEdit *>(m_widget)->setText(state.left(state.length()-1));
}


kdelibs'RenderLineEdit::layout() (./kdelibs/khtml/rendering/render_form.cpp:493)

void RenderLineEdit::layout(bool)
{
    QFontMetrics fm( m_widget->font() );
    QSize s;

    int h = fm.height();
    int w = fm.width( 'x' ) * (m_size > 0 ? m_size : 17); // "some"
    if ( static_cast<QLineEdit*>(m_widget)->frame() ) {
        h += 8;
	// ### this is not really portable between all styles.
	// I think one should try to find a generic solution which
	// works with all possible styles. Lars.
        if ( m_widget->style() == QWidget::WindowsStyle && h < 26 )
            h = 22;
        s = QSize( w + 8, h );
    } else
        s = QSize( w + 4, h + 4 );

    static_cast<QLineEdit*>(m_widget)->setReadOnly(m_readonly);

    m_height = s.height();
    m_width = s.width();

    RenderFormElement::layout(false);
}


kdelibs'RenderLineEdit::reset() (./kdelibs/khtml/rendering/render_form.cpp:519)

void RenderLineEdit::reset()
{
    if(m_value != 0)
	static_cast<QLineEdit *>(m_widget)->setText(m_value.string());
    else
	static_cast<QLineEdit *>(m_widget)->setText(QString::null);
}


// ---------------------------------------------------------------------------