El Diumenge, 8 de març de 2015, a les 11:02:51, Stefano Crocco va escriure: > Hello to everyone, > I'm trying to port the User Agent Changer Konqueror plugin to KF5 (note that > I'm not the original developer of the plugin), but I found a > problem I can't understand and I'd need some help. > > For those unfamiliar, the UAChanger plugin displays a menu where the user > can choose a fake user agent for a given web page or host. > > The problem I found is that the first time I change the UA, everything goes > as expected. However, subsequent changes do nothing and restarting > konqueror is needed to see them. > > What happens in the plugin is the following: > > - in response to the aboutToShow signal from the menu, the user agent of > choiche for the current host is read using > KProtocolManager::userAgentForHost (UAChangerPlugin::slotAboutToShow) > - the user chooses a fake UA using the menu > - the user's choice is stored in the config file .local/kio_httprc, in a > group called as the host and an entry called UserAgent > (UAChangerPlugin::slotItemSelected) > - the KIO::Scheduler::emitReparseSlaveConfiguration method is called > (UAChangerPlugin::reloadPage) > - the document is reloaded (UAChangerPlugin::reload) > > It seems that everything goes correctly before reloading the document: the > configuration file is correctly updated (I checked both using > KConfigGroup::readEntry right after writing the setting and by looking at > the contents of the file). However, this results in a change in the value > returned by KProtocolManager::userAgentForHost only the first time the > settings is changed: any other attemtp result in the same value being > returned. > > I tried looking at the source code for KProtocolManager::userAgentForHost > looking for clues, but I couldn't find anything suspicious.
No expert but ./src/core/slaveconfig.cpp:199:MetaData SlaveConfig::configData(const QString &protocol, const QString &host) Seems to be keeping a cache, that might explain the not changing, the same code seems to be there in kdelibs though, does it work in konqueror based in kdelibs4? Even if it does, i guess you should gdb-debug that part both in kdelibs4- konqueror and in KF5-konqueror and see what's the difference. Cheers, Akbert > I also thought > that maybe the file where these settings are stored has changed since KDE4, > but I don't think this is the case, because otherwise not even the first > change should work. > > Does anyone has any idea about this? I attach the cpp file of the plugin so > you can have a look at it. The involved functions are: > > - UAChangerPlugin::slotAboutToShow (line 217, but the part related to this > problem starts on line 274 > - UAChangerPlugin::slotItemSelected (line 294) > - UAChangerPlugin::reloadPage (line 361) > > Thanks in advace > > Stefano >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<