fixing little issues on my QML/Python program
Eric Mesa
ericsbinaryworld at gmail.com
Tue Jun 26 03:01:46 UTC 2012
Thanks to everyone who's helped me over the last year or so with my
program. I have one more thing to fix on my engine and then it will be
"perfect". The recent help I got helped me finally perfect the GUI. So my
data engine's running a function over and over with different arguments to
populate the sources. Here's what it looks like:
from PyQt4.QtCore import *
from PyKDE4.kdecore import *
from PyKDE4 import plasmascript
#for flickr
import views
class PyFlickrEngine(plasmascript.DataEngine):
def __init__(self,parent,args=None):
plasmascript.DataEngine.__init__(self,parent)
def init(self):
self.setMinimumPollingInterval(333)
#for flickr
views.initialize()
#adding this back in 24 jan to see if it helps
def sources(self):
sources = ["25", "50", "75", "100", "200", "300", "400", "500", "600",
"700", "800", "900", "1000", "1250", "1500", "1750", "2000","3000", "4000",
"5000", "10000"]
return sources
def sourceRequestEvent(self, name):
#print "source request event" #debugging
return self.updateSourceEvent(name)
def updateSourceEvent(self,group):
print "updateSourceEvent"
#grouplist = []
if group == "25":
grouplist = views.analyzeviews(views.views25, views.views50)
self.setData("25", "Group 25", grouplist)
elif group == "50":
grouplist = views.analyzeviews(views.views50, views.views75)
self.setData("50","Group 50", grouplist)
elif group == "75":
grouplist = views.analyzeviews(views.views75,views.views100)
self.setData("75","Group 75", grouplist)
elif group == "100":
print "i'm @ 100" #debug
grouplist = views.analyzeviews(views.views100,views.views200)
self.setData("100","Group 100", grouplist)
elif group == "200":
print "i'm @ 200" #debug
grouplist = views.analyzeviews(views.views200, views.views300)
self.setData("200","Group 200", grouplist)
*... (cut a snippet out - I think you get the point)*
elif group == "10000":
print "i'm @ 10000" #debug
grouplist = views.analyzeviews(views.views10000, views.views10000)
self.setData("10000","Group 10000", grouplist)
return True
def CreateDataEngine(parent):
return PyFlickrEngine(parent)
So that function it's calling, views.analyzeviews(arg, arg) is calling a
web API and sometimes that API fails. The cool thing about data engines vs
when I used to do this on the commandline is that if it fails at 25, it
doesn't crash the whole program. It just moves on to 50. So I can end up
in the end where when I click on 25 it tells me that there's nothing in the
source and then I click on 50 and I can use the data from that source. So,
right now if I want the data from 25, the only way I know how to do that is
by re-running the program and hoping the API doesn't fail that time
around. Is there a way for me to tell the data engine to update group 25
again from within the QML gui?
Thanks!
--
Eric Mesa
http://about.me/ericmesa
http://www.ericsbinaryworld.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20120625/b07bc949/attachment-0001.html>
More information about the Plasma-devel
mailing list