[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_1_BRANCH: kdelibs/kdeui
From:       George Staikos <staikos () kde ! org>
Date:       2003-04-30 20:58:14
[Download RAW message or body]

CVS commit by staikos: 

backport fix for 57257


  M +25 -5     kpassdlg.cpp   1.19.2.1
  M +6 -0      kpassdlg.h   1.19.4.1


--- kdelibs/kdeui/kpassdlg.cpp  #1.19:1.19.2.1
@@ -80,4 +80,5 @@ KPasswordEdit::KPasswordEdit(EchoMode ec
 void KPasswordEdit::init()
 {
+    setEchoMode(QLineEdit::Password); // Just in case
     setAcceptDrops(false);
     m_Password = new char[PassLen];
@@ -93,4 +94,18 @@ KPasswordEdit::~KPasswordEdit()
 }
 
+void KPasswordEdit::insert(const QString &txt)
+{
+    QCString localTxt = txt.local8Bit();
+    for(unsigned int i=0; i < localTxt.length(); i++)
+    {
+        unsigned char ke = localTxt[i];
+        if (m_Length < (PassLen - 1)) 
+        {
+            m_Password[m_Length] = ke;
+            m_Password[++m_Length] = '\000';
+        }
+    }
+    showPass();
+}
 
 void KPasswordEdit::erase()
@@ -133,9 +148,5 @@ void KPasswordEdit::keyPressEvent(QKeyEv
         unsigned char ke = e->text().local8Bit()[0];
         if (ke >= 32) {
-            if (m_Length < (PassLen - 1)) {
-                m_Password[m_Length] = ke;
-                m_Password[++m_Length] = '\000';
-                showPass();
-            }
+            insert(e->text());
         } else
             e->ignore();
@@ -151,5 +162,14 @@ bool KPasswordEdit::event(QEvent *e) {
       case QEvent::MouseButtonDblClick:
       case QEvent::MouseMove:
+      case QEvent::IMStart:
+      case QEvent::IMCompose:
         return TRUE; //Ignore
+
+      case QEvent::IMEnd:
+      {
+        QIMEvent *ie = (QIMEvent*) e;
+        insert( ie->text() );
+        return TRUE;
+      }
 
       case QEvent::AccelOverride:

--- kdelibs/kdeui/kpassdlg.h  #1.19:1.19.4.1
@@ -76,4 +76,10 @@ public:
     static const int PassLen;
 
+public slots:
+    /**
+     * Reimplementation
+     */
+    virtual void insert( const QString &);
+
 protected:
     virtual void keyPressEvent(QKeyEvent *);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic