Bug 245639 - rss dataengine does not refresh properly on network (re-)connection
Summary: rss dataengine does not refresh properly on network (re-)connection
Status: RESOLVED WORKSFORME
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 247127 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-07-24 14:20 UTC by S. Burmeister
Modified: 2010-08-30 18:24 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description S. Burmeister 2010-07-24 14:20:36 UTC
Version:           unspecified (using KDE 4.4.4) 
OS:                Linux

If the network connection is not up when one logs into KDE, plasmoids like the weather forecast or the newsticker do not show any content even after the network connection got established (knetworkmanager). They wait until they do their normal refresh.

I wonder whether this is due to plasma not having a central signal that tells all plasmoids that a new network connection is now available or whether this is a bug in every single plasmoid that suffers from this.

Reproducible: Always
Comment 1 peter.kelder 2010-07-27 14:03:50 UTC
Same here been strugling with this flaw.
Found a work around, but in that case plasma won't start until network is up.
Comment 2 Aaron J. Seigo 2010-07-28 02:43:51 UTC
"I wonder whether this is due to plasma not having a central signal that tells
all plasmoids that a new network connection is now available or whether this is
a bug in every single plasmoid that suffers from this."

neither; it's a bug in the DataEngines they are using. and it's each engine. there is no way to centralize a fix for it, but there is a central "network is up now" signal, and it is in fact working in the weather plasmoid. what it isn't doing is calling forceImmediateUpdateOfAllVisualizations() when it is updated in this fashion.

this is a per-DataEngine or per-Plasmoid issue. i've started fixing the weather engine, but it's fairly non-trivial given how poorly it was implemented.

the rss DataEngine's problem is likely that it only calls forceImmediateUpdateOfAllVisualizations() on the first source, and/or RssEngine::cachesUpToDate() is failing in that case.

i don't think b.k.o is really the best place to track this kind of issue, in any case, since it's per-plugin. Sven: why didn't you post this to plasma-devel? you are on the list according to lists.kde.org .. hm.
Comment 3 Aaron J. Seigo 2010-07-28 03:44:37 UTC
SVN commit 1155751 by aseigo:

actually push updates when the network updates; tested envcan thoroughly. the rest follow the same pattern, but need further testing
CCBUG:245639


 M  +16 -3     ions/bbcukmet/ion_bbcukmet.cpp  
 M  +3 -2      ions/bbcukmet/ion_bbcukmet.h  
 M  +34 -32    ions/envcan/ion_envcan.cpp  
 M  +4 -5      ions/envcan/ion_envcan.h  
 M  +1 -3      ions/ion.cpp  
 M  +1 -5      ions/ion.h  
 M  +20 -9     ions/noaa/ion_noaa.cpp  
 M  +1 -1      ions/noaa/ion_noaa.h  
 M  +17 -3     ions/wetter.com/ion_wettercom.cpp  
 M  +1 -0      ions/wetter.com/ion_wettercom.h  
 M  +68 -82    weatherengine.cpp  
 M  +19 -10    weatherengine.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1155751
Comment 4 S. Burmeister 2010-07-28 09:26:18 UTC
(In reply to comment #2)
> i don't think b.k.o is really the best place to track this kind of issue, in
> any case, since it's per-plugin. Sven: why didn't you post this to
> plasma-devel? you are on the list according to lists.kde.org .. hm.

I thought it was a bug and that bugs belong into bko and not on the mailinglist which is rather for discussion. Is it that it affects several plasmoids which makes the difference? I'll try to remember it for the next time I find this kind of issue.
Comment 5 Artur Souza (MoRpHeUz) 2010-08-13 20:45:49 UTC
*** Bug 247127 has been marked as a duplicate of this bug. ***
Comment 6 bes 2010-08-13 21:41:54 UTC
I added it already to the duplicate (247127), sorry for that, but I think that's the right place for the comment:

Konqueror and Choqok show the same behavior. Both don't have network access if they where started before the network was up. Only restarting Konqueror and Choqok after the network is up helps to get a connection.
Comment 7 Artur Souza (MoRpHeUz) 2010-08-29 01:53:58 UTC
SVN commit 1169287 by asouza:

Make weather dataengine work if started without network

Always call setData() using the original source so it's initialized
and when we reset the ions, they have sources connected to them and are
able to communicate back.

Also, fix the ions to update their data into the weather engine and later
emit the signal that will make the engine force the clients (plasmoids) to
update using the new data.

This mostly fix the problem of turning the computer on without network,
getting network later and the weather plasmoids not updating.

CCBUG: 226022
CCBUG: 245639


 M  +5 -1      envcan/ion_envcan.cpp  
 M  +9 -3      ion.cpp  
 M  +5 -1      noaa/ion_noaa.cpp  
 M  +9 -1      wetter.com/ion_wettercom.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1169287
Comment 8 Artur Souza (MoRpHeUz) 2010-08-29 02:31:13 UTC
The rss dataengine is properly updating on trunk - tested with rssnow plasmoid.
Comment 9 Artur Souza (MoRpHeUz) 2010-08-30 16:21:01 UTC
SVN commit 1170005 by asouza:

backporting 1155751

actually push updates when the network updates; tested envcan thoroughly. the rest 
follow the same pattern, but need further testing
CCBUG:245639



 M  +68 -82    weatherengine.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170005
Comment 10 Artur Souza (MoRpHeUz) 2010-08-30 16:57:56 UTC
SVN commit 1170021 by asouza:

backporting 1155751

actually push updates when the network updates; tested envcan thoroughly. the rest 
follow the same pattern, but need further testing
CCBUG:245639



 M  +16 -3     ions/bbcukmet/ion_bbcukmet.cpp  
 M  +3 -2      ions/bbcukmet/ion_bbcukmet.h  
 M  +34 -32    ions/envcan/ion_envcan.cpp  
 M  +4 -5      ions/envcan/ion_envcan.h  
 M  +1 -3      ions/ion.cpp  
 M  +1 -5      ions/ion.h  
 M  +20 -9     ions/noaa/ion_noaa.cpp  
 M  +1 -1      ions/noaa/ion_noaa.h  
 M  +17 -3     ions/wetter.com/ion_wettercom.cpp  
 M  +1 -0      ions/wetter.com/ion_wettercom.h  
 M  +19 -10    weatherengine.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170021
Comment 11 Artur Souza (MoRpHeUz) 2010-08-30 18:24:36 UTC
SVN commit 1170055 by asouza:

backporting r1169287

Make weather dataengine work if started without network

Always call setData() using the original source so it's initialized
and when we reset the ions, they have sources connected to them and are
able to communicate back.

Also, fix the ions to update their data into the weather engine and later
emit the signal that will make the engine force the clients (plasmoids) to
update using the new data.

This mostly fix the problem of turning the computer on without network,
getting network later and the weather plasmoids not updating.

CCBUG: 226022
CCBUG: 245639



 M  +5 -1      envcan/ion_envcan.cpp  
 M  +9 -3      ion.cpp  
 M  +5 -1      noaa/ion_noaa.cpp  
 M  +9 -1      wetter.com/ion_wettercom.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1170055