I am on a train right now that provides free wi-fi. But you know how these networks work - one second you're chatting with your friend, next second you lose connection. Getting mad enough about not knowing if I have internet or not, I wrote a super simple Plasma applet to monitor the network connection. This is a bit different from the network manager icon, which shows you that you are connected to the wi-fi, but that does not mean the wi-fi router has access to the internet. So this monitors the internet availability directly by sending ping packets to kde.org google.com, one every 5 seconds. If the ping gets back, it shows green icon (user-online icon), if not, it turns into gray (user-offline) icon. Simple as that.
The code is at kde:scratch/mklapetek/pingz, feel free to improve it if you feel like, it's good enough for me for now :)
Update: One thing I didn't realized when running in plasmoidviewer is, that QProcess::execute(..) waits for the ping process to finish. This has the effect of completely hanging plasma every 5 seconds when added to panel or desktop. Fix will follow shortly (if I'll have internet).