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

List:       kde-commits
Subject:    KDE/kdelibs/kio/kio
From:       David Faure <faure () kde ! org>
Date:       2010-09-30 22:13:37
Message-ID: 20100930221337.0E933AC891 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1181399 by dfaure:

Apply changes to the configuration immediately (e.g. reload useragent configs), before we open any URL.
Otherwise one had to hit "reload" after using the uachanger plugin, just because the dbus signal was processed
after the openUrl call.
Tested on http://whatsmyuseragent.com/


 M  +12 -4     scheduler.cpp  
 M  +1 -1      scheduler.h  


--- trunk/KDE/kdelibs/kio/kio/scheduler.cpp #1181398:1181399
@@ -705,7 +705,7 @@
     void slotSlaveStatus(pid_t pid, const QByteArray &protocol,
                          const QString &host, bool connected);
 
-    void slotReparseSlaveConfiguration(const QString &);
+    void slotReparseSlaveConfiguration(const QString &, const QDBusMessage&);
 
     void slotSlaveConnected();
     void slotSlaveError(int error, const QString &errorMsg);
@@ -758,7 +758,7 @@
     dbus.registerObject( "/KIO/Scheduler", this, QDBusConnection::ExportScriptableSlots |
                                                  QDBusConnection::ExportScriptableSignals );
     dbus.connect(QString(), dbusPath, dbusInterface, "reparseSlaveConfiguration",
-                 this, SLOT(slotReparseSlaveConfiguration(QString)));
+                 this, SLOT(slotReparseSlaveConfiguration(QString,QDBusMessage)));
 }
 
 Scheduler::~Scheduler()
@@ -863,12 +863,20 @@
 void Scheduler::emitReparseSlaveConfiguration()
 {
     emit self()->reparseSlaveConfiguration( QString() );
+
+    // Do it immediately in this process, otherwise we might send a request before reparsing
+    // (e.g. when changing useragent in the plugin)
+    schedulerPrivate->slotReparseSlaveConfiguration(QString(), QDBusMessage());
 }
 
 
-void SchedulerPrivate::slotReparseSlaveConfiguration(const QString &proto)
+void SchedulerPrivate::slotReparseSlaveConfiguration(const QString &proto, const QDBusMessage& msg)
 {
-    kDebug(7006) << proto;
+    if (QDBusConnection::sessionBus().baseService() == msg.service()) {
+        kDebug(7006) << "Ignoring signal sent by myself";
+        return;
+    }
+    kDebug(7006) << "proto=" << proto;
     KProtocolManager::reparseConfiguration();
     SlaveConfig::self()->reset();
     sessionData.reset();
--- trunk/KDE/kdelibs/kio/kio/scheduler.h #1181398:1181399
@@ -283,7 +283,7 @@
                                                const QString &host, bool connected))
 
         // connected to D-Bus signal:
-        Q_PRIVATE_SLOT(schedulerPrivate, void slotReparseSlaveConfiguration(const QString &))
+        Q_PRIVATE_SLOT(schedulerPrivate, void slotReparseSlaveConfiguration(const QString &, const QDBusMessage&))
 
         Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveConnected())
         Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveError(int error, const QString &errorMsg))
[prev in list] [next in list] [prev in thread] [next in thread] 

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