2 from PyQt4 import QtGui
3 from PyQt4 import QtCore
4 from PyQt4.QtWebKit import QWebView
9 from os.path import isfile, isdir
12 class ArticleDisplay(QtGui.QMainWindow):
13 def __init__(self, parent, feed, index):
14 QtGui.QMainWindow.__init__(self, parent)
15 #self.setWindowTitle('Feeding It')
17 text = feed.getArticle(index)
24 class ListingDisplay(QtGui.QMainWindow):
25 def __init__(self, parent, feed):
26 QtGui.QMainWindow.__init__(self, parent)
28 listWidget = QtGui.QListWidget(self)
30 for item in feed.getTitles():
31 QtGui.QListWidgetItem(item["title"], listWidget)
33 #button.connect("clicked", self.button_clicked, self, self.window, currentfeed, index)
39 class FeedDisplay(QtGui.QMainWindow):
40 def __init__(self, feed, title, parent=None):
43 QtGui.QMainWindow.__init__(self, parent)
44 self.setWindowTitle(self.title)
46 self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
48 self.setCentralWidget(self.mainWidget)
49 self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
50 self.mainLayout.setSizeConstraint(1)
52 print self.mainLayout.resizeMode
55 def displayFeed(self):
57 for item in self.feed.getEntries():
58 button = QtGui.QPushButton(item["title"], self)
59 button.setObjectName(str(index))
60 self.mainLayout.addWidget(button)
61 button.setFixedHeight(button.sizeHint().height())
62 self.connect(button, QtCore.SIGNAL("clicked()"), self.buttonArticleClicked)
64 self.setFixedHeight(self.sizeHint().height())
66 def buttonArticleClicked(self):
67 index = int(self.sender().objectName())
70 class FeedingIt(QtGui.QMainWindow):
72 def __init__(self, parent=None):
73 QtGui.QMainWindow.__init__(self, parent)
74 self.setWindowTitle('Feeding It')
76 exit = QtGui.QAction('Exit', self)
77 exit.setStatusTip('Exit application')
78 self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
80 self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
82 self.setCentralWidget(self.mainWidget)
83 self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
86 exitAction = QtGui.QAction('Exit', self)
87 self.connect(exitAction, QtCore.SIGNAL('triggered()'), self.close)
88 menubar = self.menuBar()
89 file = menubar.addAction(exitAction)
91 self.listing=Listing()
94 #listOfFeeds = QtGui.QListWidget(self.mainWidget)
96 #tmp = ["test","test1", "test2"]
97 #for item in self.listing.getListOfFeeds():
99 # QtGui.QListWidgetItem(item, listOfFeeds)
101 #layout = QtGui.QVBoxLayout()
102 #layout.addWidget(listOfFeeds)
103 #self.setLayout(layout)
105 def displayListing(self):
106 for key in self.listing.getListOfFeeds():
107 # Create the button for the feed
108 button = QtGui.QPushButton(self.listing.getFeedTitle(key), self)
109 button.setObjectName(key)
110 self.mainLayout.addWidget(button)
111 self.connect(button, QtCore.SIGNAL("clicked()"), self.buttonFeedClicked)
114 def displayFeed(self, qtKey):
116 self.feedDisplay = FeedDisplay(self.listing.getFeed(key), self.listing.getFeedTitle(key), self)
117 # Initialize the feed panel
118 #self.vboxFeed = gtk.VBox(False, 10)
119 #self.pannableFeed = hildon.PannableArea()
120 #self.pannableFeed.add_with_viewport(self.vboxFeed)
123 #for item in self.listing.getFeed(key).getEntries():
125 #button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT,
126 # hildon.BUTTON_ARRANGEMENT_HORIZONTAL)
127 #button.set_text(item["title"], time.strftime("%a, %d %b %Y %H:%M:%S",item["updated_parsed"]))
128 #button.set_text(item["title"], time.asctime(item["updated_parsed"]))
129 #button.set_text(item["title"],"")
130 #button.set_alignment(0,0,1,1)
131 #button.set_markup(True)
132 #button = gtk.Button(item["title"])
133 #button.set_alignment(0,0)
134 #label = button.child
135 #label.set_markup(item["title"])
136 #label.modify_font(pango.FontDescription("sans 16"))
137 #button.connect("clicked", self.button_clicked, self, self.window, key, index)
138 #self.vboxFeed.pack_start(button, expand=False)
141 def buttonFeedClicked(self):
142 key = self.sender().objectName()
143 self.displayFeed(key)
145 if __name__ == '__main__':
147 # Checking the configuration directory does exist
148 if not isdir(CONFIGDIR):
152 print "Error: Can't create configuration directory"
155 #Creating Qt application
156 app = QtGui.QApplication(sys.argv)
158 feedingIt = FeedingIt()
161 #Starting the application's main loop
162 sys.exit(app.exec_())