Qml support for harmattan version improved
[feedingit] / psa_harmattan / feedingit / pysrc / feedingit.py
index 01c7b51..546d043 100644 (file)
@@ -24,99 +24,6 @@ debugging.init(dot_directory=".feedingit", program_name="feedingit-pyside")
 from cgi import escape
 from re import sub
 
-class FeedWrapper(QtCore.QObject):
-    def __init__(self, key):
-        QtCore.QObject.__init__(self)
-        self._key = key
-    def _name(self):
-        return listing.getFeedTitle(self._key)
-    def _unread(self):
-        return listing.getFeedNumberOfUnreadItems(self._key)
-    def _updatedDate(self):
-        return listing.getFeedUpdateTime(self._key)
-    def _icon(self):
-        return listing.getFavicon(self._key)
-    def _feedid(self):
-        return self._key
-    def _updating(self):
-        return false
-    changed = QtCore.Signal()
-    title = QtCore.Property(unicode, _name, notify=changed)
-    feedid = QtCore.Property(unicode, _feedid, notify=changed)
-    unread = QtCore.Property(unicode, _unread, notify=changed)
-    updatedDate= QtCore.Property(unicode, _updatedDate, notify=changed)
-    icon = QtCore.Property(unicode, _icon, notify=changed)
-    updating = QtCore.Property(unicode, _icon, notify=changed)
-
-class FeedsModel(QtCore.QAbstractListModel):
-    COLUMNS = ('feed', )
-    _category = None
-    def __init__(self):
-        QtCore.QAbstractListModel.__init__(self)
-        self._feeds = listing.getListOfFeeds(self._category)
-        self.setRoleNames(dict(enumerate(FeedsModel.COLUMNS)))
-    def rowCount(self, parent=QtCore.QModelIndex()):
-        return len(self._feeds)
-    def data(self, index, role):
-        if index.isValid() and role == FeedsModel.COLUMNS.index('feed'):
-            print self._feeds[index.row()]
-            return FeedWrapper(self._feeds[index.row()])
-        return None
-
-class ArticleWrapper(QtCore.QObject):
-    def __init__(self, feed,  articleid):
-        QtCore.QObject.__init__(self)
-        self._feed = feed
-        self._articleid = articleid
-    def _name(self):
-        return self.fix_title(self._feed.getTitle(self._articleid))
-    def _unread(self):
-        return str(self._feed.isEntryRead(self._articleid))
-    def _getarticleid(self):
-        return self._articleid
-    def _updatedDate(self):
-        return self._feed.getDateStamp(self._articleid)
-    def _path(self):
-        return self._feed.getContentLink(self._articleid)
-    changed = QtCore.Signal()
-    title = QtCore.Property(unicode, _name, notify=changed)
-    articleid = QtCore.Property(unicode, _getarticleid, notify=changed)
-    unread = QtCore.Property(unicode, _unread, notify=changed)
-    updatedDate= QtCore.Property(unicode, _updatedDate, notify=changed)
-    path = QtCore.Property(unicode, _path, notify=changed)
-
-class ArticlesModel(QtCore.QAbstractListModel):
-    COLUMNS = ('article', )
-    _articles = []
-    _key = None
-    _feed = None
-    def __init__(self,):
-        QtCore.QAbstractListModel.__init__(self)
-        self.setRoleNames(dict(enumerate(ArticlesModel.COLUMNS)))
-        
-    def updateModel(self,  key):
-        self._key = key
-        self._feed = listing.getFeed(self._key)
-        self._articles = self._feed.getIds()
-    def rowCount(self, parent=QtCore.QModelIndex()):
-        print "art " + str(len(self._articles))
-        return len(self._articles)
-    def data(self, index, role):
-        print "data" + str(index) + " " + str(role)
-        if index.isValid() and role == ArticlesModel.COLUMNS.index('article'):
-            return ArticleWrapper(self._articles[index.row()])
-        return None
-
 class Controller(QtCore.QObject):
     
     def __init__(self, listing):
@@ -137,6 +44,7 @@ class Controller(QtCore.QObject):
     
     @QtCore.Slot(str, result=str)
     def getFeedsXml(self, catid):
+        print self._handler.generateFeedsXml(catid)
         return self._handler.generateFeedsXml(catid)
     
     @QtCore.Slot(str,result=str)
@@ -156,7 +64,6 @@ class Controller(QtCore.QObject):
         
     @QtCore.Slot(str)
     def updateFeed(self, key):
-        print 'updating feed ',  key
         listing.updateFeed(key)
         
     @QtCore.Slot()
@@ -217,30 +124,28 @@ def main():
     app = QtGui.QApplication(sys.argv)
     view = QtDeclarative.QDeclarativeView()
 
-    global articlesModel
-    feedsModel = FeedsModel()
-    articlesModel = ArticlesModel()
-    
     controller = Controller(listing)
  
     rc = view.rootContext()
  
     rc.setContextProperty('controller', controller)
-    rc.setContextProperty('feedsModel', feedsModel)
-    rc.setContextProperty('articlesModel', articlesModel)
 
     # Comment the two lines below if you don't want to use OpenGL for QML rendering or if it is not supported
-    glw = QtOpenGL.QGLWidget()
-    view.setViewport(glw)
+    #glw = QtOpenGL.QGLWidget()
+    #view.setViewport(glw)
 
     if os.path.exists('/usr/share/feedingit/qml'):
+        glw = QtOpenGL.QGLWidget()
+        view.setViewport(glw)
         view.setSource('/usr/share/feedingit/qml/main.qml')
+        view.showFullScreen()
     else:
-        #view.setSource(os.path.join('qml','main.qml'))
-        view.setSource(os.path.join('qml','FeedingIt.qml'))
+        view.setSource(os.path.join('qml','main.qml'))
+        view.show()
+        #view.setSource(os.path.join('qml','FeedingIt.qml'))
 
     #view.showFullScreen()
-    view.show()
+    #view.show()
     sys.exit(app.exec_())
 
 if __name__ == "__main__":