import dbus
# import python dbus GLib mainloop support
import dbus.mainloop.glib
+# Enable glib main loop support
+dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
# Comment the line below if you don't want to use OpenGL for QML rendering or if it is not supported
from PySide import QtOpenGL, QtCore
from re import sub
class Controller(QtCore.QObject):
+ cachedList = None
def __init__(self, listing):
QtCore.QObject.__init__(self)
completed, in_progress, queued,
bytes_downloaded, bytes_updated, bytes_per_second,
feed_updated):
+ total = completed + in_progress + queued
+ root.updateProgress(int(total), int(completed))
+
+ def articleCountUpdated(self):
+ #print "article updated"
pass
def update_started(self):
@QtCore.Slot(str,result=str)
def getArticlesXml(self, key):
+ feed = listing.getFeed(key)
+ self.cachedList = feed.getIds(onlyUnread=True)
#onlyUnread = arguments.get("onlyUnread","False")
return self._handler.generateArticlesXml(key, config.getHideReadArticles())
+ @QtCore.Slot(str,str,bool,result=str)
+ def getNextId(self, key, articleid, onlyUnread):
+ if (onlyUnread):
+ #print self.cachedList, articleid
+ index = self.cachedList.index(articleid)
+ return self.cachedList[(index + 1) % len(self.cachedList)]
+ else:
+ feed = listing.getFeed(key)
+ return feed.getNextId(articleid)
+
+ @QtCore.Slot(str,str,bool,result=str)
+ def getPreviousId(self, key, articleid, onlyUnread):
+ if (onlyUnread):
+ #print self.cachedList, articleid
+ index = self.cachedList.index(articleid)
+ return self.cachedList[(index - 1) % len(self.cachedList)]
+ else:
+ feed = listing.getFeed(key)
+ return feed.getPreviousId(articleid)
+
@QtCore.Slot(result=str)
def getCategoryXml(self):
return self._handler.generateCategoryXml()
def markAllAsRead(self, key):
feed = listing.getFeed(key)
feed.markAllAsRead()
+ listing.updateUnread(key)
@QtCore.Slot(str, str)
def setEntryRead(self, key, articleid):
else:
return 'True'
+ @QtCore.Slot(str, result=int)
+ def getIntSetting(self, setting):
+ if (setting == "artFontSize"):
+ return config.getArtFontSize()
+ elif (setting == "fontSize" ):
+ return config.getFontSize()
+ else:
+ return -1
+
@QtCore.Slot(str, bool)
def setBooleanSetting(self, setting, value):
if (setting == "theme"):
elif (setting == "autoupdate"):
config.setAutoUpdateEnabled(value)
config.saveConfig()
+
+ @QtCore.Slot(str, int)
+ def setIntSetting(self, setting, value):
+ if (setting == "artFontSize"):
+ config.setArtFontSize(value)
+ elif (setting == "fontSize" ):
+ config.setFontSize(value)
+ config.saveConfig()
+
+ @QtCore.Slot(str, str)
+ def openSettings(self):
+ bus = dbus.SessionBus()
+ settingService = bus.get_object('com.nokia.DuiControlPanel', '/')
+ setting = shareService.get_dbus_method('appletPage', 'com.nokia.DuiControlPanelIf')
+ setting("FeedingIt")
-def main():
+ @QtCore.Slot(str, str)
+ def share(self, key, articleid):
+ feed = listing.getFeed(key)
+ title = feed.getTitle(articleid)
+ link = feed.getExternalLink(articleid)
+ description = 'Shared%20via%20FeedingIt%20on%20Meego'
+ import urllib
+ bus = dbus.SessionBus()
+ shareService = bus.get_object('com.nokia.ShareUi', '/')
+ share = shareService.get_dbus_method('share', 'com.nokia.maemo.meegotouch.ShareUiInterface')
+ #share([u'data:text/x-url;description=Support%20for%20Nokia%20Developers;title=Forum%20Nokia,http%3A%2F%2Fforum.nokia.com',])
+ share( ['data:text/x-url;title=%s;description=%s,%s' %(urllib.quote(title), description, urllib.quote(link)),] )
+
+ @QtCore.Slot(str, result=bool)
+ def getFeedEventStatus(self, key):
+ from gconf import client_get_defaults
+ return client_get_default().get_bool('/apps/ControlPanel/FeedingIt/EnableFeed/'+key)
+
+ @QtCore.Slot(str)
+ def switchEventFeedStatus(self, key):
+ from gconf import client_get_defaults
+ value = client_get_default().get_bool('/apps/ControlPanel/FeedingIt/EventFeed/Hide/'+key)
+ if value:
+ client_get_default().unset('/apps/ControlPanel/FeedingIt/EventFeed/Hide/'+key)
+ else:
+ client_get_default().set_bool('/apps/ControlPanel/FeedingIt/EventFeed/Hide/'+key, True)
+
+def main():
if not isdir(CONFIGDIR):
try:
mkdir(CONFIGDIR)
controller = Controller(listing)
# listen on dbus for download update progress
- dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
-# bus.add_signal_receiver(handler_function=self.update_progress,
-# bus_name=None,
-# signal_name='UpdateProgress',
-# dbus_interface='org.marcoz.feedingit',
-# path='/org/marcoz/feedingit/update')
-# bus.add_signal_receiver(handler_function=controller.update_started,
-# bus_name=None,
-# signal_name='UpdateStarted',
-# dbus_interface='org.marcoz.feedingit',
-# path='/org/marcoz/feedingit/update')
-# bus.add_signal_receiver(handler_function=controller.update_finished,
-# bus_name=None,
-# signal_name='UpdateFinished',
-# dbus_interface='org.marcoz.feedingit',
-# path='/org/marcoz/feedingit/update')
+
+ bus.add_signal_receiver(handler_function=controller.update_progress,
+ bus_name=None,
+ signal_name='UpdateProgress',
+ dbus_interface='org.marcoz.feedingit',
+ path='/org/marcoz/feedingit/update')
+
+ bus.add_signal_receiver(handler_function=controller.articleCountUpdated,
+ bus_name=None,
+ signal_name='ArticleCountUpdated',
+ dbus_interface='org.marcoz.feedingit',
+ path='/org/marcoz/feedingit/update')
+ bus.add_signal_receiver(handler_function=controller.update_started,
+ bus_name=None,
+ signal_name='UpdateStarted',
+ dbus_interface='org.marcoz.feedingit',
+ path='/org/marcoz/feedingit/update')
+ bus.add_signal_receiver(handler_function=controller.update_finished,
+ bus_name=None,
+ signal_name='UpdateFinished',
+ dbus_interface='org.marcoz.feedingit',
+ path='/org/marcoz/feedingit/update')
global root
rc = view.rootContext()
#view.show()
sys.exit(app.exec_())
-if __name__ == "__main__":
-
+if __name__ == "__main__":
main()