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 <<

Reply via email to