Added Qt style modif
[feedingit] / src / test.py
1 import sys
2 from PyQt4 import QtGui
3 from PyQt4 import QtCore
4 from PyQt4.QtWebKit import QWebView
5 import feedparser
6 import rss
7 from rss import *
8
9 from os.path import isfile, isdir
10 from os import mkdir
11
12 class ArticleDisplay(QtGui.QMainWindow):
13     def __init__(self, parent, feed, index):
14         QtGui.QMainWindow.__init__(self, parent)
15         #self.setWindowTitle('Feeding It')
16         
17         text = feed.getArticle(index)
18         web = QWebView()
19         web.set_html(text)
20         web.show()
21         
22         self.show()
23   
24 class ListingDisplay(QtGui.QMainWindow):  
25     def __init__(self, parent, feed):
26         QtGui.QMainWindow.__init__(self, parent)
27         
28         listWidget = QtGui.QListWidget(self)
29         index = 0
30         for item in feed.getTitles():
31             QtGui.QListWidgetItem(item["title"], listWidget)
32
33             #button.connect("clicked", self.button_clicked, self, self.window, currentfeed, index)
34             index=index+1
35         
36         #self.add(listWidget)
37         self.show()
38
39 class FeedDisplay(QtGui.QMainWindow):
40     def __init__(self, feed, title, parent=None):
41         self.feed = feed
42         self.title = title
43         QtGui.QMainWindow.__init__(self, parent)
44         self.setWindowTitle(self.title)
45         
46         self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
47                                       # layout manager
48         self.setCentralWidget(self.mainWidget)
49         self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
50         self.mainLayout.setSizeConstraint(1)
51         self.displayFeed()
52         print self.mainLayout.resizeMode
53         self.show()
54         
55     def displayFeed(self):
56         index = 0
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)           
63             index = index + 1
64         self.setFixedHeight(self.sizeHint().height())
65             
66     def buttonArticleClicked(self):
67         index = int(self.sender().objectName())
68         
69
70 class FeedingIt(QtGui.QMainWindow):    
71  
72     def __init__(self, parent=None):
73         QtGui.QMainWindow.__init__(self, parent)
74         self.setWindowTitle('Feeding It')
75
76         exit = QtGui.QAction('Exit', self)
77         exit.setStatusTip('Exit application')
78         self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
79
80         self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
81                                       # layout manager
82         self.setCentralWidget(self.mainWidget)
83         self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
84
85         # Create MenuBar
86         exitAction = QtGui.QAction('Exit', self)
87         self.connect(exitAction, QtCore.SIGNAL('triggered()'), self.close)
88         menubar = self.menuBar()
89         file = menubar.addAction(exitAction)
90         
91         self.listing=Listing()
92         self.displayListing() 
93         
94         #listOfFeeds = QtGui.QListWidget(self.mainWidget)
95         
96         #tmp = ["test","test1", "test2"]
97         #for item in self.listing.getListOfFeeds():
98         #for item in tmp:
99         #    QtGui.QListWidgetItem(item, listOfFeeds)
100         
101         #layout = QtGui.QVBoxLayout()
102         #layout.addWidget(listOfFeeds) 
103         #self.setLayout(layout)
104  
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)
112             
113             
114     def displayFeed(self, qtKey):
115         key = str(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)
121         
122         #index = 0
123         #for item in self.listing.getFeed(key).getEntries():
124             
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)
139             #index=index+1
140         
141     def buttonFeedClicked(self):
142         key = self.sender().objectName()
143         self.displayFeed(key)
144         
145 if __name__ == '__main__': 
146
147     # Checking the configuration directory does exist
148     if not isdir(CONFIGDIR):
149         try:
150             mkdir(CONFIGDIR)
151         except:
152             print "Error: Can't create configuration directory"
153             sys.exit(1)
154  
155     #Creating Qt application
156     app = QtGui.QApplication(sys.argv)
157  
158     feedingIt = FeedingIt()
159     feedingIt.show()
160  
161     #Starting the application's main loop
162     sys.exit(app.exec_())