On Tue, Jun 26, 2012 at 2:46 PM, Viranch Mehta <viranch.mehta@gmail.com> wrote:
On Tue, Jun 26, 2012 at 8:31 AM, Eric Mesa <ericsbinaryworld@gmail.com> wrote:
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:

Please always use pastebin.com or paste.kde.org to show your codes instead
of putting them in emails.

I think its ok to paste in a mail if its a snippet not too long, because it helps other people who will later read the ML archives, as pastebins may expire.
 

Viranch
 

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

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel



_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel




--
Shantanu Tushar    (UTC +0530)
http://www.shantanutushar.com