application/x-qt-plugin XPasswordWidget QWidget Example

Example Code for using x-qt-plugin with JavaScript and HTML Elements.

HTML Result
XPasswordWidget is a part of "XQPluginWidgets" Interface plugins.
back - XHTMLDBG Project - QtWebKitPlugins Wiki

HTML Code
<form action="#" method="post" target="_self" onsubmit="return checkForm();">
...
   <object type="application/x-qt-plugin"
         classid="XPasswordWidget" name="xPasswordWidget"
         width="450" height="180">
      <param name="title" value="Enter your Password" valuetype="data" />
      <param name="user" value="Test Username" valuetype="data" />
      <param name="password" value="hjcms.de" valuetype="data" />
      !!! Warning Warning Warning !!!
      do not write comments or different childNodes then <param.. if using "application/x-qt-plugin"
      qt4 will break initialisation if other childNodes in object.elements!
   </object>
...
   <input type="reset" onclick="document.xPasswordWidget.restore();" />
   <input type="button" onclick="document.xPasswordWidget.status;" />
   <input type="submit" />
...
   <label>Username:
      <input type="text" value="" id="u_data" />
   </label>
   </div>
   <div>
   <label>Password:
      <input type="text" value="" id="p_data" />
   </label>
...
JavaScript Code
<script type="text/javascript">
  /* <![CDATA[ */
   function checkForm()
   {
      document.getElementById( "u_data" ).value = document.xPasswordWidget.user;
      document.getElementById( "p_data" ).value = document.xPasswordWidget.password;
      return document.xPasswordWidget.status;
   }
  /* ]]> */
</script>
Class XPasswordWidget
#ifndef XPASSWORDWIDGET_H
#define XPASSWORDWIDGET_H

/* QtCore */
#include <QtCore/QObject>
#include <QtCore/QString>

/* QtGui */
#include <QtGui/QGroupBox>
#include <QtGui/QLineEdit>
#include <QtGui/QWidget>

/* QtScript */
#include <QtScript/QScriptable>
#include <QtScript/QScriptValue>

/* XHTMLDBG Designer */
#include <widgetinterface.h>

class Q_DECL_EXPORT XPasswordWidget : public QWidget , protected QScriptable
{
    Q_OBJECT
    Q_PROPERTY ( QString title READ title WRITE setTitle )
    Q_PROPERTY ( QString user READ user WRITE setUser )
    Q_PROPERTY ( QString password READ password WRITE setPassword )
    Q_PROPERTY ( bool status READ status )

  private:
    QGroupBox* m_groupBox;
    QLineEdit* m_onwerLineEdit;
    QLineEdit* m_passLineEdit;

  private Q_SLOTS:
    void textModified ( const QString & );

  public Q_SLOTS:
    void restore();

  public:
    explicit XPasswordWidget ( QWidget * parent = 0 );

    /**
    * Returns the Status of @ref isReady
    **/
    bool status();

    /**
    * Set Meta-Object Property Title for GroupBox
    **/
    void setTitle ( const QString &t );

    /**
    * Current GroupBox Title
    **/
    QString title() const;

    /**
    * Set Meta-Object Property for Owner Edit
    **/
    void setUser ( const QString &u );

    /**
    * Current Owner Edit TextPlain Data
    **/
    QString user() const;

    /**
    * Set Meta-Object Property for Password Edit
    **/
    void setPassword ( const QString &p );

    /**
    * Current Password Edit TextPlain Data
    **/
    QString password() const;

    virtual ~XPasswordWidget();
};

#endif
Back to Testpage