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

List:       kde-commits
Subject:    branches/KDE/3.5/kdelibs
From:       David Faure <faure () kde ! org>
Date:       2007-01-10 17:45:35
Message-ID: 1168451135.768681.13585.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 622094 by dfaure:

Fix onchange event in file widget - bug 107455
Patch by Konrad Rzepecki <hannibal@megapolis.pl>. Thanks Konrad!
BUG: 107455


 M  +6 -0      khtml/rendering/render_form.cpp  
 M  +1 -0      khtml/rendering/render_form.h  
 M  +13 -0     kio/kfile/kurlrequester.cpp  
 M  +1 -0      kio/kfile/kurlrequester.h  


--- branches/KDE/3.5/kdelibs/khtml/rendering/render_form.cpp #622093:622094
@@ -771,6 +771,7 @@
 
     connect(w->lineEdit(), SIGNAL(returnPressed()), this, \
                SLOT(slotReturnPressed()));
     connect(w->lineEdit(), SIGNAL(textChanged(const QString \
&)),this,SLOT(slotTextChanged(const QString &))); +    connect(w, \
SIGNAL(urlSelected(const QString &)),this,SLOT(slotUrlSelected(const \
QString &)));  
     setQWidget(w);
     m_haveFocus = false;
@@ -832,6 +833,11 @@
    element()->m_value = KURL( widget()->url() ).prettyURL( 0, \
KURL::StripFileProtocol );  }
 
+void RenderFileButton::slotUrlSelected(const QString &)
+{
+	element()->onChange();
+}
+
 void RenderFileButton::select()
 {
     widget()->lineEdit()->selectAll();
--- branches/KDE/3.5/kdelibs/khtml/rendering/render_form.h #622093:622094
@@ -322,6 +322,7 @@
 public slots:
     void slotReturnPressed();
     void slotTextChanged(const QString &string);
+    void slotUrlSelected(const QString &string);
 
 protected:
     virtual void handleFocusOut();
--- branches/KDE/3.5/kdelibs/kio/kfile/kurlrequester.cpp #622093:622094
@@ -22,6 +22,7 @@
 
 #include <qstring.h>
 #include <qtooltip.h>
+#include <qapplication.h>
 
 #include <kaccel.h>
 #include <kcombobox.h>
@@ -216,6 +217,7 @@
     setSpacing( KDialog::spacingHint() );
 
     QWidget *widget = d->combo ? (QWidget*) d->combo : (QWidget*) d->edit;
+    widget->installEventFilter( this );
     setFocusProxy( widget );
 
     d->connectSignals( this );
@@ -382,6 +384,17 @@
     (static_cast<KURLDragPushButton *>( myButton ))->setURL( u );
 }
 
+bool KURLRequester::eventFilter( QObject *obj, QEvent *ev )
+{
+    if ( ( d->edit == obj ) || ( d->combo == obj ) )
+    {
+        if (( ev->type() == QEvent::FocusIn ) || ( ev->type() == \
QEvent::FocusOut )) +            // Forward focusin/focusout events to the \
urlrequester; needed by file form element in khtml +            \
QApplication::sendEvent( this, ev ); +    }
+    return QWidget::eventFilter( obj, ev );
+}
+
 KPushButton * KURLRequester::button() const
 {
     return myButton;
--- branches/KDE/3.5/kdelibs/kio/kfile/kurlrequester.h #622093:622094
@@ -278,6 +278,7 @@
 
 protected:
     virtual void virtual_hook( int id, void* data );
+    bool eventFilter( QObject *obj, QEvent *ev );
 private:
     class KURLRequesterPrivate;
     KURLRequesterPrivate *d;


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

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